]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
* langhooks.h (struct lang_hooks): Document that tree_size langhook
[thirdparty/gcc.git] / gcc / ChangeLog
1 2017-10-17 Jakub Jelinek <jakub@redhat.com>
2
3 * langhooks.h (struct lang_hooks): Document that tree_size langhook
4 may be also called on tcc_type nodes.
5 * langhooks.c (lhd_tree_size): Likewise.
6
7 2017-10-17 David Malcolm <dmalcolm@redhat.com>
8
9 * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
10 format_warning_at_substring.
11 (maybe_warn): Convert source_range * param to a location_t. Pass
12 UNKNOWN_LOCATION rather than NULL to fmtwarn.
13 (format_directive): Remove code to extract source_ranges and
14 source_range * in favor of just a location_t.
15 (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
16 fmtwarn.
17 * substring-locations.c (format_warning_va): Convert
18 source_range * param to a location_t.
19 (format_warning_at_substring): Likewise.
20 * substring-locations.h (format_warning_va): Likewise.
21 (format_warning_at_substring): Likewise.
22
23 2017-10-17 Jan Hubicka <hubicka@ucw.cz>
24
25 * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
26 vec_scatter_store
27 * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
28 and scatter/gather ops.
29
30 * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
31 vec_gather_load and vec_scatter_store.
32 * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
33 * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
34 * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
35 * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
36 * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
37 * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
38
39 2017-10-17 Uros Bizjak <ubizjak@gmail.com>
40
41 * reg-stack.c (compare_for_stack_reg): Add bool argument.
42 Detect FTST instruction and handle its register pops. Only pop
43 second operand if can_pop_second_op is true.
44 (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
45 set can_pop_second_op to false in the compare_for_stack_reg call.
46
47 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
48 output_fp_compare for stack register operands.
49 * config/i386/i386.c (output_fp_compare): Do not output SSE compare
50 instructions here. Do not emit stack register pops here. Assert
51 that FCOMPP pops next to top stack register. Rewrite function.
52
53 2017-10-17 Nathan Sidwell <nathan@acm.org>
54
55 PR middle-end/82577
56 * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
57 use DECL_ASSEMBLER_NAME_RAW.
58
59 PR middle-end/82546
60 * tree.c (tree_code_size): Reformat. Punt to lang hook for unknown
61 TYPE nodes.
62
63 2017-10-17 Qing Zhao <qing.zhao@oracle.com>
64 Wilco Dijkstra <wilco.dijkstra@arm.com>
65
66 * builtins.c (expand_builtin_update_setjmp_buf): Add a
67 converstion to Pmode from the buf_addr.
68
69 2017-10-17 Richard Biener <rguenther@suse.de>
70
71 * graphite-dependences.c (scop_get_reads_and_writes): Change
72 output parameters to references.
73
74 2017-10-17 Jackson Woodruff <jackson.woodruff@arm.com>
75
76 PR 71026/tree-optimization
77 * fold-const.c (distribute_real_division): Removed.
78 (fold_binary_loc): Remove calls to distribute_real_divison.
79
80 2017-10-17 Richard Biener <rguenther@suse.de>
81
82 * graphite-scop-detection.c
83 (scop_detection::stmt_has_simple_data_refs_p): Always use
84 the full nest as region.
85 (try_generate_gimple_bb): Likewise.
86 * sese.c (scalar_evolution_in_region): Simplify now that
87 SCEV can handle instantiation in regions.
88 * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
89 in the non-loop part of a function if requested.
90
91 2017-10-17 Richard Biener <rguenther@suse.de>
92
93 PR tree-optimization/82563
94 * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
95 New function.
96 (graphite_regenerate_ast_isl): Call it.
97 * graphite-scop-detection.c (build_scops): Remove entry edge split.
98
99 2017-10-17 Jakub Jelinek <jakub@redhat.com>
100
101 PR tree-optimization/82549
102 * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
103 Formatting fixes. Instead of calling make_bit_field_ref with negative
104 bitpos return 0.
105
106 2017-10-17 Olga Makhotina <olga.makhotina@intel.com>
107
108 * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
109 _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
110 _mm_maskz_reduce_ss): New.
111 * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
112 __builtin_ia32_reducess_mask): Ditto..
113 (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
114 * config/i386/sse.md (reduces<mode>): Renamed to ...
115 (reduces<mode><mask_scalar_name>): ... this.
116 (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}): Changed
117 to ...
118 (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
119 %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
120
121 2017-10-16 David Malcolm <dmalcolm@redhat.com>
122
123 * Makefile.in (OBJS): Add unique-ptr-tests.o.
124 * selftest-run-tests.c (selftest::run_tests): Call
125 selftest::unique_ptr_tests_cc_tests.
126 * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
127 * unique-ptr-tests.cc: New file.
128
129 2017-10-16 Vladimir Makarov <vmakarov@redhat.com>
130
131 PR sanitizer/82353
132 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
133 locations.
134 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
135 (make_hard_regno_born, make_hard_regno_dead): Update
136 bb_killed_pseudos and bb_gen_pseudos for fixed regs.
137
138 2017-10-16 Jeff Law <law@redhat.com>
139
140 * tree-ssa-dse.c (live_bytes_read): Fix thinko.
141
142 2017-10-16 Jan Hubicka <hubicka@ucw.cz>
143
144 * x86-tune-costs.h (znver1_cost): Fix move cost tables.
145
146 2017-10-16 Olivier Hainque <hainque@adacore.com>
147
148 * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
149 with_cpu if we were configured for an e500v2 target cpu name.
150
151 2017-10-16 Thomas Preud'homme <thomas.preudhomme@arm.com>
152
153 * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
154 * doc/invoke.texi: Document +nodsp as a valid extension for
155 -mcpu=cortex-m33.
156
157 2017-10-16 Martin Liska <mliska@suse.cz>
158
159 * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
160 (test_set_range): Likewise.
161 (test_range_functions): Rename to ...
162 (test_bit_in_range): ... this.
163 (sbitmap_c_tests): Add new test.
164
165 2017-10-16 Tamar Christina <tamar.christina@arm.com>
166
167 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): New.
168 (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
169 (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
170
171 2017-10-16 Tamar Christina <tamar.christina@arm.com>
172
173 * config/aarch64/aarch64-builtins.c
174 (aarch64_types_quadopu_lane_qualifiers): New.
175 (TYPES_QUADOPU_LANE): New.
176 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
177 (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
178 (aarch64_<sur>dot_laneq<vsi2qi>): New.
179 * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
180 (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
181 * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
182 (Vdottype, DOTPROD): New.
183 (sur): Add SDOT and UDOT.
184
185 2017-10-16 Tamar Christina <tamar.christina@arm.com>
186
187 * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
188 (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
189 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add TARGET_DOTPROD.
190 * config/aarch64/aarch64-option-extensions.def (dotprod): New.
191 * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75): Enable TARGET_DOTPROD.
192 (cortex-a75.cortex-a55): Likewise.
193 * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
194
195 2017-10-16 Tamar Christina <tamar.christina@arm.com>
196
197 * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
198 (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS): New.
199 * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane): new.
200 * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
201 (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
202 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
203 (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
204 * config/arm/types.md (neon_dot, neon_dot_q): New.
205 * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
206
207 2017-10-16 Tamar Christina <tamar.christina@arm.com>
208
209 * config/arm/arm.h (TARGET_DOTPROD): New.
210 * config/arm/arm.c (arm_arch_dotprod): New.
211 (arm_option_reconfigure_globals): Add arm_arch_dotprod.
212 * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
213 * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
214 (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
215 (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
216 * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
217 * doc/invoke.texi (armv8.2-a): Document dotprod
218
219 2017-10-14 Jan Hubicka <hubicka@ucw.cz>
220
221 * i386.c (ix86_vec_cost): New function.
222 (ix86_rtx_costs): Handle vector operations better.
223 * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
224 * x86-tune-costs.h: Add new costs to all tables.
225
226 2017-10-14 Jan Hubicka <hubicka@ucw.cz>
227
228 * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
229 operations.
230 * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
231 divsd, sqrtss and sqrtsd
232 * x86-tune-costs.h: Add new entries to all costs.
233 (znver1_cost): Fix to match real instruction latencies.
234
235 2017-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
236 Michael Collison <michael.collison@arm.com>
237
238 * compare-elim.c: Include emit-rtl.h.
239 (can_merge_compare_into_arith): New function.
240 (try_validate_parallel): Likewise.
241 (try_merge_compare): Likewise.
242 (try_eliminate_compare): Call the above when no previous clobber
243 is available.
244 (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
245 dataflow problems.
246
247 2017-10-14 Jakub Jelinek <jakub@redhat.com>
248
249 PR middle-end/62263
250 PR middle-end/82498
251 * tree-ssa-phiopt.c (value_replacement): Comment fix. Handle
252 up to 2 preparation statements for ASSIGN in MIDDLE_BB.
253
254 PR middle-end/62263
255 PR middle-end/82498
256 * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
257 to be any operand_equal_p operands. For & (B - 1) require
258 B to be power of 2. Recognize
259 (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
260
261 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
262
263 PR bootstrap/82553
264 * optabs.c (expand_memory_blockage): Fix call of
265 targetm.have_memory_blockage.
266
267 2017-10-14 Jakub Jelinek <jakub@redhat.com>
268
269 PR bootstrap/82548
270 * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
271 x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
272 objects to extra_objs instead of overwriting it.
273
274 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
275
276 * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
277 Use any_fp_register_operand as operand[3] predicate. Simplify
278 equality test for operands[2] and operands[4] memory location.
279 (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
280 (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
281 (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
282 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
283 any_fp_register_operand as operand[1] predicate. Simplify
284 equality test for operands[0] and operands[3] memory location.
285 (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
286 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
287 (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
288
289 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
290
291 * target-insns.def: Add memory_blockage.
292 * optabs.c (expand_memory_blockage): New function.
293 (expand_asm_memory_barrier): Rename ...
294 (expand_asm_memory_blockage): ... to this.
295 (expand_mem_thread_fence): Call expand_memory_blockage
296 instead of expand_asm_memory_barrier.
297 (expand_mem_singnal_fence): Ditto.
298 (expand_atomic_load): Ditto.
299 (expand_atomic_store): Ditto.
300 * doc/md.texi (Standard Pattern Names For Generation):
301 Document memory_blockage instruction pattern.
302
303 2017-10-13 Sebastian Perta <sebastian.perta@renesas.com>
304
305 * config/rl78/rl78.c (rl78_emit_libcall): New function.
306 * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
307 * config/rl78/rl78.md: New define_expand "adddi3".
308
309 2017-10-13 Jan Hubicka <hubicka@ucw.cz>
310
311 * cfghooks.c (verify_flow_info): Disable check that all probabilities
312 are set correctly.
313
314 2017-10-13 Jeff Law <law@redhat.com>
315
316 * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
317
318 2017-10-13 Jakub Jelinek <jakub@redhat.com>
319
320 PR target/82274
321 * internal-fn.c (expand_mul_overflow): If both operands have
322 the same highpart of -1 or 0 and the topmost bit of lowpart
323 is different, overflow is if res <= 0 rather than res < 0.
324
325 2017-10-13 Pat Haugen <pthaugen@us.ibm.com>
326
327 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
328 TARGET_P9_VECTOR code for unaligned_load case.
329
330 2017-10-13 Jan Hubicka <hubicka@ucw.cz>
331
332 * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
333
334 2017-10-13 Nathan Sidwell <nathan@acm.org>
335
336 * tree-core.h (tree_contains_struct): Make bool.
337 * tree.c (tree_contains_struct): Likewise.
338 * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
339 (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
340 MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
341 MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
342 MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
343
344 2017-10-13 Richard Biener <rguenther@suse.de>
345
346 * graphite-isl-ast-to-gimple.c
347 (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
348 parameters and dominance check.
349 (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
350 (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
351 (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
352 Do not update SSA form here or do intermediate IL verification.
353 * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
354 (graphite_initialize): Remove check on the number of loops in
355 the function and inline into graphite_transform_loops.
356 (graphite_finalize): Inline into graphite_transform_loops.
357 (graphite_transform_loops): Perform SSA update and IL verification
358 here.
359 * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
360
361 2017-10-13 Richard Biener <rguenther@suse.de>
362
363 * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
364 graphite_expression_type_precision): Avoid global constructor
365 by moving ...
366 (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
367 (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
368 (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
369 (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
370 (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
371 * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
372
373 2017-10-13 H.J. Lu <hongjiu.lu@intel.com>
374
375 PR target/82499
376 * config/i386/i386.h (ix86_red_zone_size): New.
377 * config/i386/i386.md (push peephole2s): Replace
378 "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
379
380 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
381 Alan Hayward <alan.hayward@arm.com>
382 David Sherwood <david.sherwood@arm.com>
383
384 * combine.c (can_change_dest_mode): Reject changes in
385 REGMODE_NATURAL_SIZE.
386
387 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
388 Alan Hayward <alan.hayward@arm.com>
389 David Sherwood <david.sherwood@arm.com>
390
391 * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
392 (expand_debug_source_expr): Likewise.
393 * combine.c (combine_simplify_rtx): Likewise.
394 * cse.c (fold_rtx): Likewise.
395 * fwprop.c (canonicalize_address): Likewise.
396 * targhooks.c (default_shift_truncation_mask): Likewise.
397
398 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
399 Alan Hayward <alan.hayward@arm.com>
400 David Sherwood <david.sherwood@arm.com>
401
402 * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
403 (widened_mode): Likewise.
404 (expand_unop): Likewise.
405 * ree.c (transform_ifelse): Likewise.
406 (merge_def_and_ext): Likewise.
407 (combine_reaching_defs): Likewise.
408 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
409
410 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
411 Alan Hayward <alan.hayward@arm.com>
412 David Sherwood <david.sherwood@arm.com>
413
414 * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
415 * combine.c (gen_lowpart_for_combine): Likewise.
416 * dwarf2out.c (rtl_for_decl_location): Likewise.
417 * final.c (alter_subreg): Likewise.
418 * rtlhooks.c (gen_lowpart_general): Likewise.
419 (gen_lowpart_if_possible): Likewise.
420
421 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
422 Alan Hayward <alan.hayward@arm.com>
423 David Sherwood <david.sherwood@arm.com>
424
425 * calls.c (expand_call): Use subreg_lowpart_offset.
426 * cse.c (cse_insn): Likewise.
427 * regcprop.c (copy_value): Likewise.
428 (copyprop_hardreg_forward_1): Likewise.
429
430 2017-10-13 Jakub Jelinek <jakub@redhat.com>
431
432 PR target/82524
433 * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
434 *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
435 =Q constraints to +Q and into insn condition add check
436 that operands[0] and operands[1] are equal.
437 (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
438 =Q constraints to +Q and into insn condition add check
439 that operands[0] is equal to either operands[1] or operands[2].
440
441 PR target/82498
442 * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
443 instead of handling MINUS_EXPR twice (once for each argument),
444 canonicalize operand order and handle just once, use rtype where
445 possible. Handle (A << B) | (A >> (-B & (Z - 1))).
446
447 PR target/82498
448 * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
449 any values of __C while still being pattern recognizable as a simple
450 rotate instruction.
451
452 2017-10-13 Richard Biener <rguenther@suse.de>
453
454 PR tree-optimization/82451
455 Revert
456 2017-10-02 Richard Biener <rguenther@suse.de>
457
458 PR tree-optimization/82355
459 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
460 a mapping for the enclosing loop but avoid generating one for
461 the loop tree root.
462 (copy_bb_and_scalar_dependences): Remove premature codegen
463 error on PHIs in blocks duplicated into multiple places.
464 * graphite-scop-detection.c
465 (scop_detection::stmt_has_simple_data_refs_p): For a loop not
466 in the region use it as loop and nest to analyze the DR in.
467 (try_generate_gimple_bb): Likewise.
468 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
469 (add_loop_constraints): For blocks in a loop not in the region
470 create a dimension with a single iteration.
471 * sese.h (gbb_loop_at_index): Remove assert.
472
473 * cfgloop.c (loop_preheader_edge): For the loop tree root
474 return the single successor of the entry block.
475 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
476 Reset the SCEV hashtable and niters.
477 * graphite-scop-detection.c
478 (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
479 assert that we only have POLYNOMIAL_CHREC that vary in loops
480 contained in the region.
481 (scop_detection::graphite_can_represent_expr): Adjust.
482 (scop_detection::stmt_has_simple_data_refs_p): For loops
483 not in the region set loop to NULL. The nest is now the
484 entry edge to the region.
485 (try_generate_gimple_bb): Likewise.
486 * sese.c (scalar_evolution_in_region): Adjust for
487 instantiate_scev change.
488 * tree-data-ref.h (graphite_find_data_references_in_stmt):
489 Make nest parameter the edge into the region.
490 (create_data_ref): Likewise.
491 * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
492 entry edge into a region and adjust instantiate_scev calls.
493 (create_data_ref): Likewise.
494 (graphite_find_data_references_in_stmt): Likewise.
495 (find_data_references_in_stmt): Pass the loop preheader edge
496 from the nest argument.
497 * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
498 parameter the edge into the region.
499 (instantiate_parameters): Use the loop preheader edge as entry.
500 * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
501 NULL loop.
502 (get_instantiated_value_entry): Make instantiate_below parameter
503 the edge into the region.
504 (instantiate_scev_name): Likewise. Adjust dominance checks,
505 when we cannot use loop-based instantiation instantiate by
506 walking use-def chains.
507 (instantiate_scev_poly): Adjust.
508 (instantiate_scev_binary): Likewise.
509 (instantiate_scev_convert): Likewise.
510 (instantiate_scev_not): Likewise.
511 (instantiate_array_ref): Remove.
512 (instantiate_scev_3): Likewise.
513 (instantiate_scev_2): Likewise.
514 (instantiate_scev_1): Likewise.
515 (instantiate_scev_r): Do not blindly handle N-operand trees.
516 Do not instantiate array-refs. Handle all constants and invariants.
517 (instantiate_scev): Make instantiate_below parameter
518 the edge into the region.
519 (resolve_mixers): Use the loop preheader edge for the region
520 parameter to instantiate_scev_r.
521 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
522
523 2017-10-13 Richard Biener <rguenther@suse.de>
524
525 PR tree-optimization/82525
526 * graphite-isl-ast-to-gimple.c
527 (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
528 out from ...
529 (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
530 Fail code generation when we cannot represent the isl integer.
531 (binary_op_to_tree): Elide modulo operations that are no-ops
532 in the type we code generate. Remove now superfluous code
533 generation errors.
534
535 2017-10-13 Richard Biener <rguenther@suse.de>
536
537 * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
538 (scop_detection::harmful_loop_in_region): Remove premature
539 IV type restriction.
540 (scop_detection::graphite_can_represent_scev): We can handle
541 pointer IVs just fine.
542
543 2017-10-13 Alan Modra <amodra@gmail.com>
544
545 * doc/extend.texi (Extended Asm <Clobbers>): Rename to
546 "Clobbers and Scratch Registers". Add paragraph on
547 alternative to clobbers for scratch registers and OpenBLAS
548 example.
549
550 2017-10-13 Alan Modra <amodra@gmail.com>
551
552 * doc/extend.texi (Clobbers): Correct vax example. Delete old
553 example of a memory input for a string of known length. Move
554 commentary out of table. Add a number of new examples
555 covering array memory inputs.
556
557 2017-10-12 Martin Liska <mliska@suse.cz>
558
559 PR tree-optimization/82493
560 * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
561 (test_range_functions): New function.
562 (sbitmap_c_tests): Likewise.
563 * selftest-run-tests.c (selftest::run_tests): Run new tests.
564 * selftest.h (sbitmap_c_tests): New function.
565
566 * tree-ssa-dse.c (live_bytes_read): Fix thinko.
567
568 2017-10-12 Michael Meissner <meissner@linux.vnet.ibm.com>
569
570 * config/rs6000/amo.h: Fix spacing issue.
571
572 2017-10-12 Jakub Jelinek <jakub@redhat.com>
573
574 PR target/82498
575 * config/i386/i386.md (*ashl<mode>3_mask_1,
576 *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
577 *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
578 patterns.
579
580 2017-10-12 Jan Hubicka <hubicka@ucw.cz>
581
582 * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
583 (profile_probability): Set max_probability
584 to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
585 in temporaries.
586 * profile-count.c (profile_probability::differs_from_p): Do not
587 rely on max_probaiblity == 10000
588
589 2017-10-12 Jeff Law <law@redhat.com>
590
591 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
592 negative offsets.
593
594 2017-10-12 Martin Sebor <msebor@redhat.com>
595
596 PR other/82301
597 PR c/82435
598 * cgraphunit.c (maybe_diag_incompatible_alias): New function.
599 (handle_alias_pairs): Call it.
600 * common.opt (-Wattribute-alias): New option.
601 * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
602 * doc/invoke.texi (-Wattribute-alias): Document.
603
604 2017-10-12 Vladimir Makarov <vmakarov@redhat.com>
605
606 Revert
607 2017-10-11 Vladimir Makarov <vmakarov@redhat.com>
608 PR sanitizer/82353
609 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
610 locations.
611 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
612 (make_hard_regno_born, make_hard_regno_dead): Update
613 bb_killed_pseudos and bb_gen_pseudos.
614
615 2017-10-12 Jan Hubicka <hubicka@ucw.cz>
616
617 * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
618
619 2017-10-12 Uros Bizjak <ubizjak@gmail.com>
620
621 * config/alpha/alpha.c (alpha_split_conditional_move):
622 Use std::swap instead of manually swapping.
623 (alpha_stdarg_optimize_hook): Ditto.
624 (alpha_canonicalize_comparison): Ditto.
625
626 2017-10-12 Bin Cheng <bin.cheng@arm.com>
627
628 * tree-loop-distribution.c (struct builtin_info): New struct.
629 (struct partition): Refactor fields into struct builtin_info.
630 (partition_free): Free struct builtin_info.
631 (build_size_arg_loc, build_addr_arg_loc): Delete.
632 (generate_memset_builtin, generate_memcpy_builtin): Get memory range
633 information from struct builtin_info.
634 (find_single_drs): New function refactored from classify_partition.
635 Also moved builtin validity checks to this function.
636 (compute_access_range, alloc_builtin): New functions.
637 (classify_builtin_st, classify_builtin_ldst): New functions.
638 (classify_partition): Refactor code into functions find_single_drs,
639 classify_builtin_st and classify_builtin_ldst.
640 (distribute_loop): Don't do runtime alias check when distributing
641 loop nest.
642 (find_seed_stmts_for_distribution): New function.
643 (pass_loop_distribution::execute): Refactor code finding seed
644 stmts into above function. Support distribution for the innermost
645 two-level loop nest. Adjust dump information.
646
647 2017-10-12 Bin Cheng <bin.cheng@arm.com>
648
649 * tree-loop-distribution.c: Adjust the general comment.
650 (NUM_PARTITION_THRESHOLD): New macro.
651 (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
652 (classify_partition): Skip builtin pattern of loop nest's inner loop.
653 (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
654 in call to build_partition_graph.
655 (finalize_partitions): New parameter. Make loop distribution more
656 conservative by fusing more partitions.
657 (distribute_loop): Don't do runtime alias check in case of loop nest
658 distribution.
659 (find_seed_stmts_for_distribution): New function.
660 (prepare_perfect_loop_nest): New function.
661 (pass_loop_distribution::execute): Refactor code finding seed stmts
662 and loop nest into above functions. Support loop nest distribution.
663 Adjust dump information accordingly.
664
665 2017-10-12 Bin Cheng <bin.cheng@arm.com>
666
667 * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
668 and set PTYPE_SEQUENTIAL for merged partition.
669
670 2017-10-12 Richard Biener <rguenther@suse.de>
671
672 PR tree-optimization/69728
673 Revert
674 2017-09-19 Richard Biener <rguenther@suse.de>
675
676 PR tree-optimization/69728
677 * graphite-sese-to-poly.c (schedule_error): New global.
678 (add_loop_schedule): Handle empty domain by failing the
679 schedule.
680 (build_original_schedule): Handle schedule_error.
681
682 * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
683 domain by returning an unchanged schedule.
684
685 2017-10-12 Jakub Jelinek <jakub@redhat.com>
686
687 * genrecog.c (validate_pattern): For VEC_SELECT verify that
688 CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
689
690 2017-10-12 Aldy Hernandez <aldyh@redhat.com>
691
692 * Makefile.in (TAGS): Merge all the *.def files into one pattern.
693 Handle params.def.
694
695 2017-10-12 Jakub Jelinek <jakub@redhat.com>
696
697 PR c++/82159
698 * expr.c (store_field): Don't optimize away bitsize == 0 store
699 from CALL_EXPR with addressable return type.
700
701 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org>
702
703 * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
704 * config/rs6000/rs6000.md (sel): Delete mode attribute.
705 (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
706 *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
707 TARGET_ISEL instead of TARGET_ISEL<sel>.
708
709 2017-10-11 David Edelsohn <dje.gcc@gmail.com>
710
711 * config/rs6000/rs6000.c
712 (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
713
714 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org>
715
716 * config/rs6000/predicates.md (zero_constant, all_ones_constant):
717 Move up in file.
718 (reg_or_cint_operand): Fix comment.
719 (reg_or_zero_operand): New predicate.
720 * config/rs6000/rs6000-protos.h (output_isel): Delete.
721 * config/rs6000/rs6000.c (output_isel): Delete.
722 * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
723 instead of reg_or_cint_operand. Output instruction directly (not via
724 output_isel).
725 (isel_unsigned_<mode>): Ditto.
726 (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
727 gpc_reg_operand. Add an instruction alternative for this. Output
728 instruction directly.
729 (*isel_reversed_unsigned_<mode>): Ditto.
730
731 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
732
733 * config/i386/i386.c (ix86_canonicalize_comparison): New function.
734 (TARGET_CANONICALIZE_COMPARISON): Define.
735
736 2017-10-11 Qing Zhao <qing.zhao@oracle.com>
737
738 PR target/81422
739 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
740 Check whether the dest is REG before adding REG_EQUIV note.
741
742 2017-10-11 Vladimir Makarov <vmakarov@redhat.com>
743
744 PR sanitizer/82353
745 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
746 locations.
747 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
748 (make_hard_regno_born, make_hard_regno_dead): Update
749 bb_killed_pseudos and bb_gen_pseudos.
750
751 2017-10-11 Nathan Sidwell <nathan@acm.org>
752
753 * incpath.h (enum incpath_kind): Name enum, prefix values.
754 (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
755 * incpath.c (heads, tails): Use INC_MAX.
756 (add_env_var_paths, add_standard_paths): Use incpath_kind.
757 (merge_include_chains, split_quote_chain,
758 register_include_chains): Update incpath_kind names.
759 (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
760 * config/darwin-c.c (add_system_framework_path): Update incpath_kind
761 names.
762 (add_framework_path, darwin_register_objc_includes): Likewise.
763 * config/vms/vms-c.c (vms_c_register_includes): Likewise.
764
765 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
766
767 * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
768 Do not use float_operator operator predicate.
769 (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
770 * config/i386/predicates.md (float_operator): Remove predicate.
771
772 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
773
774 * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
775 (*jccxf_i387): Ditto.
776 (*jcc<mode>_i387): Ditto.
777 (*jccu<mode>_i387): Ditto.
778 (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
779 (*jcc_*_i387 splitters): Remove.
780 * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
781 * config/i386/i386.c (ix86_split_fp_branch): Remove.
782 * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
783 Remove predicate.
784
785 2017-10-11 Jan Hubicka <hubicka@ucw.cz>
786
787 * profile-count.h (slow_safe_scale_64bit): New function.
788 (safe_scale_64bit): New inline.
789 (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
790 * profile-count.c: Include wide-int.h
791 (slow_safe_scale_64bit): New.
792
793 2017-10-11 Nathan Sidwell <nathan@acm.org>
794
795 * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
796 HAS_DECL_ASSEMBLER_NAME_P.
797 * gimple-expr.c (gimple_decl_printable_name: Check
798 HAS_DECL_ASSEMBLER_NAME_P too.
799 * ipa-utils.h (type_in_anonymous_namespace_p): Check
800 DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
801 (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
802 * passes.c (rest_of_decl_compilation): Check
803 HAS_DECL_ASSEMBLER_NAME_P too.
804 * recog.c (verify_changes): Likewise.
805 * tree-pretty-print.c (dump_decl_name): Likewise.
806 * tree-ssa-structalias.c (alias_get_name): Likewise. Reimplement.
807
808 * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
809 (SET_DECL_ASSEMBLER_NAME): Use it.
810 (DECL_ASSEMBLER_NAME_SET_P): Likewise.
811 (COPY_DECL_ASSEMBLER_NAME): Likewise.
812 * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
813
814 2017-10-11 Jan Hubicka <hubicka@ucw.cz>
815
816 * config.gcc (i386, x86_64): Add extra objects.
817 * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
818 (ix86_min_insn_size): Declare.
819 (ix86_issue_rate): Declare.
820 (ix86_adjust_cost): Declare.
821 (ia32_multipass_dfa_lookahead): Declare.
822 (ix86_macro_fusion_p): Declare.
823 (ix86_macro_fusion_pair_p): Declare.
824 (ix86_bd_has_dispatch): Declare.
825 (ix86_bd_do_dispatch): Declare.
826 (ix86_core2i7_init_hooks): Declare.
827 (ix86_atom_sched_reorder): Declare.
828 * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
829 (COSTS_N_BYTES): Move to x86-tune-costs.h.
830 (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
831 (rip_relative_addr_p): Rename to ...
832 (ix86_rip_relative_addr_p): ... this one; export.
833 (memory_address_length): Update.
834 (ix86_issue_rate): Move to x86-tune-sched.c.
835 (ix86_flags_dependent): Move to x86-tune-sched.c.
836 (ix86_agi_dependent): Move to x86-tune-sched.c.
837 (exact_dependency_1): Move to x86-tune-sched.c.
838 (exact_store_load_dependency): Move to x86-tune-sched.c.
839 (ix86_adjust_cost): Move to x86-tune-sched.c.
840 (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
841 (ix86_macro_fusion_p): Move to x86-tune-sched.c.
842 (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
843 (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
844 (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
845 (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
846 (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
847 (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
848 (min_insn_size): Rename to ...
849 (ix86_min_insn_size): ... this one; export.
850 (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
851 (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
852 (core2i7_first_cycle_multipass_backtrack): Move to
853 x86-tune-sched-core.c.
854 (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
855 (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
856 (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
857 (ix86_avoid_jump_mispredicts): Update.
858 (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
859 (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
860 (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
861 (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
862 (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
863 (MAX_INSN): Move to ix86-tune-sched-bd.c.
864 (MAX_IMM): Move to ix86-tune-sched-bd.c.
865 (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
866 (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
867 (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
868 (MAX_LOAD): Move to ix86-tune-sched-bd.c.
869 (MAX_STORE): Move to ix86-tune-sched-bd.c.
870 (BIG): Move to ix86-tune-sched-bd.c.
871 (enum dispatch_group): Move to ix86-tune-sched-bd.c.
872 (enum insn_path): Move to ix86-tune-sched-bd.c.
873 (get_mem_group): Move to ix86-tune-sched-bd.c.
874 (is_cmp): Move to ix86-tune-sched-bd.c.
875 (dispatch_violation): Move to ix86-tune-sched-bd.c.
876 (is_branch): Move to ix86-tune-sched-bd.c.
877 (is_prefetch): Move to ix86-tune-sched-bd.c.
878 (init_window): Move to ix86-tune-sched-bd.c.
879 (allocate_window): Move to ix86-tune-sched-bd.c.
880 (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
881 (is_end_basic_block): Move to ix86-tune-sched-bd.c.
882 (process_end_window): Move to ix86-tune-sched-bd.c.
883 (allocate_next_window): Move to ix86-tune-sched-bd.c.
884 (find_constant): Move to ix86-tune-sched-bd.c.
885 (get_num_immediates): Move to ix86-tune-sched-bd.c.
886 (has_immediate): Move to ix86-tune-sched-bd.c.
887 (get_insn_path): Move to ix86-tune-sched-bd.c.
888 (get_insn_group): Move to ix86-tune-sched-bd.c.
889 (count_num_restricted): Move to ix86-tune-sched-bd.c.
890 (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
891 (add_insn_window): Move to ix86-tune-sched-bd.c.
892 (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
893 (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
894 (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
895 (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
896 (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
897 (do_dispatch): Move to ix86-tune-sched-bd.c.
898 (has_dispatch): Move to ix86-tune-sched-bd.c.
899 * config/i386/t-i386: Add new object files.
900 * config/i386/x86-tune-costs.h: New file.
901 * config/i386/x86-tune-sched-atom.c: New file.
902 * config/i386/x86-tune-sched-bd.c: New file.
903 * config/i386/x86-tune-sched-core.c: New file.
904 * config/i386/x86-tune-sched.c: New file.
905
906 2017-10-11 Liu Hao <lh_mouse@126.com>
907
908 * pretty-print.c [_WIN32] (colorize_init): Remove. Use
909 the generic version below instead.
910 (should_colorize): Recognize Windows consoles as terminals
911 for MinGW targets.
912 * pretty-print.c [__MINGW32__] (write_all): New function.
913 [__MINGW32__] (find_esc_head): Likewise.
914 [__MINGW32__] (find_esc_terminator): Likewise.
915 [__MINGW32__] (eat_esc_sequence): Likewise.
916 [__MINGW32__] (mingw_ansi_fputs): New function that handles
917 ANSI escape codes.
918 (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
919 for MinGW targets.
920
921 2017-10-11 Richard Biener <rguenther@suse.de>
922
923 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
924 Properly call analyze_scalar_evolution with the loop of the stmt.
925
926 2017-10-11 Richard Biener <rguenther@suse.de>
927
928 * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
929 * tree-core.h (tree_base): Add chrec_var union member.
930 * tree.h (CHREC_VAR): Remove.
931 (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
932 * tree-chrec.h (build_polynomial_chrec): Adjust.
933 * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
934 * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
935
936 2017-10-11 Marc Glisse <marc.glisse@inria.fr>
937
938 * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
939 * match.pd: ... here.
940 ((T) X == (T) Y): Relax condition.
941
942 2017-10-11 Bin Cheng <bin.cheng@arm.com>
943
944 PR tree-optimization/82472
945 * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
946 comment.
947 (break_alias_scc_partitions): Update postorder number.
948
949 2017-10-11 Martin Liska <mliska@suse.cz>
950
951 PR sanitizer/82490
952 * opts.c (parse_no_sanitize_attribute): Do not use error_value
953 variable.
954 * opts.h (parse_no_sanitize_attribute): Remove last argument.
955
956 2017-10-11 Martin Liska <mliska@suse.cz>
957
958 * print-rtl.c (print_insn): Move declaration of idbuf
959 to same scope as name.
960
961 2017-10-11 Martin Liska <mliska@suse.cz>
962
963 Revert r253637:
964
965 PR sanitizer/82484
966 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
967 volatile arguments.
968
969 2017-10-11 Martin Liska <mliska@suse.cz>
970
971 PR sanitizer/82484
972 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
973 volatile arguments.
974
975 2017-10-11 Adhemerval Zanella <adhemerval.zanella@linaro.org>
976
977 * config.gcc (default_gnu_indirect_function): Default to yes for
978 arm*-*-linux* with glibc.
979
980 2017-10-11 Richard Biener <rguenther@suse.de>
981
982 * tree-scalar-evolution.c (get_scalar_evolution): Handle
983 default-defs and types we do not want to analyze.
984 (interpret_loop_phi): Replace unreachable code with an assert.
985 (compute_scalar_evolution_in_loop): Remove and inline ...
986 (analyze_scalar_evolution_1): ... here, replacing condition with
987 what makes the intent clearer. Remove handling of cases
988 get_scalar_evolution now handles.
989
990 2017-10-10 Jim Wilson <wilson@tuliptree.org>
991
992 PR rtl-optimization/81434
993 * haifa-sched.c (prune_ready_list): Init min_cost_group to 0. Update
994 comment for main loop. In sched_group_found if, also add checks for
995 pass and min_cost_group.
996
997 2017-10-10 Segher Boessenkool <segher@kernel.crashing.org>
998
999 * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
1000 (rs6000_insn_cost): New function.
1001 * config/rs6000/rs6000.md (cost): New attribute.
1002
1003 2017-10-10 Jakub Jelinek <jakub@redhat.com>
1004 H.J. Lu <hongjiu.lu@intel.com>
1005
1006 PR target/79565
1007 PR target/82483
1008 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
1009 OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
1010 __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
1011 (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
1012 to OPTION_MASK_ISA_AVX512VL - builtins that have both
1013 OPTION_MASK_ISA_MMX and some other bit set require both
1014 mmx and the ISAs without the mmx bit.
1015 * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
1016 __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
1017 __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
1018 __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
1019 __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
1020 __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
1021 __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
1022 __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
1023 __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
1024 __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
1025 __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
1026 __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
1027 __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
1028 __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
1029 Add OPTION_MASK_ISA_MMX.
1030
1031 2017-10-10 Andreas Tobler <andreast@gcc.gnu.org>
1032
1033 * config.gcc (armv7*-*-freebsd*): New target.
1034 (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
1035
1036 2017-10-10 Jan Hubicka <hubicka@ucw.cz>
1037
1038 * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
1039 X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
1040 spot in the file.
1041
1042 2017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
1043
1044 * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
1045 a template parameter.
1046 (WIDE_INT_REF_FOR): Update accordingly.
1047 * tree.h (wi::int_traits <const_tree>): Delete.
1048 (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
1049 (wi::to_widest, wi::to_offset): Use them. Expand commentary.
1050 (wi::tree_to_wide_ref): New typedef.
1051 (wi::to_wide): New function.
1052 * calls.c (get_size_range): Use wi::to_wide when operating on
1053 trees as wide_ints.
1054 * cgraph.c (cgraph_node::create_thunk): Likewise.
1055 * config/i386/i386.c (ix86_data_alignment): Likewise.
1056 (ix86_local_alignment): Likewise.
1057 * dbxout.c (stabstr_O): Likewise.
1058 * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
1059 * expr.c (const_vector_from_tree): Likewise.
1060 * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
1061 * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
1062 (fold_negate_expr_1, int_const_binop_1, const_binop)
1063 (fold_convert_const_int_from_real, optimize_bit_field_compare)
1064 (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
1065 (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
1066 (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
1067 (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
1068 (fold_not_const, round_up_loc): Likewise.
1069 * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
1070 * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
1071 (alloca_call_type): Likewise.
1072 * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
1073 * godump.c (go_output_typedef): Likewise.
1074 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
1075 * internal-fn.c (get_min_precision): Likewise.
1076 * ipa-cp.c (ipcp_store_vr_results): Likewise.
1077 * ipa-polymorphic-call.c
1078 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
1079 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
1080 (ipa_modify_call_arguments): Likewise.
1081 * match.pd: Likewise.
1082 * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
1083 * print-tree.c (print_node_brief, print_node): Likewise.
1084 * stmt.c (expand_case): Likewise.
1085 * stor-layout.c (layout_type): Likewise.
1086 * tree-affine.c (tree_to_aff_combination): Likewise.
1087 * tree-cfg.c (group_case_labels_stmt): Likewise.
1088 * tree-data-ref.c (dr_analyze_indices): Likewise.
1089 (prune_runtime_alias_test_list): Likewise.
1090 * tree-dump.c (dequeue_and_dump): Likewise.
1091 * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
1092 * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
1093 * tree-pretty-print.c (dump_generic_node): Likewise.
1094 * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
1095 (simple_iv_with_niters): Likewise.
1096 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
1097 * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
1098 * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
1099 * tree-ssa-loop-niter.c (split_to_var_and_offset)
1100 (refine_value_range_using_guard, number_of_iterations_ne_max)
1101 (number_of_iterations_lt_to_ne, number_of_iterations_lt)
1102 (get_cst_init_from_scev, record_nonwrapping_iv)
1103 (scev_var_range_cant_overflow): Likewise.
1104 * tree-ssa-phiopt.c (minmax_replacement): Likewise.
1105 * tree-ssa-pre.c (compute_avail): Likewise.
1106 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
1107 (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
1108 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
1109 * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
1110 * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
1111 * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
1112 (dump_case_nodes, try_switch_expansion): Likewise.
1113 * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
1114 (vect_do_peeling): Likewise.
1115 * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
1116 * tree-vect-stmts.c (vectorizable_load): Likewise.
1117 * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
1118 (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
1119 (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
1120 (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
1121 (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
1122 (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
1123 (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
1124 (evrp_dom_walker::before_dom_children): Likewise.
1125 * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
1126 (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
1127 (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
1128 (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
1129 (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
1130 (get_range_pos_neg): Likewise.
1131 * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
1132 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
1133 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
1134 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
1135 * config/avr/avr.c (avr_fold_builtin): Likewise.
1136 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
1137 * config/msp430/msp430.c (msp430_attr): Likewise.
1138 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
1139 * config/powerpcspe/powerpcspe-c.c
1140 (altivec_resolve_overloaded_builtin): Likewise.
1141 * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
1142 (rs6000_expand_ternop_builtin): Likewise.
1143 * config/rs6000/rs6000-c.c
1144 (altivec_resolve_overloaded_builtin): Likewise.
1145 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
1146 (rs6000_expand_ternop_builtin): Likewise.
1147 * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
1148
1149 2017-10-10 Bin Cheng <bin.cheng@arm.com>
1150
1151 * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
1152 when copying loop nest with only one inner loop.
1153
1154 2017-10-10 Richard Biener <rguenther@suse.de>
1155
1156 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
1157 blocks if SCEV is active.
1158 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
1159 dead code.
1160 (analyze_scalar_evolution): Handle cached evolutions the obvious way.
1161 (scev_initialize): Assert we are not yet initialized.
1162
1163 2017-10-10 Bin Cheng <bin.cheng@arm.com>
1164
1165 * tree-loop-distribution.c (generate_loops_for_partition): Remove
1166 inner loop's exit stmt by making it always exit the loop, otherwise
1167 we would generate an infinite empty loop.
1168
1169 2017-10-10 Bin Cheng <bin.cheng@arm.com>
1170
1171 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
1172 renaming variables in new preheader if it's deleted.
1173
1174 2017-10-10 Bin Cheng <bin.cheng@arm.com>
1175
1176 * tree-loop-distribution.c (struct partition): Remove unused field
1177 loops of the structure.
1178 (partition_alloc, partition_free): Ditto.
1179 (build_rdg_partition_for_vertex): Ditto.
1180
1181 2017-10-09 Jeff Law <law@redhat.com>
1182
1183 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
1184 return type to match prototype and documentation.
1185
1186 2010-10-09 Segher Boessenkool <segher@kernel.crashing.org>
1187
1188 * config/rs6000/rs6000.c (processor_costs): Move to ...
1189 * config/rs6000/rs6000.h: ... here.
1190 (rs6000_cost): Declare.
1191
1192 2017-10-09 Eric Botcazou <ebotcazou@adacore.com>
1193
1194 * except.c (setjmp_fn): New global variable.
1195 (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
1196 (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
1197 if DONT_USE_BUILTIN_SETJMP is defined.
1198
1199 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
1200
1201 * target.def (insn_cost): New hook.
1202 * doc/tm.texi.in (TARGET_INSN_COST): New hook.
1203 * doc/tm.texi: Regenerate.
1204 * rtlanal.c (insn_cost): Use the new hook.
1205
1206 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
1207
1208 * combine.c (combine_validate_cost): Compute the new insn_cost,
1209 not just pattern_cost.
1210 (try_combine): Adjust comment.
1211
1212 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
1213
1214 * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
1215 insn_cost.
1216 * combine.c (uid_insn_cost): Adjust comment.
1217 (combine_validate_cost): Adjust comment. Use pattern_cost instead
1218 of insn_rtx_cost
1219 (combine_instructions): Use insn_cost instead of insn_rtx_cost.
1220 * dse.c (find_shift_sequence): Ditto.
1221 * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
1222 (bb_valid_for_noce_process_p): Use pattern_cost.
1223 * rtl.h (insn_rtx_cost): Delete.
1224 (pattern_cost): New prototype.
1225 (insn_cost): New prototype.
1226 * rtlanal.c (insn_rtx_cost): Rename to...
1227 (pattern_cost): ... this.
1228 (insn_cost): New.
1229
1230 2017-10-09 Uros Bizjak <ubizjak@gmail.com>
1231
1232 * config/i386/i386.md (*jcc_2): Remove insn pattern.
1233 (*jcc<mode>_0_r_i387): Ditto.
1234 (*jccxf_r_i387): Ditto.
1235 (*jcc<mode>_r_i387): Ditto.
1236 (*jccu<mode>_r_i387): Ditto.
1237 (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
1238 (*jcc): Rename from *jcc_1.
1239
1240 2017-10-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1241
1242 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
1243 deferred rescans after the lvx/stvx recombination pre-pass.
1244
1245 2017-10-09 Michael Meissner <meissner@linux.vnet.ibm.com>
1246
1247 * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
1248 memory operation instruction support.
1249 * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
1250 (rs6000-ibm-aix[789]*): Likewise.
1251 * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
1252 Document new functions.
1253
1254 2017-10-09 Richard Biener <rguenther@suse.de>
1255
1256 PR tree-optimization/82397
1257 * tree-data-ref.c (data_ref_compare_tree): Make sure to return
1258 equality only for semantically equal trees.
1259
1260 2017-10-09 Richard Biener <rguenther@suse.de>
1261
1262 PR tree-optimization/82449
1263 * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
1264 * tree-chrec.h (evolution_function_is_constant_p): Adjust to
1265 allow constant addresses.
1266 * tree-chrec.c (scev_is_linear_expression): Constant evolutions
1267 are linear.
1268
1269 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1270
1271 * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
1272 flags.
1273
1274 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1275
1276 PR target/82463
1277 * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
1278 definitions.
1279
1280 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1281
1282 PR target/82465
1283 * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
1284
1285 2017-10-09 Jakub Jelinek <jakub@redhat.com>
1286
1287 PR target/82464
1288 * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
1289 s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
1290
1291 2017-10-09 Richard Sandiford <richard.sandiford@linaro.org>
1292
1293 * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
1294 (WI_BINARY_PREDICATE_RESULT): Likewise.
1295 (wi::binary_traits::operator_result): New type.
1296 (wi::binary_traits::predicate_result): Likewise.
1297 (generic_wide_int::operator~, unary generic_wide_int::operator-)
1298 (generic_wide_int::operator==, generic_wide_int::operator!=)
1299 (generic_wide_int::operator&, generic_wide_int::and_not)
1300 (generic_wide_int::operator|, generic_wide_int::or_not)
1301 (generic_wide_int::operator^, generic_wide_int::operator+
1302 (binary generic_wide_int::operator-, generic_wide_int::operator*):
1303 Delete.
1304 (operator~, unary operator-, operator==, operator!=, operator&)
1305 (operator|, operator^, operator+, binary operator-, operator*): New
1306 functions.
1307 * expr.c (get_inner_reference): Use wi::bit_and_not.
1308 * fold-const.c (fold_binary_loc): Likewise.
1309 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
1310 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1311 (bit_value_binop): Likewise.
1312 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
1313 * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
1314 (extract_range_from_binary_expr_1): Likewise.
1315 (masked_increment): Likewise.
1316 (simplify_bit_ops_using_ranges): Likewise.
1317
1318 2017-10-09 Martin Jambor <mjambor@suse.cz>
1319
1320 PR hsa/82416
1321 * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
1322 * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
1323 (hsa_type_for_scalar_tree_type): Use it. Always force min32int for
1324 COMPLEX types.
1325 (hsa_fixup_mov_insn_type): New function.
1326 (hsa_op_with_type::get_in_type): Use it.
1327 (hsa_build_append_simple_mov): Likewise. Allow sub-32bit
1328 immediates in an assert.
1329 (hsa_op_with_type::extend_int_to_32bit): New method.
1330 (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
1331 types. Convert to dest type if necessary.
1332 (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
1333 (reg_for_gimple_ssa): Pass false as min32int to
1334 hsa_type_for_scalar_tree_type.
1335 (gen_hsa_addr): Fixup type when creating addresable temporary.
1336 (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
1337 (gen_hsa_unary_operation): Extend operands and convert to dest type if
1338 necessary. Call hsa_fixup_mov_insn_type.
1339 (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
1340 extend operands and convert to dest type if necessary.
1341 (gen_hsa_insns_for_operation_assignment): Extend operands and convert
1342 to dest type if necessary.
1343 (set_output_in_type): Call hsa_fixup_mov_insn_type. Just ude dest
1344 if conversion nt necessary and size matches.
1345 (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
1346 to dest type if necessary.
1347 (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
1348 (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
1349 necessary.
1350 (gen_hsa_clrsb): Likewise.
1351 (gen_hsa_ffs): Likewise.
1352 (gen_hsa_divmod): Extend operands and convert to dest type if
1353 necessary.
1354 (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
1355
1356 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org>
1357
1358 * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
1359 Remove empty default arguments. Use a brace block as output
1360 statement.
1361 (conditional return): Ditto.
1362 (jump): Ditto.
1363 (indirect_jump): Ditto. Use b%T0 instead of bctr/blr.
1364 (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
1365 Ditto.
1366 (group_ending_nop): Ditto.
1367 (doloop_end): Ditto.
1368 (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
1369 (splitters for those): Ditto.
1370
1371 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org>
1372
1373 * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
1374 a conditional jump (and the compare for it) so that pc_rtx is the
1375 last operand.
1376 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
1377 for the deleted and renamed ctr<mode>_internal[234] patterns.
1378 * config/rs6000/rs6000.md: Delete second conditional branch pattern.
1379 Delete second conditional return pattern.
1380 (ctr<mode>_internal2): Delete this second bdnz pattern.
1381 (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
1382 (ctr<mode>_internal4): Delete this second bdz pattern.
1383
1384 2017-10-08 Eric Botcazou <ebotcazou@adacore.com>
1385
1386 * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
1387 (always_initialized_rtx_for_ssa_name_p): New predicate.
1388 * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
1389 (finish_out_of_ssa): Free new field of SA.
1390 * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
1391 * tree-ssa-coalesce.c: Include tree-ssa.h.
1392 (get_parm_default_def_partitions): Remove extern keyword.
1393 (get_undefined_value_partitions): New function.
1394 * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
1395 not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
1396 uninitialized bits.
1397 * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
1398
1399 2017-10-08 Eric Botcazou <ebotcazou@adacore.com>
1400
1401 * builtins.def (BUILT_IN_SETJMP): Revert latest change.
1402
1403 2017-10-08 Jan Hubicka <hubicka@ucw.cz>
1404
1405 * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
1406 for targets that preffer 128bit.
1407
1408 2017-10-08 Jan Hubicka <hubicka@ucw.cz>
1409
1410 * config/i386/i386.c (has_dispatch): Disable for Ryzen.
1411
1412 2017-10-08 Olivier Hainque <hainque@adacore.com>
1413
1414 * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
1415 on the target mem instead of RTX_FRAME_RELATED_P on the insn to
1416 prevent DSE.
1417 (thumb_set_return_address): Likewise.
1418
1419 2017-10-08 Olivier Hainque <hainque@adacore.com>
1420
1421 * common/config/arm/arm-common.c (arm_except_unwind_info):
1422 Handle DWARF2_UNWIND_INFO.
1423
1424 2017-10-07 Michael Collison <michael.collison@arm.com>
1425
1426 * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
1427 New pattern.
1428
1429 2017-10-07 Eric Botcazou <ebotcazou@adacore.com>
1430
1431 * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
1432 of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
1433 * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
1434 defined, force the creation of a new block for a dispatch label.
1435
1436 2017-10-07 Jan Hubicka <hubicka@ucw.cz>
1437
1438 * invoke.texi (Wsuggest-attribute=cold): Document.
1439 * common.opt (Wsuggest-attribute=cold): New
1440 * ipa-pure-const.c (warn_function_cold): New function.
1441 * predict.c (compute_function_frequency): Use it.
1442 * predict.h (warn_function_cold): Declare.
1443
1444 2017-10-06 Jan Hubicka <hubicka@ucw.cz>
1445
1446 * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
1447 Update profile.
1448
1449 2017-10-06 Martin Liska <mliska@suse.cz>
1450
1451 * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
1452 keyword for member functions.
1453 (struct sanopt_tree_couple): New struct.
1454 (struct sanopt_tree_couple_hash): New function.
1455 (struct sanopt_ctx): Add new hash_map.
1456 (has_dominating_ubsan_ptr_check): New function.
1457 (record_ubsan_ptr_check_stmt): Likewise.
1458 (maybe_optimize_ubsan_ptr_ifn): Likewise.
1459 (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
1460 (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
1461
1462 2017-10-06 Sudakshina Das <sudi.das@arm.com>
1463
1464 PR target/82440
1465 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
1466 aarch64_simd_valid_immediate on CONST_VECTORs.
1467 (aarch64_reg_or_bic_imm): Likewise.
1468
1469 2017-10-06 Wilco Dijkstra <wdijkstr@arm.com>
1470
1471 PR rtl-optimization/82396
1472 * haifa-sched.c (ready_sort_real): Disable qsort checking.
1473
1474 2017-10-06 Sebastian Pop <sebpop@gmail.com>
1475
1476 * graphite-dependences.c (scop_get_reads): Move code to...
1477 (scop_get_must_writes): Move code to...
1478 (scop_get_may_writes): Move code to...
1479 (scop_get_reads_and_writes): ... here.
1480 (scop_get_dependences): Call scop_get_reads_and_writes.
1481
1482 2017-10-06 Jakub Jelinek <jakub@redhat.com>
1483
1484 PR tree-optimization/82434
1485 * fold-const.h (can_native_encode_type_p,
1486 can_native_encode_string_p): Remove.
1487 * fold-const.c (native_encode_int): Formatting fixes. If ptr is NULL,
1488 don't encode anything, just return what would be otherwise returned.
1489 (native_encode_fixed, native_encode_complex, native_encode_vector):
1490 Likewise.
1491 (native_encode_string): Likewise. Inline by hand
1492 can_native_encode_string_p.
1493 (can_native_encode_type_p): Remove.
1494 (can_native_encode_string_p): Remove.
1495 * tree-vect-stmts.c (vectorizable_store): Instead of testing just
1496 STRING_CSTs using can_native_encode_string_p, test all
1497 CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
1498 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
1499 argument from native_encode_expr.
1500 (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
1501 (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
1502 but just 2.
1503
1504 2017-10-06 Richard Biener <rguenther@suse.de>
1505
1506 PR tree-optimization/82397
1507 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
1508 operand_equal_p but rely on data_ref_compare_tree for detecting
1509 equalities.
1510 (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
1511 to match up with dr_group_sort_cmp.
1512
1513 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1514
1515 PR target/82322
1516 * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
1517 builtin.
1518 * config/s390/s390-builtin-types.def: Regenerate.
1519
1520 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1521
1522 PR target/82317
1523 * config/s390/s390-builtin-types.def: Regenerate.
1524 * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
1525 Change flag from B_VXE to B_VX.
1526 (s390_vec_min_dbl): Remove B_VXE flag.
1527
1528 2017-10-06 Richard Biener <rguenther@suse.de>
1529
1530 * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
1531 (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
1532 translate_isl_ast_to_gimple::is_valid_rename,
1533 translate_isl_ast_to_gimple::get_rename,
1534 translate_isl_ast_to_gimple::get_def_bb_for_const,
1535 translate_isl_ast_to_gimple::get_new_name,
1536 translate_isl_ast_to_gimple::collect_all_ssa_names,
1537 translate_isl_ast_to_gimple::copy_loop_phi_args,
1538 translate_isl_ast_to_gimple::collect_all_ssa_names,
1539 translate_isl_ast_to_gimple::copy_loop_phi_args,
1540 translate_isl_ast_to_gimple::copy_loop_phi_nodes,
1541 translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
1542 translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
1543 translate_isl_ast_to_gimple::copy_loop_close_phi_args,
1544 translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
1545 translate_isl_ast_to_gimple::copy_cond_phi_args,
1546 translate_isl_ast_to_gimple::copy_cond_phi_nodes,
1547 translate_isl_ast_to_gimple::edge_for_new_close_phis,
1548 translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
1549 translate_isl_ast_to_gimple::rename_uses,
1550 translate_isl_ast_to_gimple::rename_all_uses): Remove.
1551 (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
1552 (set_rename_for_each_def): Likewise.
1553 (graphite_copy_stmts_from_block): Handle debug stmt resetting
1554 here. Handle rewriting SCEV analyzable uses here.
1555 (copy_bb_and_scalar_dependences): Generate code for PHI
1556 copy-in/outs.
1557 (graphite_regenerate_ast_isl): Adjust.
1558 * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
1559 (add_write, add_read): New functions.
1560 (build_cross_bb_scalars_def): Use it and simplify.
1561 (build_cross_bb_scalars_use): Likewise.
1562 (graphite_find_cross_bb_scalar_vars): Inline into...
1563 (try_generate_gimple_bb): ...here. Add dependences for PHIs,
1564 simulating out-of-SSA. Compute liveout and add dependencies.
1565 (build_scops): Force an empty entry block.
1566 * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
1567 members.
1568 (sese_build_liveouts): Declare.
1569 (sese_trivially_empty_bb_p): Likewise.
1570 * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
1571 compute liveout and debug_liveout.
1572 (sese_bad_liveouts_use): Remove.
1573 (sese_reset_debug_liveouts_bb): Likewise.
1574 (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
1575 (sese_build_liveouts): Build liveout and debug_liveout and store
1576 it in region.
1577 (new_sese_info): Adjust.
1578 (free_sese_info): Likewise.
1579 (sese_insert_phis_for_liveouts): Reset debug stmts from here,
1580 do not build liveout here.
1581 (move_sese_in_condition): Adjust region entry.
1582 (scev_analyzable_p): Match up with chrec_apply requirements.
1583 (sese_trivially_empty_bb_p): New.
1584 * tree-into-ssa.c (get_reaching_def): Properly support generating
1585 default-defs for incremental rewrite of anonymous names.
1586
1587 2017-10-06 Richard Biener <rguenther@suse.de>
1588
1589 * graphite-sese-to-poly.c (extract_affine): For casts increasing
1590 precision do not perform modulo reduction.
1591
1592 2017-10-06 Richard Biener <rguenther@suse.de>
1593
1594 PR tree-optimization/82436
1595 * tree-vect-slp.c (vect_supported_load_permutation_p): More
1596 conservatively choose the vectorization factor when checking
1597 whether we can perform the required load permutation.
1598 (vect_transform_slp_perm_load): Assert when we may not fail.
1599
1600 2017-10-05 Segher Boessenkool <segher@kernel.crashing.org>
1601
1602 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
1603 message for incompatible -msdata=* and -mcall-* options.
1604
1605 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
1606
1607 * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
1608 rate for post-reload scheduling.
1609
1610 2017-10-05 Tamar Christina <tamar.christina@arm.com>
1611
1612 * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
1613
1614 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
1615
1616 * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
1617 to improve monte carlo in scimark.
1618
1619 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
1620
1621 * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
1622 pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
1623 athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
1624 pentium4_cost, nocona_cost): Set reassociation width to 1.
1625 (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
1626 width to 2 for fp operations and 1 otherwise.
1627 (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
1628 for int and fp.
1629 (atom_cost): Set reassociation width to 2.
1630 (slm_cost, generic_cost): Set fp reassociation width
1631 to 2 and 1 otherwise.
1632 (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
1633 (core_cost): Set fp reassociation width to 4 and vector to 2.
1634 (ix86_reassociation_width): Rewrite using cost table; special case
1635 plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
1636 and TARGET_AVX128_OPTIMAL.
1637 * config/i386/i386.h (processor_costs): Add
1638 reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
1639 (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
1640 TARGET_REASSOC_FP_TO_PARALLEL): Remove.
1641 * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
1642 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
1643 (X86_TUNE_VECTOR_PARALLEL_EXECUTION): Remove.
1644
1645 2017-10-05 Nathan Sidwell <nathan@acm.org>
1646
1647 * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
1648
1649 2017-10-05 Tamar Christina <tamar.christina@arm.com>
1650
1651 * config/arm/arm.c (arm_test_fpu_data): New.
1652 (arm_run_selftests): Call arm_test_fpu_data.
1653
1654 2017-10-04 Nathan Sidwell <nathan@acm.org>
1655
1656 * toplev.c (toplev::main): Remove excess parens on pretty_printer
1657 decl.
1658 * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
1659
1660 2017-10-04 Sudakshina Das <sudi.das@arm.com>
1661
1662 * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
1663 check type for aarch64_simd_valid_immediate.
1664 (aarch64_output_simd_mov_immediate): Update prototype.
1665 (aarch64_simd_valid_immediate): Update prototype.
1666 * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
1667 support for ORR-immediate.
1668 (and<mode>3): modified pattern to add support for BIC-immediate.
1669 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
1670 now checks for valid immediate for BIC and ORR based on new enum
1671 argument.
1672 (aarch64_output_simd_mov_immediate): Function now used to output
1673 BIC/ORR imm as well based on new enum argument.
1674 * config/aarch64/constraints.md (Do): New vector immediate constraint.
1675 (Db) : Likewise.
1676 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
1677 (aarch64_reg_or_bic_imm): Likewise.
1678
1679 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1680
1681 * config/s390/vx-builtins.md ("vec_mergeh<mode>")
1682 ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
1683
1684 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com>
1685
1686 Revert r253399:
1687
1688 PR rtl-optimization/82396
1689 * haifa-sched.c (autopref_multipass_init): Simplify
1690 initialization.
1691 (autopref_rank_data): Simplify sort order.
1692 * sched-int.h (autopref_multipass_data_): Remove
1693 multi_mem_insn_p, min_offset and max_offset.
1694
1695 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1696
1697 * doc/sourcebuild.texi: Document vect_peeling_profitable.
1698
1699 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1700
1701 * doc/sourcebuild.texi: Document vect_intdouble_cvt and
1702 vect_doubleint_cvt.
1703
1704 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1705
1706 * doc/sourcebuild.texi: Document vect_long_mult.
1707
1708 2017-10-04 Richard Sandiford <richard.sandiford@linaro.org>
1709
1710 PR tree-optimization/82413
1711 * fold-const.c (build_range_check): Use widest_int when comparing
1712 the maximum ETYPE value with HIGH.
1713
1714 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com>
1715
1716 PR rtl-optimization/82396
1717 * haifa-sched.c (autopref_multipass_init): Simplify
1718 initialization.
1719 (autopref_rank_data): Simplify sort order.
1720 * sched-int.h (autopref_multipass_data_): Remove
1721 multi_mem_insn_p, min_offset and max_offset.
1722
1723 2017-10-04 Jakub Jelinek <jakub@redhat.com>
1724
1725 PR tree-optimization/82381
1726 * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
1727 oeN->rank first. Return 1 or -1 if one op is SSA_NAME and the other
1728 is not.
1729
1730 PR tree-optimization/82374
1731 * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
1732 DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
1733 DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
1734 current_function_decl to the new decl.
1735
1736 2017-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
1737
1738 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
1739 helper macro for IEEE float128 hardware built-in functions.
1740 (SQRTF128_ODD): Add built-in functions with the round-to-odd
1741 semantics.
1742 (TRUNCF128_ODD): Likewise.
1743 (ADDF128_ODD): Likewise.
1744 (SUBF128_ODD): Likewise.
1745 (MULF128_ODD): Likewise.
1746 (DIVF128_ODD): Likewise.
1747 (FMAF128_ODD): Likewise.
1748 * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
1749 UNSPEC_TRUNC_ROUND_TO_ODD.
1750 (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
1751 (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
1752 floating point round to odd instructions.
1753 (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
1754 (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
1755 (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
1756 (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
1757 (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
1758 (trunc<mode>sf2_hw): Change the truncate with round to odd
1759 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
1760 (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
1761 to odd hardware instructions.
1762 (sub<mode>3_odd): Likewise.
1763 (mul<mode>3_odd): Likewise.
1764 (div<mode>3_odd): Likewise.
1765 (sqrt<mode>2_odd): Likewise.
1766 (fma<mode>4_odd): Likewise.
1767 (fms<mode>4_odd): Likewise.
1768 (nfma<mode>4_odd): Likewise.
1769 (nfms<mode>4_odd): Likewise.
1770 (trunc<mode>df2_odd): Change the truncate with round to odd
1771 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. Add a generator
1772 function.
1773 * doc/extend.texi (PowerPC built-in functions): Update documentation
1774 for existing IEEE float128-bit built-in functions. Add built-in
1775 functions that generate the IEEE 128-bit floating point round to
1776 odd instructions.
1777
1778 2017-10-03 Segher Boessenkool <segher@kernel.crashing.org>
1779
1780 PR rtl-optimization/77729
1781 * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
1782 to (X&(C1&~C2))|C2 transformations.
1783
1784 2017-10-03 Martin Jambor <mjambor@suse.cz>
1785
1786 PR tree-optimization/82363
1787 * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
1788 mismatch, mark lacc written regardless of racc.
1789
1790 2017-10-03 Jakub Jelinek <jakub@redhat.com>
1791
1792 PR tree-optimization/82381
1793 * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
1794 stmt_to_insert nor wheather SSA_NAMEs are default defs.
1795 Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
1796 fallthrough into reassoc_stmt_dominates_stmt_p.
1797
1798 PR target/82386
1799 * combine.c (combine_instructions): Don't combine in unreachable
1800 basic blocks.
1801
1802 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
1803
1804 PR target/80210
1805 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
1806 function to not use the have_cpu variable. Do not set cpu_index,
1807 rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
1808 or the default cpu.
1809 (rs6000_valid_attribute_p): Remove duplicate initializations of
1810 old_optimize and func_optimize.
1811 (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
1812 (rs6000_activate_target_options): Make global.
1813 * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
1814 prototype.
1815
1816 2017-10-02 Jakub Jelinek <jakub@redhat.com>
1817
1818 * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
1819 if *poffset + *pmax_size overflows in HOST_WIDE_INT.
1820 Set *poffset to 0 and *psize and *pmax_size to -1 if
1821 *poffset + *psize overflows in HOST_WIDE_INT.
1822
1823 PR tree-optimization/82387
1824 PR tree-optimization/82388
1825 PR tree-optimization/82389
1826 * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
1827 instead of live_bytes non-NULL.
1828
1829 2017-10-02 Georg-Johann Lay <avr@gjlay.de>
1830
1831 PR target/41076
1832 * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
1833 alternative.
1834
1835 2017-10-02 Richard Biener <rguenther@suse.de>
1836
1837 * graphite-isl-ast-to-gimple.c (set_codegen_error): With
1838 -fchecking and --param graphite-allow-codegen-errors=0 ICE.
1839 * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
1840
1841 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org>
1842
1843 * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
1844 requested precision matches the type's.
1845 * calls.c (alloc_max_size): Calculate the new candidate size as
1846 a widest_int and use wi::to_widest when comparing it with the
1847 current candidate size.
1848 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
1849 zero rather than integer_zero_node.
1850 * match.pd: Check for a no-op conversion before using wi::add
1851 rather than after. Use tree_to_uhwi when summing small shift
1852 counts into an unsigned int.
1853
1854 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org>
1855 Alan Hayward <alan.hayward@arm.com>
1856 David Sherwood <david.sherwood@arm.com>
1857
1858 PR target/71307
1859 * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
1860 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
1861 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
1862 POINTER_AND_FP_REGS.
1863
1864 2017-10-02 Richard Biener <rguenther@suse.de>
1865
1866 PR tree-optimization/82355
1867 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
1868 a mapping for the enclosing loop but avoid generating one for
1869 the loop tree root.
1870 (copy_bb_and_scalar_dependences): Remove premature codegen
1871 error on PHIs in blocks duplicated into multiple places.
1872 * graphite-scop-detection.c
1873 (scop_detection::stmt_has_simple_data_refs_p): For a loop not
1874 in the region use it as loop and nest to analyze the DR in.
1875 (try_generate_gimple_bb): Likewise.
1876 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
1877 (add_loop_constraints): For blocks in a loop not in the region
1878 create a dimension with a single iteration.
1879 * sese.h (gbb_loop_at_index): Remove assert.
1880
1881 2017-10-01 Kevin Buettner <kevinb@redhat.com>
1882
1883 * omp-expand.c (adjust_context_scope): New function.
1884 (expand_parallel_call): Call adjust_context_scope.
1885
1886 2017-10-01 Jeff Law <law@redhat.com>
1887
1888 * tree-ssa-dom.c (optimize_stmt): Make this a method within the
1889 dom_opt_dom_walker class with direct access to private members.
1890 Add comments. Call test_for_singularity.
1891 (dom_opt_dom_walker::before_dom_children): Corresponding changes.
1892 (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
1893 m_dummy_cond anymore.
1894 (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
1895 class ctor.
1896 (pass_dominator:execute): Build the dummy_cond here and pass it
1897 to the dom_opt_dom_walker ctor.
1898 (test_for_singularity): New function.
1899
1900 2017-09-30 Krister Walfridsson <krister.walfridsson@gmail.com>
1901 Maya Rashish <coypu@sdf.org>
1902
1903 * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
1904 netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
1905 (alpha*-*-netbsd*) Use nbsd_tm_file.
1906 (arm*-*-netbsdelf*) Likewise.
1907 (i[34567]86-*-netbsdelf*) Likewise.
1908 (x86_64-*-netbsd*) Likewise.
1909 (mips*-*-netbsd*) Likewise.
1910 (powerpc-*-netbsd*) Likewise.
1911 (sh*-*-netbsd*) Likewise.
1912 (sparc-*-netbsdelf*) Likewise.
1913 (sparc64-*-netbsd*) Likewise.
1914 (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
1915 to tm_defines.
1916 (vax-*-netbsdelf*) Likewise.
1917 * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
1918 (UINT_FAST8_TYPE) Likewise.
1919 (INT_FAST16_TYPE) Check CHAR_FAST16.
1920 (UINT_FAST16_TYPE) Likewise.
1921
1922 2017-09-30 Jakub Jelinek <jakub@redhat.com>
1923
1924 PR target/82361
1925 * config/i386/i386.md
1926 (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
1927 (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
1928 *divmodsi4_zext_2): New define_insn_and_split.
1929 (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
1930 (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
1931 (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
1932 *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
1933 New define_insn_and_split.
1934 (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
1935 * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
1936 operands[1] having DImode when mode is SImode.
1937
1938 * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
1939 always SImode for DIV and MOD in REG_EQUAL notes.
1940
1941 2017-09-29 Yury Gribov <tetra2005@gmail.com>
1942
1943 PR middle-end/82319
1944 * match.pd: Fix handling of NaNs in pattern.
1945
1946 2017-09-29 Jeff Law <law@redhat.com>
1947
1948 * sbitmap.c (bitmap_bit_in_range_p): New function.
1949 * sbitmap.h (bitmap_bit_in_range_p): Prototype.
1950 * tree-ssa-dse.c (live_bytes_read): New function.
1951 (dse_classify_store): Ignore reads of dead bytes.
1952
1953 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
1954 typos and whitespace errors.
1955 * config/i386/predicates.md (address_no_seg_operand): Likewise.
1956 * config/s390/s390.c (s390_emit_prologue): Likewise.
1957
1958 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
1959
1960 PR target/81481
1961 * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
1962 with a symbol for LRA.
1963
1964 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
1965
1966 PR rtl-optimization/82338
1967 * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
1968
1969 2017-09-29 Alexander Monakov <amonakov@ispras.ru>
1970
1971 * genmodes.c (calc_wider_mode): Suppress qsort macro.
1972 * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
1973 (qsort_chk): Declare.
1974 * vec.c [CHECKING_P] (qsort_chk_error): New static function.
1975 (qsort_chk): New function.
1976
1977 2017-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1978
1979 PR tree-optimization/82337
1980 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
1981 phi definition if the PHI result appears in an abnormal PHI.
1982 (find_basis_for_base_expr): Don't record a basis if the LHS of the
1983 basis appears in an abnormal PHI.
1984
1985 2017-09-29 Richard Biener <rguenther@suse.de>
1986
1987 * graphite-isl-ast-to-gimple.c
1988 (translate_isl_ast_to_gimple::set_codegen_error): New function.
1989 (binary_op_to_tree): Use it.
1990 (get_rename_from_scev): Likewise.
1991 (copy_loop_phi_nodes): Likewise.
1992 (copy_bb_and_scalar_dependences): Likewise.
1993 (translate_pending_phi_nodes): Likewise.
1994
1995 2017-09-29 Jakub Jelinek <jakub@redhat.com>
1996
1997 PR target/82339
1998 * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
1999 for movabsq $(i32 << shift), r64.
2000
2001 2017-09-28 Uros Bizjak <ubizjak@gmail.com>
2002
2003 * config/i386/i386.c (ix86_print_operand_address_as): Do not check
2004 index when encoding %esp as %rsp to avoid 0x67 prefix.
2005
2006 2017-09-28 Sergey Shalnov <Sergey.Shalnov@intel.com>
2007
2008 * config/i386/i386.md (*movsf_internal, *movdf_internal):
2009 Return 256-bit AVX modes for TARGET_PREFER_AVX256.
2010
2011 2017-09-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
2012
2013 * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
2014 Extensions with more than 16 double VFP registers.
2015 (cmse_nonsecure_entry_clear_before_return): Remove second entry of
2016 to_clear_mask and all code related to it. Replace the remaining
2017 entry by a sbitmap and adapt code accordingly.
2018
2019 2017-09-28 Henry Linjamäki <henry.linjamaki@parmance.com>
2020
2021 * brig-builtins.def: Change pure attributes to const.
2022
2023 2017-09-28 Joseph Myers <joseph@codesourcery.com>
2024
2025 * config.gcc (default_gnu_indirect_function): Default to yes for
2026 sparc*-*-linux* with glibc.
2027
2028 2017-09-28 Joseph Myers <joseph@codesourcery.com>
2029
2030 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
2031 (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
2032 when creating .init_array and .fini_array sections with priority
2033 specified.
2034
2035 2017-09-27 Christophe Lyon <christophe.lyon@linaro.org>
2036
2037 PR target/71727
2038 * config/aarch64/aarch64.c
2039 (aarch64_builtin_support_vector_misalignment): Always return false
2040 when misalignment is unknown.
2041
2042 2017-09-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
2043
2044 * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
2045 this function to return false if the definition used by the swap
2046 instruction is artificial, or if the memory address from which the
2047 constant value is loaded is not represented by a base address held
2048 in a register or if the base address register is a frame or stack
2049 pointer. Additionally, return false if the base address of the
2050 loaded constant is a SYMBOL_REF but is not considered to be a
2051 constant.
2052 (replace_swapped_load_constant): New function.
2053 (rs6000_analyze_swaps): Add a new pass to replace a swap of a
2054 loaded constant vector with a load of a swapped constant vector.
2055
2056 2017-09-27 Carl Love <cel@us.ibm.com>
2057
2058 * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
2059 (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
2060 * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
2061 fctiw instruction.
2062
2063 2017-09-27 Alexander Monakov <amonakov@ispras.ru>
2064
2065 * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
2066 first, always call autopref_rank_data otherwise.
2067
2068 2017-09-27 Richard Biener <rguenther@suse.de>
2069
2070 * graphite-scop-detection.c (find_scop_parameters): Move
2071 loop bound handling ...
2072 (gather_bbs::before_dom_children): ... here, avoiding the need
2073 to build scop_info->loop_nest.
2074 (record_loop_in_sese): Remove.
2075 * sese.h (sese_info_t::loop_nest): Remove.
2076 * sese.c (new_sese_info): Do not allocate loop_nest.
2077 (free_sese_info): Do not free loop_nest.
2078
2079 2017-09-27 Jakub Jelinek <jakub@redhat.com>
2080
2081 PR c++/82159
2082 * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
2083 lhs from calls if the lhs has addressable type.
2084
2085 2017-09-27 Richard Biener <rguenther@suse.de>
2086
2087 * graphite.h (scop::max_alias_set): New member.
2088 * graphite-scop-detection.c: Remove references to non-existing
2089 --param in comments.
2090 (build_alias_sets): Record the maximum alias set used for drs.
2091 (build_scops): Support zero as unlimited for
2092 --param graphite-max-arrays-per-scop.
2093 * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
2094 and inline into ...
2095 (build_poly_sr_1): ... here. Compute alias set based on the
2096 maximum alias set used for drs rather than
2097 PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
2098
2099 2017-09-27 Richard Biener <rguenther@suse.de>
2100
2101 * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
2102 --param loop-block-tile-size=0 to disable tiling.
2103
2104 2017-09-27 Richard Biener <rguenther@suse.de>
2105
2106 * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
2107 (graphite-max-nb-scop-params): Document special value zero.
2108 * domwalk.h (dom_walker::STOP): New symbolical constant.
2109 (dom_walker::dom_walker): Add optional parameter for bb to
2110 RPO mapping.
2111 (dom_walker::~dom_walker): Declare.
2112 (dom_walker::before_dom_children): Document STOP return value.
2113 (dom_walker::m_user_bb_to_rpo): New member.
2114 (dom_walker::m_bb_to_rpo): Likewise.
2115 * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
2116 mapping here if not provided by the user.
2117 (dom_walker::~dom_walker): Free bb to RPO mapping if not
2118 provided by the user.
2119 (dom_walker::STOP): Define.
2120 (dom_walker::walk): Do not compute bb to RPO mapping here.
2121 Support STOP return value from before_dom_children to stop
2122 walking.
2123 * graphite-optimize-isl.c (optimize_isl): If the schedule
2124 is the same still generate code if -fgraphite-identity
2125 or -floop-parallelize-all are given.
2126 * graphite-scop-detection.c: Include cfganal.h.
2127 (gather_bbs::gather_bbs): Get and pass through bb to RPO
2128 mapping.
2129 (gather_bbs::before_dom_children): Return STOP for BBs
2130 not in the region.
2131 (build_scops): Compute bb to RPO mapping and pass it to
2132 the domwalk. Treat --param graphite-max-nb-scop-params=0
2133 as not limiting the number of params.
2134 * graphite.c (graphite_initialize): Remove limit on the
2135 number of basic-blocks in a function.
2136 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
2137 (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
2138 default value of 10.
2139
2140 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com>
2141
2142 * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
2143 Adjust code to eliminate needing to do the shift right 32-bits
2144 operation after XSCVDPSPN.
2145
2146 2017-09-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2147
2148 * match.pd ((X / Y) == 0 -> X < Y): New pattern.
2149 ((X / Y) != 0 -> X >= Y): Likewise.
2150
2151 2017-09-26 Carl Love <cel@us.ibm.com>
2152
2153 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
2154 P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
2155 vector unsigned char vec_xl_len_r (unsigned char *, size_t);
2156 void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
2157 * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
2158 * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
2159 definitions and overloading.
2160 * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
2161 statement for P9V_BUILTIN_XST_LEN_R.
2162 (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
2163 * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
2164 define_expand and define_insn for the instructions and builtins.
2165 * doc/extend.texi: Update the built-in documentation file for the new
2166 built-in functions.
2167 * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
2168 define_insn for the instructions
2169
2170 2017-09-26 Krister Walfridsson <krister.walfridsson@gmail.com>
2171
2172 PR target/39570
2173 * gcc/config/netbsd-protos.h: New file.
2174 * gcc/config/netbsd.c: New file.
2175 * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
2176 * gcc/config/t-netbsd: New file.
2177 * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
2178 (tmake_file) Add t-netbsd.
2179 (extra_objs) Add netbsd.o.
2180
2181 2017-09-26 Janus Weil <janus@gcc.gnu.org>
2182
2183 PR fortran/82143
2184 PR fortran/82324
2185 * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
2186
2187 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com>
2188
2189 * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
2190 sign extension from a vector register to a GPR by doing a 32-bit
2191 direct move and then an EXTSW.
2192 (extendsi<mode>2 splitter): Likewise.
2193 (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
2194 right or vector extract after doing XSCVDPSPN. Use
2195 zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
2196 the GPRs.
2197 (movdi_from_sf_zero_ext): Likewise.
2198 (reload_gpr_from_vsxsf): Likewise.
2199 (p8_mfvsrd_4_disf): Delete, no longer used.
2200 (movsi_from_df): Optimize converting a DFmode to a SFmode, and
2201 then needing to move the SFmode to a GPR to use the XSCVDPSP
2202 instruction instead of FRSP and XSCVDPSPN.
2203 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
2204 it is adjacent to the other XSCVSPDP insns.
2205 (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
2206 SFmode to be in traditional Altivec registers.
2207 (vsx_xscvdpspn): Eliminate useless alternative constraint.
2208 (vsx_xscvspdpn): Likewise.
2209 (vsx_xscvspdpn_scalar): Likewise.
2210
2211 2017-09-26 Martin Jambor <mjambor@suse.cz>
2212
2213 * tree-sra.c (compare_access_positions): Put integral types first,
2214 stabilize sorting of integral types, remove conditions putting
2215 non-full-precision integers last.
2216 (sort_and_splice_var_accesses): Disable scalarization if a
2217 non-integert would be represented by a non-full-precision integer.
2218
2219 2017-09-26 Joseph Myers <joseph@codesourcery.com>
2220
2221 * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
2222 * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
2223 * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
2224 * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
2225 Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
2226 conditionals inside the function instead of around it. Call
2227 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
2228 (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
2229
2230 2017-09-26 Richard Biener <rguenther@suse.de>
2231
2232 * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
2233 fold in ...
2234 (scop_detection::build_scop_breadth): ... this. Removed.
2235 (scop_detection::loop_is_valid_in_scop): Fold into single caller.
2236 (scop_detection::harmful_stmt_in_bb): Likewise.
2237 (scop_detection::graphite_can_represent_stmt): Likewise.
2238 (scop_detection::loop_body_is_valid_scop): Likewise. Remove recursion.
2239 (scop_detection::can_represent_loop): Remove recursion, fold in ...
2240 (scop_detection::can_represent_loop_1): ... this. Removed.
2241 (scop_detection::harmful_loop_in_region): Simplify after inlining
2242 the above and remove more quadraticness.
2243 (build_scops): Adjust.
2244 * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
2245 quadraticness.
2246
2247 2017-09-26 Jakub Jelinek <jakub@redhat.com>
2248
2249 PR target/82267
2250 * config/i386/i386.c (ix86_print_operand_address_as): Only test
2251 REGNO (base) == SP_REG if base is a REG.
2252
2253 PR middle-end/35691
2254 * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
2255 if it is different SSA_NAME.
2256 (optimize_range_tests_cmp_bitwise): New function.
2257 (optimize_range_tests): Call it.
2258
2259 2017-09-26 Richard Biener <rguenther@suse.de>
2260
2261 PR tree-optimization/82321
2262 * graphite.c (canonicalize_loop_closed_ssa): Properly check
2263 for the def being inside the loop.
2264
2265 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2266
2267 * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
2268 assembler output.
2269 * config/s390/s390-builtins.def: Fix constraint on op4.
2270
2271 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2272
2273 * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
2274 independent expanders.
2275 * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
2276 ("vec_ordered", "vec_unordered"): New expanders.
2277
2278 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2279
2280 * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
2281 for SFmode.
2282
2283 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2284
2285 * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
2286 vec_unpacks_lo_v16qi.
2287 ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
2288
2289 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2290
2291 * config/s390/vector.md ("vec_unpacks_lo_v4sf")
2292 ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
2293 ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
2294
2295 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2296
2297 * config/s390/predicates.md ("const_shift_by_byte_operand"): New
2298 predicate.
2299 * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
2300 and V16QI.
2301 ("*vec_slb<mode>"): New insn pattern.
2302 ("vec_shr_<mode>"): New expander.
2303 * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
2304 and force the shift count operand to V16QImode.
2305 ("vec_srb<mode>"): Set shift count mode to V16QI.
2306
2307 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2308
2309 * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
2310 ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
2311 ("vec_widen_smult_hi_<mode>"): New expander definitions.
2312
2313 2017-09-26 Richard Earnshaw <rearnsha@arm.com>
2314
2315 PR target/82175
2316 * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
2317
2318 2017-09-26 Richard Biener <rguenther@suse.de>
2319
2320 PR tree-optimization/82320
2321 * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
2322 isn't a change.
2323
2324 2017-09-25 Jeff Law <law@redhat.com>
2325
2326 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
2327 prototype for new argument.
2328 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
2329 mostly extracted from rs6000_emit_allocate_stack.
2330 (rs6000_emit_probe_stack_range_stack_clash): New function.
2331 (rs6000_emit_allocate_stack): Call
2332 rs6000_emit_probe_stack_range_stack_clash as needed.
2333 (rs6000_emit_probe_stack_range): Add additional argument
2334 to call to gen_probe_stack_range{si,di}.
2335 (output_probe_stack_range): New.
2336 (output_probe_stack_range_1): Renamed from output_probe_stack_range.
2337 (output_probe_stack_range_stack_clash): New.
2338 (rs6000_emit_prologue): Emit notes into dump file as requested.
2339 * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
2340 (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
2341 Add additional operand and pass it to output_probe_stack_range.
2342
2343 2017-09-25 Bin Cheng <bin.cheng@arm.com>
2344
2345 PR tree-optimization/82163
2346 * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
2347 (checking_verify_loop_closed_ssa): New parameter.
2348 * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
2349 (check_loop_closed_ssa_stmt): Delete.
2350 (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
2351 (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
2352 (tree_transform_and_unroll_loop): Check loop closed ssa form only for
2353 changed loops.
2354
2355 2017-09-25 Pekka Jaaskelainen <pekka@parmance.com>
2356
2357 * brig-builtins.def: Treat HSAIL barrier builtins as
2358 setjmp/longjump style functions.
2359
2360 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org>
2361
2362 * target.def (constant_alignment): New hook.
2363 * defaults.h (CONSTANT_ALIGNMENT): Delete.
2364 * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
2365 (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
2366 * doc/tm.texi: Regenerate.
2367 * targhooks.h (default_constant_alignment): Declare.
2368 (constant_alignment_word_strings): Likewise.
2369 * targhooks.c (default_constant_alignment): New function.
2370 (constant_alignment_word_strings): Likewise.
2371 * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
2372 instead of CONSTANT_ALIGNMENT.
2373 * varasm.c (align_variable, get_variable_align, build_constant_desc)
2374 (force_const_mem): Likewise.
2375 * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
2376 * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
2377 (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
2378 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2379 * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
2380 definition.
2381 * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
2382 * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2383 constant_alignment_word_strings.
2384 * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
2385 (CONSTANT_ALIGNMENT): Likewise.
2386 * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2387 (arm_constant_alignment): New function.
2388 * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
2389 * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2390 constant_alignment_word_strings.
2391 * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
2392 * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2393 constant_alignment_word_strings.
2394 * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
2395 * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2396 (cris_constant_alignment): New function.
2397 * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
2398 * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2399 (epiphany_constant_alignment): New function.
2400 * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
2401 * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2402 constant_alignment_word_strings.
2403 * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
2404 * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2405 constant_alignment_word_strings.
2406 * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
2407 * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2408 constant_alignment_word_strings.
2409 * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
2410 * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
2411 * config/i386/i386.c (ix86_constant_alignment): Make static.
2412 Use the same interface as the target hook.
2413 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2414 * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
2415 * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2416 constant_alignment_word_strings.
2417 * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
2418 * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
2419 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2420 * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
2421 * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2422 constant_alignment_word_strings.
2423 * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
2424 * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2425 constant_alignment_word_strings.
2426 * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
2427 * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2428 constant_alignment_word_strings.
2429 * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
2430 * config/microblaze/microblaze.c (microblaze_constant_alignment):
2431 New function.
2432 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2433 * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
2434 * config/mips/mips.c (mips_constant_alignment): New function.
2435 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2436 * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
2437 * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
2438 * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2439 (mmix_constant_alignment): Make static. Use the same interface
2440 as the target hook.
2441 * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
2442 * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2443 constant_alignment_word_strings.
2444 * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
2445 * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2446 constant_alignment_word_strings.
2447 * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
2448 * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2449 constant_alignment_word_strings.
2450 * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
2451 * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2452 (rs6000_constant_alignment): New function.
2453 * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
2454 * config/riscv/riscv.c (riscv_constant_alignment): New function.
2455 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2456 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
2457 * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2458 (rs6000_constant_alignment): New function.
2459 * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
2460 * config/s390/s390.c (s390_constant_alignment): New function.
2461 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2462 * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
2463 * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2464 constant_alignment_word_strings.
2465 * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
2466 * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2467 (sparc_constant_alignment): New function.
2468 * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
2469 * config/spu/spu.c (spu_constant_alignment): New function.
2470 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2471 * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
2472 * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2473 constant_alignment_word_strings.
2474 * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
2475 * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2476 constant_alignment_word_strings.
2477 * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
2478 * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2479 constant_alignment_word_strings.
2480 * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
2481 * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2482 (visium_constant_alignment): New function.
2483 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
2484 * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2485 (xtensa_constant_alignment): New function.
2486 * system.h (CONSTANT_ALIGNMENT): Poison.
2487
2488 2017-09-25 Will Schmidt <will_schmidt@vnet.ibm.com>
2489
2490 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
2491 for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
2492 (rs6000_builtin_valid_without_lhs): New helper function.
2493 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2494 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
2495
2496 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org>
2497
2498 * target.h (vec_perm_indices): Use unsigned short rather than
2499 unsigned char.
2500 (auto_vec_perm_indices): Likewise.
2501 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
2502 Use unsigned int rather than unsigned char.
2503 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
2504
2505 2017-09-25 Richard Biener <rguenther@suse.de>
2506
2507 * cfgloop.h (sort_sibling_loops): Declare.
2508 * cfgloop.c (sort_sibling_loops_cmp): New helper.
2509 (sort_sibling_loops): New function sorting the sibling loop list
2510 in RPO order.
2511 * graphite.c (graphite_transform_loops): Sort sibling loops.
2512
2513 2017-09-25 Richard Sandiford <richard.sandifird@linaro.org>
2514
2515 * target.def (vec_perm_const_ok): Change sel parameter to
2516 vec_perm_indices.
2517 * optabs-query.c (can_vec_perm_p): Update accordingly.
2518 * doc/tm.texi: Regenerate.
2519 * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
2520 auto_vec_perm_indices and remove separate nelt field.
2521 (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
2522 (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
2523 (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
2524 (aarch64_expand_vec_perm_const): Update accordingly.
2525 (aarch64_vectorize_vec_perm_const_ok): Likewise. Change sel
2526 to vec_perm_indices.
2527 * config/arm/arm.c (expand_vec_perm_d): Change perm to
2528 auto_vec_perm_indices and remove separate nelt field.
2529 (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
2530 (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
2531 (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
2532 accordingly.
2533 (arm_vectorize_vec_perm_const_ok): Likewise. Change sel
2534 to vec_perm_indices.
2535 * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
2536 sel to vec_perm_indices.
2537 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
2538 * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
2539 * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
2540 Likewise.
2541 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
2542 Likewise.
2543
2544 2017-09-25 Pierre-Marie de Rodat <derodat@adacore.com>
2545
2546 PR debug/82155
2547 * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
2548 on the FUNCTION_DECL function context if it has a DIE that is a
2549 declaration.
2550
2551 2017-09-25 Richard Biener <rguenther@suse.de>
2552
2553 PR tree-optimization/82285
2554 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
2555 enumeral types.
2556
2557 2017-09-25 Tom de Vries <tom@codesourcery.com>
2558
2559 PR target/80035
2560 PR target/81069
2561 * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
2562 noreturn function.
2563
2564 2017-09-25 Richard Biener <rguenther@suse.de>
2565
2566 * graphite-optimize-isl.c (optimize_isl): Fail and dump if
2567 ISL errors other than isl_error_quota happen. Dump if the
2568 schedule is the same.
2569 * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
2570 errors instead of aborting inside ISL.
2571
2572 2017-09-25 Iain Sandoe <iain@codesourcery.com>
2573
2574 PR target/80556
2575 * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
2576 of libgcc_eh for m64.
2577 * config/i386/darwin64.h: Likewise.
2578
2579 2017-09-25 Richard Biener <rguenther@suse.de>
2580
2581 PR middle-end/82144
2582 * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
2583 attribute for incomplete types nor twice for complete ones.
2584
2585 2017-09-24 Uros Bizjak <ubizjak@gmail.com>
2586
2587 PR target/82267
2588 * config/i386/i386.c (ix86_print_operand_address_as): Encode
2589 %esp as %rsp to avoid 0x67 prefix if there is no index or base
2590 register.
2591
2592 2017-09-23 Uros Bizjak <ubizjak@gmail.com>
2593
2594 PR bootstrap/82306
2595 * config/i386/i386.opt (mprefer-avx256): Use
2596 ix86_target_flags variable.
2597 * config/i386/i386.c (ix86_target_string): Move
2598 -mprefer-avx256 to flag2_opts.
2599
2600 2017-09-22 Jakub Jelinek <jakub@redhat.com>
2601
2602 PR middle-end/35691
2603 * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
2604 and x != -1 | y != -1 into (x & y) != -1.
2605
2606 2017-09-22 Steve Ellcey <sellcey@cavium.com>
2607
2608 * config.gcc: Add new case statement to set
2609 default_gnu_indirect_function. Remove it from x86_64-*-linux*,
2610 i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
2611 s390x-*-linux* case statements. Added aarch64 to the list of
2612 supported architectures.
2613
2614 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
2615
2616 PR tree-optimization/82289
2617 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
2618 STMT_VINFO_RELEVANT_P.
2619
2620 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
2621 Alan Hayward <alan.hayward@arm.com>
2622 David Sherwood <david.sherwood@arm.com>
2623
2624 * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
2625 for VR_RANGE only; don't allow VR_ANTI_RANGE.
2626 (extract_range_from_binary_expr_1): Don't call
2627 extract_range_from_multiplicative_op_1 if !range_int_cst_p.
2628
2629 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
2630 Alan Hayward <alan.hayward@arm.com>
2631 David Sherwood <david.sherwood@arm.com>
2632
2633 * target.def (preferred_vector_alignment): New hook.
2634 * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
2635 hook.
2636 * doc/tm.texi: Regenerate.
2637 * targhooks.h (default_preferred_vector_alignment): Declare.
2638 * targhooks.c (default_preferred_vector_alignment): New function.
2639 * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
2640 Expand commentary.
2641 (DR_TARGET_ALIGNMENT): New macro.
2642 (aligned_access_p): Update commentary.
2643 (vect_known_alignment_in_bytes): New function.
2644 * tree-vect-data-refs.c (vect_calculate_required_alignment): New
2645 function.
2646 (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
2647 Calculate the misalignment based on the target alignment rather than
2648 the vector size.
2649 (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
2650 rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
2651 (vect_enhance_data_refs_alignment): Mask the byte misalignment with
2652 the target alignment, rather than masking the element misalignment
2653 with the number of elements in a vector. Also use the target
2654 alignment when calculating the maximum number of peels.
2655 (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
2656 instead of TYPE_ALIGN_UNIT.
2657 (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
2658 Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
2659 (vect_create_addr_base_for_vector_ref): Update call accordingly.
2660 (vect_create_data_ref_ptr): Likewise.
2661 (vect_setup_realignment): Realign by ANDing with
2662 -DR_TARGET_MISALIGNMENT.
2663 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
2664 the number of peels based on DR_TARGET_ALIGNMENT.
2665 * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
2666 with the guaranteed alignment boundary when deciding whether
2667 overrun is OK.
2668 (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
2669 relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
2670 (ensure_base_align): Remove stmt_info parameter. Get the
2671 target base alignment from DR_TARGET_ALIGNMENT.
2672 (vectorizable_store): Update call accordingly. Interpret
2673 DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
2674 TYPE_ALIGN_UNIT.
2675 (vectorizable_load): Likewise.
2676
2677 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
2678 Alan Hayward <alan.hayward@arm.com>
2679 David Sherwood <david.sherwood@arm.com>
2680
2681 * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
2682 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
2683 (vect_enhance_data_refs_alignment): Likewise.
2684
2685 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com>
2686
2687 * config/arm/parsecpu.awk (fatal): Note that we've encountered an
2688 error. Only quit immediately if parsing is complete.
2689 (BEGIN): Initialize fatal_err and parse_done.
2690 (begin fpu, end fpu): Check number of arguments.
2691 (begin arch, end arch): Likewise.
2692 (begin cpu, end cpu): Likewise.
2693 (cname, tune for, tune flags, architecture, fpu, option): Likewise.
2694 (optalias): Likewise.
2695
2696 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com>
2697
2698 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
2699 * config/arm/arm-isa.h: Delete. Move definitions to ...
2700 * arm-cpus.in: ... here. Use new feature and fgroup values.
2701 * config/arm/arm.c (arm_option_override): Use lower case for feature
2702 bit names.
2703 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
2704 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
2705 * config/arm/parsecpu.awk (END): Add new command 'isa'.
2706 (isa_pfx): Delete.
2707 (print_isa_bits_for): New function.
2708 (gen_isa): New function.
2709 (gen_comm_data): Use print_isa_bits_for.
2710 (define feature): New keyword.
2711 (define fgroup): New keyword.
2712 * config/arm/t-arm (TM_H): Remove.
2713 (GTM_H): Add arm-isa.h.
2714 (arm-isa.h): Add rule to generate file.
2715 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
2716 case for feature bit names.
2717
2718 2017-09-22 Richard Biener <rguenther@suse.de>
2719
2720 * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
2721 single caller.
2722 (graphite_regenerate_ast_isl): Do not reset SCEV. Move debug
2723 print of no dependency loops ...
2724 * graphite.c (graphite_transform_loops): ... here.
2725 (canonicalize_loop_closed_ssa_form): Work from inner to outer
2726 loops.
2727 (same_close_phi_node, remove_duplicate_close_phi,
2728 make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
2729 (canonicalize_loop_closed_ssa): ... here and simplify.
2730 * graphite-optimize-isl.c: Include tree-vectorizer.h.
2731 (optimize_isl): Use dump_printf_loc to tell when we stopped
2732 optimizing because of an ISL timeout.
2733
2734 2017-09-22 Richard Biener <rguenther@suse.de>
2735
2736 PR tree-optimization/82291
2737 * tree-if-conv.c (predicate_mem_writes): Make sure to
2738 remove writes in blocks predicated with false.
2739
2740 2017-09-22 Richard Biener <rguenther@suse.de>
2741
2742 * sese.c: Include cfganal.h.
2743 (if_region_set_false_region): Remove.
2744 (create_if_region_on_edge): Likewise.
2745 (move_sese_in_condition): Re-implement without destroying
2746 dominators.
2747
2748 2017-09-22 Richard Biener <rguenther@suse.de>
2749
2750 * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
2751 Verify both BBs contain loop PHI nodes before dispatching to
2752 copy_loop_phi_args.
2753 (graphite_regenerate_ast_isl): Do not recompute dominators,
2754 do not verify three times. Restructure for clarity.
2755 * graphite-scop-detection.c (same_close_phi_node,
2756 remove_duplicate_close_phi, make_close_phi_nodes_unique,
2757 defined_in_loop_p, canonicalize_loop_closed_ssa,
2758 canonicalize_loop_closed_ssa_form): Simplify, remove excess
2759 checking and SSA rewrite, move to ...
2760 * graphite.c: ... here. Include ssa.h and tree-ssa-loop-manip.h.
2761 (graphite_initialize): Do not pass in ctx, do not reset the
2762 SCEV cache, compute only dominators.
2763 (graphite_transform_loops): Allocate ISL ctx after
2764 graphite_initialize. Call canonicalize_loop_closed_ssa_form.
2765 Maintain post-dominators only around build_scops.
2766 * sese.c (if_region_set_false_region): Make static. Free
2767 and recompute dominators.
2768 (move_sese_in_condition): Assert we don't get called with
2769 post-dominators computed.
2770 * sese.h (if_region_set_false_region): Remove.
2771
2772 2017-09-22 Sergey Shalnov <sergey.shalnov@intel.com>
2773
2774 * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
2775 mode attribute for TARGET_AVX512VL.
2776
2777 2017-09-21 Sergey Shalnov <sergey.shalnov@intel.com>
2778
2779 * config/i386/i386.opt (mprefer-avx256): New option.
2780 * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
2781 to flag_opts.
2782 (ix86_preferred_simd_mode): Return 256-bit AVX modes
2783 for TARGET_PREFER_AVX256.
2784 * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
2785
2786 2017-09-21 Jeff Law <law@redhat.com>
2787
2788 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
2789 Fix dump output if the only stack space is for pushed registers.
2790
2791 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
2792
2793 * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
2794 of insn_cost.
2795
2796 2017-09-21 Martin Sebor <msebor@redhat.com>
2797
2798 PR c/81882
2799 * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
2800 code (in C++) or code that triggers warnings.
2801
2802 2017-09-21 Eric Botcazou <ebotcazou@adacore.com>
2803
2804 * stor-layout.c (bit_from_pos): Do not distribute the conversion.
2805
2806 2017-09-21 Segher Boessenkool <segher@kernel.crashing.org>
2807
2808 * haifa-sched.c: Rename insn_cost to insn_sched_cost.
2809 * sched-rgn.c: Ditto.
2810 * sel-sched-ir.c: Ditto.
2811
2812 2017-09-21 Alexander Monakov <amonakov@ispras.ru>
2813
2814 * toplev.h (set_random_seed): Adjust return type.
2815 * toplev.c (init_local_tick): Move eager initialization of random_seed
2816 to get_random_seed. Adjust comment.
2817 (init_random_seed): Inline to get_random_seed, delete.
2818 (get_random_seed): Initialize random_seed lazily.
2819 (set_random_seed): Do not return previous value.
2820 (print_switch_value): Do not call get_random_seed.
2821
2822 2017-09-21 Evgeny Kudryashov <kudryashov@ispras.ru>
2823
2824 * cgraph.c (delete_function_version): New, broken out from...
2825 (cgraph_node::delete_function_version): ...here. Rename to
2826 cgraph_node::delete_function_version_by_decl. Update all uses.
2827 (cgraph_node::remove): Call delete_function_version.
2828
2829 2017-09-21 Jakub Jelinek <jakub@redhat.com>
2830
2831 PR sanitizer/81715
2832 * tree-inline.c (expand_call_inline): Emit clobber stmts for
2833 VAR_DECLs to which addressable non-volatile parameters are mapped
2834 and for id->retvar after the return value assignment. Clear
2835 id->retval and id->retbnd after inlining.
2836
2837 2017-09-21 Richard Biener <rguenther@suse.de>
2838
2839 PR tree-optimization/82276
2840 PR tree-optimization/82244
2841 * tree-vrp.c (build_assert_expr_for): Set
2842 SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
2843 has it set.
2844 (remove_range_assertions): Revert earlier change.
2845
2846 2017-09-21 Wilco Dijkstra <wdijkstr@arm.com>
2847
2848 PR target/71951
2849 * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
2850
2851 2017-09-21 Richard Biener <rguenther@suse.de>
2852
2853 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
2854 Restore valid IL after code generation errors.
2855 * graphite.c (graphite_transform_loops): Diagnose code
2856 generation issues as MSG_MISSED_OPTIMIZATION and continue
2857 with processing SCOPs.
2858
2859 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
2860 Alan Hayward <alan.hayward@arm.com>
2861 David Sherwood <david.sherwood@arm.com>
2862
2863 * calls.c (compute_argument_addresses): Use simplify_gen_binary
2864 rather than choosing between plus_constant and gen_rtx_<CODE>.
2865 * expr.c (emit_push_insn): Likewise.
2866 (expand_expr_real_2): Likewise.
2867
2868 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
2869 Alan Hayward <alan.hayward@arm.com>
2870 David Sherwood <david.sherwood@arm.com>
2871
2872 * loop-unroll.c (split_iv): Call copy_rtx on the step.
2873
2874 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
2875 Alan Hayward <alan.hayward@arm.com>
2876 David Sherwood <david.sherwood@arm.com>
2877
2878 * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
2879 calling tree_to_uhwi.
2880
2881 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
2882 Alan Hayward <alan.hayward@arm.com>
2883 David Sherwood <david.sherwood@arm.com>
2884
2885 * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
2886 INTEGER_CST rather than a negative test for ADDR_EXPR.
2887
2888 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
2889 Alan Hayward <alan.hayward@arm.com>
2890 David Sherwood <david.sherwood@arm.com>
2891
2892 * tree-vrp.c (extract_range_from_binary_expr_1): Check
2893 int_cst_rangeN before calling value_range_constant_singleton (&vrN).
2894
2895 2017-09-21 Richard Biener <rguenther@suse.de>
2896
2897 PR tree-optimization/71351
2898 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
2899 graphite_create_new_loop_guard): Remove, fold remaining parts
2900 into caller ...
2901 (translate_isl_ast_node_for): ... here and simplify.
2902
2903 2017-09-21 Jakub Jelinek <jakub@redhat.com>
2904
2905 PR target/82260
2906 * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
2907 with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
2908 latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
2909 alternative always use QI mode, for -Os imov (=R,R) alternative
2910 always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
2911 ignore -Os.
2912
2913 2017-09-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2914 Jeff Law <law@redhat.com>
2915
2916 * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
2917 (allocate_stack_space): New function, partially extracted from
2918 s390_emit_prologue.
2919 (s390_emit_prologue): Track offset to most recent stack probe.
2920 Code to allocate space moved into allocate_stack_space.
2921 Dump actions when no stack is allocated.
2922 (s390_prologue_plus_offset): New function.
2923 (s390_emit_stack_probe): Likewise.
2924
2925 2017-09-20 Alexandre Oliva <aoliva@redhat.com>
2926
2927 * common.opt (Wa, Wl, Wp, g, gz=): Add
2928 RejectNegative.
2929 (gno-column-info): Remove.
2930 (gcolumn-info): Drop RejectNegative.
2931 (gno-): New prefix.
2932 (gno-record-gcc-switches): Remove.
2933 (grecord-gcc-switches): Drop RejectNegative.
2934 (gno-split-dwarf): Remove.
2935 (gsplit-dwarf): Drop RejectNegative.
2936 (gno-strict-dwarf): Remove.
2937 (gstrict-dwarf): Drop RejectNegative.
2938 * config/darwin.opt (gfull, gused): Add RejectNegative.
2939 * dwarf2out.c (gen_producer_string): Drop
2940 gno-record-gcc-switches handler.
2941 * optc-gen.awk: Add g to prefixes with negative forms.
2942 * opts-common.c (remapping_prefix_p): New.
2943 (find_opt): Check it.
2944 (generate_canonical_option): Test g prefix.
2945 (option_map): Add -gno- mapping.
2946 (add_misspelling_candidates): Check remapping_prefix_p.
2947
2948 2017-09-20 Jeff Law <law@redhat.com>
2949
2950 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
2951 thinko in stack clash protection support.
2952
2953 * explow.c (compute_stack_clash_protection_loop_data): Use
2954 CONST_INT_P instead of explicit test. Verify object is a
2955 CONST_INT_P before looking at INTVAL.
2956 (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
2957 instead of explicit test.
2958
2959 2017-09-20 Segher Boessenkool <segher@kernel.crashing.org>
2960
2961 PR target/77687
2962 * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
2963 address instead of to r1 and r11.
2964
2965 2017-09-20 Sebastian Peryt <sebastian.peryt@intel.com>
2966
2967 * config.gcc: Support "knm".
2968 * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
2969 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
2970 PROCESSOR_KNM.
2971 * config/i386/i386.c (m_KNM): Define.
2972 (processor_target_table): Add "knm".
2973 (PTA_KNM): Define.
2974 (ix86_option_override_internal): Add "knm".
2975 (ix86_issue_rate): Add PROCESSOR_KNM.
2976 (ix86_adjust_cost): Ditto.
2977 (ia32_multipass_dfa_lookahead): Ditto.
2978 (get_builtin_code_for_version): Handle PROCESSOR_KNM.
2979 (fold_builtin_cpu): Add M_INTEL_KNM.
2980 * config/i386/i386.h (processor_costs): Define TARGET_KNM.
2981 (processor_type): Add PROCESSOR_KNM.
2982 * config/i386/x86-tune.def: Add m_KNM.
2983 * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
2984
2985 2017-09-20 Richard Biener <rguenther@suse.de>
2986
2987 PR tree-optimization/80213
2988 * graphite-scop-detection.c (trivially_empty_bb_p): Labels
2989 are allowed in empty BBs as well.
2990 (canonicalize_loop_closed_ssa): Also look for other complex
2991 edges.
2992 (scop_detection::get_sese): Include the loop-closed PHI block
2993 in loop SESEs.
2994 (scop_detection::merge_sese): Remove code adding extra blocks.
2995 (scop_detection::region_has_one_loop): Adjust for get_sese changes.
2996 (build_scops): Assert the final returned scop is invalid.
2997
2998 2017-09-20 Richard Biener <rguenther@suse.de>
2999
3000 PR tree-optimization/82264
3001 * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
3002 for GIMPLE_CONDs.
3003 (vn_phi_lookup): Likewise.
3004 (vn_phi_insert): Likewise.
3005
3006 2017-09-20 Jakub Jelinek <jakub@redhat.com>
3007
3008 * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
3009 that fits into uhwi or shwi, add DW_AT_const_value regardless
3010 of early_dwarf without going through RTL, using add_AT_unsigned
3011 or add_AT_int.
3012
3013 * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
3014 (DEBUG_LTO_ABBREV_SECTION): Likewise.
3015 (DEBUG_LTO_MACINFO_SECTION): Likewise.
3016 (DEBUG_MACRO_SECTION): Likewise.
3017 (DEBUG_LTO_MACRO_SECTION): Likewise.
3018 (DEBUG_STR_DWO_SECTION): Likewise.
3019 (DEBUG_LTO_STR_DWO_SECTION): Likewise.
3020 (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
3021 (DEBUG_LTO_DWO_LINE_SECTION): Define.
3022 (DEBUG_LTO_LINE_STR_SECTION): Define.
3023 (init_sections_and_labels): Initialize debug_line_str_section
3024 variable. Initialize debug_loc_section for -gdwarf-5 to
3025 DEBUG_LOCLISTS_SECTION. Formatting fixes.
3026
3027 2017-09-20 Richard Biener <rguenther@suse.de>
3028
3029 * graphite-sese-to-poly.c (extract_affine): Properly handle
3030 POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
3031
3032 2017-09-20 Richard Biener <rguenther@suse.de>
3033
3034 PR tree-optimization/81373
3035 * graphite-scop-detection.c (build_cross_bb_scalars_def):
3036 Force SESE live-out defs to be handled even if they are
3037 scev_analyzable_p.
3038
3039 2017-09-19 Jeff Law <law@redhat.com>
3040
3041 * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
3042 nothing for stack adjustments with REG_STACK_CHECK.
3043 * sched-deps.c (parse_add_or_inc): Reject insns with
3044 REG_STACK_CHECK from dependency breaking.
3045 * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
3046 (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
3047 * reg-notes.def (STACK_CHECK): New note.
3048
3049 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
3050 (ix86_expand_prologue): Dump stack clash info as needed.
3051 Call ix86_adjust_stack_and_probe_stack_clash as needed.
3052
3053 * function.c (dump_stack_clash_frame_info): New function.
3054 * function.h (dump_stack_clash_frame_info): Prototype.
3055 (enum stack_clash_probes): New enum.
3056
3057 * config/alpha/alpha.c (alpha_expand_prologue): Also check
3058 flag_stack_clash_protection.
3059 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
3060 (arm_expand_prologue, thumb1_expand_prologue): Likewise.
3061 (arm_frame_pointer_required): Likewise.
3062 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
3063 (ia64_expand_prologue): Likewise.
3064 * config/mips/mips.c (mips_expand_prologue): Likewise.
3065 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
3066 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
3067 (sparc_flat_expand_prologue): Likewise.
3068 * config/spu/spu.c (spu_expand_prologue): Likewise.
3069
3070 * explow.c: Include "params.h".
3071 (anti_adjust_stack_and_probe_stack_clash): New function.
3072 (get_stack_check_protect): Likewise.
3073 (compute_stack_clash_protection_loop_data): Likewise.
3074 (emit_stack_clash_protection_loop_start): Likewise.
3075 (emit_stack_clash_protection_loop_end): Likewise.
3076 (allocate_dynamic_stack_space): Use get_stack_check_protect.
3077 Use anti_adjust_stack_and_probe_stack_clash.
3078 * explow.h (compute_stack_clash_protection_loop_data): Prototype.
3079 (emit_stack_clash_protection_loop_start): Likewise.
3080 (emit_stack_clash_protection_loop_end): Likewise.
3081 * rtl.h (get_stack_check_protect): Prototype.
3082 * target.def (stack_clash_protection_final_dynamic_probe): New hook.
3083 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
3084 * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
3085 Prototype.
3086 * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
3087 Add @hook.
3088 * doc/tm.texi: Rebuilt.
3089 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
3090 get_stack_check_protect.
3091 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
3092 * config/arm/arm.c (arm_expand_prologue): Likewise.
3093 (arm_frame_pointer_required): Likewise.
3094 * config/i386/i386.c (ix86_expand_prologue): Likewise.
3095 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
3096 * config/mips/mips.c (mips_expand_prologue): Likewise.
3097 * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
3098 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
3099 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
3100 (sparc_flat_expand_prologue): Likewise.
3101
3102 * common.opt (-fstack-clash-protection): New option.
3103 * flag-types.h (enum stack_check_type): Note difference between
3104 -fstack-check= and -fstack-clash-protection.
3105 * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
3106 (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
3107 * toplev.c (process_options): Issue warnings/errors for cases
3108 not handled with -fstack-clash-protection.
3109 * doc/invoke.texi (-fstack-clash-protection): Document new option.
3110 (-fstack-check): Note additional problem with -fstack-check=generic.
3111 Note that -fstack-check is primarily for Ada and refer users
3112 to -fstack-clash-protection for stack-clash-protection.
3113 Document new params for stack clash protection.
3114
3115 2017-09-19 Uros Bizjak <ubizjak@gmail.com>
3116
3117 * config/i386/i386.c (ix86_split_long_move): Do not handle
3118 address used for LEA in a special way.
3119
3120 2017-09-19 Segher Boessenkool <segher@kernel.crashing.org>
3121
3122 * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
3123
3124 2017-09-19 Martin Sebor <msebor@redhat.com>
3125
3126 PR c/81854
3127 * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
3128 of incompatible types.
3129
3130 2017-09-19 Will Schmidt <will_schmidt@vnet.ibm.com>
3131
3132 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
3133 for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
3134 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3135 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
3136
3137 2017-09-19 Richard Biener <rguenther@suse.de>
3138
3139 PR tree-optimization/82244
3140 * tree-vrp.c (remove_range_assertions): Do not propagate
3141 a constant to abnormals but replace the assert with a copy.
3142
3143 2017-09-19 Alexander Monakov <amonakov@ispras.ru>
3144
3145 PR rtl-optimization/57878
3146 PR rtl-optimization/68988
3147 * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
3148 avoidance test involving non_reload_pseudos. Move frequency test
3149 below the general fragmentation avoidance test.
3150
3151 2017-09-19 Richard Biener <rguenther@suse.de>
3152
3153 PR tree-optimization/69728
3154 * graphite-sese-to-poly.c (schedule_error): New global.
3155 (add_loop_schedule): Handle empty domain by failing the
3156 schedule.
3157 (build_original_schedule): Handle schedule_error.
3158
3159 2017-09-19 Richard Biener <rguenther@suse.de>
3160
3161 * graphite-scop-detection.c (scop_detection::can_represent_loop):
3162 Do not iterate to sibling loops but only to siblings of inner
3163 loops.
3164
3165 2017-09-18 Andreas Schwab <schwab@linux-m68k.org>
3166
3167 PR target/81613
3168 * config/m68k/m68k.md (moveq feeding equality comparison): Check
3169 that the registers are different.
3170
3171 2017-09-18 Uros Bizjak <ubizjak@gmail.com>
3172
3173 * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
3174 to processor_model and "amdfam17h" to arch_names_table.
3175 * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
3176
3177 2017-09-18 Jakub Jelinek <jakub@redhat.com>
3178
3179 PR c/82234
3180 * doc/extend.texi: Add @findex entry for __builtin_shuffle.
3181
3182 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3183 Alan Hayward <alan.hayward@arm.com>
3184 David Sherwood <david.sherwood@arm.com>
3185
3186 * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
3187 with a vec_info *.
3188 * tree-vect-loop.c (vect_analyze_loop_operations): Update call
3189 accordingly.
3190 * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
3191 parameter. Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
3192 vect_schedule_slp_instance.
3193 (vect_slp_analyze_operations): Replace parameters with a vec_info *.
3194 Update call to vect_slp_analyze_node_operations. Simplify return
3195 value.
3196 (vect_slp_analyze_bb_1): Update call accordingly.
3197 (vect_schedule_slp_instance): Remove vectorization_factor parameter.
3198 Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
3199 (vect_schedule_slp): Update call accordingly.
3200
3201 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3202 Alan Hayward <alan.hayward@arm.com>
3203 David Sherwood <david.sherwood@arm.com>
3204
3205 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
3206 with types that aren't in fact scalar.
3207
3208 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3209
3210 * tree-vect-slp.c (vect_record_max_nunits): New function,
3211 split out from...
3212 (vect_build_slp_tree_1): ...here.
3213 (vect_build_slp_tree_2): Call it for phis too.
3214
3215 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3216
3217 * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
3218 to vect_get_vec_def_for_operand when getting the mask operand.
3219
3220 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3221 Alan Hayward <alan.hayward@arm.com>
3222 David Sherwood <david.sherwood@arm.com>
3223
3224 * tree-vect-loop.c (vectorizable_live_operation): Fix type of
3225 bitstart.
3226
3227 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3228 Alan Hayward <alan.hayward@arm.com>
3229 David Sherwood <david.sherwood@arm.com>
3230
3231 * tree-vect-loop.c (vectorizable_live_operation): Fix element size
3232 calculation for vector booleans.
3233
3234 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3235 Alan Hayward <alan.hayward@arm.com>
3236 David Sherwood <david.sherwood@arm.com>
3237
3238 * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
3239 split out from...
3240 (vect_transform_stmt): ...here.
3241 (vect_analyze_stmt): Use it instead of calling
3242 vectorizable_live_operation directly.
3243
3244 2017-09-18 Cesar Philippidis <cesar@codesourcery.com>
3245
3246 * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
3247 non-SIMT targets in acc vector loops.
3248
3249 2017-09-18 Claudiu Zissulescu <claziss@synopsys.com>
3250
3251 * configure.ac: Add arc and check if assembler supports gdwarf2.
3252 * configure: Regenerate.
3253
3254 2017-09-18 Richard Biener <rguenther@suse.de>
3255
3256 PR tree-optimization/82220
3257 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
3258 epilogue niters from the min_profitable_iters compute.
3259
3260 2017-09-18 Jakub Jelinek <jakub@redhat.com>
3261
3262 PR target/82145
3263 * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
3264 changes. Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
3265 (ix86_init_pic_reg): Revert 2017-09-01 changes.
3266
3267 2017-09-18 Eric Botcazou <ebotcazou@adacore.com>
3268
3269 PR target/81361
3270 * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
3271 switching to a new text section.
3272
3273 2017-09-18 Richard Biener <rguenther@suse.de>
3274
3275 * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
3276 Simplify.
3277 (build_alias_set): Reject aliases with no access function.
3278
3279 2017-09-18 Richard Biener <rguenther@suse.de>
3280
3281 PR tree-optimization/79622
3282 * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
3283 handle PHIs.
3284 (build_cross_bb_scalars_use): Likewise.
3285
3286 2017-09-18 Pierre-Marie de Rodat <derodat@adacore.com>
3287
3288 * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
3289
3290 2017-09-18 Alan Modra <amodra@gmail.com>
3291
3292 PR target/81996
3293 * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
3294 stack_pointer_rtx for count 0. Update comments. Break up
3295 large rtl expression.
3296
3297 2017-09-17 Daniel Santos <daniel.santos@pobox.com>
3298
3299 * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
3300 Increase to 20 bytes.
3301 (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
3302 (xlogue_layout::get_stub_name): Modify to select the appropairate sse
3303 or avx version of the stub.
3304
3305 2017-09-17 H.J. Lu <hongjiu.lu@intel.com>
3306
3307 PR target/82166
3308 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
3309 compute the minimum stack alignment. Also update preferred stack
3310 boundary for leaf functions.
3311
3312 2017-09-16 Richard Sandiford <richard.sandiford@linaro.org>
3313
3314 PR tree-optimization/82228
3315 * tree-vect-loop.c (vectorizable_live_operation): Move initialization
3316 of ncopies.
3317
3318 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com>
3319
3320 * common/config/nds32/nds32-common.c
3321 (nds32_option_optimization_table): Refine formatting.
3322 (nds32_option_optimization_table): Use -fsched-pressure and
3323 -fomit-frame-pointer for specific optimization level.
3324
3325 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com>
3326
3327 * config/nds32/nds32.c: Refine formatting and comments.
3328 * config/nds32/nds32.h: Likewise.
3329 * config/nds32/nds32.md: Likewise.
3330 * config/nds32/nds32-cost.c: Likewise.
3331 * config/nds32/nds32-isr.c: Likewise.
3332 * config/nds32/nds32-md-auxiliary.c: Likewise.
3333 * config/nds32/nds32-multiple.md: Likewise.
3334 * config/nds32/nds32-predicates.c: Likewise.
3335
3336 2017-09-15 Andrew Sutton <andrew.n.sutton@gmail.com>
3337 Jakub Jelinek <jakub@redhat.com>
3338
3339 Add support for -std=c++2a.
3340 * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
3341 or -std=gnu+2a.
3342 * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
3343
3344 2017-09-15 Steve Ellcey <sellcey@cavium.com>
3345
3346 PR target/82066
3347 * doc/extend.texi (Common Function Attributes): Add
3348 references to ARM, AArch64, and S/390 specific attributes.
3349 (Function Specific Option Pragmas): Add AArch64 and S/390
3350 to list of back ends that support the target pragma.
3351
3352 2017-09-15 Nathan Sidwell <nathan@acm.org>
3353
3354 * doc/standards.texi: Fix C++17 description. Update URLs for
3355 C++11 & 14.
3356
3357 2017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
3358
3359 * common.opt (Wcast-align=strict): New warning option.
3360 * doc/invoke.texi: Document -Wcast-align=strict.
3361
3362 2017-09-15 Pierre-Marie de Rodat <derodat@adacore.com>
3363
3364 * cgraph.h (cgraph_thunk_info): Add comments.
3365 * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
3366 assert for VIRTUAL_* arguments stricter.
3367
3368 2017-09-15 Jackson Woodruff <jackson.woodruff@arm.com>
3369
3370 PR tree-optimization/71026
3371 * match.pd: Move RDIV patterns from fold-const.c
3372 * fold-const.c (distribute_real_division): Removed.
3373 (fold_binary_loc): Remove calls to distribute_real_divison.
3374
3375 2017-09-15 Jakub Jelinek <jakub@redhat.com>
3376
3377 * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
3378 c++1z and gnu++1z as deprecated. Change other references to
3379 -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
3380 Change -Wc++1z-compat to -Wc++17-compat.
3381 * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
3382 * dwarf2out.c (highest_c_language): Handle C++17.
3383 (gen_compile_unit_die): Likewise.
3384
3385 2017-09-15 Jakub Jelinek <jakub@redhat.com>
3386
3387 PR rtl-optimization/82192
3388 * combine.c (make_extraction): Don't look through non-paradoxical
3389 SUBREGs or TRUNCATE if pos + len is or might be bigger than
3390 inner's mode.
3391
3392 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
3393 Alan Hayward <alan.hayward@arm.com>
3394 David Sherwood <david.sherwood@arm.com>
3395
3396 * target.def (function_arg_offset): New hook.
3397 * targhooks.h (default_function_arg_offset): Declare.
3398 * targhooks.c (default_function_arg_offset): New function.
3399 * function.c (locate_and_pad_parm): Use
3400 targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
3401 * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
3402 (TARGET_FUNCTION_ARG_OFFSET): ...this.
3403 * doc/tm.texi: Regenerate.
3404 * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
3405 * config/spu/spu.c (spu_function_arg_offset): New function.
3406 (TARGET_FUNCTION_ARG_OFFSET): Redefine.
3407 * system.h (FUNCTION_ARG_OFFSET): Poison.
3408
3409 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
3410 Alan Hayard <alan.hayward@arm.com>
3411 David Sherwood <david.sherwood@arm.com>
3412
3413 * target.def (truly_noop_truncation): New hook.
3414 (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
3415 than TRULY_NOOP_TRUNCATION.
3416 * hooks.h (hook_bool_uint_uint_true): Declare.
3417 * hooks.c (hook_bool_uint_uint_true): New function.
3418 * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
3419 (TARGET_TRULY_NOOP_TRUNCATION): ...this.
3420 * doc/tm.texi: Regenerate.
3421 * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
3422 rather than TRULY_NOOP_TRUNCATION in comments.
3423 (simplify_comparison): Likewise.
3424 (record_truncated_value): Likewise.
3425 * expmed.c (extract_bit_field_1): Likewise.
3426 (extract_split_bit_field): Likewise.
3427 * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
3428 instead of TRULY_NOOP_TRUNCATION.
3429 * function.c (assign_parm_setup_block): Likewise.
3430 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
3431 * rtlhooks.c: Include target.h.
3432 * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
3433 * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
3434 * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
3435 * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
3436 * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
3437 * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
3438 * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
3439 * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
3440 * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
3441 * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
3442 * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
3443 * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
3444 * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
3445 * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
3446 * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
3447 * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
3448 * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
3449 * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
3450 * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
3451 * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
3452 * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
3453 * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
3454 * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
3455 * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
3456 * config/mips/mips.c (mips_truly_noop_truncation): New function.
3457 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
3458 * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
3459 rather than TRULY_NOOP_TRUNCATION in comments.
3460 * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
3461 * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
3462 * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
3463 * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
3464 * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
3465 * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
3466 * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
3467 * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
3468 * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
3469 * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
3470 * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
3471 * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
3472 rather than TRULY_NOOP_TRUNCATION in comments.
3473 * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
3474 * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
3475 * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
3476 * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
3477 * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
3478 TRULY_NOOP_TRUNCATION condition.
3479 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
3480 (TRULY_NOOP_TRUNCATION): Delete.
3481 * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
3482 * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
3483 * config/spu/spu.c (spu_truly_noop_truncation): New function.
3484 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
3485 * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
3486 * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
3487 * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
3488 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
3489 * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
3490 rather than TRULY_NOOP_TRUNCATION in comments.
3491 * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
3492 * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
3493 * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
3494 * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
3495 * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
3496 * system.h (TRULY_NOOP_TRUNCATION): Poison.
3497
3498 2017-09-15 Christophe Lyon <christophe.lyon@linaro.org>
3499
3500 PR target/67591
3501 * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
3502 (*cmp_ior): Likewise.
3503 (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
3504 (*ior_scc_scc_cmp): Likewise.
3505 (*and_scc_scc): Likewise.
3506 (*and_scc_scc_cmp): Likewise.
3507
3508 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
3509 Alan Hayard <alan.hayward@arm.com>
3510 David Sherwood <david.sherwood@arm.com>
3511
3512 * target.def (can_change_mode_class): New hook.
3513 (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
3514 (hard_regno_nregs): Likewise.
3515 * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
3516 * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
3517 * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
3518 (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
3519 (LOAD_EXTEND_OP): Update accordingly.
3520 * doc/tm.texi: Regenerate.
3521 * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
3522 CANNOT_CHANGE_MODE_CLASS.
3523 * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
3524 (REG_CAN_CHANGE_MODE_P): ...this new macro.
3525 * combine.c (simplify_set): Update accordingly.
3526 * emit-rtl.c (validate_subreg): Likewise.
3527 * recog.c (general_operand): Likewise.
3528 * regcprop.c (mode_change_ok): Likewise.
3529 * reload1.c (choose_reload_regs): Likewise.
3530 (inherit_piecemeal_p): Likewise.
3531 * rtlanal.c (simplify_subreg_regno): Likewise.
3532 * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
3533 instead of CANNOT_CHANGE_MODE_CLASS.
3534 (reload_cse_simplify_operands): Likewise.
3535 * reload.c (push_reload): Use targetm.can_change_mode_class
3536 instead of CANNOT_CHANGE_MODE_CLASS.
3537 (push_reload): Likewise. Also use REG_CAN_CHANGE_MODE_P instead of
3538 REG_CANNOT_CHANGE_MODE_P.
3539 * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3540 * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
3541 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3542 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3543 * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3544 (arm_can_change_mode_class): New function.
3545 * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
3546 than CANNOT_CHANGE_MODE_CLASS in comments.
3547 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3548 * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
3549 * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
3550 (ix86_can_change_mode_class): ...this new function, inverting the
3551 sense of the return value.
3552 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3553 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3554 * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3555 (ia64_can_change_mode_class): New function.
3556 * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3557 * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
3558 * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
3559 (m32c_can_change_mode_class): ...this new function, inverting the
3560 sense of the return value.
3561 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3562 * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3563 * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
3564 * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
3565 (mips_can_change_mode_class): ...this new function, inverting the
3566 sense of the return value.
3567 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3568 * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3569 * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3570 (msp430_can_change_mode_class): New function.
3571 * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3572 * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
3573 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3574 * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3575 * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3576 * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
3577 * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3578 (pa_cannot_change_mode_class): Replace with...
3579 (pa_can_change_mode_class): ...this new function, inverting the
3580 sense of the return value.
3581 (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
3582 than CANNOT_CHANGE_MODE_CLASS in comments.
3583 * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3584 * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
3585 * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3586 (pdp11_cannot_change_mode_class): Replace with...
3587 (pdp11_can_change_mode_class): ...this new function, inverting the
3588 sense of the return value.
3589 * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3590 * config/powerpcspe/powerpcspe-protos.h
3591 (rs6000_cannot_change_mode_class_ptr): Delete.
3592 * config/powerpcspe/powerpcspe.c
3593 (rs6000_cannot_change_mode_class_ptr): Delete.
3594 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3595 (rs6000_option_override_internal): Assign to
3596 targetm.can_change_mode_class instead of
3597 rs6000_cannot_change_mode_class_ptr.
3598 (rs6000_cannot_change_mode_class): Replace with...
3599 (rs6000_can_change_mode_class): ...this new function, inverting the
3600 sense of the return value.
3601 (rs6000_debug_cannot_change_mode_class): Replace with...
3602 (rs6000_debug_can_change_mode_class): ...this new function.
3603 * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3604 * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
3605 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3606 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3607 * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
3608 Delete.
3609 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
3610 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3611 (rs6000_option_override_internal): Assign to
3612 targetm.can_change_mode_class instead of
3613 rs6000_cannot_change_mode_class_ptr.
3614 (rs6000_cannot_change_mode_class): Replace with...
3615 (rs6000_can_change_mode_class): ...this new function, inverting the
3616 sense of the return value.
3617 (rs6000_debug_cannot_change_mode_class): Replace with...
3618 (rs6000_debug_can_change_mode_class): ...this new function.
3619 * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3620 * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
3621 * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
3622 (s390_can_change_mode_class): ...this new function, inverting the
3623 sense of the return value.
3624 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3625 * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3626 * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
3627 * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3628 (sh_cannot_change_mode_class): Replace with...
3629 (sh_can_change_mode_class): ...this new function, inverting the
3630 sense of the return value.
3631 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3632 * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3633 (sparc_can_change_mode_class): New function.
3634 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3635 * config/spu/spu.c (spu_can_change_mode_class): New function.
3636 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3637 * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3638 * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3639 (visium_can_change_mode_class): New function.
3640 * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
3641
3642 2017-09-15 Richard Biener <rguenther@suse.de>
3643
3644 PR tree-optimization/82217
3645 * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
3646 but not undefined case.
3647
3648 2017-09-15 Jakub Jelinek <jakub@redhat.com>
3649
3650 PR target/82145
3651 * postreload.c (reload_cse_simplify_operands): Skip
3652 NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
3653
3654 2017-09-15 Richard Biener <rguenther@suse.de>
3655
3656 PR tree-optimization/68823
3657 * graphite-scop-detection.c (build_alias_set): If we have a
3658 possible dependence check whether we can handle them by just
3659 looking at the DRs DR_ACCESS_FNs.
3660 (build_scops): If build_alias_set fails, fail the SCOP.
3661
3662 2017-09-14 Michael Meissner <meissner@linux.vnet.ibm.com>
3663
3664 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
3665 to support float128 built-in functions that require the ISA 3.0
3666 hardware.
3667 (BU_FLOAT128_3_HW): Likewise.
3668 (SQRTF128): Add support for the IEEE 128-bit square root and fma
3669 built-in functions.
3670 (FMAF128): Likewise.
3671 (FMAQ): Likewise.
3672 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
3673 support for built-in functions that need the ISA 3.0 IEEE 128-bit
3674 floating point instructions.
3675 (rs6000_invalid_builtin): Likewise.
3676 (rs6000_builtin_mask_names): Likewise.
3677 * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
3678 (RS6000_BTM_FLOAT128_HW): Likewise.
3679 (RS6000_BTM_COMMON): Likewise.
3680 * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
3681 function.
3682 * doc/extend.texi (RS/6000 built-in functions): Document the
3683 IEEE 128-bit floating point square root and fused multiply-add
3684 built-in functions.
3685
3686 2017-09-14 Pat Haugen <pthaugen@us.ibm.com>
3687
3688 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
3689 reg (r2) isn't in the set of registers defined in the prologue.
3690
3691 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3692 Alan Hayward <alan.hayward@arm.com>
3693 David Sherwood <david.sherwood@arm.com>
3694
3695 * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
3696 (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
3697 (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
3698 (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
3699 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
3700 accordingly.
3701 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
3702 max_vectorization_factor.
3703 (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
3704
3705 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3706 Alan Hayward <alan.hayward@arm.com>
3707 David Sherwood <david.sherwood@arm.com>
3708
3709 * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
3710 (vect_worthwhile_without_simd_p): Declare.
3711 * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
3712 (vectorizable_reduction): Use it.
3713 * tree-vect-stmts.c (vectorizable_shift): Likewise.
3714 (vectorizable_operation): Likewise.
3715
3716 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3717 Alan Hayward <alan.hayward@arm.com>
3718 David Sherwood <david.sherwood@arm.com>
3719
3720 * tree-vectorizer.h (vect_get_num_copies): New function.
3721 * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
3722 * tree-vect-loop.c (vectorizable_reduction): Likewise.
3723 (vectorizable_induction): Likewise.
3724 (vectorizable_live_operation): Likewise.
3725 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
3726 (vectorizable_bswap): Likewise.
3727 (vectorizable_call): Likewise.
3728 (vectorizable_conversion): Likewise.
3729 (vectorizable_assignment): Likewise.
3730 (vectorizable_shift): Likewise.
3731 (vectorizable_operation): Likewise.
3732 (vectorizable_store): Likewise.
3733 (vectorizable_load): Likewise.
3734 (vectorizable_condition): Likewise.
3735 (vectorizable_comparison): Likewise.
3736 (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
3737
3738 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3739 Alan Hayward <alan.hayward@arm.com>
3740 David Sherwood <david.sherwood@arm.com>
3741
3742 * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
3743 of vect_init_vector.
3744
3745 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3746 Alan Hayward <alan.hayward@arm.com>
3747 David Sherwood <david.sherwood@arm.com>
3748
3749 * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
3750 an inline wrapper that provides a location.
3751 (gimple_build_vector): Likewise.
3752 * gimple-fold.c (gimple_build_vector_from_val): New function.
3753 (gimple_build_vector): Likewise.
3754 * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
3755 functions to build the initial value. Always return a gimple value.
3756 (get_initial_defs_for_reduction): Likewise. Only compute
3757 neutral_vec once.
3758 (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
3759 vect_init_vector on the results from get_initial_def(s)_for_reduction.
3760 (vectorizable_induction): Use gimple_build_vector rather than
3761 vect_init_vector.
3762
3763 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3764 Alan Hayward <alan.hayward@arm.com>
3765 David Sherwood <david.sherwood@arm.com>
3766
3767 * target.h (vec_perm_indices): New typedef.
3768 (auto_vec_perm_indices): Likewise.
3769 * optabs-query.h: Include target.h
3770 (can_vec_perm_p): Take a vec_perm_indices *.
3771 * optabs-query.c (can_vec_perm_p): Likewise.
3772 (can_mult_highpart_p): Update accordingly. Use auto_vec_perm_indices.
3773 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
3774 * tree-vect-generic.c (lower_vec_perm): Likewise.
3775 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
3776 (vect_grouped_load_supported): Likewise.
3777 (vect_shift_permute_load_chain): Likewise.
3778 (vect_permute_store_chain): Use auto_vec_perm_indices.
3779 (vect_permute_load_chain): Likewise.
3780 * fold-const.c (fold_vec_perm): Take vec_perm_indices.
3781 (fold_ternary_loc): Update accordingly. Use auto_vec_perm_indices.
3782 Update uses of can_vec_perm_p.
3783 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
3784 mode with a number of elements. Take a vec_perm_indices *.
3785 (vect_create_epilog_for_reduction): Update accordingly.
3786 Use auto_vec_perm_indices.
3787 (have_whole_vector_shift): Likewise. Update call to can_vec_perm_p.
3788 * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
3789 (vect_transform_slp_perm_load): Likewise.
3790 (vect_schedule_slp_instance): Use auto_vec_perm_indices.
3791 * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
3792 (vect_gen_perm_mask_checked): Likewise.
3793 * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
3794 (vect_gen_perm_mask_checked): Likewise.
3795 (vectorizable_mask_load_store): Use auto_vec_perm_indices.
3796 (vectorizable_store): Likewise.
3797 (vectorizable_load): Likewise.
3798 (perm_mask_for_reverse): Likewise. Update call to can_vec_perm_p.
3799 (vectorizable_bswap): Likewise.
3800
3801 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3802 Alan Hayward <alan.hayward@arm.com>
3803 David Sherwood <david.sherwood@arm.com>
3804
3805 * tree.h (build_vector): Take a vec<tree> instead of a tree *.
3806 * tree.c (build_vector): Likewise.
3807 (build_vector_from_ctor): Update accordingly.
3808 (build_vector_from_val): Likewise.
3809 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
3810 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
3811 * tree-vect-generic.c (add_rshift): Likewise.
3812 (expand_vector_divmod): Likewise.
3813 (optimize_vector_constructor): Likewise.
3814 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
3815 (vect_transform_slp_perm_load): Likewise.
3816 (vect_schedule_slp_instance): Likewise.
3817 * tree-vect-stmts.c (vectorizable_bswap): Likewise.
3818 (vectorizable_call): Likewise.
3819 (vect_gen_perm_mask_any): Likewise. Add elements in order.
3820 * expmed.c (make_tree): Likewise.
3821 * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
3822 a vector passed to build_vector.
3823 (fold_convert_const): Likewise.
3824 (exact_inverse): Likewise.
3825 (fold_ternary_loc): Likewise.
3826 (fold_relational_const): Likewise.
3827 (const_binop): Likewise. Use VECTOR_CST_ELT directly when operating
3828 on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
3829 (const_unop): Likewise. Store the reduction accumulator in a
3830 variable rather than an array.
3831 (vec_cst_ctor_to_array): Take the number of elements as a parameter.
3832 (fold_vec_perm): Update calls accordingly. Use auto_vec<tree> for
3833 the new vector, rather than constructing it after the input arrays.
3834 (native_interpret_vector): Use auto_vec<tree> when building
3835 a vector passed to build_vector. Add elements in order.
3836 * tree-vect-loop.c (get_initial_defs_for_reduction): Use
3837 auto_vec<tree> when building a vector passed to build_vector.
3838 (vect_create_epilog_for_reduction): Likewise.
3839 (vectorizable_induction): Likewise.
3840 (get_initial_def_for_reduction): Likewise. Fix indentation of
3841 case statements.
3842 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
3843 to a vec<tree> *.
3844 (sparc_fold_builtin): Use auto_vec<tree> when building a vector
3845 passed to build_vector.
3846
3847 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3848 Alan Hayward <alan.hayward@arm.com>
3849 David Sherwood <david.sherwood@arm.com>
3850
3851 * tree-core.h (tree_base::u): Add an "nelts" field.
3852 (tree_vector): Use VECTOR_CST_NELTS as the length.
3853 * tree.c (tree_size): Likewise.
3854 (make_vector): Initialize VECTOR_CST_NELTS.
3855 * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
3856 * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
3857 TYPE_VECTOR_SUBPARTS.
3858 * expr.c (const_vector_mask_from_tree): Consistently use "units"
3859 as the number of units, setting it from VECTOR_CST_NELTS.
3860 (const_vector_from_tree): Likewise.
3861 * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
3862 TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
3863 (fold_negate_expr_1): Likewise.
3864 (fold_convert_const): Likewise.
3865 (const_binop): Likewise. Differentiate the number of output and
3866 input elements.
3867 (const_unop): Likewise.
3868 (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
3869 in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
3870 in cases that did the opposite.
3871
3872 2017-09-14 Richard Biener <rguenther@suse.de>
3873
3874 * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
3875 to VN_TOP.
3876
3877 2017-09-14 Eric Botcazou <ebotcazou@adacore.com>
3878
3879 * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
3880
3881 2017-09-14 Jakub Jelinek <jakub@redhat.com>
3882
3883 PR target/81325
3884 * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
3885 if and where to split a bb, except for splitting before debug insn
3886 sequences followed by non-label real insn. Delete debug insns
3887 in between basic blocks.
3888
3889 * combine.c (make_compound_operation_int): Formatting fixes.
3890
3891 * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
3892 * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
3893 * config/netbsd.h (LINK_EH_SPEC): Likewise.
3894 * config/sol2.h (LINK_EH_SPEC): Likewise.
3895 * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
3896 * config/s390/linux.h (LINK_SPEC): Likewise.
3897 * config/freebsd.h (LINK_EH_SPEC): Likewise.
3898 * config/openbsd.h (LINK_EH_SPEC): Likewise.
3899 * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
3900 * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
3901 * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
3902 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
3903 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
3904 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
3905
3906 2017-09-13 Jakub Jelinek <jakub@redhat.com>
3907
3908 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
3909 support.
3910 (ENDFILE_LINUX_SPEC): Likewise.
3911 (LINK_EH_SPEC): Likewise.
3912 * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
3913 (LINK_OS_LINUX_SPEC32): Likewise.
3914 (LINK_OS_LINUX_SPEC64): Likewise.
3915 * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
3916 (LINK_OS_LINUX_SPEC): Likewise.
3917
3918 2017-09-13 Martin Liska <mliska@suse.cz>
3919
3920 PR middle-end/82154
3921 * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
3922 CASE_HIGH is NULL_TREE.
3923
3924 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
3925 Alan Hayward <alan.hayward@arm.com>
3926 David Sherwood <david.sherwood@arm.com>
3927
3928 * target.def (secondary_memory_needed): New hook.
3929 (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
3930 instead of SECONDARY_MEMORY_NEEDED.
3931 (secondary_memory_needed_mode): Likewise.
3932 * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
3933 * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
3934 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
3935 (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
3936 (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
3937 * doc/tm.texi: Regenerate.
3938 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
3939 * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
3940 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3941 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
3942 * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
3943 * config/i386/i386.c (inline_secondary_memory_needed): Put the
3944 mode argument first and change the reg_class arguments to reg_class_t.
3945 (ix86_secondary_memory_needed): Likewise. Remove the strict parameter.
3946 Make static. Update the call to inline_secondary_memory_needed.
3947 (ix86_register_move_cost): Update the call to
3948 inline_secondary_memory_needed.
3949 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3950 * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
3951 definition.
3952 * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
3953 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
3954 in comment.
3955 * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
3956 * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
3957 * config/mips/mips.c (mips_secondary_memory_needed): Make static
3958 and match hook interface. Add comment from mips.h.
3959 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3960 * config/mmix/mmix.md (truncdfsf2): Refer to
3961 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
3962 in comment.
3963 * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
3964 (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
3965 * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3966 (pa_secondary_memory_needed): New function.
3967 * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
3968 * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
3969 * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3970 (pdp11_secondary_memory_needed): Make static and match hook interface.
3971 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
3972 * config/powerpcspe/powerpcspe-protos.h
3973 (rs6000_secondary_memory_needed_ptr): Delete.
3974 * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
3975 Delete.
3976 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3977 (rs6000_option_override_internal): Assign to
3978 targetm.secondary_memory_needed rather than
3979 rs6000_secondary_memory_needed_ptr.
3980 (rs6000_secondary_memory_needed): Match hook interface.
3981 (rs6000_debug_secondary_memory_needed): Likewise.
3982 * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
3983 * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
3984 (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
3985 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3986 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
3987 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
3988 Delete.
3989 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
3990 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3991 (rs6000_option_override_internal): Assign to
3992 targetm.secondary_memory_needed rather than
3993 rs6000_secondary_memory_needed_ptr.
3994 (rs6000_secondary_memory_needed): Match hook interface.
3995 (rs6000_debug_secondary_memory_needed): Likewise.
3996 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
3997 * config/s390/s390.c (s390_secondary_memory_needed): New function.
3998 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3999 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
4000 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4001 (sparc_secondary_memory_needed): New function.
4002 * lra-constraints.c (check_and_process_move): Refer to
4003 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
4004 in comment.
4005 (curr_insn_transform): Likewise.
4006 (process_alt_operands): Use targetm.secondary_memory_needed
4007 instead of TARGET_SECONDARY_MEMORY_NEEDED.
4008 (check_secondary_memory_needed_p): Likewise.
4009 (choose_split_class): Likewise.
4010 * reload.c: Unconditionally include code that was previously
4011 conditional on SECONDARY_MEMORY_NEEDED.
4012 (push_secondary_reload): Use targetm.secondary_memory_needed
4013 instead of TARGET_SECONDARY_MEMORY_NEEDED.
4014 (push_reload): Likewise.
4015 * reload1.c: Unconditionally include code that was previously
4016 conditional on SECONDARY_MEMORY_NEEDED.
4017 (choose_reload_regs): Use targetm.secondary_memory_needed
4018 instead of TARGET_SECONDARY_MEMORY_NEEDED.
4019 (gen_reload): Likewise.
4020 * system.h (SECONDARY_MEMORY_NEEDED): Poison.
4021
4022 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
4023 Alan Hayward <alan.hayward@arm.com>
4024 David Sherwood <david.sherwood@arm.com>
4025
4026 * target.def (secondary_memory_needed_mode): New hook:
4027 * targhooks.c (default_secondary_memory_needed_mode): Declare.
4028 * targhooks.h (default_secondary_memory_needed_mode): New function.
4029 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
4030 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
4031 * doc/tm.texi: Regenerate.
4032 * lra-constraints.c (check_and_process_move): Use
4033 targetm.secondary_memory_needed_mode instead of
4034 TARGET_SECONDARY_MEMORY_NEEDED_MODE.
4035 (curr_insn_transform): Likewise.
4036 * reload.c (get_secondary_mem): Likewise.
4037 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
4038 * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
4039 function.
4040 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
4041 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
4042 * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
4043 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
4044 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
4045 Delete.
4046 * config/powerpcspe/powerpcspe-protos.h
4047 (rs6000_secondary_memory_needed_mode): Delete.
4048 * config/powerpcspe/powerpcspe.c
4049 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
4050 (rs6000_secondary_memory_needed_mode): Make static.
4051 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
4052 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
4053 Delete.
4054 * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
4055 Redefine.
4056 (rs6000_secondary_memory_needed_mode): Make static.
4057 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
4058 * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
4059 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
4060 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
4061 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
4062 Redefine.
4063 (sparc_secondary_memory_needed_mode): New function.
4064 * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
4065
4066 2017-09-13 Jackson Woodruff <jackson.woodruff@arm.com>
4067
4068 * config/aarch64/constraints.md (Umq): New constraint.
4069 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
4070 Change to use Umq.
4071 (mov<mode>): Update condition.
4072
4073 2017-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4074
4075 * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
4076 when bitposition is the same.
4077
4078 2017-09-13 Richard Biener <rguenther@suse.de>
4079
4080 * dwarf2out.c (output_die_symbol): Remove.
4081 (output_die): Do not output a DIEs symbol.
4082
4083 2017-09-13 Richard Biener <rguenther@suse.de>
4084
4085 PR middle-end/82128
4086 * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
4087 default-def to avoid breaking iterator update with the weird
4088 interaction with cgraph_update_edges_for_call_stmt_node.
4089
4090 2017-09-13 Richard Biener <rguenther@suse.de>
4091
4092 * tree-cfg.c (verify_gimple_assign_binary): Add verification
4093 for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
4094 VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
4095 (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
4096
4097 2017-09-13 Kugan Vivekanandarajah <kuganv@linaro.org>
4098
4099 * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
4100 Disable pc relative literal load irrespective of
4101 TARGET_FIX_ERR_A53_84341 for default.
4102
4103 2017-09-12 Eric Botcazou <ebotcazou@adacore.com>
4104
4105 * config/sparc/sparc.c (output_return): Output the source location of
4106 the insn in the delay slot, if any.
4107 (output_sibcall): Likewise.
4108
4109 2017-09-12 H.J. Lu <hongjiu.lu@intel.com>
4110
4111 PR driver/81498
4112 * common.opt (-static-pie): New alias.
4113 (shared): Negate static-pie.
4114 (-no-pie): Update help text.
4115 (-pie): Likewise.
4116 (static-pie): New option.
4117 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
4118 -static-pie support.
4119 (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
4120 (LINK_EH_SPEC): Likewise.
4121 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4122 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
4123 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
4124 * gcc.c (LINK_COMMAND_SPEC): Likewise.
4125 (init_gcc_specs): Likewise.
4126 (init_spec): Likewise.
4127 (display_help): Update help message for -pie.
4128 * doc/invoke.texi: Update -pie, -no-pie and -static. Document
4129 -static-pie.
4130
4131 2017-09-12 Wilco Dijkstra <wdijkstr@arm.com>
4132
4133 * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
4134 (movdi_aarch64): Likewise.
4135 (movti_aarch64): Likewise.
4136
4137 2017-09-12 Simon Wright <simon@pushface.org>
4138
4139 PR target/80204
4140 * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
4141 calculation of the minor version, always output as 0.
4142
4143 2017-09-12 Jakub Jelinek <jakub@redhat.com>
4144
4145 PR target/82112
4146 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
4147 ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
4148 on it early, rather than manual conversion late. For
4149 ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
4150 instead of performing manual conversion.
4151
4152 2017-09-12 Carl Love <cel@us.ibm.com>
4153
4154 * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
4155 vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
4156 vmulouw, vmulosw.
4157 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
4158 VMULOSW): Add definitions.
4159 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4160 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
4161 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
4162 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
4163 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
4164
4165 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
4166
4167 * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
4168 types correctly.
4169 (movti_aarch64): Likewise.
4170 (movdf_aarch64): Likewise.
4171 (movtf_aarch64): Likewise.
4172 (load_pairdi): Likewise.
4173 (store_pairdi): Likewise.
4174 (load_pairdf): Likewise.
4175 (store_pairdf): Likewise.
4176 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
4177 (storewb_pair<GPI:mode>_<P:mode>): Likewise.
4178 (ldr_got_small_<mode>): Likewise.
4179 (ldr_got_small_28k_<mode>): Likewise.
4180 (ldr_got_tiny): Likewise.
4181 * config/aarch64/iterators.md (ldst_sz): New.
4182 (ldpstp_sz): Likewise.
4183 * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
4184 to store_16.
4185 (thunderx_load): Split load_8 to load_16.
4186 * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
4187 load_8 to load_16.
4188 (thunderx2t99_storepair_basic): Split store_8 to store_16.
4189 * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
4190 (xgene1_store_pair): Split store_8 to store_16.
4191 * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
4192 (falkor_st_0_st_sd): Split store_8 to store_16.
4193
4194 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
4195
4196 * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
4197 and store1/2/3/4 to store_4/8/12/16.
4198 * config/aarch64/aarch64.md: Update for rename.
4199 * config/arm/arm.md: Likewise.: Likewise.
4200 * config/arm/arm.c: Likewise.
4201 * config/arm/thumb1.md: Likewise.
4202 * config/arm/thumb2.md: Likewise.
4203 * config/arm/vfp.md: Likewise.
4204 * config/arm/arm-generic.md: Likewise.
4205 * config/arm/arm1020e.md: Likewise.
4206 * config/arm/arm1026ejs.md: Likewise.
4207 * config/arm/arm1136jfs.md: Likewise.
4208 * config/arm/arm926ejs.md: Likewise.
4209 * config/arm/cortex-a15.md: Likewise.
4210 * config/arm/cortex-a17.md: Likewise.
4211 * config/arm/cortex-a5.md: Likewise.
4212 * config/arm/cortex-a53.md: Likewise.
4213 * config/arm/cortex-a57.md: Likewise.
4214 * config/arm/cortex-a7.md: Likewise.
4215 * config/arm/cortex-a8.md: Likewise.
4216 * config/arm/cortex-a9.md: Likewise.
4217 * config/arm/cortex-m4.md: Likewise.
4218 * config/arm/cortex-m7.md: Likewise.
4219 * config/arm/cortex-r4.md: Likewise.
4220 * config/arm/exynos-m1.md: Likewise.
4221 * config/arm/fa526.md: Likewise.
4222 * config/arm/fa606te.md: Likewise.
4223 * config/arm/fa626te.md: Likewise.
4224 * config/arm/fa726te.md: Likewise.
4225 * config/arm/fmp626.md: Likewise.
4226 * config/arm/iwmmxt.md: Likewise.
4227 * config/arm/ldmstm.md: Likewise.
4228 * config/arm/marvell-pj4.md: Likewise.
4229 * config/arm/xgene1.md: Likewise.
4230 * config/aarch64/thunderx.md: Likewise.
4231 * config/aarch64/thunderx2t99.md: Likewise.
4232 * config/aarch64/falkor.md: Likewise.
4233
4234 2017-09-12 Martin Liska <mliska@suse.cz>
4235
4236 * attribs.c (private_lookup_attribute): New function.
4237 * attribs.h (private_lookup_attribute): Declared here.
4238 (lookup_attribute): Called from this place.
4239
4240 2017-09-12 Richard Biener <rguenther@suse.de>
4241
4242 PR tree-optimization/82157
4243 * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
4244 stmts with side-effects.
4245
4246 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4247 Alan Hayward <alan.hayward@arm.com>
4248 David Sherwood <david.sherwood@arm.com>
4249
4250 * target.def (hard_regno_nregs): New hook.
4251 (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
4252 * targhooks.h (default_hard_regno_nregs): Declare.
4253 * targhooks.c (default_hard_regno_nregs): New function.
4254 * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
4255 (TARGET_HARD_REGNO_NREGS): ...this hook.
4256 (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
4257 (CLASS_MAX_NREGS): Likewise.
4258 * doc/tm.texi: Regenerate.
4259 * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
4260 instead of HARD_REGNO_NREGS.
4261 * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
4262 HARD_REGNO_NREGS in the comment.
4263 * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
4264 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
4265 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
4266 Return an unsigned int.
4267 (TARGET_HARD_REGNO_NREGS): Redefine.
4268 * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
4269 * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
4270 * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
4271 (arc_hard_regno_nregs): New function.
4272 * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
4273 * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
4274 (arm_hard_regno_nregs): New function.
4275 * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
4276 * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
4277 * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
4278 (TARGET_HARD_REGNO_NREGS): Redefine.
4279 * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
4280 * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
4281 (HARD_REGNO_NREGS): Delete.
4282 * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
4283 (cr16_hard_regno_nregs): New function.
4284 (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
4285 * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
4286 * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
4287 (cris_hard_regno_nregs): New function.
4288 * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
4289 * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
4290 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
4291 * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
4292 (CLASS_MAX_NREGS): Remove outdated copy of documentation.
4293 * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
4294 * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
4295 (frv_hard_regno_nregs): Make static. Take and return an
4296 unsigned int.
4297 (frv_class_max_nregs): Remove outdated copy of documentation.
4298 * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
4299 * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
4300 * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
4301 * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
4302 * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
4303 * config/i386/i386.c (ix86_hard_regno_nregs): New function.
4304 (TARGET_HARD_REGNO_NREGS): Redefine.
4305 * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
4306 (CLASS_MAX_NREGS): Update comment.
4307 * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
4308 (ia64_hard_regno_nregs): New function.
4309 * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
4310 * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
4311 * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
4312 * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
4313 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
4314 an unsigned int.
4315 (m32c_hard_regno_nregs): Likewise. Make static.
4316 (TARGET_HARD_REGNO_NREGS): Redefine.
4317 * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
4318 * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
4319 * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
4320 (m68k_hard_regno_nregs): New function.
4321 * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
4322 * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
4323 * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
4324 * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
4325 * config/mips/mips.c (mips_hard_regno_nregs): Make static.
4326 Take and return an unsigned int.
4327 (TARGET_HARD_REGNO_NREGS): Redefine.
4328 * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
4329 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
4330 * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
4331 * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
4332 * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
4333 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
4334 * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
4335 (msp430_hard_regno_nregs): Make static. Take and return an
4336 unsigned int.
4337 * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
4338 * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
4339 * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
4340 (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
4341 * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
4342 * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
4343 * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
4344 (TARGET_HARD_REGNO_NREGS): Redefine.
4345 * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
4346 (PA_HARD_REGNO_NREGS): ...this.
4347 * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
4348 (PA_HARD_REGNO_NREGS): ...this.
4349 * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
4350 (pa_hard_regno_nregs): New function.
4351 * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
4352 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
4353 (pdp11_hard_regno_nregs): New function.
4354 * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
4355 * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
4356 (rs6000_hard_regno_nregs_hook): New function.
4357 * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
4358 * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
4359 * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
4360 Take and return an unsigned int. Move earlier in file.
4361 (TARGET_HARD_REGNO_NREGS): Redefine.
4362 * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
4363 * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
4364 * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
4365 (rl78_hard_regno_nregs): Make static. Take and return an
4366 unsigned int.
4367 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
4368 * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
4369 (rs6000_hard_regno_nregs_hook): New function.
4370 * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
4371 * config/rx/rx.c (rx_hard_regno_nregs): New function.
4372 (TARGET_HARD_REGNO_NREGS): Redefine.
4373 * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
4374 * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
4375 instead of HARD_REGNO_NREGS.
4376 (s390_hard_regno_nregs): New function.
4377 (s390_hard_regno_mode_ok): Add comment from s390.h.
4378 (TARGET_HARD_REGNO_NREGS): Redefine.
4379 * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
4380 * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
4381 (sh_hard_regno_nregs): New function.
4382 (sh_pass_in_reg_p): Use it.
4383 * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
4384 * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
4385 (sparc_hard_regno_nregs): New function.
4386 * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
4387 * config/spu/spu.c (spu_hard_regno_nregs): New function.
4388 (spu_function_arg_advance): Use it, supplying a valid register number.
4389 (TARGET_HARD_REGNO_NREGS): Redefine.
4390 * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
4391 * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
4392 * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
4393 * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
4394 * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
4395 * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
4396 (CLASS_MAX_NREGS): Remove copy of old documentation.
4397 * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
4398 (visium_hard_regno_nregs): New function.
4399 (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
4400 * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
4401 * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
4402 xtensa_hard_regno_nregs): New function.
4403 * system.h (HARD_REGNO_NREGS): Poison.
4404
4405 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4406
4407 * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
4408 hard_regno_nregs instead of HARD_REGNO_NREGS.
4409 (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
4410 * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
4411 (c6x_expand_epilogue): Likewise.
4412 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
4413 (frv_read_iacc_argument): Likewise.
4414 * config/sh/sh.c: Include regs.h.
4415 (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
4416 (regs_used): Likewise.
4417 (output_stack_adjust): Likewise.
4418 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
4419 * expmed.c: Include regs.h.
4420 (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
4421 * ree.c: Include regs.h.
4422 (combine_reaching_defs): Use hard_regno_nregs instead of
4423 HARD_REGNO_NREGS.
4424 (add_removable_extension): Likewise.
4425
4426 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4427
4428 * regs.h (hard_regno_nregs): Turn into a function.
4429 (end_hard_regno): Update accordingly.
4430 * caller-save.c (setup_save_areas): Likewise.
4431 (save_call_clobbered_regs): Likewise.
4432 (replace_reg_with_saved_mem): Likewise.
4433 (insert_restore): Likewise.
4434 (insert_save): Likewise.
4435 * combine.c (can_change_dest_mode): Likewise.
4436 (move_deaths): Likewise.
4437 (distribute_notes): Likewise.
4438 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
4439 * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
4440 (rs6000_split_multireg_move): Likewise.
4441 (rs6000_register_move_cost): Likewise.
4442 (rs6000_memory_move_cost): Likewise.
4443 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
4444 (rs6000_split_multireg_move): Likewise.
4445 (rs6000_register_move_cost): Likewise.
4446 (rs6000_memory_move_cost): Likewise.
4447 * cselib.c (cselib_reset_table): Likewise.
4448 (cselib_lookup_1): Likewise.
4449 * emit-rtl.c (set_mode_and_regno): Likewise.
4450 * function.c (aggregate_value_p): Likewise.
4451 * ira-color.c (setup_profitable_hard_regs): Likewise.
4452 (check_hard_reg_p): Likewise.
4453 (calculate_saved_nregs): Likewise.
4454 (assign_hard_reg): Likewise.
4455 (improve_allocation): Likewise.
4456 (calculate_spill_cost): Likewise.
4457 * ira-emit.c (modify_move_list): Likewise.
4458 * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
4459 (ira_hard_reg_in_set_p): Likewise.
4460 * ira.c (setup_reg_mode_hard_regset): Likewise.
4461 (clarify_prohibited_class_mode_regs): Likewise.
4462 (check_allocation): Likewise.
4463 * lra-assigns.c (find_hard_regno_for_1): Likewise.
4464 (lra_setup_reg_renumber): Likewise.
4465 (setup_try_hard_regno_pseudos): Likewise.
4466 (spill_for): Likewise.
4467 (assign_hard_regno): Likewise.
4468 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
4469 * lra-constraints.c (in_class_p): Likewise.
4470 (lra_constraint_offset): Likewise.
4471 (simplify_operand_subreg): Likewise.
4472 (lra_constraints): Likewise.
4473 (split_reg): Likewise.
4474 (split_if_necessary): Likewise.
4475 (invariant_p): Likewise.
4476 (inherit_in_ebb): Likewise.
4477 * lra-lives.c (process_bb_lives): Likewise.
4478 * lra-remat.c (reg_overlap_for_remat_p): Likewise.
4479 (get_hard_regs): Likewise.
4480 (do_remat): Likewise.
4481 * lra-spills.c (assign_spill_hard_regs): Likewise.
4482 * mode-switching.c (create_pre_exit): Likewise.
4483 * postreload.c (reload_combine_recognize_pattern): Likewise.
4484 * recog.c (peep2_find_free_register): Likewise.
4485 * regcprop.c (kill_value_regno): Likewise.
4486 (set_value_regno): Likewise.
4487 (copy_value): Likewise.
4488 (maybe_mode_change): Likewise.
4489 (find_oldest_value_reg): Likewise.
4490 (copyprop_hardreg_forward_1): Likewise.
4491 * regrename.c (check_new_reg_p): Likewise.
4492 (regrename_do_replace): Likewise.
4493 * reload.c (push_reload): Likewise.
4494 (combine_reloads): Likewise.
4495 (find_dummy_reload): Likewise.
4496 (operands_match_p): Likewise.
4497 (find_reloads): Likewise.
4498 (find_equiv_reg): Likewise.
4499 (reload_adjust_reg_for_mode): Likewise.
4500 * reload1.c (count_pseudo): Likewise.
4501 (count_spilled_pseudo): Likewise.
4502 (find_reg): Likewise.
4503 (clear_reload_reg_in_use): Likewise.
4504 (free_for_value_p): Likewise.
4505 (allocate_reload_reg): Likewise.
4506 (choose_reload_regs): Likewise.
4507 (reload_adjust_reg_for_temp): Likewise.
4508 (emit_reload_insns): Likewise.
4509 (delete_output_reload): Likewise.
4510 * rtlanal.c (subreg_get_info): Likewise.
4511 * sched-deps.c (sched_analyze_reg): Likewise.
4512 * sel-sched.c (init_regs_for_mode): Likewise.
4513 (mark_unavailable_hard_regs): Likewise.
4514 (choose_best_reg_1): Likewise.
4515 (verify_target_availability): Likewise.
4516 * valtrack.c (dead_debug_insert_temp): Likewise.
4517 * var-tracking.c (track_loc_p): Likewise.
4518 (emit_note_insn_var_location): Likewise.
4519 * varasm.c (make_decl_rtl): Likewise.
4520 * reginfo.c (choose_hard_reg_mode): Likewise.
4521 (init_reg_modes_target): Refer directly to
4522 this_target_regs->x_hard_regno_nregs.
4523
4524 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4525
4526 * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
4527 instead of hard_regno_nregs.
4528
4529 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4530
4531 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
4532 end_hard_regno instead of hard_regno_nregs.
4533 * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
4534 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
4535 * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
4536 * ira-color.c (improve_allocation): Likewise.
4537 * lra-assigns.c (find_hard_regno_for_1): Likewise.
4538 * lra-lives.c (mark_regno_live): Likewise.
4539 (mark_regno_dead): Likewise.
4540 * lra-remat.c (operand_to_remat): Likewise.
4541 * lra.c (collect_non_operand_hard_regs): Likewise.
4542 * postreload.c (reload_combine_note_store): Likewise.
4543 (move2add_valid_value_p): Likewise.
4544 * reload.c (regno_clobbered_p): Likewise.
4545
4546 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4547
4548 * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
4549 hard_regno_nregs.
4550 * config/v850/v850.c (v850_reorg): Likewise.
4551 * reload.c (refers_to_regno_for_reload_p): Likewise.
4552 (find_equiv_reg): Likewise.
4553 * reload1.c (reload_reg_reaches_end_p): Likewise.
4554
4555 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4556
4557 * caller-save.c (add_used_regs): Use REG_NREGS instead of
4558 hard_regno_nregs.
4559 * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
4560 * config/arm/arm.c (output_move_neon): Likewise.
4561 (arm_attr_length_move_neon): Likewise.
4562 (neon_split_vcombine): Likewise.
4563 * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
4564 (c6x_mark_reg_written): Likewise.
4565 (c6x_dwarf_register_span): Likewise.
4566 * config/i386/i386.c (ix86_save_reg): Likewise.
4567 * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
4568 (rws_access_reg): Likewise.
4569 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
4570 * mode-switching.c (create_pre_exit): Likewise.
4571 * ree.c (combine_reaching_defs): Likewise.
4572 (add_removable_extension): Likewise.
4573 * regcprop.c (find_oldest_value_reg): Likewise.
4574 (copyprop_hardreg_forward_1): Likewise.
4575 * reload.c (reload_inner_reg_of_subreg): Likewise.
4576 (push_reload): Likewise.
4577 (combine_reloads): Likewise.
4578 (find_dummy_reload): Likewise.
4579 (reload_adjust_reg_for_mode): Likewise.
4580 * reload1.c (find_reload_regs): Likewise.
4581 (forget_old_reloads_1): Likewise.
4582 (reload_reg_free_for_value_p): Likewise.
4583 (reload_adjust_reg_for_temp): Likewise.
4584 (emit_reload_insns): Likewise.
4585 (delete_output_reload): Likewise.
4586 * sel-sched.c (choose_best_reg_1): Likewise.
4587 (choose_best_pseudo_reg): Likewise.
4588
4589 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4590 Alan Hayward <alan.hayward@arm.com>
4591 David Sherwood <david.sherwood@arm.com>
4592
4593 * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
4594 * target.def (slow_unaligned_access): New hook.
4595 * targhooks.h (default_slow_unaligned_access): Declare.
4596 * targhooks.c (default_slow_unaligned_access): New function.
4597 * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
4598 (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
4599 * doc/tm.texi: Regenerate.
4600 * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
4601 * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
4602 * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
4603 definition.
4604 * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
4605 * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
4606 Redefine.
4607 (rs6000_slow_unaligned_access): New function.
4608 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
4609 (expand_block_compare): Likewise.
4610 (expand_strn_compare): Likewise.
4611 (rs6000_rtx_costs): Likewise.
4612 * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
4613 (riscv_slow_unaligned_access): Likewise.
4614 * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
4615 (riscv_slow_unaligned_access_p): ...this and make static.
4616 (riscv_option_override): Update accordingly.
4617 (riscv_slow_unaligned_access): New function.
4618 (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
4619 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
4620 * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
4621 (rs6000_slow_unaligned_access): New function.
4622 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
4623 (rs6000_rtx_costs): Likewise.
4624 * config/rs6000/rs6000-string.c (expand_block_compare)
4625 (expand_strn_compare): Use targetm.slow_unaligned_access instead
4626 of SLOW_UNALIGNED_ACCESS.
4627 * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
4628 * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
4629 * calls.c (expand_call): Use targetm.slow_unaligned_access instead
4630 of SLOW_UNALIGNED_ACCESS.
4631 * expmed.c (simple_mem_bitfield_p): Likewise.
4632 * expr.c (alignment_for_piecewise_move): Likewise.
4633 (emit_group_load_1): Likewise.
4634 (emit_group_store): Likewise.
4635 (copy_blkmode_from_reg): Likewise.
4636 (emit_push_insn): Likewise.
4637 (expand_assignment): Likewise.
4638 (store_field): Likewise.
4639 (expand_expr_real_1): Likewise.
4640 * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
4641 * lra-constraints.c (simplify_operand_subreg): Likewise.
4642 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
4643 * gimple-ssa-store-merging.c: Likewise in block comment at start
4644 of file.
4645 * tree-ssa-strlen.c: Include target.h.
4646 (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
4647 of SLOW_UNALIGNED_ACCESS.
4648 * system.h (SLOW_UNALIGNED_ACCESS): Poison.
4649
4650 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4651
4652 PR rtl-optimization/82185
4653 * expmed.c (emit_store_flag_int): Only test tem if it has been
4654 initialized.
4655
4656 2017-09-12 Richard Biener <rguenther@suse.de>
4657
4658 PR middle-end/82149
4659 * match.pd ((FTYPE) N CMP CST): Fix typo.
4660
4661 2017-09-12 Simon Atanasyan <simon.atanasyan@imgtec.com>
4662
4663 * config/mips/mips.c (mips_attribute_table): Add 'short_call'
4664 attribute.
4665 (mips_near_type_p): Add 'short_call' attribute as a synonym
4666 for 'near'.
4667 * doc/extend.texi (short_call): Document new function attribute.
4668
4669 2017-09-12 Jakub Jelinek <jakub@redhat.com>
4670
4671 PR target/82112
4672 * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
4673 assertion check that in the condition.
4674 (get_atomic_generic_size): Likewise. Before testing if parameter
4675 has pointer type, if it has array type, call for C++
4676 default_conversion to perform array-to-pointer conversion.
4677
4678 2017-09-12 Richard Biener <rguenther@suse.de>
4679
4680 * tree-vect-generic.c (expand_vector_operations_1): Do nothing
4681 for operations we cannot scalarize.
4682
4683 2017-09-12 Aldy Hernandez <aldyh@redhat.com>
4684
4685 * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
4686 vectors heap vectors. Clean up comments.
4687 Make visited_bbs a reference.
4688 (profitable_jump_thread_path): Make GC
4689 vectors heap vectors. Clean up comments.
4690 Misc cleanups.
4691 (convert_and_register_jump_thread_path): Make GC vectors heap
4692 vectors.
4693 (check_subpath_and_update_thread_path): Same. Clean up comments.
4694 Make visited_bbs a reference.
4695 (handle_phi): Abstract common code to to
4696 register_jump_thread_path_if_profitable.
4697 Rename VAR_BB to DEF_BB.
4698 Update comments.
4699 Make GC vectors heap vectors.
4700 Make visited_bbs a reference.
4701 (handle_assignment): Same.
4702 (register_jump_thread_path_if_profitable): New.
4703 (fsm_find_control_statement_thread_paths): Rename VAR_BB to
4704 DEF_BB.
4705 Make GC vectors heap vectors. Clean up comments.
4706 Make visited_bbs a reference.
4707 (find_jump_threads_backwards): Make visited_bbs live in the stack.
4708 * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
4709 comment.
4710
4711 2017-09-11 Max Filippov <jcmvbkbc@gmail.com>
4712
4713 PR target/82181
4714 * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
4715 words of E_DImode object are reachable by xtensa_uimm8x4 access.
4716
4717 2017-09-11 Vidya Praveen <vidyapraveen@arm.com>
4718
4719 Revert r251800 and r251799.
4720
4721 2017-09-11 Martin Jambor <mjambor@suse.cz>
4722
4723 PR hsa/82119
4724 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
4725 arguments in advance.
4726 * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
4727 use it to find predecessor edges.
4728 (naive_outof_ssa): Collect vector of predecessors.
4729
4730 2017-09-08 Jason Merrill <jason@redhat.com>
4731
4732 PR c++/70029 - ICE with ref-qualifier and -flto
4733 * langhooks.h (struct lang_hooks_for_types): Add
4734 copy_lang_qualifiers.
4735 * attribs.c (build_type_attribute_qual_variant): Use it.
4736 * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
4737 NULL.
4738 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
4739 * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
4740
4741 2017-09-08 Eric Botcazou <ebotcazou@adacore.com>
4742
4743 PR target/81988
4744 * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
4745 (*mulsi3_sp64): New instruction.
4746 (mulsi3): New expander.
4747
4748 2017-09-08 Uros Bizjak <ubizjak@gmail.com>
4749
4750 * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
4751
4752 2017-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4753
4754 * sancov.c: Include memmodel.h.
4755
4756 2017-09-07 Eric Botcazou <ebotcazou@adacore.com>
4757
4758 PR target/80897
4759 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
4760 large offsets.
4761
4762 2017-09-07 Carl Love <cel@us.ibm.com>
4763
4764 * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
4765 the sldi instruction.
4766
4767 2017-09-07 David Edelsohn <dje.gcc@gmail.com>
4768
4769 * sancov.c: Include tm_p.h.
4770
4771 2017-09-07 Jakub Jelinek <jakub@redhat.com>
4772
4773 PR target/81979
4774 * output.h (switch_to_other_text_partition): New declaration.
4775 * varasm.c (switch_to_other_text_partition): New function.
4776 * config/rs6000/rs6000.c (uses_TOC): Return 2 if
4777 NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
4778 (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
4779 to the other text partition before emitting LCL label and switch back
4780 after emitting the word after it.
4781
4782 2017-09-07 Richard Biener <rguenther@suse.de>
4783
4784 * passes.def (pass_split_crit_edges): Remove instance before PRE.
4785 * tree-ssa-pre.c (pass_pre::execute): Instead manually split
4786 critical edges here, after loop init.
4787 (pass_data_pre): Remove PROP_no_crit_edges flags.
4788 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
4789 for valueization of call args to avoid leaking VN_TOP.
4790 (visit_use): Assert we do not visit default defs.
4791 (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
4792 Use error_mark_node to more easily detect leaking VN_TOP.
4793 All default-defs are varying, not VN_TOP. Mark them visited.
4794 (run_scc_vn): Make code match comment.
4795
4796 2017-09-07 Michael Meissner <meissner@linux.vnet.ibm.com>
4797
4798 * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
4799 OPTION_MASK_FLOAT128_KEYWORD.
4800 (POWERPC_MASKS): Likewise.
4801 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
4802 support for the -mfloat128-type option, and make -mfloat128
4803 default on PowerPC Linux systems. Define or undefine
4804 __FLOAT128__ and __FLOAT128_HARDWARE__ for the current options.
4805 Define __float128 to be __ieee128 if IEEE 128-bit support is
4806 enabled, or undefine it.
4807 (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
4808 Delete defining __FLOAT128_TYPE__.
4809 * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
4810 -mfloat128-type option and make -mfloat128 default on PowerPC
4811 Linux systems.
4812 (TARGET_FLOAT128_TYPE): Likewise.
4813 (-mfloat128-type): Likewise.
4814 * config/rs6000/rs6000.c (rs6000_option_override_internal):
4815 Delete the -mfloat128-type option and make -mfloat128 default on
4816 PowerPC Linux systems. Always use __ieee128 to be the keyword for
4817 the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
4818 128-bit floating point is enabled. Change tests from using
4819 -mfloat128-type to -mfloat128.
4820 (rs6000_mangle_type): Use the correct mangling for the __float128
4821 type even if normal long double is restricted to 64-bits.
4822 (floatn_mode): Enable the _Float128 type by default on VSX Linux
4823 systems.
4824 * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
4825 (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
4826 (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
4827 -mfloat128-type.
4828 * doc/invoke.texi (RS/6000 and PowerPC Options): Update
4829 documentation for -mfloat128.
4830
4831 2017-09-06 Olivier Hainque <hainque@adacore.com>
4832
4833 * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
4834
4835 2017-09-06 Wish Wu <wishwu007@gmail.com>
4836 Jakub Jelinek <jakub@redhat.com>
4837
4838 * asan.c (initialize_sanitizer_builtins): Add
4839 BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
4840 BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
4841 BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
4842 BT_FN_VOID_UINT64_PTR variables.
4843 * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
4844 (BT_FN_VOID_UINT16_UINT16): Likewise.
4845 (BT_FN_VOID_UINT32_UINT32): Likewise.
4846 (BT_FN_VOID_FLOAT_FLOAT): Likewise.
4847 (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
4848 (BT_FN_VOID_UINT64_PTR): Likewise.
4849 * common.opt (flag_sanitize_coverage): New variable.
4850 (fsanitize-coverage=trace-pc): Remove.
4851 (fsanitize-coverage=): Add.
4852 * flag-types.h (enum sanitize_coverage_code): New enum.
4853 * fold-const.c (fold_range_test): Disable non-short-circuit
4854 optimization if flag_sanitize_coverage.
4855 (fold_truth_andor): Likewise.
4856 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
4857 * opts.c (COVERAGE_SANITIZER_OPT): Define.
4858 (coverage_sanitizer_opts): New array.
4859 (get_closest_sanitizer_option): Add OPTS argument, handle also
4860 OPT_fsanitize_coverage_.
4861 (parse_sanitizer_options): Adjusted to also handle
4862 OPT_fsanitize_coverage_.
4863 (common_handle_option): Add OPT_fsanitize_coverage_.
4864 * sancov.c (instrument_comparison, instrument_switch): New function.
4865 (sancov_pass): Add trace-cmp support.
4866 * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
4867 BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
4868 BUILT_IN_SANITIZER_COV_TRACE_CMP8,
4869 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
4870 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
4871 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
4872 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
4873 BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
4874 BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
4875 * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
4876
4877 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
4878
4879 * config/arm/parsecpu.awk (fatal): Note that we've encountered an
4880 error. Only quit immediately if parsing is complete.
4881 (BEGIN): Initialize fatal_err and parse_done.
4882 (begin fpu, end fpu): Check number of arguments.
4883 (begin arch, end arch): Likewise.
4884 (begin cpu, end cpu): Likewise.
4885 (cname, tune for, tune flags, architecture, fpu, option): Likewise.
4886 (optalias): Likewise.
4887
4888 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
4889
4890 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
4891 * config/arm/arm-isa.h: Delete. Move definitions to ...
4892 * arm-cpus.in: ... here. Use new feature and fgroup values.
4893 * config/arm/arm.c (arm_option_override): Use lower case for feature
4894 bit names.
4895 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
4896 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
4897 * config/arm/parsecpu.awk (END): Add new command 'isa'.
4898 (isa_pfx): Delete.
4899 (print_isa_bits_for): New function.
4900 (gen_isa): New function.
4901 (gen_comm_data): Use print_isa_bits_for.
4902 (define feature): New keyword.
4903 (define fgroup): New keyword.
4904 * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
4905 (arm-isa.h): Add rule to generate file.
4906 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
4907 case for feature bit names.
4908
4909 2017-09-06 Richard Biener <rguenther@suse.de>
4910
4911 * tree-ssa-pre.c (NECESSARY): Remove.
4912 (create_expression_by_pieces): Do not touch pass-local flags.
4913 (insert_into_preds_of_block): Likewise.
4914 (do_pre_regular_insertion): Likewise.
4915 (eliminate_insert): Likewise.
4916 (eliminate_dom_walker::before_dom_children): Likewise.
4917 (fini_eliminate): Do not look at inserted_exprs.
4918 (mark_operand_necessary): Remove.
4919 (remove_dead_inserted_code): Replace with simple work-list
4920 algorithm based on inserted_exprs and SSA uses.
4921 (pass_pre::execute): Re-order fini_eliminate and
4922 remove_dead_inserted_code.
4923
4924 2017-09-06 Olivier Hainque <hainque@adacore.com>
4925
4926 * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
4927 for VxWorks 7. Adjust surrounding comments.
4928
4929 2017-09-06 Richard Biener <rguenther@suse.de>
4930
4931 * gimple-ssa-strength-reduction.c
4932 (find_candidates_dom_walker::before_dom_children): Also allow
4933 pointer types.
4934
4935 2017-09-06 Richard Biener <rguenther@suse.de>
4936
4937 PR tree-optimization/82108
4938 * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
4939 for gap in the non-permutation SLP case.
4940
4941 2017-09-06 Martin Jambor <mjambor@suse.cz>
4942
4943 PR tree-optimization/82078
4944 * tree-sra.c (sort_and_splice_var_accesses): Move call to
4945 add_access_to_work_queue...
4946 (build_accesses_from_assign): ...here.
4947 (propagate_all_subaccesses): Make sure racc is the group
4948 representative, if there is one.
4949
4950 2017-09-06 Jakub Jelinek <jakub@redhat.com>
4951
4952 PR middle-end/82095
4953 * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
4954 NULL DECL_INITIAL.
4955
4956 2017-09-06 Richard Biener <rguenther@suse.de>
4957
4958 * gimple-ssa-strength-reduction.c
4959 (find_candidates_dom_walker::before_doom_children): Use a
4960 type and not a mode check.
4961
4962 2017-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
4963
4964 PR target/77308
4965 * config/arm/predicates.md (arm_general_adddi_operand): Create new
4966 non-vfp predicate.
4967 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
4968
4969 2017-09-05 Jeff Law <law@redhat.com>
4970
4971 PR tree-optimization/64910
4972 * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
4973 cases where we have 3 or more operands.
4974
4975 2017-09-05 Jakub Jelinek <jakub@redhat.com>
4976
4977 PR middle-end/81768
4978 * omp-low.c (lower_omp_for): Recompute tree invariant if
4979 gimple_omp_for_initial/final is ADDR_EXPR.
4980
4981 PR middle-end/81768
4982 * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
4983 into gimple val before gimplification fo the COND_EXPR.
4984
4985 2017-09-05 Aldy Hernandez <aldyh@redhat.com>
4986
4987 * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
4988 REGION_COPY argument.
4989 (thread_through_all_blocks): Remove unused argument to
4990 duplicate_thread_path.
4991
4992 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
4993 Alan Hayward <alan.hayward@arm.com>
4994 David Sherwood <david.sherwood@arm.com>
4995
4996 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
4997 Take a scalar_mode rather than a machine_mode.
4998 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
4999 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
5000 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
5001 (aarch64_gen_adjusted_ldpstp): Likewise.
5002 (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
5003
5004 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
5005 Alan Hayward <alan.hayward@arm.com>
5006 David Sherwood <david.sherwood@arm.com>
5007
5008 * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
5009 Take a scalar_int_mode instead of a machine_mode.
5010 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
5011 (aarch64_output_scalar_simd_mov_immediate): Likewise.
5012 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
5013 (aarch64_simd_attr_length_rglist): Delete.
5014 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
5015 a scalar_int_mode instead of a machine_mode.
5016 (aarch64_add_offset): Likewise.
5017 (aarch64_internal_mov_immediate): Likewise
5018 (aarch64_add_constant_internal): Likewise.
5019 (aarch64_add_constant): Likewise.
5020 (aarch64_movw_imm): Likewise.
5021 (aarch64_rtx_arith_op_extract_p): Likewise.
5022 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
5023 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
5024 Remove assert that the mode isn't a vector.
5025 (aarch64_output_scalar_simd_mov_immediate): Likewise.
5026 (aarch64_expand_mov_immediate): Update calls after above changes.
5027 (aarch64_output_casesi): Use as_a <scalar_int_mode>.
5028 (aarch64_and_bitmask_imm): Check for scalar integer modes.
5029 (aarch64_move_imm): Likewise.
5030 (aarch64_can_const_movi_rtx_p): Likewise.
5031 (aarch64_strip_extend): Likewise.
5032 (aarch64_extr_rtx_p): Likewise.
5033 (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
5034 a CONST_INT when the mode parameter is VOIDmode.
5035 (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
5036
5037 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
5038
5039 * machmode.h (bitwise_mode_for_mode): Return opt_mode.
5040 * stor-layout.c (bitwise_mode_for_mode): Likewise.
5041 (bitwise_type_for_mode): Update accordingly.
5042
5043 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
5044
5045 * stor-layout.h (mode_for_size_tree): Return an opt_mode.
5046 * stor-layout.c (mode_for_size_tree): Likewise.
5047 (mode_for_array): Update accordingly.
5048 (layout_decl): Likewise.
5049 (compute_record_mode): Likewise. Only set the mode once.
5050
5051 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
5052
5053 * target.def (get_mask_mode): Change return type to opt_mode.
5054 Expand commentary.
5055 * doc/tm.texi: Regenerate.
5056 * targhooks.h (default_get_mask_mode): Return an opt_mode.
5057 * targhooks.c (default_get_mask_mode): Likewise.
5058 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
5059 * optabs-query.c (can_vec_mask_load_store_p): Update use of
5060 targetm.get_mask_mode.
5061 * tree.c (build_truth_vector_type): Likewise.
5062
5063 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
5064
5065 * machmode.h (mode_for_vector): Return an opt_mode.
5066 * stor-layout.c (mode_for_vector): Likewise.
5067 (mode_for_int_vector): Update accordingly.
5068 (layout_type): Likewise.
5069 * config/i386/i386.c (emit_memmov): Likewise.
5070 (ix86_expand_set_or_movmem): Likewise.
5071 (ix86_expand_vector_init): Likewise.
5072 (ix86_get_mask_mode): Likewise.
5073 * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
5074 Likewise.
5075 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
5076 * expmed.c (extract_bit_field_1): Likewise.
5077 * expr.c (expand_expr_real_2): Likewise.
5078 * optabs-query.c (can_vec_perm_p): Likewise.
5079 (can_vec_mask_load_store_p): Likewise.
5080 * optabs.c (expand_vec_perm): Likewise.
5081 * targhooks.c (default_get_mask_mode): Likewise.
5082 * tree-vect-stmts.c (vectorizable_store): Likewise.
5083 (vectorizable_load): Likewise.
5084 (get_vectype_for_scalar_type_and_size): Likewise.
5085
5086 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
5087
5088 * machmode.h (mode_for_int_vector): New function.
5089 * stor-layout.c (mode_for_int_vector): Likewise.
5090 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
5091 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
5092 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
5093 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
5094 (s390_expand_vcond): Likewise.
5095
5096 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
5097
5098 * machmode.h (opt_machine_mode): New type.
5099 (opt_mode<T>): Allow construction from anything that can be
5100 converted to a T.
5101 (is_a, as_a, dyn_cast): Add overloads for opt_mode.
5102 (mode_for_size): Return an opt_machine_mode.
5103 * stor-layout.c (mode_for_size): Likewise.
5104 (mode_for_size_tree): Update call accordingly.
5105 (bitwise_mode_for_mode): Likewise.
5106 (make_fract_type): Likewise.
5107 (make_accum_type): Likewise.
5108 * caller-save.c (replace_reg_with_saved_mem): Update call
5109 accordingly.
5110 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
5111 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
5112 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
5113 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
5114 * expmed.c (extract_bit_field_1): Likewise.
5115 * reload.c (get_secondary_mem): Likewise.
5116 * varasm.c (assemble_integer): Likewise.
5117 * lower-subreg.c (simplify_subreg_concatn): Likewise. Move
5118 early-out.
5119
5120 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
5121
5122 * machmode.h (decimal_float_mode_for_size): New function.
5123 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
5124 (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
5125 (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
5126 (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
5127 (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
5128 (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
5129
5130 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
5131
5132 * builtins.c (expand_builtin_powi): Use int_mode_for_size.
5133 (get_builtin_sync_mode): Likewise.
5134 (expand_ifn_atomic_compare_exchange): Likewise.
5135 (expand_builtin_atomic_clear): Likewise.
5136 (expand_builtin_atomic_test_and_set): Likewise.
5137 (fold_builtin_atomic_always_lock_free): Likewise.
5138 * calls.c (compute_argument_addresses): Likewise.
5139 (emit_library_call_value_1): Likewise.
5140 (store_one_arg): Likewise.
5141 * combine.c (combine_instructions): Likewise.
5142 * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
5143 * config/arm/arm.c (arm_function_value): Likewise.
5144 (aapcs_allocate_return_reg): Likewise.
5145 * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
5146 * config/i386/i386.c (construct_container): Likewise.
5147 (ix86_gimplify_va_arg): Likewise.
5148 (ix86_expand_sse_cmp): Likewise.
5149 (emit_memmov): Likewise.
5150 (emit_memset): Likewise.
5151 (expand_small_movmem_or_setmem): Likewise.
5152 (ix86_expand_pextr): Likewise.
5153 (ix86_expand_pinsr): Likewise.
5154 * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
5155 * config/microblaze/microblaze.c (microblaze_block_move_straight):
5156 Likewise.
5157 * config/mips/mips.c (mips_function_value_1) Likewise.
5158 (mips_block_move_straight): Likewise.
5159 (mips_expand_ins_as_unaligned_store): Likewise.
5160 * config/powerpcspe/powerpcspe.c
5161 (rs6000_darwin64_record_arg_advance_flush): Likewise.
5162 (rs6000_darwin64_record_arg_flush): Likewise.
5163 * config/rs6000/rs6000.c
5164 (rs6000_darwin64_record_arg_advance_flush): Likewise.
5165 (rs6000_darwin64_record_arg_flush): Likewise.
5166 * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
5167 (sparc_function_value_1): Likewise.
5168 * config/spu/spu.c (adjust_operand): Likewise.
5169 (spu_emit_branch_or_set): Likewise.
5170 (arith_immediate_p): Likewise.
5171 * emit-rtl.c (gen_lowpart_common): Likewise.
5172 * expr.c (expand_expr_real_1): Likewise.
5173 * function.c (assign_parm_setup_block): Likewise.
5174 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
5175 * reload1.c (alter_reg): Likewise.
5176 * stor-layout.c (mode_for_vector): Likewise.
5177 (layout_type): Likewise.
5178
5179 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
5180
5181 * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
5182 (spu_convert_move): Likewise.
5183 * lower-subreg.c (resolve_simple_move): Likewise.
5184
5185 2017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5186
5187 PR target/81833
5188 * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
5189 define_insn to a define_expand.
5190 (altivec_vsum2sws_direct): New define_insn.
5191 (altivec_vsumsws): Convert from a define_insn to a define_expand.
5192
5193 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
5194
5195 * config/arm/arm.c (arm_option_params_internal): Improve setting of
5196 max_insns_skipped.
5197
5198 2017-09-05 H.J. Lu <hongjiu.lu@intel.com>
5199
5200 PR target/59501
5201 PR target/81624
5202 PR target/81769
5203 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
5204 realign stack if stack alignment needed is less than incoming
5205 stack boundary.
5206
5207 2017-09-05 Marek Polacek <polacek@redhat.com>
5208
5209 PR sanitizer/82072
5210 * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
5211 check earlier.
5212
5213 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
5214
5215 * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
5216
5217 2017-09-05 Richard Biener <rguenther@suse.de>
5218
5219 PR tree-optimization/82084
5220 * fold-const.c (can_native_encode_string_p): Handle wide characters.
5221
5222 2017-09-05 Richard Biener <rguenther@suse.de>
5223
5224 PR tree-optimization/82102
5225 * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
5226
5227 2017-09-05 Martin Liska <mliska@suse.cz>
5228
5229 PR tree-optimization/82032
5230 * tree-cfg.c (generate_range_test): New function.
5231 * tree-cfg.h (generate_range_test): Declared here.
5232 * tree-cfgcleanup.c (convert_single_case_switch): New function.
5233 (cleanup_control_expr_graph): Use it.
5234 * tree-switch-conversion.c (try_switch_expansion): Remove
5235 assert.
5236 (emit_case_nodes): Use generate_range_test.
5237
5238 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
5239
5240 PR target/82098
5241 * config/i386/i386.md (*<btsc><mode>_mask): Add
5242 TARGET_USE_BT to insn constraint.
5243 (*btr<mode>_mask): Ditto.
5244
5245 2017-09-04 Wilco Dijkstra <wdijkstr@arm.com>
5246
5247 * config/arm/arm.c (arm_legitimate_index_p): Add comment.
5248 (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
5249
5250 2017-09-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
5251
5252 PR target/77308
5253 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
5254 TARGET_NEON and TARGET_IWMMXT.
5255 (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
5256 TARGET_NEON and TARGET_IWMMXT.
5257 (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
5258
5259 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
5260
5261 * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
5262 (ix86_rewrite_tls_address): Ditto.
5263 * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
5264 (ix86_rewrite_tls_address_1): Ditto.
5265 (ix86_rewrite_tls_address): Ditto.
5266 * config/i386/predicates.md (tls_address_pattern): New predicate.
5267 * config/i386/i386.md (TLS address splitter): New splitter.
5268
5269 2017-09-04 Richard Biener <rguenther@suse.de>
5270
5271 PR tree-optimization/82084
5272 * fold-const.h (can_native_encode_string_p): Declare.
5273 * fold-const.c (can_native_encode_string_p): Factor out from ...
5274 (native_encode_string): ... here.
5275 * tree-vect-stmts.c (vectorizable_store): Call it to avoid
5276 vectorizing stores from constants we later cannot handle.
5277
5278 2017-09-04 Marek Polacek <polacek@redhat.com>
5279
5280 PR c/81783
5281 * doc/invoke.texi: Update -Wtautological-compare documentation.
5282
5283 2017-09-04 Jeff Law <law@redhat.com>
5284
5285 PR tree-optimization/64910
5286 * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
5287 swap the first and last operand if the last is a constant.
5288
5289 2017-09-04 Marek Polacek <polacek@redhat.com>
5290
5291 PR sanitizer/82072
5292 * convert.c (do_narrow): When sanitizing signed integer overflows,
5293 bail out for signed types.
5294 (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
5295
5296 2017-09-04 Richard Biener <rguenther@suse.de>
5297
5298 PR tree-optimization/82060
5299 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5300 Move devirtualization after stmt folding and before EH/AB/noreturn
5301 cleanup to get the stmt refs canonicalized. Use a bool instead
5302 of gimple_modified_p since that doesn't work for NOPs. Schedule
5303 NOPs generated by folding for removal.
5304
5305 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
5306 Alan Hayward <alan.hayward@arm.com>
5307 David Sherwood <david.sherwood@arm.com>
5308
5309 * coretypes.h (pad_direction): New enum.
5310 * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
5311 (FUNCTION_ARG_PADDING): Likewise.
5312 * target.def (function_arg_padding): New hook.
5313 * targhooks.h (default_function_arg_padding): Declare.
5314 * targhooks.c (default_function_arg_padding): New function.
5315 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
5316 (TARGET_FUNCTION_ARG_PADDING): ...this.
5317 * doc/tm.texi: Regenerate.
5318 * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
5319 instead of direction.
5320 (compute_argument_addresses): Likewise.
5321 (load_register_parameters): Likewise.
5322 (emit_library_call_value_1): Likewise.
5323 (store_one_arg): Use targetm.calls.function_arg_padding instead
5324 of FUNCTION_ARG_PADDING.
5325 (must_pass_in_stack_var_size_or_pad): Likewise.
5326 * expr.c (emit_group_load_1): Use pad_direction instead of direction.
5327 (emit_group_store): Likewise.
5328 (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
5329 instead of FUNCTION_ARG_PADDING.
5330 (emit_push_insn): Likewise, and propagate enum change throughout
5331 function.
5332 * function.h (direction): Delete.
5333 (locate_and_pad_arg_data::where_pad): Use pad_direction instead
5334 of direction.
5335 * function.c (assign_parm_find_stack_rtl): Likewise.
5336 (assign_parm_setup_block_p): Likewise.
5337 (assign_parm_setup_block): Likewise.
5338 (gimplify_parameters): Likewise.
5339 (locate_and_pad_parm): Use targetm.calls.function_arg_padding
5340 instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
5341 function.
5342 * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
5343 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
5344 * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
5345 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
5346 (aarch64_function_arg_padding): ...this new function.
5347 (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
5348 (TARGET_FUNCTION_ARG_PADDING): Redefine.
5349 * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
5350 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
5351 * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
5352 * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5353 (arm_pad_arg_upward): Replace with...
5354 (arm_function_arg_padding): ...this new function.
5355 * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
5356 of direction.
5357 * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
5358 * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
5359 * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5360 (ia64_hpux_function_arg_padding): Replace with...
5361 (ia64_function_arg_padding): ...this new function. Use pad_direction
5362 instead of direction. Check for TARGET_HPUX.
5363 * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
5364 * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5365 (iq2000_function_arg_padding): New function.
5366 * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
5367 * config/mips/mips.c (mips_pad_arg_upward): Replace with...
5368 (mips_function_arg_padding): ...this new function.
5369 (mips_pad_reg_upward): Update accordingly.
5370 (TARGET_FUNCTION_ARG_PADDING): Redefine.
5371 * config/mips/mips.h (PAD_VARARGS_DOWN): Use
5372 targetm.calls.function_arg_padding.
5373 (FUNCTION_ARG_PADDING): Delete.
5374 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
5375 * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
5376 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
5377 * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
5378 (nios2_block_reg_padding): Return pad_direction instead of direction.
5379 * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
5380 instead of direction.
5381 (nios2_function_arg_padding): Likewise. Make static.
5382 (TARGET_FUNCTION_ARG_PADDING): Redefine.
5383 * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
5384 (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
5385 * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
5386 * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5387 (pa_function_arg_padding): Make static. Return pad_direction instead
5388 of direction.
5389 * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
5390 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
5391 * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
5392 instead of direction. Use targetm.calls.function_arg_padding.
5393 * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
5394 * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
5395 * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
5396 * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
5397 * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
5398 Redefine.
5399 (function_arg_padding): Rename to...
5400 (rs6000_function_arg_padding): ...this. Make static. Return
5401 pad_direction instead of direction.
5402 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
5403 * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
5404 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
5405 * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
5406 instead of direction. Use targetm.calls.function_arg_padding.
5407 * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
5408 * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
5409 * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
5410 * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
5411 * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5412 (function_arg_padding): Rename to...
5413 (rs6000_function_arg_padding): ...this. Make static. Return
5414 pad_direction instead of direction.
5415 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
5416 * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
5417 * config/s390/s390.c (s390_function_arg_padding): New function.
5418 (TARGET_FUNCTION_ARG_PADDING): Redefine.
5419 * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
5420 * config/sparc/sparc-protos.h (function_arg_padding): Delete.
5421 * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5422 (function_arg_padding): Rename to...
5423 (sparc_function_arg_padding): ...this. Make static. Return
5424 pad_direction instead of direction.
5425 * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
5426 * config/spu/spu.c (spu_function_arg_padding): New function.
5427 (TARGET_FUNCTION_ARG_PADDING): Redefine.
5428 * system.h (FUNCTION_ARG_PADDING): Poison.
5429
5430 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
5431 Alan Hayward <alan.hayward@arm.com>
5432 David Sherwood <david.sherwood@arm.com>
5433
5434 * target.def (modes_tieable_p): New hook.
5435 * doc/tm.texi (MODES_TIEABLE_P): Replace with...
5436 (TARGET_MODES_TIEABLE_P): ...this.
5437 * doc/tm.texi.in: Regenerate.
5438 * hooks.h (hook_bool_mode_mode_true): Declare.
5439 * hooks.c (hook_bool_mode_mode_true): New function.
5440 * combine.c (subst): Use targetm.modes_tieable_p instead of
5441 MODES_TIEABLE_P.
5442 * dse.c (find_shift_sequence): Likewise.
5443 * expmed.c (extract_low_bits): Likewise.
5444 * lower-subreg.c: Include target.h.
5445 (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
5446 MODES_TIEABLE_P.
5447 * rtlanal.c (rtx_cost): Likewise.
5448 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
5449 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
5450 * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
5451 (TARGET_MODES_TIEABLE_P): Redefine.
5452 * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
5453 * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
5454 (TARGET_MODES_TIEABLE_P): Redefine.
5455 * config/arc/arc.h (MODES_TIEABLE_P): Delete.
5456 * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
5457 (arc_modes_tieable_p): New function.
5458 * config/arm/arm.h (MODES_TIEABLE_P): Delete.
5459 * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
5460 * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
5461 (arm_modes_tieable_p): Make static.
5462 * config/avr/avr.h (MODES_TIEABLE_P): Delete.
5463 * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
5464 * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
5465 (TARGET_MODES_TIEABLE_P): Redefine.
5466 * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
5467 * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
5468 (TARGET_MODES_TIEABLE_P): Redefine.
5469 * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
5470 * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
5471 (cr16_modes_tieable_p): New function.
5472 * config/cris/cris.h (MODES_TIEABLE_P): Delete.
5473 * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
5474 * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
5475 (TRULY_NOOP_TRUNCATION): Update comment.
5476 * config/frv/frv.h (MODES_TIEABLE_P): Delete.
5477 (TRULY_NOOP_TRUNCATION): Update comment.
5478 * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
5479 (frv_modes_tieable_p): New function.
5480 * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
5481 * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
5482 * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
5483 (TARGET_MODES_TIEABLE_P): Redefine.
5484 * config/i386/i386.h (MODES_TIEABLE_P): Delete.
5485 * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
5486 * config/i386/i386.c (ix86_modes_tieable_p): Make static.
5487 (TARGET_MODES_TIEABLE_P): Redefine.
5488 * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
5489 * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
5490 (ia64_modes_tieable_p): New function.
5491 * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
5492 * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
5493 (iq2000_modes_tieable_p): New function.
5494 * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
5495 * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
5496 (lm32_modes_tieable_p): New function.
5497 * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
5498 * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
5499 * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
5500 (TARGET_MODES_TIEABLE_P): Redefine.
5501 * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
5502 * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
5503 (m32r_modes_tieable_p): New function.
5504 * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
5505 * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
5506 (m68k_modes_tieable_p): New function.
5507 * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
5508 * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
5509 (mcore_modes_tieable_p): New function.
5510 * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
5511 * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
5512 function.
5513 (TARGET_MODES_TIEABLE_P): Redefine.
5514 * config/mips/mips.h (MODES_TIEABLE_P): Delete.
5515 * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
5516 * config/mips/mips.c (mips_modes_tieable_p): Make static.
5517 (TARGET_MODES_TIEABLE_P): Redefine.
5518 * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
5519 * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
5520 * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
5521 * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
5522 (mn10300_modes_tieable_p): ...this and make static.
5523 (TARGET_MODES_TIEABLE_P): Redefine.
5524 * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
5525 * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
5526 * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
5527 * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
5528 (msp430_modes_tieable_p): Make static.
5529 * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
5530 * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
5531 (TARGET_MODES_TIEABLE_P): Redefine.
5532 * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
5533 * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
5534 * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
5535 (TARGET_MODES_TIEABLE_P): Redefine.
5536 * config/pa/pa.h (MODES_TIEABLE_P): Delete.
5537 * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
5538 * config/pa/pa.c (pa_modes_tieable_p): Make static.
5539 (TARGET_MODES_TIEABLE_P): Redefine.
5540 * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
5541 * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
5542 (pdp11_modes_tieable_p): New function.
5543 * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
5544 * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
5545 (rs6000_modes_tieable_p): New function.
5546 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
5547 * config/powerpcspe/powerpcspe.md: Update comment.
5548 * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
5549 * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
5550 (TARGET_MODES_TIEABLE_P): Redefine.
5551 * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
5552 * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
5553 (rl78_modes_tieable_p): New function.
5554 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
5555 * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
5556 (rs6000_modes_tieable_p): New function.
5557 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
5558 * config/rs6000/rs6000.md: Update comment.
5559 * config/rx/rx.h (MODES_TIEABLE_P): Delete.
5560 * config/rx/rx.c (rx_modes_tieable_p): New function.
5561 (TARGET_MODES_TIEABLE_P): Redefine.
5562 * config/s390/s390.h (MODES_TIEABLE_P): Delete.
5563 * config/s390/s390.c (s390_modes_tieable_p): New function.
5564 (TARGET_MODES_TIEABLE_P): Redefine.
5565 * config/sh/sh.h (MODES_TIEABLE_P): Delete.
5566 * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
5567 (sh_modes_tieable_p): New function.
5568 * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
5569 * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
5570 * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
5571 (sparc_modes_tieable_p): Make static.
5572 * config/spu/spu.h (MODES_TIEABLE_P): Delete.
5573 * config/spu/spu.c (spu_modes_tieable_p): New function.
5574 (TARGET_MODES_TIEABLE_P): Redefine.
5575 * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
5576 * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
5577 (TARGET_MODES_TIEABLE_P): Redefine.
5578 * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
5579 * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
5580 * config/v850/v850.h (MODES_TIEABLE_P): Delete.
5581 * config/v850/v850.c (v850_modes_tieable_p): New function.
5582 (TARGET_MODES_TIEABLE_P): Redefine.
5583 * config/vax/vax.h (MODES_TIEABLE_P): Delete.
5584 * config/visium/visium.h (MODES_TIEABLE_P): Delete.
5585 * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
5586 (visium_modes_tieable_p): New function.
5587 * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
5588 * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
5589 (xtensa_modes_tieable_p): New function.
5590 * system.h (MODES_TIEABLE_P): Poison.
5591
5592 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
5593 Alan Hayward <alan.hayward@arm.com>
5594 David Sherwood <david.sherwood@arm.com>
5595
5596 * target.def (hard_regno_mode_ok): New hook.
5597 * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
5598 (TARGET_HARD_REGNO_MODE_OK): ...this.
5599 * doc/tm.texi.in: Regenerate.
5600 * hooks.h (hook_bool_uint_mode_true): Declare.
5601 * hooks.c (hook_bool_uint_mode_true): New function.
5602 * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
5603 HARD_REGNO_MODE_OK.
5604 * genpreds.c (write_insn_preds_c): Add an include of target.h.
5605 * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
5606 instead of HARD_REGNO_MODE_OK.
5607 * caller-save.c: Include target.h.
5608 (reg_save_code): Use targetm.hard_regno_mode_ok instead of
5609 HARD_REGNO_MODE_OK.
5610 * combine.c (can_combine_p): Likewise.
5611 (combinable_i3pat): Likewise.
5612 (can_change_dest_mode): Likewise.
5613 * expr.c (init_expr_target): Likewise.
5614 (convert_move): Likewise.
5615 (convert_modes): Likewise.
5616 * ira.c (setup_prohibited_class_mode_regs): Likewise.
5617 (setup_prohibited_mode_move_regs): Likewise.
5618 * ira.h (target_ira): Likewise.
5619 * lra-assigns.c (find_hard_regno_for_1): Likewise.
5620 * lra-constraints.c (process_alt_operands): Likewise.
5621 (split_reg): Likewise.
5622 * recog.c (peep2_find_free_register): Likewise.
5623 * ree.c (combine_reaching_defs): Likewise.
5624 * regcprop.c (maybe_mode_change): Likewise.
5625 * reginfo.c (init_reg_sets_1): Likewise.
5626 (choose_hard_reg_mode): Likewise.
5627 (simplifiable_subregs): Likewise.
5628 * regrename.c (check_new_reg_p): Likewise.
5629 * reload.c (find_valid_class): Likewise.
5630 (find_valid_class_1): Likewise.
5631 (reload_inner_reg_of_subreg): Likewise.
5632 (push_reload): Likewise.
5633 (combine_reloads): Likewise.
5634 (find_dummy_reload): Likewise.
5635 (find_reloads): Likewise.
5636 * reload1.c (find_reg): Likewise.
5637 (set_reload_reg): Likewise.
5638 (allocate_reload_reg): Likewise.
5639 (choose_reload_regs): Likewise.
5640 (reload_adjust_reg_for_temp): Likewise.
5641 * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
5642 (simplify_subreg_regno): Likewise.
5643 * sel-sched.c (init_regs_for_mode): Likewise.
5644 * varasm.c (make_decl_rtl): Likewise.
5645 * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
5646 (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
5647 HARD_REGNO_MODE_OK.
5648 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
5649 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
5650 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5651 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
5652 * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
5653 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5654 * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
5655 (arc_mode_class): Delete.
5656 (HARD_REGNO_MODE_OK): Delete.
5657 * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5658 (arc_hard_regno_mode_ok): Rename old array to...
5659 (arc_hard_regno_mode_ok_modes): ...this.
5660 (arc_conditional_register_usage): Update accordingly.
5661 (arc_mode_class): Make static.
5662 (arc_hard_regno_mode_ok): New function.
5663 * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
5664 * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
5665 * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5666 (arm_hard_regno_mode_ok): Make static.
5667 * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
5668 HARD_REGNO_MODE_OK.
5669 * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
5670 * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
5671 * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
5672 return a bool.
5673 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5674 * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
5675 * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
5676 * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
5677 (bfin_hard_regno_mode_ok): ...this. Make static and return a bool.
5678 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5679 * config/bfin/predicates.md (valid_reg_operand): Use
5680 targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
5681 * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
5682 * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
5683 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5684 * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
5685 * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
5686 * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5687 (cr16_hard_regno_mode_ok): Make static and return a bool.
5688 * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
5689 * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5690 (cris_hard_regno_mode_ok): New function.
5691 * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
5692 (epiphany_mode_class): Delete.
5693 (HARD_REGNO_MODE_OK): Delete.
5694 * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
5695 * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5696 (hard_regno_mode_ok): Rename to...
5697 (epiphany_hard_regno_mode_ok): ...this. Make static and return a bool.
5698 * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
5699 * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
5700 HARD_REGNO_MODE_OK.
5701 * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
5702 * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
5703 * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5704 (frv_hard_regno_mode_ok): Make static and return a bool.
5705 * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
5706 HARD_REGNO_MODE_OK.
5707 * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
5708 * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
5709 * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
5710 * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
5711 and return a bool.
5712 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5713 * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
5714 * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
5715 * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
5716 return a bool.
5717 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5718 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
5719 * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5720 (ia64_hard_regno_mode_ok): New function.
5721 * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
5722 * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5723 (iq2000_hard_regno_mode_ok): New function.
5724 * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
5725 * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5726 (lm32_hard_regno_mode_ok): New function.
5727 * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
5728 * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
5729 * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
5730 instead of HARD_REGNO_MODE_OK.
5731 (m32c_hard_regno_ok): Rename to...
5732 (m32c_hard_regno_mode_ok): ...this. Make static and return a bool.
5733 (m32c_cannot_change_mode_class): Update accordingly.
5734 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5735 * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
5736 (m32r_mode_class): Delete.
5737 (HARD_REGNO_MODE_OK): Delete.
5738 * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5739 (m32r_hard_regno_mode_ok): Rename to...
5740 (m32r_hard_regno_modes): ...this.
5741 (m32r_mode_class): Make static.
5742 (m32r_hard_regno_mode_ok): New function.
5743 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
5744 * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
5745 * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5746 (m68k_hard_regno_mode_ok): Make static.
5747 * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
5748 * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5749 (mcore_hard_regno_mode_ok): New function.
5750 * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
5751 (HARD_REGNO_MODE_OK): Delete.
5752 * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
5753 Rename to...
5754 (microblaze_hard_regno_mode_ok_p): ...this and make static.
5755 (microblaze_hard_regno_mode_ok): New function.
5756 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5757 * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
5758 (mips_hard_regno_mode_ok): Delete.
5759 * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
5760 (mips_hard_regno_mode_ok_p): ...this and make static.
5761 (mips_hard_regno_mode_ok_p): Rename to...
5762 (mips_hard_regno_mode_ok_uncached): ...this.
5763 (mips_hard_regno_mode_ok): New function.
5764 (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
5765 of HARD_REGNO_MODE_OK.
5766 (mips_option_override): Update after above name changes.
5767 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5768 * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
5769 * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
5770 * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
5771 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
5772 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5773 * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
5774 * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
5775 * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
5776 * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5777 (msp430_hard_regno_mode_ok): Make static and return a bool.
5778 * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
5779 * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
5780 * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
5781 and return a bool.
5782 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5783 * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
5784 * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
5785 * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
5786 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
5787 (PA_HARD_REGNO_MODE_OK): ...this
5788 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
5789 (PA_HARD_REGNO_MODE_OK): ...this.
5790 * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5791 (pa_hard_regno_mode_ok): New function.
5792 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
5793 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5794 (pdp11_hard_regno_mode_ok): New function.
5795 * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
5796 * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
5797 Delete.
5798 * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
5799 Make static.
5800 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5801 (rs6000_hard_regno_mode_ok): Rename to...
5802 (rs6000_hard_regno_mode_ok_uncached): ...this.
5803 (rs6000_init_hard_regno_mode_ok): Update accordingly.
5804 (rs6000_hard_regno_mode_ok): New function.
5805 * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
5806 * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
5807 * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
5808 (riscv_hard_regno_mode_ok): ...this and make static.
5809 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5810 * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
5811 * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
5812 * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5813 (rl78_hard_regno_mode_ok): Make static and return bool.
5814 * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
5815 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5816 Delete.
5817 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
5818 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5819 (rs6000_hard_regno_mode_ok): Rename to...
5820 (rs6000_hard_regno_mode_ok_uncached): ...this.
5821 (rs6000_init_hard_regno_mode_ok): Update accordingly.
5822 (rs6000_hard_regno_mode_ok): New function.
5823 * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
5824 * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
5825 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5826 * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
5827 * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
5828 * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
5829 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5830 * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
5831 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
5832 * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5833 (sh_hard_regno_mode_ok): Make static.
5834 * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
5835 instead of HARD_REGNO_MODE_OK.
5836 * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
5837 (sparc_mode_class): Delete.
5838 (HARD_REGNO_MODE_OK): Delete.
5839 * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5840 (hard_regno_mode_classes): Make static.
5841 (sparc_mode_class): Likewise.
5842 (sparc_hard_regno_mode_ok): New function.
5843 * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
5844 * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
5845 * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
5846 function.
5847 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5848 * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
5849 * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
5850 * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
5851 * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
5852 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5853 * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
5854 * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
5855 * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5856 (visium_hard_regno_mode_ok): New function.
5857 * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
5858 instead of HARD_REGNO_MODE_OK.
5859 * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
5860 (HARD_REGNO_MODE_OK): Delete.
5861 * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
5862 (xtensa_hard_regno_mode_ok_p): ...this and make static.
5863 (xtensa_option_override): Update accordingly.
5864 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5865 (xtensa_hard_regno_mode_ok): New function.
5866 * system.h (HARD_REGNO_MODE_OK): Poison.
5867
5868 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
5869 Alan Hayward <alan.hayward@arm.com>
5870 David Sherwood <david.sherwood@arm.com>
5871
5872 * target.def (hard_regno_call_part_clobbered): New hook.
5873 * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
5874 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
5875 * doc/tm.texi: Regenerate.
5876 * hooks.h (hook_bool_uint_mode_false): Declare.
5877 * hooks.c (hook_bool_uint_mode_false): New function.
5878 * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5879 * cselib.c (cselib_process_insn): Use
5880 targetm.hard_regno_call_part_clobbered instead of
5881 HARD_REGNO_CALL_PART_CLOBBERED.
5882 * ira-conflicts.c (ira_build_conflicts): Likewise.
5883 * ira-costs.c (ira_tune_allocno_costs): Likewise.
5884 * lra-constraints.c (need_for_call_save_p): Likewise.
5885 * lra-lives.c: Include target.h.
5886 (check_pseudos_live_through_calls): Use
5887 targetm.hard_regno_call_part_clobbered instead of
5888 HARD_REGNO_CALL_PART_CLOBBERED.
5889 * regcprop.c: Include target.h.
5890 (copyprop_hardreg_forward_1): Use
5891 targetm.hard_regno_call_part_clobbered instead of
5892 HARD_REGNO_CALL_PART_CLOBBERED.
5893 * reginfo.c (choose_hard_reg_mode): Likewise.
5894 * regrename.c (check_new_reg_p): Likewise.
5895 * reload.c (find_equiv_reg): Likewise.
5896 * reload1.c (emit_reload_insns): Likewise.
5897 * sched-deps.c (deps_analyze_insn): Likewise.
5898 * sel-sched.c (init_regs_for_mode): Likewise.
5899 (mark_unavailable_hard_regs): Likewise.
5900 * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
5901 * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5902 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
5903 New function.
5904 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5905 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5906 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
5907 Delete.
5908 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
5909 and return a bool.
5910 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5911 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5912 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
5913 function.
5914 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5915 * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5916 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
5917 function.
5918 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5919 * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
5920 Delete.
5921 * config/powerpcspe/powerpcspe.c
5922 (rs6000_hard_regno_call_part_clobbered): New function.
5923 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5924 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5925 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
5926 New function.
5927 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5928 * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5929 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
5930 function.
5931 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5932 * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5933 * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
5934
5935 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
5936 Alan Hayward <alan.hayward@arm.com>
5937 David Sherwood <david.sherwood@arm.com>
5938
5939 * rtl.h (subreg_memory_offset): Declare.
5940 * emit-rtl.c (subreg_memory_offset): New function.
5941 * expmed.c (store_bit_field_1): Use it.
5942 * expr.c (undefined_operand_subword_p): Likewise.
5943 * simplify-rtx.c (simplify_subreg): Likewise.
5944
5945 2017-09-04 Alexander Monakov <amonakov@ispras.ru>
5946
5947 PR rtl-optimization/57448
5948 PR target/67458
5949 PR target/81316
5950 * optabs.c (expand_atomic_load): Place compiler memory barriers if
5951 using atomic_load pattern.
5952 (expand_atomic_store): Likewise.
5953
5954 2017-09-04 Jakub Jelinek <jakub@redhat.com>
5955
5956 PR sanitizer/81981
5957 * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
5958 and UBSAN_BOUNDS internal calls. Clean up IFN_UBSAN_OBJECT_SIZE
5959 handling. Use replace_call_with_value with NULL instead of
5960 gsi_replace, unlink_stmt_vdef and release_defs.
5961
5962 * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
5963 instead of tab.
5964
5965 * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
5966
5967 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
5968
5969 PR bootstrap/82045
5970 * rtl.h (emit_library_call_value_1): Declare.
5971 (emit_library_call): Replace declaration with a series of overloads.
5972 Remove the parameter count argument.
5973 (emit_library_call_value): Likewise.
5974 * calls.c (emit_library_call_value_1): Make global. Replace varargs
5975 with an "rtx_mode_t *".
5976 (emit_library_call_value): Delete.
5977 (emit_library_call): Likewise.
5978 * asan.c (asan_emit_stack_protection): Update calls accordingly.
5979 (asan_emit_allocas_unpoison): Likewise.
5980 * builtins.c (expand_builtin_powi): Likewise.
5981 (expand_asan_emit_allocas_unpoison): Likewise.
5982 * cfgexpand.c (expand_main_function): Likewise.
5983 * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
5984 * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
5985 * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
5986 * config/arm/arm.c (arm_trampoline_init): Likewise.
5987 (arm_call_tls_get_addr): Likewise.
5988 (arm_expand_divmod_libfunc): Likewise.
5989 * config/bfin/bfin.md (umulsi3_highpart): Likewise.
5990 (smulsi3_highpart): Likewise.
5991 * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
5992 (c6x_expand_compare): Likewise.
5993 (c6x_expand_movmem): Likewise.
5994 * config/frv/frv.c (frv_trampoline_init): Likewise.
5995 * config/i386/i386.c (ix86_trampoline_init): Likewise.
5996 (ix86_expand_divmod_libfunc): Likewise.
5997 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
5998 (ia64_expand_compare): Likewise.
5999 (ia64_profile_hook): Likewise.
6000 * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
6001 (nonlocal_goto): Likewise.
6002 (restore_stack_nonlocal): Likewise.
6003 * config/m32r/m32r.c (block_move_call): Likewise.
6004 (m32r_trampoline_init): Likewise.
6005 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
6006 * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
6007 (m68k_call_m68k_read_tp): Likewise.
6008 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
6009 (microblaze_expand_divide): Likewise.
6010 * config/mips/mips.h (mips_args): Likewise.
6011 * config/mips/sdemtk.h (mips_sync_icache): Likewise.
6012 (MIPS_ICACHE_SYNC): Likewise.
6013 * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
6014 (nios2_trampoline_init): Likewise.
6015 * config/pa/pa.c (hppa_tls_call): Likewise.
6016 (pa_trampoline_init): Likewise.
6017 * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
6018 * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
6019 (expand_strn_compare): Likewise.
6020 (rs6000_generate_compare): Likewise.
6021 (rs6000_expand_float128_convert): Likewise.
6022 (output_profile_hook): Likewise.
6023 (rs6000_trampoline_init): Likewise.
6024 * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
6025 * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
6026 * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
6027 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
6028 (rs6000_generate_compare): Likewise.
6029 (rs6000_expand_float128_convert): Likewise.
6030 (output_profile_hook): Likewise.
6031 (rs6000_trampoline_init): Likewise.
6032 * config/rs6000/rs6000.md (neg<mode>2): Likewise.
6033 * config/sh/sh.c (sh_trampoline_init): Likewise.
6034 * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
6035 (sparc_emit_float_lib_cmp): Likewise.
6036 (sparc32_initialize_trampoline): Likewise.
6037 (sparc64_initialize_trampoline): Likewise.
6038 (sparc_profile_hook): Likewise.
6039 * config/spu/spu.c (ea_load_store): Likewise.
6040 * config/spu/spu.md (floatunssidf2): Likewise.
6041 * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
6042 * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
6043 * config/visium/visium.c (expand_block_move_4): Likewise.
6044 (expand_block_move_2): Likewise.
6045 (expand_block_move_1): Likewise.
6046 (expand_block_set_4): Likewise.
6047 (expand_block_set_2): Likewise.
6048 (expand_block_set_1): Likewise.
6049 (visium_trampoline_init): Likewise.
6050 (visium_profile_hook): Likewise.
6051 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
6052 (xtensa_setup_frame_addresses): Likewise.
6053 (xtensa_trampoline_init): Likewise.
6054 * except.c (sjlj_emit_function_enter): Likewise.
6055 (sjlj_emit_function_exit): Likewise.
6056 * explow.c (allocate_dynamic_stack_space): Likewise.
6057 (probe_stack_range): Likewise.
6058 * expr.c (convert_mode_scalar): Likewise.
6059 * optabs.c (expand_binop): Likewise.
6060 (expand_twoval_binop_libfunc): Likewise.
6061 (expand_unop): Likewise.
6062 (prepare_cmp_insn): Likewise.
6063 (prepare_float_lib_cmp): Likewise.
6064 (expand_float): Likewise.
6065 (expand_fix): Likewise.
6066 (expand_fixed_convert): Likewise.
6067 (maybe_emit_sync_lock_test_and_set): Likewise.
6068 (expand_atomic_compare_and_swap): Likewise.
6069 (expand_mem_thread_fence): Likewise.
6070 (expand_atomic_fetch_op): Likewise.
6071
6072 2017-09-03 Gerald Pfeifer <gerald@pfeifer.com>
6073
6074 * doc/generic.texi (OpenACC): Adjust URL.
6075 * doc/invoke.texi (C Dialect Options): Ditto.
6076
6077 2017-09-03 Uros Bizjak <ubizjak@gmail.com>
6078
6079 * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
6080 predicate for operand 1. Add (m,<S>) constraint.
6081 (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
6082 Prevent memory operand 1 with register operand 2.
6083
6084 2017-09-01 Segher Boessenkool <segher@kernel.crashing.org>
6085
6086 PR rtl-optimization/82024
6087 * combine.c (try_combine): If the combination result is a PARALLEL,
6088 and we only need to retain the SET in there that would be placed
6089 at I2, check that we can place that at I3 instead, before doing so.
6090
6091 2017-09-01 Jakub Jelinek <jakub@redhat.com>
6092
6093 PR target/81766
6094 * config/i386/i386.c (ix86_init_large_pic_reg): Return label
6095 instead of void.
6096 (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
6097 if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
6098 and label.
6099
6100 2017-09-01 Joerg Sonnenberger <joerg@bec.de>
6101 Jeff Law <law@redhat.com>
6102
6103 * varasm.c (bss_initializer_p): Do not put constants into .bss
6104 (categorize_decl_for_section): Handle bss_initializer_p returning
6105 false when DECL_INITIAL is NULL.
6106
6107 2017-09-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6108
6109 PR target/82012
6110 * config/s390/s390.c (s390_can_inline_p): New function.
6111
6112 2017-09-01 Jeff Law <law@redhat.com>
6113
6114 PR tree-optimization/82052
6115 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
6116 Always initialize the returned slot after a hash table miss
6117 when INSERT is true.
6118
6119 2017-09-01 Alexander Monakov <amonakov@ispras.ru>
6120
6121 * config/s390/s390.md (mem_signal_fence): Remove.
6122 * doc/md.texi (mem_signal_fence): Remove.
6123 * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
6124 Update comments.
6125 * target-insns.def (mem_signal_fence): Remove.
6126
6127 2017-09-01 Jakub Jelinek <jakub@redhat.com>
6128
6129 PR sanitizer/81902
6130 * doc/invoke.texi: Document -fsanitize=pointer-overflow.
6131
6132 PR sanitizer/81923
6133 * asan.c (create_odr_indicator): Strip name encoding from assembler
6134 name before appending it after __odr_asan_.
6135
6136 2017-09-01 Martin Liska <mliska@suse.cz>
6137
6138 PR tree-optimization/82059
6139 * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
6140 frequency only when an edge is redirected.
6141
6142 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
6143
6144 * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
6145 * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
6146 (arc_conditional_register_usage): Remove ARC600 lp_count
6147 exception.
6148 (arc_file_start): Emit Tag_ARC_CPU_variation.
6149 (arc_can_use_doloop_p): New conditions to use ZOLs.
6150 (hwloop_fail): New function.
6151 (hwloop_optimize): Likewise.
6152 (hwloop_pattern_reg): Likewise.
6153 (arc_doloop_hooks): New struct, to be used with reorg_loops.
6154 (arc_reorg_loops): New function, calls reorg_loops.
6155 (arc_reorg): Call arc_reorg_loops. Remove old ZOL handling.
6156 (arc600_corereg_hazard): Remove ZOL checking, case handled by
6157 hwloop_optimize.
6158 (arc_loop_hazard): Remove function, functionality moved into
6159 hwloop_optimize.
6160 (arc_hazard): Remove arc_loop_hazard call.
6161 (arc_adjust_insn_length): Remove ZOL handling, functionality moved
6162 into hwloop_optimize.
6163 (arc_label_align): Remove ZOL handling.
6164 * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
6165 * config/arc/arc.md (doloop_begin): Remove pattern.
6166 (doloop_begin_i): Likewise.
6167 (doloop_end_i): Likewise.
6168 (doloop_fallback): Likewise.
6169 (doloop_fallback_m): Likewise.
6170 (doloop_end): Reimplement expand.
6171 (arc_lp): New pattern for LP instruction.
6172 (loop_end): New pattern.
6173 (loop_fail): Likewise.
6174 (decrement_and_branch_until_zero): Likewise.
6175 * config/arc/arc.opt (mlpc-width): New option.
6176 * doc/invoke.texi (mlpc-width): Document option.
6177
6178 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
6179
6180 * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
6181 (arc_ccfsm_advance): Fix checking for delay slots.
6182 (arc_reorg): Add rtl dump after each call to arc_ifcvt.
6183
6184 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
6185
6186 * config/arc/arc.md (movqi_insn): Add stores to save constant long
6187 immediates.
6188 (movhi_insn): Update store instruction constraint which are saving
6189 6-bit short immediates.
6190 (movsi_insn): Consider also short scaled load operations.
6191 (zero_extendhisi2_i): Use Usd constraint instead of T.
6192 (extendhisi2_i): Add q constraint.
6193 (arc_clzsi2): Add type and length attributes.
6194 (arc_ctzsi2): Likewise.
6195 * config/arc/constraints.md (Usc): Update constraint, the
6196 assembler can parse two relocations for a single instruction.
6197
6198 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
6199
6200 * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
6201 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
6202
6203 2017-08-31 Olivier Hainque <hainque@adacore.com>
6204
6205 * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
6206 match as powerpc-wrs-vxworks*.
6207
6208 2017-08-31 James Greenhalgh <james.greenhalgh@arm.com>
6209
6210 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
6211 register constraint for by-element operand.
6212 (aarch64_mls_elt_merge<mode>): Likewise.
6213
6214 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
6215
6216 * config/arc/arc.c (arc_can_follow_jump): Check for short
6217 branches.
6218
6219 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
6220
6221 * config.gcc: Use g.opt for arc.
6222 * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
6223 functionality moved to ...
6224 (legitimate_scaled_address_p): New function, ...here.
6225 (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
6226 (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
6227 (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
6228 condition.
6229 (arc_override_options): Handle G option.
6230 (arc_output_pic_addr_const): Correct function definition.
6231 (arc_legitimate_address_p): Use legitimate_scaled_address_p.
6232 (arc_decl_anon_ns_mem_p): Delete.
6233 (arc_in_small_data_p): Overhaul this function to take into
6234 consideration the value given via G option.
6235 (arc_rewrite_small_data_1): Renamed and corrected old
6236 arc_rewrite_small_data function.
6237 (arc_rewrite_small_data): New function.
6238 (small_data_pattern): Don't use pic_offset_table_rtx.
6239 * config/arc/arc.h (CC1_SPEC): Recognize G option.
6240 * config/arc/simdext.md (movmisalignv2hi): Use
6241 prepare_move_operands function.
6242 (mov*): Likewise.
6243 (movmisalign*): Likewise.
6244 * doc/invoke.texi (ARC options): Document -G option.
6245
6246 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
6247
6248 * config/arc/arc-protos.h (compact_sda_memory_operand): Update
6249 prototype.
6250 * config/arc/arc.c (arc_print_operand): Output scalled address for
6251 sdata whenever is possible.
6252 (arc_in_small_data_p): Allow sdata for 64bit datum when double
6253 load/stores are available.
6254 (compact_sda_memory_operand): Check for the alignment required by
6255 code density instructions.
6256 * config/arc/arc.md (movsi_insn): Use newly introduced Us0
6257 constraint.
6258 * config/arc/constraints.md (Usd): Update constraint.
6259 (Us0): New constraint.
6260 (Usc): Update constraint.
6261
6262 2017-08-31 Richard Biener <rguenther@suse.de>
6263
6264 PR middle-end/82054
6265 * dwarf2out.c (dwarf2out_early_global_decl): Process each
6266 function only once.
6267
6268 2017-08-31 Tamar Christina <tamar.christina@arm.com>
6269
6270 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
6271 Resize type_signature.
6272
6273 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
6274 Alan Hayward <alan.hayward@arm.com>
6275 David Sherwood <david.sherwood@arm.com>
6276
6277 * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
6278 subregs whose inner modes can be stored in GPRs.
6279 (aarch64_classify_index): Likewise.
6280
6281 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
6282 Alan Hayward <alan.hayward@arm.com>
6283 David Sherwood <david.sherwood@arm.com>
6284
6285 * config/aarch64/iterators.md (V_cmp_result): Rename to...
6286 (V_INT_EQUIV): ...this.
6287 (v_cmp_result): Rename to...
6288 (v_int_equiv): ...this.
6289 * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
6290 * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
6291 (copysign<mode>3): Likewise.
6292 (aarch64_simd_bsl<mode>_internal): Likewise.
6293 (aarch64_simd_bsl<mode>): Likewise.
6294 (vec_cmp<mode><mode>): Likewise.
6295 (vcond<mode><mode>): Likewise.
6296 (vcond<v_cmp_mixed><mode>): Likewise.
6297 (vcondu<mode><v_cmp_mixed>): Likewise.
6298 (aarch64_cm<optab><mode>): Likewise.
6299 (aarch64_cmtst<mode>): Likewise.
6300 (aarch64_fac<optab><mode>): Likewise.
6301 (vec_perm_const<mode>): Likewise.
6302 (vcond_mask_<mode><v_cmp_result>): Rename to...
6303 (vcond_mask_<mode><v_int_equiv>): ...this.
6304 (vec_cmp<mode><v_cmp_result>): Rename to...
6305 (vec_cmp<mode><v_int_equiv>): ...this.
6306
6307 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
6308 Alan Hayward <alan.hayward@arm.com>
6309 David Sherwood <david.sherwood@arm.com>
6310
6311 * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
6312 vector modes.
6313 * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
6314 * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
6315 (UNSPEC_LD4_DREG): New unspecs.
6316 * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
6317 (aarch64_ld2<mode>_dreg_be): Replace with...
6318 (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
6319 unspec.
6320 (aarch64_ld3<mode>_dreg_le)
6321 (aarch64_ld3<mode>_dreg_be): Replace with...
6322 (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
6323 unspec.
6324 (aarch64_ld4<mode>_dreg_le)
6325 (aarch64_ld4<mode>_dreg_be): Replace with...
6326 (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
6327 unspec.
6328
6329 2017-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6330
6331 PR tree-optimization/81987
6332 * gimple-ssa-strength-reduction.c (insert_initializers): Don't
6333 insert an initializer in a location not dominated by the stride
6334 definition.
6335
6336 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
6337
6338 * tree-eh.c (lower_try_finally_switch): Set the location of the finally
6339 on the entire header of the finally block in the fallthru case.
6340
6341 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
6342
6343 * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
6344
6345 2017-08-30 Pat Haugen <pthaugen@us.ibm.com>
6346
6347 * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
6348 rs6000_emit_move_from_cr and call renamed function.
6349 (rs6000_emit_prologue): Call renamed functions.
6350 * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
6351 movesi_from_cr, remove volatile CRs.
6352
6353 2017-08-30 Jon Beniston <jon@beniston.com>
6354 Richard Biener <rguenther@suse.de>
6355
6356 * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
6357 of VECTOR_MODE_P check.
6358 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
6359 element vector types.
6360
6361 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6362
6363 * df.h (df_read_modify_subreg_p): Remove in favor of...
6364 * rtl.h (read_modify_subreg_p): ...this new function. Take a
6365 const_rtx instead of an rtx.
6366 * cprop.c (local_cprop_find_used_regs): Update accordingly.
6367 * df-problems.c (df_word_lr_mark_ref): Likewise.
6368 * ira-lives.c (mark_pseudo_reg_live): Likewise.
6369 (mark_pseudo_reg_dead): Likewise.
6370 (mark_ref_dead): Likewise.
6371 * reginfo.c (init_subregs_of_mode): Likewise.
6372 * sched-deps.c (sched_analyze_1): Likewise.
6373 * df-scan.c (df_def_record_1): Likewise.
6374 (df_uses_record): Likewise.
6375 (df_read_modify_subreg_p): Remove in favor of...
6376 * rtlanal.c (read_modify_subreg_p): ...this new function. Take a
6377 const_rtx instead of an rtx.
6378
6379 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6380 Alan Hayward <alan.hayward@arm.com>
6381 David Sherwood <david.sherwood@arm.com>
6382
6383 * rtl.h (partial_subreg_p): New function.
6384 * caller-save.c (save_call_clobbered_regs): Use it.
6385 * calls.c (expand_call): Likewise.
6386 * combine.c (combinable_i3pat): Likewise.
6387 (simplify_set): Likewise.
6388 (make_extraction): Likewise.
6389 (make_compound_operation_int): Likewise.
6390 (gen_lowpart_or_truncate): Likewise.
6391 (force_to_mode): Likewise.
6392 (make_field_assignment): Likewise.
6393 (reg_truncated_to_mode): Likewise.
6394 (record_truncated_value): Likewise.
6395 (move_deaths): Likewise.
6396 * cse.c (record_jump_cond): Likewise.
6397 (cse_insn): Likewise.
6398 * cselib.c (cselib_lookup_1): Likewise.
6399 * expmed.c (extract_bit_field_using_extv): Likewise.
6400 * function.c (assign_parm_setup_reg): Likewise.
6401 * ifcvt.c (noce_convert_multiple_sets): Likewise.
6402 * ira-build.c (create_insn_allocnos): Likewise.
6403 * lra-coalesce.c (merge_pseudos): Likewise.
6404 * lra-constraints.c (match_reload): Likewise.
6405 (simplify_operand_subreg): Likewise.
6406 (curr_insn_transform): Likewise.
6407 * lra-lives.c (process_bb_lives): Likewise.
6408 * lra.c (new_insn_reg): Likewise.
6409 (lra_substitute_pseudo): Likewise.
6410 * regcprop.c (mode_change_ok): Likewise.
6411 (maybe_mode_change): Likewise.
6412 (copyprop_hardreg_forward_1): Likewise.
6413 * reload.c (push_reload): Likewise.
6414 (find_reloads): Likewise.
6415 (find_reloads_subreg_address): Likewise.
6416 * reload1.c (alter_reg): Likewise.
6417 (eliminate_regs_1): Likewise.
6418 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
6419
6420 2017-08-30 David Edelsohn <dje.gcc@gmail.com>
6421
6422 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
6423 back to if statements, including unpack.
6424
6425 2017-08-30 Martin Liska <mliska@suse.cz>
6426
6427 PR inline-asm/82001
6428 * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
6429 Rename to ...
6430 (func_checker::compare_asm_inputs_outputs): ... this function.
6431 (func_checker::compare_gimple_asm): Use the function to compare
6432 also ASM constrains.
6433 * ipa-icf-gimple.h: Rename the function.
6434
6435 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6436 Alan Hayward <alan.hayward@arm.com>
6437 David Sherwood <david.sherwood@arm.com>
6438
6439 * coretypes.h (complex_mode): New type.
6440 * gdbhooks.py (build_pretty_printer): Handle it.
6441 * machmode.h (complex_mode): New class.
6442 (complex_mode::includes_p): New function.
6443 (is_complex_int_mode): Likewise.
6444 (is_complex_float_mode): Likewise.
6445 * genmodes.c (get_mode_class): Handle complex mode classes.
6446 * function.c (expand_function_end): Use is_complex_int_mode.
6447
6448 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6449 Alan Hayward <alan.hayward@arm.com>
6450 David Sherwood <david.sherwood@arm.com>
6451
6452 * coretypes.h (scalar_mode_pod): New typedef.
6453 * gdbhooks.py (build_pretty_printer): Handle it.
6454 * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
6455 * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
6456 * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
6457 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
6458 as_a <scalar_mode>.
6459
6460 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6461 Alan Hayward <alan.hayward@arm.com>
6462 David Sherwood <david.sherwood@arm.com>
6463
6464 * machmode.h (mode_for_vector): Take a scalar_mode instead
6465 of a machine_mode.
6466 * stor-layout.c (mode_for_vector): Likewise.
6467 * explow.c (promote_mode): Use as_a <scalar_mode>.
6468 * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
6469
6470 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6471 Alan Hayward <alan.hayward@arm.com>
6472 David Sherwood <david.sherwood@arm.com>
6473
6474 * target.def (preferred_simd_mode): Take a scalar_mode
6475 instead of a machine_mode.
6476 * targhooks.h (default_preferred_simd_mode): Likewise.
6477 * targhooks.c (default_preferred_simd_mode): Likewise.
6478 * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
6479 * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
6480 * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
6481 * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
6482 * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
6483 * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
6484 * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
6485 * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
6486 Likewise.
6487 * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
6488 * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
6489 * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
6490 * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
6491 (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
6492 * doc/tm.texi: Regenerate.
6493 * optabs-query.c (can_vec_mask_load_store_p): Return false for
6494 non-scalar modes.
6495
6496 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6497 Alan Hayward <alan.hayward@arm.com>
6498 David Sherwood <david.sherwood@arm.com>
6499
6500 * target.def (scalar_mode_supported_p): Take a scalar_mode
6501 instead of a machine_mode.
6502 * targhooks.h (default_scalar_mode_supported_p): Likewise.
6503 * targhooks.c (default_scalar_mode_supported_p): Likewise.
6504 * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
6505 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
6506 * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
6507 * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
6508 * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
6509 * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
6510 * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
6511 * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
6512 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
6513 * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
6514 * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
6515 * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
6516 Likewise.
6517 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
6518 * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
6519 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
6520 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
6521 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
6522 Likewise.
6523 * doc/tm.texi: Regenerate.
6524
6525 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6526 Alan Hayward <alan.hayward@arm.com>
6527 David Sherwood <david.sherwood@arm.com>
6528
6529 * coretypes.h (opt_scalar_mode): New typedef.
6530 * gdbhooks.py (build_pretty_printers): Handle it.
6531 * machmode.h (mode_iterator::get_2xwider): Add overload for
6532 opt_mode<T>.
6533 * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
6534 over scalar modes.
6535 * expr.c (convert_mode_scalar): Likewise.
6536 * omp-low.c (omp_clause_aligned_alignment): Likewise.
6537 * optabs.c (expand_float): Likewise.
6538 (expand_fix): Likewise.
6539 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
6540
6541 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6542 Alan Hayward <alan.hayward@arm.com>
6543 David Sherwood <david.sherwood@arm.com>
6544
6545 * optabs.c (expand_float): Explicitly check for scalars before
6546 using a branching expansion.
6547 (expand_fix): Likewise.
6548
6549 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6550 Alan Hayward <alan.hayward@arm.com>
6551 David Sherwood <david.sherwood@arm.com>
6552
6553 * expr.c (convert_mode): Split scalar handling out into...
6554 (convert_mode_scalar): ...this new function. Treat the modes
6555 as scalar_modes.
6556
6557 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6558 Alan Hayward <alan.hayward@arm.com>
6559 David Sherwood <david.sherwood@arm.com>
6560
6561 * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
6562 and scalar_mode.
6563 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
6564
6565 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6566 Alan Hayward <alan.hayward@arm.com>
6567 David Sherwood <david.sherwood@arm.com>
6568
6569 * fixed-value.h (fixed_from_double_int): Take a scalar_mode
6570 rather than a machine_mode.
6571 (fixed_from_string): Likewise.
6572 (fixed_convert): Likewise.
6573 (fixed_convert_from_int): Likewise.
6574 (fixed_convert_from_real): Likewise.
6575 (real_convert_from_fixed): Likewise.
6576 * fixed-value.c (fixed_from_double_int): Likewise.
6577 (fixed_from_string): Likewise.
6578 (fixed_convert): Likewise.
6579 (fixed_convert_from_int): Likewise.
6580 (fixed_convert_from_real): Likewise.
6581 (real_convert_from_fixed): Likewise.
6582 * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
6583
6584 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6585 Alan Hayward <alan.hayward@arm.com>
6586 David Sherwood <david.sherwood@arm.com>
6587
6588 * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
6589 of separate mode class checks. Do not allow vector modes here.
6590 (immed_wide_int_const): Use as_a <scalar_mode>.
6591 * explow.c (trunc_int_for_mode): Likewise.
6592 * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
6593 (wi::shwi): Likewise.
6594 (wi::min_value): Likewise.
6595 (wi::max_value): Likewise.
6596 * dwarf2out.c (loc_descriptor): Likewise.
6597 * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
6598 for CONST_WIDE_INT.
6599
6600 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6601 Alan Hayward <alan.hayward@arm.com>
6602 David Sherwood <david.sherwood@arm.com>
6603
6604 * tree.h (SCALAR_TYPE_MODE): New macro.
6605 * expr.c (expand_expr_addr_expr_1): Use it.
6606 (expand_expr_real_2): Likewise.
6607 * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
6608 (fold_convert_const_fixed_from_int): Likewise.
6609 (fold_convert_const_fixed_from_real): Likewise.
6610 (native_encode_fixed): Likewise
6611 (native_encode_complex): Likewise
6612 (native_encode_vector): Likewise.
6613 (native_interpret_fixed): Likewise.
6614 (native_interpret_real): Likewise.
6615 (native_interpret_complex): Likewise.
6616 (native_interpret_vector): Likewise.
6617 * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
6618 (simd_clone_adjust_argument_types): Likewise.
6619 (simd_clone_init_simd_arrays): Likewise.
6620 (simd_clone_adjust): Likewise.
6621 * stor-layout.c (layout_type): Likewise.
6622 * tree.c (build_minus_one_cst): Likewise.
6623 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
6624 * tree-inline.c (estimate_move_cost): Likewise.
6625 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
6626 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
6627 (vectorizable_reduction): Likewise.
6628 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
6629 (vect_recog_mixed_size_cond_pattern): Likewise.
6630 (check_bool_pattern): Likewise.
6631 (adjust_bool_pattern): Likewise.
6632 (search_type_for_mask_1): Likewise.
6633 * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
6634 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
6635 (vectorizable_load): Likewise.
6636 (vectorizable_store): Likewise.
6637 * ubsan.c (ubsan_encode_value): Likewise.
6638 * varasm.c (output_constant): Likewise.
6639
6640 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6641 Alan Hayward <alan.hayward@arm.com>
6642 David Sherwood <david.sherwood@arm.com>
6643
6644 * coretypes.h (scalar_mode): New class.
6645 * machmode.h (scalar_mode): Likewise.
6646 (scalar_mode::includes_p): New function.
6647 (mode_to_inner): Return a scalar_mode rather than a machine_mode.
6648 * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
6649 * genmodes.c (get_mode_class): Handle remaining scalar modes.
6650 * cfgexpand.c (expand_debug_expr): Use scalar_mode.
6651 * expmed.c (store_bit_field_1): Likewise.
6652 (extract_bit_field_1): Likewise.
6653 * expr.c (write_complex_part): Likewise.
6654 (read_complex_part): Likewise.
6655 (emit_move_complex_push): Likewise.
6656 (expand_expr_real_2): Likewise.
6657 * function.c (assign_parm_setup_reg): Likewise.
6658 (assign_parms_unsplit_complex): Likewise.
6659 * optabs.c (expand_binop): Likewise.
6660 * rtlanal.c (subreg_get_info): Likewise.
6661 * simplify-rtx.c (simplify_immed_subreg): Likewise.
6662 * varasm.c (output_constant_pool_2): Likewise.
6663
6664 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6665 Alan Hayward <alan.hayward@arm.com>
6666 David Sherwood <david.sherwood@arm.com>
6667
6668 * expmed.c (extract_high_half): Use scalar_int_mode and remove
6669 assertion.
6670 (expmed_mult_highpart_optab): Likewise.
6671 (expmed_mult_highpart): Likewise.
6672
6673 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6674 Alan Hayward <alan.hayward@arm.com>
6675 David Sherwood <david.sherwood@arm.com>
6676
6677 * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
6678 instead of a machine_mode.
6679 (builtin_memset_read_str): Likewise.
6680 * builtins.c (c_readstr): Likewise.
6681 (builtin_memcpy_read_str): Likewise.
6682 (builtin_strncpy_read_str): Likewise.
6683 (builtin_memset_read_str): Likewise.
6684 (builtin_memset_gen_str): Likewise.
6685 (expand_builtin_signbit): Use scalar_int_mode for local variables.
6686 * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
6687 instead of a machine_mode.
6688 * combine.c (simplify_if_then_else): Use scalar_int_mode for local
6689 variables.
6690 (make_extraction): Likewise.
6691 (try_widen_shift_mode): Take and return scalar_int_modes instead
6692 of machine_modes.
6693 * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
6694 a scalar_int_mode instead of a machine_mode.
6695 * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
6696 (avr_addr_space_pointer_mode): Likewise.
6697 * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
6698 * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
6699 (msp430_unwind_word_mode): Likewise.
6700 * config/spu/spu.c (spu_unwind_word_mode): Likewise.
6701 (spu_addr_space_pointer_mode): Likewise.
6702 (spu_addr_space_address_mode): Likewise.
6703 (spu_libgcc_cmp_return_mode): Likewise.
6704 (spu_libgcc_shift_count_mode): Likewise.
6705 * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
6706 (rl78_addr_space_pointer_mode): Likewise.
6707 (fl78_unwind_word_mode): Likewise.
6708 (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
6709 machine_mode.
6710 * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
6711 * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
6712 * config/mips/mips.c (mips_mode_rep_extended): Likewise.
6713 (mips_valid_pointer_mode): Likewise.
6714 * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
6715 * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
6716 (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
6717 of a machine_mode.
6718 (ft32_addr_space_address_mode): Likewise.
6719 * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
6720 scalar_int_mode instead of a machine_mode.
6721 (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
6722 of a machine_mode.
6723 (m32c_addr_space_address_mode): Likewise.
6724 * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
6725 (rs6000_eh_return_filter_mode): Likewise.
6726 * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
6727 (rs6000_eh_return_filter_mode): Likewise.
6728 * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
6729 (s390_libgcc_shift_count_mode): Likewise.
6730 (s390_unwind_word_mode): Likewise.
6731 (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
6732 machine_mode.
6733 * target.def (mode_rep_extended): Likewise.
6734 (valid_pointer_mode): Likewise.
6735 (addr_space.valid_pointer_mode): Likewise.
6736 (eh_return_filter_mode): Return a scalar_int_mode rather than
6737 a machine_mode.
6738 (libgcc_cmp_return_mode): Likewise.
6739 (libgcc_shift_count_mode): Likewise.
6740 (unwind_word_mode): Likewise.
6741 (addr_space.pointer_mode): Likewise.
6742 (addr_space.address_mode): Likewise.
6743 * doc/tm.texi: Regenerate.
6744 * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
6745 a machine_mode.
6746 (do_jump): Use scalar_int_mode for local variables.
6747 * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
6748 rather than a machine_mode.
6749 * dwarf2out.c (convert_descriptor_to_mode): Likewise.
6750 (scompare_loc_descriptor_wide): Likewise.
6751 (scompare_loc_descriptor_narrow): Likewise.
6752 * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
6753 variables.
6754 * except.c (sjlj_emit_dispatch_table): Likewise.
6755 (expand_builtin_eh_copy_values): Likewise.
6756 * explow.c (convert_memory_address_addr_space_1): Likewise.
6757 Take a scalar_int_mode rather than a machine_mode.
6758 (convert_memory_address_addr_space): Take a scalar_int_mode rather
6759 than a machine_mode.
6760 (memory_address_addr_space): Use scalar_int_mode for local variables.
6761 * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
6762 rather than a machine_mode.
6763 * expmed.c (mask_rtx): Likewise.
6764 (init_expmed_one_conv): Likewise.
6765 (expand_mult_highpart_adjust): Likewise.
6766 (extract_high_half): Likewise.
6767 (expmed_mult_highpart_optab): Likewise.
6768 (expmed_mult_highpart): Likewise.
6769 (expand_smod_pow2): Likewise.
6770 (expand_sdiv_pow2): Likewise.
6771 (emit_store_flag_int): Likewise.
6772 (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
6773 variables.
6774 (extract_low_bits): Likewise.
6775 * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
6776 a machine_mode.
6777 * expr.c (pieces_addr::adjust): Likewise.
6778 (can_store_by_pieces): Likewise.
6779 (store_by_pieces): Likewise.
6780 (clear_by_pieces_1): Likewise.
6781 (expand_expr_addr_expr_1): Likewise.
6782 (expand_expr_addr_expr): Use scalar_int_mode for local variables.
6783 (expand_expr_real_1): Likewise.
6784 (try_casesi): Likewise.
6785 * final.c (shorten_branches): Likewise.
6786 * fold-const.c (fold_convert_const_int_from_fixed): Change the
6787 type of "mode" to machine_mode.
6788 * internal-fn.c (expand_arith_overflow_result_store): Take a
6789 scalar_int_mode rather than a machine_mode.
6790 (expand_mul_overflow): Use scalar_int_mode for local variables.
6791 * loop-doloop.c (doloop_modify): Likewise.
6792 (doloop_optimize): Likewise.
6793 * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
6794 than a machine_mode.
6795 (expand_doubleword_shift_condmove): Likewise.
6796 (expand_doubleword_shift): Likewise.
6797 (expand_doubleword_clz): Likewise.
6798 (expand_doubleword_popcount): Likewise.
6799 (expand_doubleword_parity): Likewise.
6800 (expand_absneg_bit): Use scalar_int_mode for local variables.
6801 (prepare_float_lib_cmp): Likewise.
6802 * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
6803 rather than a machine_mode.
6804 (convert_memory_address_addr_space): Likewise.
6805 (get_mode_bounds): Likewise.
6806 (get_address_mode): Return a scalar_int_mode rather than a
6807 machine_mode.
6808 * rtlanal.c (get_address_mode): Likewise.
6809 * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
6810 than a machine_mode.
6811 * targhooks.c (default_mode_rep_extended): Likewise.
6812 (default_valid_pointer_mode): Likewise.
6813 (default_addr_space_valid_pointer_mode): Likewise.
6814 (default_eh_return_filter_mode): Return a scalar_int_mode rather
6815 than a machine_mode.
6816 (default_libgcc_cmp_return_mode): Likewise.
6817 (default_libgcc_shift_count_mode): Likewise.
6818 (default_unwind_word_mode): Likewise.
6819 (default_addr_space_pointer_mode): Likewise.
6820 (default_addr_space_address_mode): Likewise.
6821 * targhooks.h (default_eh_return_filter_mode): Likewise.
6822 (default_libgcc_cmp_return_mode): Likewise.
6823 (default_libgcc_shift_count_mode): Likewise.
6824 (default_unwind_word_mode): Likewise.
6825 (default_addr_space_pointer_mode): Likewise.
6826 (default_addr_space_address_mode): Likewise.
6827 (default_mode_rep_extended): Take a scalar_int_mode rather than
6828 a machine_mode.
6829 (default_valid_pointer_mode): Likewise.
6830 (default_addr_space_valid_pointer_mode): Likewise.
6831 * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
6832 local variables.
6833 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
6834 rather than a machine_mode.
6835 * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
6836 for local variables.
6837 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
6838 * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
6839 than a machine_mode.
6840
6841 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6842 Alan Hayward <alan.hayward@arm.com>
6843 David Sherwood <david.sherwood@arm.com>
6844
6845 * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
6846 the mode argument to scalar_int_mode.
6847 (do_jump_by_parts_zero_rtx): Likewise.
6848 (do_jump_by_parts_equality_rtx): Likewise.
6849 (do_jump_by_parts_greater): Take a mode argument.
6850 (do_jump_by_parts_equality): Likewise.
6851 (do_jump_1): Update calls accordingly.
6852
6853 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6854 Alan Hayward <alan.hayward@arm.com>
6855 David Sherwood <david.sherwood@arm.com>
6856
6857 * is-a.h (safe_dyn_cast): New function.
6858 * rtl.h (rtx_jump_table_data::get_data_mode): New function.
6859 (jump_table_for_label): Likewise.
6860 * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
6861 instead of an rtx_insn *.
6862 (shorten_branches): Use dyn_cast instead of LABEL_P and
6863 JUMP_TABLE_DATA_P. Use jump_table_for_label and
6864 rtx_jump_table_data::get_data_mode.
6865 (final_scan_insn): Likewise.
6866
6867 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6868 Alan Hayward <alan.hayward@arm.com>
6869 David Sherwood <david.sherwood@arm.com>
6870
6871 * combine.c (try_combine): Use is_a <scalar_int_mode> when
6872 trying to combine a full-register integer set with a subreg
6873 integer set.
6874
6875 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6876 Alan Hayward <alan.hayward@arm.com>
6877 David Sherwood <david.sherwood@arm.com>
6878
6879 * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
6880 that is always either address_mode or pointer_mode.
6881
6882 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6883 Alan Hayward <alan.hayward@arm.com>
6884 David Sherwood <david.sherwood@arm.com>
6885
6886 * expr.c (expand_expr_real_2): Use word_mode instead of innermode
6887 when the two are known to be equal.
6888
6889 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6890 Alan Hayward <alan.hayward@arm.com>
6891 David Sherwood <david.sherwood@arm.com>
6892
6893 * simplify-rtx.c (simplify_const_unary_operation): Use
6894 is_a <scalar_int_mode> instead of checking for a nonzero
6895 precision. Forcibly convert op_mode to a scalar_int_mode
6896 in that case. More clearly differentiate the operand and
6897 result modes and use the former when deciding what the value
6898 of a count-bits operation should be. Use is_int_mode instead
6899 of checking for a MODE_INT. Remove redundant check for whether
6900 this mode has a zero precision.
6901
6902 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6903 Alan Hayward <alan.hayward@arm.com>
6904 David Sherwood <david.sherwood@arm.com>
6905
6906 * optabs.c (widen_leading): Change the type of the mode argument
6907 to scalar_int_mode. Use opt_scalar_int_mode for the mode iterator.
6908 (widen_bswap): Likewise.
6909 (expand_parity): Likewise.
6910 (expand_ctz): Change the type of the mode argument to scalar_int_mode.
6911 (expand_ffs): Likewise.
6912 (epand_unop): Check for scalar integer modes before calling the
6913 above routines.
6914
6915 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6916 Alan Hayward <alan.hayward@arm.com>
6917 David Sherwood <david.sherwood@arm.com>
6918
6919 * expr.c (const_scalar_mask_from_tree): Add a mode argument.
6920 Expand commentary.
6921 (expand_expr_real_1): Update call accordingly.
6922
6923 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6924 Alan Hayward <alan.hayward@arm.com>
6925 David Sherwood <david.sherwood@arm.com>
6926
6927 * expmed.c (store_bit_field_using_insv): Add op0_mode and
6928 value_mode arguments. Use scalar_int_mode internally.
6929 (store_bit_field_1): Rename the new integer mode from imode
6930 to op0_mode and use it instead of GET_MODE (op0). Update calls
6931 to store_split_bit_field, store_bit_field_using_insv and
6932 store_fixed_bit_field.
6933 (store_fixed_bit_field): Add op0_mode and value_mode arguments.
6934 Use scalar_int_mode internally. Use a bit count rather than a mode
6935 when calculating the largest bit size for get_best_mode.
6936 Update calls to store_split_bit_field and store_fixed_bit_field_1.
6937 (store_fixed_bit_field_1): Add mode and value_mode arguments.
6938 Remove assertion that OP0 has a scalar integer mode.
6939 (store_split_bit_field): Add op0_mode and value_mode arguments.
6940 Update calls to extract_fixed_bit_field.
6941 (extract_bit_field_using_extv): Add an op0_mode argument.
6942 Use scalar_int_mode internally.
6943 (extract_bit_field_1): Rename the new integer mode from imode to
6944 op0_mode and use it instead of GET_MODE (op0). Update calls to
6945 extract_split_bit_field, extract_bit_field_using_extv and
6946 extract_fixed_bit_field.
6947 (extract_fixed_bit_field): Add an op0_mode argument. Update calls
6948 to extract_split_bit_field and extract_fixed_bit_field_1.
6949 (extract_fixed_bit_field_1): Add a mode argument. Remove assertion
6950 that OP0 has a scalar integer mode. Use as_a <scalar_int_mode>
6951 on the target mode.
6952 (extract_split_bit_field): Add an op0_mode argument. Update call
6953 to extract_fixed_bit_field.
6954
6955 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6956 Alan Hayward <alan.hayward@arm.com>
6957 David Sherwood <david.sherwood@arm.com>
6958
6959 * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
6960 * explow.c (hard_function_value): Likewise.
6961 * expmed.c (extract_fixed_bit_field_1): Likewise. Move the
6962 convert_to_mode call outside the loop.
6963 * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
6964 for the mode iterator. Require the mode specified by max_pieces
6965 to exist.
6966 (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
6967 mode iterator.
6968 (copy_blkmode_to_reg): Likewise.
6969 (set_storage_via_setmem): Likewise.
6970 * optabs.c (prepare_cmp_insn): Likewise.
6971 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
6972 * stor-layout.c (finish_bitfield_representative): Likewise.
6973
6974 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6975 Alan Hayward <alan.hayward@arm.com>
6976 David Sherwood <david.sherwood@arm.com>
6977
6978 * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
6979 * expr.c (convert_move): Use them.
6980 (convert_modes): Likewise.
6981 (store_expr_with_bounds): Likewise.
6982
6983 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6984 Alan Hayward <alan.hayward@arm.com>
6985 David Sherwood <david.sherwood@arm.com>
6986
6987 * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
6988 parameter for the mode of "x". Remove the "known_x", "known_mode"
6989 and "known_ret" arguments. Change the type of the mode argument
6990 to scalar_int_mode.
6991 (rtl_hooks:reg_num_sign_bit_copies): Likewise.
6992 * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
6993 (reg_num_sign_bit_copies_for_combine): Likewise.
6994 * rtlanal.c (nonzero_bits1): Likewise.
6995 (num_sign_bit_copies1): Likewise.
6996 * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
6997 (reg_num_sign_bit_copies_general): Likewise.
6998 * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
6999 (reg_nonzero_bits_general): Likewise.
7000
7001 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7002 Alan Hayward <alan.hayward@arm.com>
7003 David Sherwood <david.sherwood@arm.com>
7004
7005 * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
7006 than in subroutines. Return 1 for non-integer modes.
7007 (cached_num_sign_bit_copies): Change the type of the mode parameter
7008 to scalar_int_mode.
7009 (num_sign_bit_copies1): Likewise. Remove early exit for other mode
7010 classes. Handle CONST_INT_P first and then check whether X also
7011 has a scalar integer mode. Check the same thing for inner registers
7012 of a SUBREG and for values that are being extended or truncated.
7013
7014 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7015 Alan Hayward <alan.hayward@arm.com>
7016 David Sherwood <david.sherwood@arm.com>
7017
7018 * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
7019 in subroutines. Return the mode mask for non-integer modes.
7020 (cached_nonzero_bits): Change the type of the mode parameter
7021 to scalar_int_mode.
7022 (nonzero_bits1): Likewise. Remove early exit for other mode
7023 classes. Handle CONST_INT_P first and then check whether X
7024 also has a scalar integer mode.
7025
7026 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7027 Alan Hayward <alan.hayward@arm.com>
7028 David Sherwood <david.sherwood@arm.com>
7029
7030 * expr.c (widest_int_mode_for_size): Make the comment match the code.
7031 Return a scalar_int_mode and assert that the size is greater than
7032 one byte.
7033 (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
7034 (op_by_pieces_d::op_by_pieces_d): Likewise.
7035 (op_by_pieces_d::run): Likewise.
7036 (can_store_by_pieces): Likewise.
7037
7038 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7039 Alan Hayward <alan.hayward@arm.com>
7040 David Sherwood <david.sherwood@arm.com>
7041
7042 * combine.c (extract_left_shift): Add a mode argument and update
7043 recursive calls.
7044 (make_compound_operation_int): Change the type of the mode parameter
7045 to scalar_int_mode and update the call to extract_left_shift.
7046
7047 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7048 Alan Hayward <alan.hayward@arm.com>
7049 David Sherwood <david.sherwood@arm.com>
7050
7051 * combine.c (simplify_and_const_int): Change the type of the mode
7052 parameter to scalar_int_mode.
7053 (simplify_and_const_int_1): Likewise. Update recursive call.
7054
7055 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7056 Alan Hayward <alan.hayward@arm.com>
7057 David Sherwood <david.sherwood@arm.com>
7058
7059 * combine.c (simplify_compare_const): Check that the mode is a
7060 scalar_int_mode (rather than VOIDmode) before testing its
7061 precision.
7062 (simplify_comparison): Move COMPARISON_P handling out of the
7063 loop and restrict the latter part of the loop to scalar_int_modes.
7064 Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
7065 and when considering SUBREG_REGs. Use is_int_mode instead of
7066 checking GET_MODE_CLASS against MODE_INT.
7067
7068 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7069 Alan Hayward <alan.hayward@arm.com>
7070 David Sherwood <david.sherwood@arm.com>
7071
7072 * combine.c (try_widen_shift_mode): Move check for equal modes to...
7073 (simplify_shift_const_1): ...here. Use scalar_int_mode for
7074 shift_unit_mode and for modes involved in scalar shifts.
7075
7076 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7077 Alan Hayward <alan.hayward@arm.com>
7078 David Sherwood <david.sherwood@arm.com>
7079
7080 * combine.c (force_int_to_mode): New function, split out from...
7081 (force_to_mode): ...here. Keep xmode up-to-date and use it
7082 instead of GET_MODE (x).
7083
7084 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7085 Alan Hayward <alan.hayward@arm.com>
7086 David Sherwood <david.sherwood@arm.com>
7087
7088 * optabs-query.h (extraction_insn::struct_mode): Change type to
7089 opt_scalar_int_mode and update comment.
7090 (extraction_insn::field_mode): Change type to scalar_int_mode.
7091 (extraction_insn::pos_mode): Likewise.
7092 * combine.c (make_extraction): Update accordingly.
7093 * optabs-query.c (get_traditional_extraction_insn): Likewise.
7094 (get_optab_extraction_insn): Likewise.
7095 * recog.c (simplify_while_replacing): Likewise.
7096 * expmed.c (narrow_bit_field_mem): Change the type of the mode
7097 parameter to opt_scalar_int_mode.
7098
7099 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7100 Alan Hayward <alan.hayward@arm.com>
7101 David Sherwood <david.sherwood@arm.com>
7102
7103 * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
7104 to a scalar_int_mode instead of a machine_mode.
7105 (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
7106 (get_best_mode): Return a boolean and use a pointer argument to store
7107 the selected mode. Replace the limit mode parameter with a bit limit.
7108 * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
7109 for the values returned by bit_field_mode_iterator::next_mode.
7110 (store_bit_field): Update call to get_best_mode.
7111 (store_fixed_bit_field): Likewise.
7112 (extract_fixed_bit_field): Likewise.
7113 * expr.c (optimize_bitfield_assignment_op): Likewise.
7114 * fold-const.c (optimize_bit_field_compare): Likewise.
7115 (fold_truth_andor_1): Likewise.
7116 * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
7117 Update for new type of m_mode.
7118 (get_best_mode): As above.
7119
7120 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7121 Alan Hayward <alan.hayward@arm.com>
7122 David Sherwood <david.sherwood@arm.com>
7123
7124 * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
7125 to scalar_int_mode. Remove check for SCALAR_INT_MODE_P.
7126 (store_bit_field): Check is_a <scalar_int_mode> before calling
7127 strict_volatile_bitfield_p.
7128 (extract_bit_field): Likewise.
7129
7130 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7131 Alan Hayward <alan.hayward@arm.com>
7132 David Sherwood <david.sherwood@arm.com>
7133
7134 * target.def (cstore_mode): Return a scalar_int_mode.
7135 * doc/tm.texi: Regenerate.
7136 * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
7137 * targhooks.h (default_cstore_mode): Likewise.
7138 * targhooks.c (default_cstore_mode): Likewise, using a forced
7139 conversion.
7140 * expmed.c (emit_cstore): Expect the target of the cstore to be
7141 a scalar_int_mode.
7142
7143 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7144 Alan Hayward <alan.hayward@arm.com>
7145 David Sherwood <david.sherwood@arm.com>
7146
7147 * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
7148 scalar_int_mode.
7149 (niter_desc): Likewise mode.
7150 (iv_analyze): Add a mode parameter.
7151 (biv_p): Likewise.
7152 (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
7153 and change its type to scalar_int_mode.
7154 * loop-iv.c: Update commentary at head of file.
7155 (iv_constant): Pass the mode paraeter before the rtx it describes
7156 and change its type to scalar_int_mode. Remove VOIDmode handling.
7157 (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
7158 (iv_extend): Likewise.
7159 (shorten_into_mode): Likewise.
7160 (iv_add): Use scalar_int_mode.
7161 (iv_mult): Likewise.
7162 (iv_shift): Likewise.
7163 (canonicalize_iv_subregs): Likewise.
7164 (get_biv_step_1): Pass the outer_mode parameter before the rtx
7165 it describes and change its mode to scalar_int_mode. Also change
7166 the type of the returned inner_mode to scalar_int_mode.
7167 (get_biv_step): Likewise, turning outer_mode from a pointer
7168 into a direct parameter. Update call to get_biv_step_1.
7169 (iv_analyze_biv): Add an outer_mode parameter. Update calls to
7170 iv_constant and get_biv_step.
7171 (iv_analyze_expr): Pass the mode parameter before the rtx it describes
7172 and change its type to scalar_int_mode. Don't initialise iv->mode
7173 to VOIDmode and remove later checks for its still being VOIDmode.
7174 Update calls to iv_analyze_op and iv_analyze_expr. Check
7175 is_a <scalar_int_mode> when changing the mode under consideration.
7176 (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
7177 Update call to iv_analyze_expr.
7178 (iv_analyze_op): Add a mode parameter. Reject subregs whose
7179 inner register is not also a scalar_int_mode. Update call to
7180 iv_analyze_biv.
7181 (iv_analyze): Add a mode parameter. Update call to iv_analyze_op.
7182 (biv_p): Add a mode parameter. Update call to iv_analyze_biv.
7183 (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
7184 separate mode class checks. Update calls to iv_analyze. Remove
7185 fix-up of VOIDmodes after iv_analyze_biv.
7186 * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
7187 don't have a scalar_int_mode. Update call to biv_p.
7188
7189 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7190 Alan Hayward <alan.hayward@arm.com>
7191 David Sherwood <david.sherwood@arm.com>
7192
7193 * cfgexpand.c (convert_debug_memory_address): Use
7194 as_a <scalar_int_mode>.
7195 * combine.c (expand_compound_operation): Likewise.
7196 (make_extraction): Likewise.
7197 (change_zero_ext): Likewise.
7198 (simplify_comparison): Likewise.
7199 * cse.c (cse_insn): Likewise.
7200 * dwarf2out.c (minmax_loc_descriptor): Likewise.
7201 (mem_loc_descriptor): Likewise.
7202 (loc_descriptor): Likewise.
7203 * expmed.c (init_expmed_one_mode): Likewise.
7204 (synth_mult): Likewise.
7205 (emit_store_flag_1): Likewise.
7206 (expand_divmod): Likewise. Use HWI_COMPUTABLE_MODE_P instead
7207 of a comparison with size.
7208 * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
7209 (reduce_to_bit_field_precision): Likewise.
7210 * function.c (expand_function_end): Likewise.
7211 * internal-fn.c (expand_arith_overflow_result_store): Likewise.
7212 * loop-doloop.c (doloop_modify): Likewise.
7213 * optabs.c (expand_binop): Likewise.
7214 (expand_unop): Likewise.
7215 (expand_copysign_absneg): Likewise.
7216 (prepare_cmp_insn): Likewise.
7217 (maybe_legitimize_operand): Likewise.
7218 * recog.c (const_scalar_int_operand): Likewise.
7219 * rtlanal.c (get_address_mode): Likewise.
7220 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7221 (simplify_cond_clz_ctz): Likewise.
7222 * tree-nested.c (get_nl_goto_field): Likewise.
7223 * tree.c (build_vector_type_for_mode): Likewise.
7224 * var-tracking.c (use_narrower_mode): Likewise.
7225
7226 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7227 Alan Hayward <alan.hayward@arm.com>
7228 David Sherwood <david.sherwood@arm.com>
7229
7230 * tree.h (SCALAR_INT_TYPE_MODE): New macro.
7231 * builtins.c (expand_builtin_signbit): Use it.
7232 * cfgexpand.c (expand_debug_expr): Likewise.
7233 * dojump.c (do_jump): Likewise.
7234 (do_compare_and_jump): Likewise.
7235 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
7236 * expmed.c (make_tree): Likewise.
7237 * expr.c (expand_expr_real_2): Likewise.
7238 (expand_expr_real_1): Likewise.
7239 (try_casesi): Likewise.
7240 * fold-const-call.c (fold_const_call_ss): Likewise.
7241 * fold-const.c (unextend): Likewise.
7242 (extract_muldiv_1): Likewise.
7243 (fold_single_bit_test): Likewise.
7244 (native_encode_int): Likewise.
7245 (native_encode_string): Likewise.
7246 (native_interpret_int): Likewise.
7247 * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
7248 * internal-fn.c (expand_addsub_overflow): Likewise.
7249 (expand_neg_overflow): Likewise.
7250 (expand_mul_overflow): Likewise.
7251 (expand_arith_overflow): Likewise.
7252 * match.pd: Likewise.
7253 * stor-layout.c (layout_type): Likewise.
7254 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
7255 * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
7256 * tree-ssanames.c (get_range_info): Likewise.
7257 * tree-switch-conversion.c (array_value_type) Likewise.
7258 * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
7259 (vect_recog_divmod_pattern): Likewise.
7260 (vect_recog_mixed_size_cond_pattern): Likewise.
7261 * tree-vrp.c (extract_range_basic): Likewise.
7262 (simplify_float_conversion_using_ranges): Likewise.
7263 * tree.c (int_fits_type_p): Likewise.
7264 * ubsan.c (instrument_bool_enum_load): Likewise.
7265 * varasm.c (mergeable_string_section): Likewise.
7266 (narrowing_initializer_constant_valid_p): Likewise.
7267 (output_constant): Likewise.
7268
7269 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7270 Alan Hayward <alan.hayward@arm.com>
7271 David Sherwood <david.sherwood@arm.com>
7272
7273 * machmode.h (NARROWEST_INT_MODE): New macro.
7274 * expr.c (alignment_for_piecewise_move): Use it instead of
7275 GET_CLASS_NARROWEST_MODE (MODE_INT).
7276 (push_block): Likewise.
7277 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
7278 Likewise.
7279 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
7280
7281 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7282 Alan Hayward <alan.hayward@arm.com>
7283 David Sherwood <david.sherwood@arm.com>
7284
7285 * postreload.c (move2add_valid_value_p): Change the type of the
7286 mode parameter to scalar_int_mode.
7287 (move2add_use_add2_insn): Add a mode parameter and use it instead
7288 of GET_MODE (reg).
7289 (move2add_use_add3_insn): Likewise.
7290 (reload_cse_move2add): Update accordingly.
7291
7292 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7293 Alan Hayward <alan.hayward@arm.com>
7294 David Sherwood <david.sherwood@arm.com>
7295
7296 * expr.c (expand_expr_real_2): Use scalar_int_mode for the
7297 double-word mode.
7298 * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
7299 * optabs.c (expand_unop): Likewise.
7300
7301 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7302 Alan Hayward <alan.hayward@arm.com>
7303 David Sherwood <david.sherwood@arm.com>
7304
7305 * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
7306 (clz_loc_descriptor): Likewise. Remove SCALAR_INT_MODE_P check.
7307 (popcount_loc_descriptor): Likewise.
7308 (bswap_loc_descriptor): Likewise.
7309 (rotate_loc_descriptor): Likewise.
7310 (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
7311 calling the functions above.
7312
7313 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7314 Alan Hayward <alan.hayward@arm.com>
7315 David Sherwood <david.sherwood@arm.com>
7316
7317 * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
7318 checks.
7319 (try_combine): Likewise.
7320 (simplify_if_then_else): Likewise.
7321 * cse.c (cse_insn): Likewise.
7322 * dwarf2out.c (mem_loc_descriptor): Likewise.
7323 * emit-rtl.c (gen_lowpart_common): Likewise.
7324 * simplify-rtx.c (simplify_truncation): Likewise.
7325 (simplify_binary_operation_1): Likewise.
7326 (simplify_const_relational_operation): Likewise.
7327 (simplify_ternary_operation): Likewise.
7328 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7329
7330 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7331 Alan Hayward <alan.hayward@arm.com>
7332 David Sherwood <david.sherwood@arm.com>
7333
7334 * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
7335 * reload.c (push_reload): Likewise.
7336 (find_reloads): Likewise.
7337
7338 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7339 Alan Hayward <alan.hayward@arm.com>
7340 David Sherwood <david.sherwood@arm.com>
7341
7342 * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
7343 (make_compound_operation_int): Likewise.
7344 (change_zero_ext): Likewise.
7345 * expr.c (convert_move): Likewise.
7346 (convert_modes): Likewise.
7347 * fwprop.c (forward_propagate_subreg): Likewise.
7348 * loop-iv.c (get_biv_step_1): Likewise.
7349 * optabs.c (widen_operand): Likewise.
7350 * postreload.c (move2add_valid_value_p): Likewise.
7351 * recog.c (simplify_while_replacing): Likewise.
7352 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7353 (simplify_binary_operation_1): Likewise. Remove redundant
7354 mode equality check.
7355
7356 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7357 Alan Hayward <alan.hayward@arm.com>
7358 David Sherwood <david.sherwood@arm.com>
7359
7360 * combine.c (combine_simplify_rtx): Add checks for
7361 is_a <scalar_int_mode>.
7362 (simplify_if_then_else): Likewise.
7363 (make_field_assignment): Likewise.
7364 (simplify_comparison): Likewise.
7365 * ifcvt.c (noce_try_bitop): Likewise.
7366 * loop-invariant.c (canonicalize_address_mult): Likewise.
7367 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7368
7369 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7370 Alan Hayward <alan.hayward@arm.com>
7371 David Sherwood <david.sherwood@arm.com>
7372
7373 * gimple-fold.c (gimple_fold_builtin_memory_op): Use
7374 is_a <scalar_int_mode> instead of != BLKmode.
7375
7376 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7377 Alan Hayward <alan.hayward@arm.com>
7378 David Sherwood <david.sherwood@arm.com>
7379
7380 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
7381 instead of != VOIDmode.
7382 * combine.c (if_then_else_cond): Likewise.
7383 (change_zero_ext): Likewise.
7384 * dwarf2out.c (mem_loc_descriptor): Likewise.
7385 (loc_descriptor): Likewise.
7386 * rtlanal.c (canonicalize_condition): Likewise.
7387 * simplify-rtx.c (simplify_relational_operation_1): Likewise.
7388
7389 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7390 Alan Hayward <alan.hayward@arm.com>
7391 David Sherwood <david.sherwood@arm.com>
7392
7393 * simplify-rtx.c (simplify_binary_operation_1): Use
7394 is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
7395
7396 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7397 Alan Hayward <alan.hayward@arm.com>
7398 David Sherwood <david.sherwood@arm.com>
7399
7400 * wide-int.h (int_traits<unsigned char>) New class.
7401 (int_traits<unsigned short>) Likewise.
7402 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
7403 Use GET_MODE_UNIT_PRECISION and remove redundant test for
7404 SCALAR_INT_MODE_P.
7405 * combine.c (set_nonzero_bits_and_sign_copies): Use
7406 is_a <scalar_int_mode>.
7407 (find_split_point): Likewise.
7408 (combine_simplify_rtx): Likewise.
7409 (simplify_logical): Likewise.
7410 (expand_compound_operation): Likewise.
7411 (expand_field_assignment): Likewise.
7412 (make_compound_operation): Likewise.
7413 (extended_count): Likewise.
7414 (change_zero_ext): Likewise.
7415 (simplify_comparison): Likewise.
7416 * dwarf2out.c (scompare_loc_descriptor): Likewise.
7417 (ucompare_loc_descriptor): Likewise.
7418 (minmax_loc_descriptor): Likewise.
7419 (mem_loc_descriptor): Likewise.
7420 (loc_descriptor): Likewise.
7421 * expmed.c (init_expmed_one_mode): Likewise.
7422 * lra-constraints.c (lra_constraint_offset): Likewise.
7423 * optabs.c (prepare_libcall_arg): Likewise.
7424 * postreload.c (move2add_note_store): Likewise.
7425 * reload.c (operands_match_p): Likewise.
7426 * rtl.h (load_extend_op): Likewise.
7427 * rtlhooks.c (gen_lowpart_general): Likewise.
7428 * simplify-rtx.c (simplify_truncation): Likewise.
7429 (simplify_unary_operation_1): Likewise.
7430 (simplify_binary_operation_1): Likewise.
7431 (simplify_const_binary_operation): Likewise.
7432 (simplify_const_relational_operation): Likewise.
7433 (simplify_subreg): Likewise.
7434 * stor-layout.c (bitwise_mode_for_mode): Likewise.
7435 * var-tracking.c (adjust_mems): Likewise.
7436 (prepare_call_arguments): Likewise.
7437
7438 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7439 Alan Hayward <alan.hayward@arm.com>
7440 David Sherwood <david.sherwood@arm.com>
7441
7442 * machmode.h (is_int_mode): New fuction.
7443 * combine.c (find_split_point): Use it.
7444 (combine_simplify_rtx): Likewise.
7445 (simplify_if_then_else): Likewise.
7446 (simplify_set): Likewise.
7447 (simplify_shift_const_1): Likewise.
7448 (simplify_comparison): Likewise.
7449 * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
7450 * cse.c (notreg_cost): Likewise.
7451 (cse_insn): Likewise.
7452 * cselib.c (cselib_lookup_1): Likewise.
7453 * dojump.c (do_jump_1): Likewise.
7454 (do_compare_rtx_and_jump): Likewise.
7455 * dse.c (get_call_args): Likewise.
7456 * dwarf2out.c (rtl_for_decl_init): Likewise.
7457 (native_encode_initializer): Likewise.
7458 * expmed.c (emit_store_flag_1): Likewise.
7459 (emit_store_flag): Likewise.
7460 * expr.c (convert_modes): Likewise.
7461 (store_field): Likewise.
7462 (expand_expr_real_1): Likewise.
7463 * fold-const.c (fold_read_from_constant_string): Likewise.
7464 * gimple-ssa-sprintf.c (get_format_string): Likewise.
7465 * optabs-libfuncs.c (gen_int_libfunc): Likewise.
7466 * optabs.c (expand_binop): Likewise.
7467 (expand_unop): Likewise.
7468 (expand_abs_nojump): Likewise.
7469 (expand_one_cmpl_abs_nojump): Likewise.
7470 * simplify-rtx.c (mode_signbit_p): Likewise.
7471 (val_signbit_p): Likewise.
7472 (val_signbit_known_set_p): Likewise.
7473 (val_signbit_known_clear_p): Likewise.
7474 (simplify_relational_operation_1): Likewise.
7475 * tree.c (vector_type_mode): Likewise.
7476
7477 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7478 Alan Hayward <alan.hayward@arm.com>
7479 David Sherwood <david.sherwood@arm.com>
7480
7481 * machmode.h (smallest_mode_for_size): Fix formatting.
7482 (smallest_int_mode_for_size): New function.
7483 * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
7484 instead of smallest_mode_for_size.
7485 * combine.c (make_extraction): Likewise.
7486 * config/arc/arc.c (arc_expand_movmem): Likewise.
7487 * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
7488 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
7489 * config/s390/s390.c (s390_expand_insv): Likewise.
7490 * config/sparc/sparc.c (assign_int_registers): Likewise.
7491 * config/spu/spu.c (spu_function_value): Likewise.
7492 (spu_function_arg): Likewise.
7493 * coverage.c (get_gcov_type): Likewise.
7494 (get_gcov_unsigned_t): Likewise.
7495 * dse.c (find_shift_sequence): Likewise.
7496 * expmed.c (store_bit_field_1): Likewise.
7497 * expr.c (convert_move): Likewise.
7498 (store_field): Likewise.
7499 * internal-fn.c (expand_arith_overflow): Likewise.
7500 * optabs-query.c (get_best_extraction_insn): Likewise.
7501 * optabs.c (expand_twoval_binop_libfunc): Likewise.
7502 * stor-layout.c (layout_type): Likewise.
7503 (initialize_sizetypes): Likewise.
7504 * targhooks.c (default_get_mask_mode): Likewise.
7505 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
7506
7507 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7508 Alan Hayward <alan.hayward@arm.com>
7509 David Sherwood <david.sherwood@arm.com>
7510
7511 * machmode.h (opt_mode::else_blk): New function.
7512 (int_mode_for_mode): Declare.
7513 * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
7514 * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
7515 return type.
7516 * cfgexpand.c (expand_debug_expr): Likewise.
7517 * combine.c (gen_lowpart_or_truncate): Likewise.
7518 (gen_lowpart_for_combine): Likewise.
7519 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
7520 * config/avr/avr.c (avr_to_int_mode): Likewise.
7521 (avr_out_plus_1): Likewise.
7522 (avr_out_plus): Likewise.
7523 (avr_out_round): Likewise.
7524 * config/i386/i386.c (ix86_split_to_parts): Likewise.
7525 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
7526 (s390_expand_vcond): Likewise.
7527 * config/spu/spu.c (spu_split_immediate): Likewise.
7528 (spu_expand_mov): Likewise.
7529 * dse.c (get_stored_val): Likewise.
7530 * expmed.c (store_bit_field_1): Likewise.
7531 (convert_extracted_bit_field): Use int_mode_for_mode instead of
7532 int_mode_for_size.
7533 (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
7534 (extract_low_bits): Likewise.
7535 * expr.c (emit_group_load_1): Likewise. Separate out the BLKmode
7536 handling rather than repeating the check.
7537 (emit_group_store): Likewise.
7538 (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
7539 * optabs.c (expand_absneg_bit): Likewise.
7540 (expand_copysign_absneg): Likewise.
7541 (expand_copysign_bit): Likewise.
7542 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
7543 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
7544 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
7545 * var-tracking.c (prepare_call_arguments): Likewise.
7546 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
7547 int_mode_for_mode instead of mode_for_size.
7548 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
7549
7550 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7551 Alan Hayward <alan.hayward@arm.com>
7552 David Sherwood <david.sherwood@arm.com>
7553
7554 * machmode.h (int_mode_for_size): New function.
7555 * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
7556 instead of mode_for_size.
7557 * calls.c (save_fixed_argument_area): Likewise. Make use of BLKmode
7558 explicit.
7559 * combine.c (expand_field_assignment): Use int_mode_for_size
7560 instead of mode_for_size.
7561 (make_extraction): Likewise.
7562 (simplify_shift_const_1): Likewise.
7563 (simplify_comparison): Likewise.
7564 * dojump.c (do_jump): Likewise.
7565 * dwarf2out.c (mem_loc_descriptor): Likewise.
7566 * emit-rtl.c (init_derived_machine_modes): Likewise.
7567 * expmed.c (flip_storage_order): Likewise.
7568 (convert_extracted_bit_field): Likewise.
7569 * expr.c (copy_blkmode_from_reg): Likewise.
7570 * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
7571 * internal-fn.c (expand_mul_overflow): Likewise.
7572 * lower-subreg.c (simple_move): Likewise.
7573 * optabs-libfuncs.c (init_optabs): Likewise.
7574 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7575 * tree.c (vector_type_mode): Likewise.
7576 * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
7577 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
7578 * tree-vect-generic.c (expand_vector_parallel): Likewise.
7579 * tree-vect-stmts.c (vectorizable_load): Likewise.
7580 (vectorizable_store): Likewise.
7581
7582 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7583 Alan Hayward <alan.hayward@arm.com>
7584 David Sherwood <david.sherwood@arm.com>
7585
7586 * coretypes.h (pod_mode): New type.
7587 (scalar_int_mode_pod): New typedef.
7588 * machmode.h (pod_mode): New class.
7589 (int_n_data_t::m): Change type to scalar_int_mode_pod.
7590 * genmodes.c (emit_mode_int_n): Update accordingly.
7591 * lower-subreg.h (target_lower_subreg): Change type to
7592 scalar_int_mode_pod.
7593 * gdbhooks.py (build_pretty_printer): Handle pod_mode and
7594 scalar_int_mode_pod.
7595
7596 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7597 Alan Hayward <alan.hayward@arm.com>
7598 David Sherwood <david.sherwood@arm.com>
7599
7600 * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
7601 machine_mode to scalar_int_mode.
7602 * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
7603 (rs6000_option_override_internal): Remove cast to int.
7604 * config/rs6000/rs6000.h (rs6000_pmode): Change type from
7605 machine_mode to scalar_int_mode.
7606 * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
7607 (rs6000_option_override_internal): Remove cast to int.
7608 * config/s390/s390.h (Pmode): Remove cast to machine_mode.
7609 * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
7610 to machine_mode.
7611 * config/s390/s390.c (s390_expand_builtin): Likewise.
7612 * coretypes.h (scalar_int_mode): New type.
7613 (opt_scalar_int_mode): New typedef.
7614 * machmode.h (scalar_int_mode): New class.
7615 (scalar_int_mode::includes_p): New function.
7616 (byte_mode): Change type to scalar_int_mode.
7617 (word_mode): Likewise.
7618 (ptr_mode): Likewise.
7619 * emit-rtl.c (byte_mode): Likewise.
7620 (word_mode): Likewise.
7621 (ptr_mode): Likewise.
7622 (init_derived_machine_modes): Update accordingly.
7623 * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
7624 and MODE_PARTIAL_INT.
7625 * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
7626 opt_scalar_int_mode.
7627
7628 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7629 Alan Hayward <alan.hayward@arm.com>
7630 David Sherwood <david.sherwood@arm.com>
7631
7632 * target.def (libgcc_floating_mode_supported_p): Take a
7633 scalar_float_mode.
7634 * doc/tm.texi: Regenerate.
7635 * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
7636 scalar_float_mode.
7637 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
7638 * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
7639 Likewise.
7640
7641 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7642 Alan Hayward <alan.hayward@arm.com>
7643 David Sherwood <david.sherwood@arm.com>
7644
7645 * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
7646 * doc/tm.texi: Regenerate.
7647 * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
7648 * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
7649 * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
7650 * targhooks.h (default_floatn_mode): Likewise.
7651 * targhooks.c (default_floatn_mode): Likewise.
7652 * tree.c (build_common_tree_nodes): Update accordingly.
7653
7654 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7655 Alan Hayward <alan.hayward@arm.com>
7656 David Sherwood <david.sherwood@arm.com>
7657
7658 * machmode.h (mode_iterator::start): Provide overload for opt_modes.
7659 (mode_iterator::iterate_p): Likewise.
7660 (mode_iterator::get_wider): Likewise.
7661 * expr.c (init_expr_target): Use opt_scalar_float_mode.
7662
7663 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7664 Alan Hayward <alan.hayward@arm.com>
7665 David Sherwood <david.sherwood@arm.com>
7666
7667 * coretypes.h (opt_scalar_float_mode): New typedef.
7668 * machmode.h (float_mode_for_size): New function.
7669 * emit-rtl.c (double_mode): Delete.
7670 (init_emit_once): Use float_mode_for_size.
7671 * stor-layout.c (layout_type): Likewise.
7672 * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
7673
7674 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7675 Alan Hayward <alan.hayward@arm.com>
7676 David Sherwood <david.sherwood@arm.com>
7677
7678 * output.h (assemble_real): Take a scalar_float_mode.
7679 * config/arm/arm.c (arm_assemble_integer): Update accordingly.
7680 * config/arm/arm.md (consttable_4): Likewise.
7681 (consttable_8): Likewise.
7682 (consttable_16): Likewise.
7683 * config/mips/mips.md (consttable_float): Likewise.
7684 * config/s390/s390.c (s390_output_pool_entry): Likewise.
7685 * varasm.c (assemble_real): Take a scalar_float_mode.
7686 (output_constant_pool_2): Update accordingly.
7687 (output_constant): Likewise.
7688
7689 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7690 Alan Hayward <alan.hayward@arm.com>
7691 David Sherwood <david.sherwood@arm.com>
7692
7693 * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
7694 * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
7695 * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
7696 (native_encode_real): Likewise.
7697 (native_interpret_real): Likewise.
7698 * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
7699 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
7700
7701 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7702 Alan Hayward <alan.hayward@arm.com>
7703 David Sherwood <david.sherwood@arm.com>
7704
7705 * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
7706 <scalar_float_mode>. Simplify.
7707 (gen_extend_conv_libfunc): Likewise.
7708
7709 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7710 Alan Hayward <alan.hayward@arm.com>
7711 David Sherwood <david.sherwood@arm.com>
7712
7713 * coretypes.h (scalar_float_mode): New type.
7714 * machmode.h (mode_traits::from_int): Use machine_mode if
7715 USE_ENUM_MODES is defined.
7716 (is_a): New function.
7717 (as_a): Likewise.
7718 (dyn_cast): Likewise.
7719 (scalar_float_mode): New class.
7720 (scalar_float_mode::includes_p): New function.
7721 (is_float_mode): Likewise.
7722 * gdbhooks.py (MachineModePrinter): New class.
7723 (build_pretty_printer): Use it for scalar_float_mode.
7724 * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
7725 (format_helper::format_helper): Turn into a template.
7726 * genmodes.c (get_mode_class): New function.
7727 (emit_insn_modes_h): Give modes the class returned by get_mode_class,
7728 or machine_mode if none.
7729 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
7730 as_a <scalar_float_mode>.
7731 * dwarf2out.c (mem_loc_descriptor): Likewise.
7732 (insert_float): Likewise.
7733 (add_const_value_attribute): Likewise.
7734 * simplify-rtx.c (simplify_immed_subreg): Likewise.
7735 * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
7736 (expand_unop): Update accordingly.
7737 (expand_abs_nojump): Likewise.
7738 (expand_copysign_absneg): Take a scalar_float_mode.
7739 (expand_copysign_bit): Likewise.
7740 (expand_copysign): Update accordingly.
7741
7742 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7743 Alan Hayward <alan.hayward@arm.com>
7744 David Sherwood <david.sherwood@arm.com>
7745
7746 * coretypes.h (opt_mode): New class.
7747 * machmode.h (opt_mode): Likewise.
7748 (opt_mode::else_void): New function.
7749 (opt_mode::require): Likewise.
7750 (opt_mode::exists): Likewise.
7751 (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
7752 (GET_MODE_2XWIDER_MODE): Likewise.
7753 (mode_iterator::get_wider): Update accordingly.
7754 (mode_iterator::get_2xwider): Likewise.
7755 (mode_iterator::get_known_wider): Likewise, turning into a template.
7756 * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
7757 forcing a wider mode to exist.
7758 * config/cr16/cr16.h (LONG_REG_P): Likewise.
7759 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
7760 * config/c6x/c6x.c (c6x_rtx_costs): Update use of
7761 GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
7762 * lower-subreg.c (init_lower_subreg): Likewise.
7763 * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
7764 on the final iteration.
7765 * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
7766 a wider mode exists before asking for a move pattern.
7767 (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
7768 forcing a wider mode to exist.
7769 (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
7770 returning false if no such mode exists.
7771 * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
7772 * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
7773 * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
7774 Avoid checking for a MODE_INT if we already know the mode is not a
7775 SCALAR_INT_MODE_P.
7776 (extract_high_half): Update use of GET_MODE_WIDER_MODE,
7777 forcing a wider mode to exist.
7778 (expmed_mult_highpart_optab): Likewise.
7779 (expmed_mult_highpart): Likewise.
7780 * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
7781 using else_void.
7782 * lto-streamer-in.c (lto_input_mode_table): Likewise.
7783 * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
7784 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
7785 * internal-fn.c (expand_mul_overflow): Update use of
7786 GET_MODE_2XWIDER_MODE.
7787 * omp-low.c (omp_clause_aligned_alignment): Likewise.
7788 * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
7789 GET_MODE_WIDER_MODE.
7790 (convert_plusminus_to_widen): Likewise.
7791 * tree-switch-conversion.c (array_value_type): Likewise.
7792 * var-tracking.c (emit_note_insn_var_location): Likewise.
7793 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
7794 Return false inside rather than outside the loop if no wider mode
7795 exists
7796 * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
7797 and GET_MODE_2XWIDER_MODE
7798 (can_compare_p): Use else_void.
7799 * gdbhooks.py (OptMachineModePrinter): New class.
7800 (build_pretty_printer): Use it for opt_mode.
7801
7802 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7803 Alan Hayward <alan.hayward@arm.com>
7804 David Sherwood <david.sherwood@arm.com>
7805
7806 * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
7807 once. Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
7808
7809 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7810 Alan Hayward <alan.hayward@arm.com>
7811 David Sherwood <david.sherwood@arm.com>
7812
7813 * machmode.h (mode_traits): New structure.
7814 (get_narrowest_mode): New function.
7815 (mode_iterator::start): Likewise.
7816 (mode_iterator::iterate_p): Likewise.
7817 (mode_iterator::get_wider): Likewise.
7818 (mode_iterator::get_known_wider): Likewise.
7819 (mode_iterator::get_2xwider): Likewise.
7820 (FOR_EACH_MODE_IN_CLASS): New mode iterator.
7821 (FOR_EACH_MODE): Likewise.
7822 (FOR_EACH_MODE_FROM): Likewise.
7823 (FOR_EACH_MODE_UNTIL): Likewise.
7824 (FOR_EACH_WIDER_MODE): Likewise.
7825 (FOR_EACH_2XWIDER_MODE): Likewise.
7826 * builtins.c (expand_builtin_strlen): Use new mode iterators.
7827 * combine.c (simplify_comparison): Likewise
7828 * config/i386/i386.c (type_natural_mode): Likewise.
7829 * cse.c (cse_insn): Likewise.
7830 * dse.c (find_shift_sequence): Likewise.
7831 * emit-rtl.c (init_derived_machine_modes): Likewise.
7832 (init_emit_once): Likewise.
7833 * explow.c (hard_function_value): Likewise.
7834 * expmed.c (extract_fixed_bit_field_1): Likewise.
7835 (extract_bit_field_1): Likewise.
7836 (expand_divmod): Likewise.
7837 (emit_store_flag_1): Likewise.
7838 * expr.c (init_expr_target): Likewise.
7839 (convert_move): Likewise.
7840 (alignment_for_piecewise_move): Likewise.
7841 (widest_int_mode_for_size): Likewise.
7842 (emit_block_move_via_movmem): Likewise.
7843 (copy_blkmode_to_reg): Likewise.
7844 (set_storage_via_setmem): Likewise.
7845 (compress_float_constant): Likewise.
7846 * omp-low.c (omp_clause_aligned_alignment): Likewise.
7847 * optabs-query.c (get_best_extraction_insn): Likewise.
7848 * optabs.c (expand_binop): Likewise.
7849 (expand_twoval_unop): Likewise.
7850 (expand_twoval_binop): Likewise.
7851 (widen_leading): Likewise.
7852 (widen_bswap): Likewise.
7853 (expand_parity): Likewise.
7854 (expand_unop): Likewise.
7855 (prepare_cmp_insn): Likewise.
7856 (prepare_float_lib_cmp): Likewise.
7857 (expand_float): Likewise.
7858 (expand_fix): Likewise.
7859 (expand_sfix_optab): Likewise.
7860 * postreload.c (move2add_use_add2_insn): Likewise.
7861 * reg-stack.c (reg_to_stack): Likewise.
7862 * reginfo.c (choose_hard_reg_mode): Likewise.
7863 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
7864 * stor-layout.c (mode_for_size): Likewise.
7865 (smallest_mode_for_size): Likewise.
7866 (mode_for_vector): Likewise.
7867 (finish_bitfield_representative): Likewise.
7868 * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
7869 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
7870 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7871 * var-tracking.c (prepare_call_arguments): Likewise.
7872
7873 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7874 Alan Hayward <alan.hayward@arm.com>
7875 David Sherwood <david.sherwood@arm.com>
7876
7877 * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
7878 * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
7879 USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
7880 * machmode.h (mode_size): Move earlier in file.
7881 (mode_precision): Likewise.
7882 (mode_inner): Likewise.
7883 (mode_nunits): Likewise.
7884 (mode_unit_size): Likewise.
7885 (unit_unit_precision): Likewise.
7886 (mode_wider): Likewise.
7887 (mode_2xwider): Likewise.
7888 (machine_mode): New class.
7889 (mode_to_bytes): New function.
7890 (mode_to_bits): Likewise.
7891 (mode_to_precision): Likewise.
7892 (mode_to_inner): Likewise.
7893 (mode_to_unit_size): Likewise.
7894 (mode_to_unit_precision): Likewise.
7895 (mode_to_nunits): Likewise.
7896 (GET_MODE_SIZE): Use mode_to_bytes.
7897 (GET_MODE_BITSIZE): Use mode_to_bits.
7898 (GET_MODE_PRECISION): Use mode_to_precision.
7899 (GET_MODE_INNER): Use mode_to_inner.
7900 (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
7901 (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
7902 (GET_MODE_NUNITS): Use mode_to_nunits.
7903 * system.h (ALWAYS_INLINE): New macro.
7904 * config/powerpcspe/powerpcspe-c.c
7905 (altivec_resolve_overloaded_builtin): Use machine_mode instead of
7906 int for arg1_mode and arg2_mode.
7907
7908 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7909 Alan Hayward <alan.hayward@arm.com>
7910 David Sherwood <david.sherwood@arm.com>
7911
7912 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
7913 Prefix mode names with E_ in case statements.
7914 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7915 * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
7916 (aarch64_split_simd_move): Likewise.
7917 (aarch64_gen_storewb_pair): Likewise.
7918 (aarch64_gen_loadwb_pair): Likewise.
7919 (aarch64_gen_store_pair): Likewise.
7920 (aarch64_gen_load_pair): Likewise.
7921 (aarch64_get_condition_code_1): Likewise.
7922 (aarch64_constant_pool_reload_icode): Likewise.
7923 (get_rsqrte_type): Likewise.
7924 (get_rsqrts_type): Likewise.
7925 (get_recpe_type): Likewise.
7926 (get_recps_type): Likewise.
7927 (aarch64_gimplify_va_arg_expr): Likewise.
7928 (aarch64_simd_container_mode): Likewise.
7929 (aarch64_emit_load_exclusive): Likewise.
7930 (aarch64_emit_store_exclusive): Likewise.
7931 (aarch64_expand_compare_and_swap): Likewise.
7932 (aarch64_gen_atomic_cas): Likewise.
7933 (aarch64_emit_bic): Likewise.
7934 (aarch64_emit_atomic_swap): Likewise.
7935 (aarch64_emit_atomic_load_op): Likewise.
7936 (aarch64_evpc_trn): Likewise.
7937 (aarch64_evpc_uzp): Likewise.
7938 (aarch64_evpc_zip): Likewise.
7939 (aarch64_evpc_ext): Likewise.
7940 (aarch64_evpc_rev): Likewise.
7941 (aarch64_evpc_dup): Likewise.
7942 (aarch64_gen_ccmp_first): Likewise.
7943 (aarch64_gen_ccmp_next): Likewise.
7944 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
7945 (alpha_emit_xfloating_libcall): Likewise.
7946 (emit_insxl): Likewise.
7947 (alpha_arg_type): Likewise.
7948 * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
7949 (arc_preferred_simd_mode): Likewise.
7950 (arc_secondary_reload): Likewise.
7951 (get_arc_condition_code): Likewise.
7952 (arc_print_operand): Likewise.
7953 (arc_legitimate_constant_p): Likewise.
7954 * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7955 * config/arc/arc.md (casesi_load): Likewise.
7956 (casesi_compact_jump): Likewise.
7957 * config/arc/predicates.md (proper_comparison_operator): Likewise.
7958 (cc_use_register): Likewise.
7959 * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7960 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
7961 (arm_init_iwmmxt_builtins): Likewise.
7962 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
7963 (neon_expand_vector_init): Likewise.
7964 (arm_attr_length_move_neon): Likewise.
7965 (maybe_get_arm_condition_code): Likewise.
7966 (arm_emit_vector_const): Likewise.
7967 (arm_preferred_simd_mode): Likewise.
7968 (arm_output_iwmmxt_tinsr): Likewise.
7969 (thumb1_output_casesi): Likewise.
7970 (thumb2_output_casesi): Likewise.
7971 (arm_emit_load_exclusive): Likewise.
7972 (arm_emit_store_exclusive): Likewise.
7973 (arm_expand_compare_and_swap): Likewise.
7974 (arm_evpc_neon_vuzp): Likewise.
7975 (arm_evpc_neon_vzip): Likewise.
7976 (arm_evpc_neon_vrev): Likewise.
7977 (arm_evpc_neon_vtrn): Likewise.
7978 (arm_evpc_neon_vext): Likewise.
7979 (arm_validize_comparison): Likewise.
7980 * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
7981 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
7982 * config/avr/avr.c (avr_rtx_costs_1): Likewise.
7983 * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
7984 (c6x_preferred_simd_mode): Likewise.
7985 * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
7986 (epiphany_rtx_costs): Likewise.
7987 * config/epiphany/predicates.md (proper_comparison_operator):
7988 Likewise.
7989 * config/frv/frv.c (condexec_memory_operand): Likewise.
7990 (frv_emit_move): Likewise.
7991 (output_move_single): Likewise.
7992 (output_condmove_single): Likewise.
7993 (frv_hard_regno_mode_ok): Likewise.
7994 (frv_matching_accg_mode): Likewise.
7995 * config/h8300/h8300.c (split_adds_subs): Likewise.
7996 (h8300_rtx_costs): Likewise.
7997 (h8300_print_operand): Likewise.
7998 (compute_mov_length): Likewise.
7999 (output_logical_op): Likewise.
8000 (compute_logical_op_length): Likewise.
8001 (compute_logical_op_cc): Likewise.
8002 (h8300_shift_needs_scratch_p): Likewise.
8003 (output_a_shift): Likewise.
8004 (compute_a_shift_length): Likewise.
8005 (compute_a_shift_cc): Likewise.
8006 (expand_a_rotate): Likewise.
8007 (output_a_rotate): Likewise.
8008 * config/i386/i386.c (classify_argument): Likewise.
8009 (function_arg_advance_32): Likewise.
8010 (function_arg_32): Likewise.
8011 (function_arg_64): Likewise.
8012 (function_value_64): Likewise.
8013 (ix86_gimplify_va_arg): Likewise.
8014 (ix86_legitimate_constant_p): Likewise.
8015 (put_condition_code): Likewise.
8016 (split_double_mode): Likewise.
8017 (ix86_avx256_split_vector_move_misalign): Likewise.
8018 (ix86_expand_vector_logical_operator): Likewise.
8019 (ix86_split_idivmod): Likewise.
8020 (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
8021 (ix86_build_const_vector): Likewise.
8022 (ix86_build_signbit_mask): Likewise.
8023 (ix86_match_ccmode): Likewise.
8024 (ix86_cc_modes_compatible): Likewise.
8025 (ix86_expand_branch): Likewise.
8026 (ix86_expand_sse_cmp): Likewise.
8027 (ix86_expand_sse_movcc): Likewise.
8028 (ix86_expand_int_sse_cmp): Likewise.
8029 (ix86_expand_vec_perm_vpermi2): Likewise.
8030 (ix86_expand_vec_perm): Likewise.
8031 (ix86_expand_sse_unpack): Likewise.
8032 (ix86_expand_int_addcc): Likewise.
8033 (ix86_split_to_parts): Likewise.
8034 (ix86_vectorize_builtin_gather): Likewise.
8035 (ix86_vectorize_builtin_scatter): Likewise.
8036 (avx_vpermilp_parallel): Likewise.
8037 (inline_memory_move_cost): Likewise.
8038 (ix86_tieable_integer_mode_p): Likewise.
8039 (x86_maybe_negate_const_int): Likewise.
8040 (ix86_expand_vector_init_duplicate): Likewise.
8041 (ix86_expand_vector_init_one_nonzero): Likewise.
8042 (ix86_expand_vector_init_one_var): Likewise.
8043 (ix86_expand_vector_init_concat): Likewise.
8044 (ix86_expand_vector_init_interleave): Likewise.
8045 (ix86_expand_vector_init_general): Likewise.
8046 (ix86_expand_vector_set): Likewise.
8047 (ix86_expand_vector_extract): Likewise.
8048 (emit_reduc_half): Likewise.
8049 (ix86_emit_i387_round): Likewise.
8050 (ix86_mangle_type): Likewise.
8051 (ix86_expand_round_sse4): Likewise.
8052 (expand_vec_perm_blend): Likewise.
8053 (canonicalize_vector_int_perm): Likewise.
8054 (ix86_expand_vec_one_operand_perm_avx512): Likewise.
8055 (expand_vec_perm_1): Likewise.
8056 (expand_vec_perm_interleave3): Likewise.
8057 (expand_vec_perm_even_odd_pack): Likewise.
8058 (expand_vec_perm_even_odd_1): Likewise.
8059 (expand_vec_perm_broadcast_1): Likewise.
8060 (ix86_vectorize_vec_perm_const_ok): Likewise.
8061 (ix86_expand_vecop_qihi): Likewise.
8062 (ix86_expand_mul_widen_hilo): Likewise.
8063 (ix86_expand_sse2_abs): Likewise.
8064 (ix86_expand_pextr): Likewise.
8065 (ix86_expand_pinsr): Likewise.
8066 (ix86_preferred_simd_mode): Likewise.
8067 (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
8068 * config/i386/sse.md (*andnot<mode>3): Likewise.
8069 (<mask_codefor><code><mode>3<mask_name>): Likewise.
8070 (*<code><mode>3): Likewise.
8071 * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
8072 (ia64_expand_atomic_op): Likewise.
8073 (ia64_arg_type): Likewise.
8074 (ia64_mode_to_int): Likewise.
8075 (ia64_scalar_mode_supported_p): Likewise.
8076 (ia64_vector_mode_supported_p): Likewise.
8077 (expand_vec_perm_broadcast): Likewise.
8078 * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
8079 (iq2000_function_arg_advance): Likewise.
8080 (iq2000_function_arg): Likewise.
8081 * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
8082 * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
8083 (m68k_libcall_value): Likewise.
8084 (m68k_function_value): Likewise.
8085 (sched_attr_op_type): Likewise.
8086 * config/mcore/mcore.c (mcore_output_move): Likewise.
8087 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
8088 Likewise.
8089 (microblaze_function_arg): Likewise.
8090 * config/mips/mips.c (mips16_build_call_stub): Likewise.
8091 (mips_print_operand): Likewise.
8092 (mips_mode_ok_for_mov_fmt_p): Likewise.
8093 (mips_vector_mode_supported_p): Likewise.
8094 (mips_preferred_simd_mode): Likewise.
8095 (mips_expand_vpc_loongson_even_odd): Likewise.
8096 (mips_expand_vec_unpack): Likewise.
8097 (mips_expand_vi_broadcast): Likewise.
8098 (mips_expand_vector_init): Likewise.
8099 (mips_expand_vec_reduc): Likewise.
8100 (mips_expand_msa_cmp): Likewise.
8101 * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
8102 * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
8103 (cc_flags_for_mode): Likewise.
8104 * config/msp430/msp430.c (msp430_print_operand): Likewise.
8105 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
8106 (nds32_output_casesi_pc_relative): Likewise.
8107 * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8108 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
8109 (nvptx_gen_unpack): Likewise.
8110 (nvptx_gen_pack): Likewise.
8111 (nvptx_gen_shuffle): Likewise.
8112 (nvptx_gen_wcast): Likewise.
8113 (nvptx_preferred_simd_mode): Likewise.
8114 * config/pa/pa.c (pa_secondary_reload): Likewise.
8115 * config/pa/predicates.md (base14_operand): Likewise.
8116 * config/powerpcspe/powerpcspe-c.c
8117 (altivec_resolve_overloaded_builtin): Likewise.
8118 * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
8119 Likewise.
8120 (rs6000_preferred_simd_mode): Likewise.
8121 (output_vec_const_move): Likewise.
8122 (rs6000_expand_vector_extract): Likewise.
8123 (rs6000_split_vec_extract_var): Likewise.
8124 (reg_offset_addressing_ok_p): Likewise.
8125 (rs6000_legitimate_offset_address_p): Likewise.
8126 (rs6000_legitimize_address): Likewise.
8127 (rs6000_emit_set_const): Likewise.
8128 (rs6000_const_vec): Likewise.
8129 (rs6000_emit_move): Likewise.
8130 (spe_build_register_parallel): Likewise.
8131 (rs6000_darwin64_record_arg_recurse): Likewise.
8132 (swap_selector_for_mode): Likewise.
8133 (spe_init_builtins): Likewise.
8134 (paired_init_builtins): Likewise.
8135 (altivec_init_builtins): Likewise.
8136 (do_load_for_compare): Likewise.
8137 (rs6000_generate_compare): Likewise.
8138 (rs6000_expand_float128_convert): Likewise.
8139 (emit_load_locked): Likewise.
8140 (emit_store_conditional): Likewise.
8141 (rs6000_output_function_epilogue): Likewise.
8142 (rs6000_handle_altivec_attribute): Likewise.
8143 (rs6000_function_value): Likewise.
8144 (emit_fusion_gpr_load): Likewise.
8145 (emit_fusion_p9_load): Likewise.
8146 (emit_fusion_p9_store): Likewise.
8147 * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
8148 (fusion_gpr_mem_load): Likewise.
8149 (fusion_addis_mem_combo_load): Likewise.
8150 (fusion_addis_mem_combo_store): Likewise.
8151 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
8152 (fusion_gpr_mem_load): Likewise.
8153 (fusion_addis_mem_combo_load): Likewise.
8154 (fusion_addis_mem_combo_store): Likewise.
8155 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8156 Likewise.
8157 * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
8158 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
8159 (rs6000_preferred_simd_mode): Likewise.
8160 (output_vec_const_move): Likewise.
8161 (rs6000_expand_vector_extract): Likewise.
8162 (rs6000_split_vec_extract_var): Likewise.
8163 (reg_offset_addressing_ok_p): Likewise.
8164 (rs6000_legitimate_offset_address_p): Likewise.
8165 (rs6000_legitimize_address): Likewise.
8166 (rs6000_emit_set_const): Likewise.
8167 (rs6000_const_vec): Likewise.
8168 (rs6000_emit_move): Likewise.
8169 (rs6000_darwin64_record_arg_recurse): Likewise.
8170 (swap_selector_for_mode): Likewise.
8171 (paired_init_builtins): Likewise.
8172 (altivec_init_builtins): Likewise.
8173 (rs6000_expand_float128_convert): Likewise.
8174 (emit_load_locked): Likewise.
8175 (emit_store_conditional): Likewise.
8176 (rs6000_output_function_epilogue): Likewise.
8177 (rs6000_handle_altivec_attribute): Likewise.
8178 (rs6000_function_value): Likewise.
8179 (emit_fusion_gpr_load): Likewise.
8180 (emit_fusion_p9_load): Likewise.
8181 (emit_fusion_p9_store): Likewise.
8182 * config/rx/rx.c (rx_gen_move_template): Likewise.
8183 (flags_from_mode): Likewise.
8184 * config/s390/predicates.md (s390_alc_comparison): Likewise.
8185 (s390_slb_comparison): Likewise.
8186 * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
8187 (s390_vector_mode_supported_p): Likewise.
8188 (s390_cc_modes_compatible): Likewise.
8189 (s390_match_ccmode_set): Likewise.
8190 (s390_canonicalize_comparison): Likewise.
8191 (s390_emit_compare_and_swap): Likewise.
8192 (s390_branch_condition_mask): Likewise.
8193 (s390_rtx_costs): Likewise.
8194 (s390_secondary_reload): Likewise.
8195 (__SECONDARY_RELOAD_CASE): Likewise.
8196 (s390_expand_cs): Likewise.
8197 (s390_preferred_simd_mode): Likewise.
8198 * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
8199 * config/sh/sh.c (sh_print_operand): Likewise.
8200 (dump_table): Likewise.
8201 (sh_secondary_reload): Likewise.
8202 * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8203 * config/sh/sh.md (casesi_worker_1): Likewise.
8204 (casesi_worker_2): Likewise.
8205 * config/sparc/predicates.md (icc_comparison_operator): Likewise.
8206 (fcc_comparison_operator): Likewise.
8207 * config/sparc/sparc.c (sparc_expand_move): Likewise.
8208 (emit_soft_tfmode_cvt): Likewise.
8209 (sparc_preferred_simd_mode): Likewise.
8210 (output_cbranch): Likewise.
8211 (sparc_print_operand): Likewise.
8212 (sparc_expand_vec_perm_bmask): Likewise.
8213 (vector_init_bshuffle): Likewise.
8214 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
8215 (spu_vector_mode_supported_p): Likewise.
8216 (spu_expand_insv): Likewise.
8217 (spu_emit_branch_or_set): Likewise.
8218 (spu_handle_vector_attribute): Likewise.
8219 (spu_builtin_splats): Likewise.
8220 (spu_builtin_extract): Likewise.
8221 (spu_builtin_promote): Likewise.
8222 (spu_expand_sign_extend): Likewise.
8223 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
8224 (tilegx_simd_int): Likewise.
8225 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
8226 (tilepro_simd_int): Likewise.
8227 * config/v850/v850.c (const_double_split): Likewise.
8228 (v850_print_operand): Likewise.
8229 (ep_memory_offset): Likewise.
8230 * config/vax/vax.c (vax_rtx_costs): Likewise.
8231 (vax_output_int_move): Likewise.
8232 (vax_output_int_add): Likewise.
8233 (vax_output_int_subtract): Likewise.
8234 * config/visium/predicates.md (visium_branch_operator): Likewise.
8235 * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
8236 (visium_print_operand_address): Likewise.
8237 * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8238 * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
8239 (xtensa_expand_conditional_branch): Likewise.
8240 (xtensa_copy_incoming_a7): Likewise.
8241 (xtensa_output_literal): Likewise.
8242 * dfp.c (decimal_real_maxval): Likewise.
8243 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
8244
8245 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8246 Alan Hayward <alan.hayward@arm.com>
8247 David Sherwood <david.sherwood@arm.com>
8248
8249 * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
8250 (mode_nunits_inline): Likewise.
8251 (mode_inner_inline): Likewise.
8252 (mode_unit_size_inline): Likewise.
8253 (mode_unit_precision_inline): Likewise.
8254 (emit_insn_modes_h): Likewise. Also emit a #define of the
8255 unprefixed name.
8256 (emit_mode_wider): Add an E_ prefix to mode names.
8257 (emit_mode_complex): Likewise.
8258 (emit_mode_inner): Likewise.
8259 (emit_mode_adjustments): Likewise.
8260 (emit_mode_int_n): Likewise.
8261 * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
8262 (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
8263 (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
8264 (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
8265 (CRC32_BUILTIN, ENTRY): Likewise.
8266 * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
8267 (aarch64_pop_regs): Likewise.
8268 (aarch64_process_components): Likewise.
8269 * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
8270 * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
8271 (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
8272 (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
8273 * config/arm/arm.c (arm_init_libfuncs): Likewise.
8274 * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
8275 Likewise.
8276 * config/i386/i386-builtin.def (pcmpestr): Likewise.
8277 (pcmpistr): Likewise.
8278 * config/microblaze/microblaze.c (double_memory_operand): Likewise.
8279 * config/mmix/mmix.c (mmix_output_condition): Likewise.
8280 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
8281 Likewise.
8282 * config/rl78/rl78.c (mduc_regs): Likewise.
8283 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
8284 (htm_expand_builtin): Likewise.
8285 * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
8286 * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
8287 * config/xtensa/xtensa.c (print_operand): Likewise.
8288 * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
8289 (NUM_MODE_VECTOR_INT): Likewise.
8290 * genoutput.c (null_operand): Likewise.
8291 (output_operand_data): Likewise.
8292 * genrecog.c (print_parameter_value): Likewise.
8293 * lra.c (debug_operand_data): Likewise.
8294
8295 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8296
8297 * dwarf2out.c (scompare_loc_descriptor_wide)
8298 (scompare_loc_descriptor_narrow): New functions, split out from...
8299 (scompare_loc_descriptor): ...here.
8300 * expmed.c (emit_store_flag_int): New function, split out from...
8301 (emit_store_flag): ...here.
8302
8303 2017-08-30 Richard Biener <rguenther@suse.de>
8304
8305 * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
8306 (dwarf2out_early_finish): Move setting of AT_pubnames from
8307 early debug output to early finish.
8308
8309 2017-08-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
8310
8311 * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
8312 and -mdata-region to the assembler.
8313
8314 2017-08-30 Richard Biener <rguenther@suse.de>
8315
8316 * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
8317 attributes.
8318 (gen_subprogram_die): Add DW_AT_object_pointer only early.
8319 (dwarf2out_early_global_decl): Only generate a DIE for the
8320 abstract origin if it doesn't already exist or is a declaration DIE.
8321 (resolve_addr): Do not add the linkage name twice when
8322 generating a stub DIE for the DW_TAG_GNU_call_site target.
8323
8324 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8325
8326 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8327 Use machine_mode rather than int for arg1_mode.
8328
8329 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
8330
8331 PR target/82015
8332 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
8333 that the second argument of the built-in functions to unpack
8334 128-bit scalar types to 64-bit values is 0 or 1. Change to use a
8335 switch statement instead a lot of if statements.
8336 * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
8337 Allow 64-bit values to be in Altivec registers as well as
8338 traditional floating point registers.
8339 (pack<mode>, FMOVE128_VSX iterator): Likewise.
8340
8341 2017-08-29 Alexander Monakov <amonakov@ispras.ru>
8342
8343 * ira-costs.c (record_address_regs): Handle both operands of PLUS for
8344 MAX_REGS_PER_ADDRESS == 1.
8345
8346 2017-08-29 Uros Bizjak <ubizjak@gmail.com>
8347
8348 * config/i386/i386.opt (flag_fentry): Do not init to -1.
8349 * config/i386/i386.c (ix86_option_override_internal): Simplify
8350 setting of opts->x_flag_entry.
8351
8352 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8353 Jakub Jelinek <jakub@redhat.com>
8354 Richard Biener <rguenther@suse.de>
8355
8356 PR tree-optimization/81503
8357 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
8358 folded constant fits in the target type; reorder tests for clarity.
8359
8360 2017-08-29 Martin Liska <mliska@suse.cz>
8361
8362 * passes.def: Include pass_lower_switch.
8363 * stmt.c (dump_case_nodes): Remove and move to
8364 tree-switch-conversion.
8365 (case_values_threshold): Likewise.
8366 (expand_switch_as_decision_tree_p): Likewise.
8367 (emit_case_decision_tree): Likewise.
8368 (expand_case): Likewise.
8369 (balance_case_nodes): Likewise.
8370 (node_has_low_bound): Likewise.
8371 (node_has_high_bound): Likewise.
8372 (node_is_bounded): Likewise.
8373 (emit_case_nodes): Likewise.
8374 (struct simple_case_node): New struct.
8375 (add_case_node): Remove.
8376 (emit_case_dispatch_table): Use vector instead of case_list.
8377 (reset_out_edges_aux): Remove.
8378 (compute_cases_per_edge): Likewise.
8379 (expand_case): Build list of simple_case_node.
8380 (expand_sjlj_dispatch_table): Use it.
8381 * tree-switch-conversion.c (struct case_node): Moved from
8382 stmt.c and adjusted.
8383 (emit_case_nodes): Likewise.
8384 (node_has_low_bound): Likewise.
8385 (node_has_high_bound): Likewise.
8386 (node_is_bounded): Likewise.
8387 (case_values_threshold): Likewise.
8388 (reset_out_edges_aux): Likewise.
8389 (compute_cases_per_edge): Likewise.
8390 (add_case_node): Likewise.
8391 (dump_case_nodes): Likewise.
8392 (balance_case_nodes): Likewise.
8393 (expand_switch_as_decision_tree_p): Likewise.
8394 (emit_jump): Likewise.
8395 (emit_case_decision_tree): Likewise.
8396 (try_switch_expansion): Likewise.
8397 (do_jump_if_equal): Likewise.
8398 (emit_cmp_and_jump_insns): Likewise.
8399 (fix_phi_operands_for_edge): New function.
8400 (record_phi_operand_mapping): Likewise.
8401 (class pass_lower_switch): New pass.
8402 (pass_lower_switch::execute): New function.
8403 (make_pass_lower_switch): Likewise.
8404 (conditional_probability):
8405 * timevar.def: Add TV_TREE_SWITCH_LOWERING.
8406 * tree-pass.h: Add make_pass_lower_switch.
8407
8408 2017-08-29 Jozef Lawrynowicz <jozef.l@somniumtech.com>
8409
8410 PR target/80993
8411 * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
8412 handlers as used.
8413
8414 2017-08-29 Richard Biener <rguenther@suse.de>
8415
8416 * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
8417 we do not add a DW_AT_inline attribute twice.
8418 (gen_subprogram_die): Remove code setting DW_AT_inline on
8419 DECL_ABSTRACT_P nodes.
8420
8421 2017-08-29 Richard Sandiford <richard.sandiford@linaro.org>
8422
8423 * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
8424 calls to internal functions.
8425 (gimplify_modify_expr): Likewise.
8426 * tree-call-cdce.c (use_internal_fn): Likewise.
8427 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
8428 (convert_to_divmod): Set the nothrow flag.
8429 * tree-if-conv.c (predicate_mem_writes): Likewise.
8430 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
8431 (vectorizable_call): Likewise.
8432 (vectorizable_store): Likewise.
8433 (vectorizable_load): Likewise.
8434 * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
8435 (vect_recog_mask_conversion_pattern): Likewise.
8436
8437 2017-08-29 Martin Liska <mliska@suse.cz>
8438
8439 PR other/39851
8440 * gcc.c (driver_handle_option): Add new argument.
8441 * opts-common.c (handle_option): Pass
8442 target_option_override_hook.
8443 * opts-global.c (lang_handle_option): Add new option.
8444 (set_default_handlers): Add new argument.
8445 (decode_options): Likewise.
8446 * opts.c (target_handle_option): Likewise.
8447 (common_handle_option): Call target_option_override_hook.
8448 * opts.h (struct cl_option_handler_func): Add hook for
8449 target option override.
8450 (struct cl_option_handlers): Likewise.
8451 (set_default_handlers): Add new argument.
8452 (decode_options): Likewise.
8453 (common_handle_option): Likewise.
8454 (target_handle_option): Likewise.
8455 * toplev.c (toplev::main): Pass targetm.target_option.override
8456 hook.
8457
8458 2017-08-29 Richard Biener <rguenther@suse.de>
8459 Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
8460
8461 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
8462 life to the active subtree.
8463
8464 2017-08-28 Jeff Law <law@redhat.com>
8465
8466 * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
8467 derive_equivalences.
8468 (derive_equivalences_from_bit_ior, record_temporary_equivalences):
8469 Code moved into....
8470 (edge_info::derive_equivalences): New private member function
8471
8472 * tree-ssa-dom.c (class edge_info): Changed from a struct
8473 to a class. Add ctor/dtor, methods and data members.
8474 (edge_info::edge_info): Renamed from allocate_edge_info.
8475 Initialize additional members.
8476 (edge_info::~edge_info): New.
8477 (free_dom_edge_info): Delete the edge info.
8478 (record_edge_info): Use new class & associated member functions.
8479 Tighten forms for testing for edge equivalences.
8480 (record_temporary_equivalences): Iterate over the simple
8481 equivalences rather than assuming there's only one per edge.
8482 (cprop_into_successor_phis): Iterate over the simple
8483 equivalences rather than assuming there's only one per edge.
8484 (optimize_stmt): Use operand_equal_p rather than pointer
8485 equality for mini-DSE code.
8486
8487 2017-08-28 Nathan Sidwell <nathan@acm.org>
8488
8489 * gcc.c (execute): Fold SIGPIPE handling into switch
8490 statement. Adjust internal error message.
8491
8492 2017-08-28 Richard Biener <rguenther@suse.de>
8493
8494 PR debug/81993
8495 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
8496 Do nothing for removed DIEs.
8497
8498 2017-08-28 Richard Biener <rguenther@suse.de>
8499
8500 PR tree-optimization/81977
8501 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
8502 memcpy.
8503
8504 2017-08-28 Alexander Monakov <amonakov@ispras.ru>
8505
8506 PR target/80640
8507 * doc/md.texi (mem_thread_fence): Remove mention of mode. Rewrite.
8508 * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
8509 using targetm.gen_mem_thread_fence.
8510
8511 2017-08-27 Uros Bizjak <ubizjak@gmail.com>
8512
8513 PR target/81995
8514 * config/i386/i386.md (*<btsc><mode>): Change operand 2
8515 predicate to register_operand. Reorder operands.
8516 (*btr<mode>): Ditto.
8517 (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
8518 (*btr<mode>_mask): Ditto.
8519
8520 2017-08-25 Steven Munroe <munroesj@gcc.gnu.org>
8521
8522 * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
8523 * config/rs6000/xmmintrin.h: New file.
8524 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
8525
8526 2017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8527
8528 PR target/81504
8529 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
8530 parameter and_insn and return it.
8531 (recombine_lvx_pattern): Insert a copy to ensure availability of
8532 the base register of the copied masking operation at the point of
8533 the instruction replacement.
8534 (recombine_stvx_pattern): Likewise.
8535
8536 2017-08-25 Michael Meissner <meissner@linux.vnet.ibm.com>
8537
8538 * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
8539 undocumented switches.
8540 (-mpower9-dform-vector): Likewise.
8541 (-mpower9-dform): Likewise.
8542 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
8543 comments to delete references to -mpower9-dform* switches.
8544 * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
8545 Delete reference to -mpower9-dform* switches, test for
8546 -mpower9-vector instead.
8547 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
8548 (OTHER_P9_VECTOR_MASKS): Likewise.
8549 (POWERPC_MASKS): Likewise.
8550 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
8551 tests against -mpower9-dform* to -mpower9-vector. Delete code
8552 that checked for -mpower9-dform* consistancy with other options.
8553 Add test for -mpower9-misc to enable other power9 switches.
8554 (rs6000_init_hard_regno_mode_ok): Likewise.
8555 (rs6000_option_override_internal): Likewise.
8556 (rs6000_emit_prologue): Likewise.
8557 (rs6000_emit_epilogue): Likewise.
8558 (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
8559 (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
8560 (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
8561 -mpower9-vector.
8562 (emit_fusion_p9_store): Likewise.
8563 * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
8564 resetting these macros if the assembler does not support ISA 3.0
8565 instructions.
8566 (TARGET_P9_DFORM_VECTOR): Likewise.
8567 * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
8568 Change to use -mpower9-vector instead of -mpower9-dform-scalar.
8569
8570 2017-08-25 Alan Modra <amodra@gmail.com>
8571
8572 PR rtl-optimization/81747
8573 * cse.c (cse_extended_basic_block): Don't attempt to record
8574 equivalences for degenerate conditional branches that branch
8575 to their fall-through.
8576
8577 2017-08-24 Martin Sebor <msebor@redhat.com>
8578
8579 PR middle-end/81908
8580 * gimple-fold.c (size_must_be_zero_p): New function.
8581 (gimple_fold_builtin_memory_op): Call it.
8582
8583 2017-08-24 Steven Munroe <munroesj@gcc.gnu.org>
8584
8585 * config/rs6000/mm_malloc.h: New file.
8586
8587 2017-08-24 Bin Cheng <bin.cheng@arm.com>
8588
8589 PR tree-optimization/81913
8590 * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
8591 analysis when either IVs in condition can wrap.
8592
8593 2017-08-24 Uros Bizjak <ubizjak@gmail.com>
8594
8595 * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
8596 * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
8597
8598 2017-08-24 Richard Biener <rguenther@suse.de>
8599
8600 PR target/81921
8601 * targhooks.c (default_target_can_inline_p): Properly
8602 use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
8603 is present and always compare.
8604 * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
8605 infer -mfpmath=sse from TARGET_SSE_P.
8606 (ix86_can_inline_p): Properly use target_option_default_node when
8607 no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
8608
8609 2017-08-24 Richard Biener <rguenther@suse.de>
8610
8611 PR debug/81936
8612 * dwarf2out.c (output_die): Handle flag_generate_offload like
8613 flag_generate_lto.
8614 (output_comp_unit): Likewise.
8615 (gen_array_type_die): Likewise.
8616 (dwarf2out_early_finish): Likewise.
8617 (note_variable_value_in_expr): Likewise.
8618 (dwarf2out_finish): Likewise. Adjust assert.
8619 * cgraphunit.c (symbol_table::compile): Move setting of
8620 flag_generate_offload earlier ...
8621 (symbol_table::finalize_compilation_unit): ... here, before
8622 early debug finalization.
8623
8624 2017-08-24 Richard Biener <rguenther@suse.de>
8625
8626 * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
8627 and ipa-fnsummary.h.
8628 (ix86_can_inline_p): When ix86_fpmath flags do not match
8629 check whether the callee uses FP math at all.
8630
8631 2017-08-24 Aldy Hernandez <aldyh@redhat.com>
8632
8633 PR middle-end/81931
8634 * tree-ssanames.c (get_nonzero_bits): Use element_precision
8635 instead of TYPE_PRECISION.
8636
8637 2017-08-24 Richard Sandiford <richard.sandiford@linaro.org>
8638 Alan Hayward <alan.hayward@arm.com>
8639 David Sherwood <david.sherwood@arm.com>
8640
8641 * combine.c (make_extraction): Use subreg_offset_from_lsb.
8642
8643 2017-08-23 Daniel Santos <daniel.santos@pobox.com>
8644
8645 * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
8646 Remove field.
8647 (ix86_frame::stack_realign_allocate): New field.
8648 (struct machine_frame_state): Modify comments.
8649 (machine_frame_state::sp_realigned_fp_end): New field.
8650 * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
8651 layout calculation.
8652 (sp_valid_at): Add assertion to assure no attempt to access invalid
8653 offset of a realigned stack.
8654 (fp_valid_at): Likewise.
8655 (choose_baseaddr): Modify comments.
8656 (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
8657 ix86_expand_prologue.
8658 (ix86_expand_prologue): Modify stack realignment and allocation.
8659 (ix86_expand_epilogue): Modify comments.
8660 * doc/sourcebuild.texi: Add documentation for target selectors avx2,
8661 avx2_runtime, avx512f, and avx512f_runtime.
8662
8663 2017-08-23 Uros Bizjak <ubizjak@gmail.com>
8664
8665 * config/i386/i386.opt: Remove unneeded Init(0) initializations.
8666 (mstackrealign): Do not init to -1.
8667 * config/i386/i386.c (ix86_option_override_internal):
8668 Check opts_set, not opts when setting default value of
8669 opts->x_ix86_force_align_arg_pointer.
8670
8671 2017-08-23 Richard Biener <rguenther@suse.de>
8672
8673 * function.c (fndecl_name): Use verbosity 1 (no arguments) for
8674 lang_hooks.decl_printable_name.
8675 * print-rtl-function.c (print_rtx_function): Likewise.
8676 * tree-pretty-print.c (dump_function_header): Likewise.
8677
8678 2017-08-23 Richard Biener <rguenther@suse.de>
8679
8680 PR lto/81940
8681 * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
8682 -g0 at compile-time.
8683
8684 2017-08-23 Tamar Christina <tamar.christina@arm.com>
8685
8686 PR middle-end/19706
8687 * doc/sourcebuild.texi (Other hardware attributes):
8688 Document xorsign.
8689
8690 2017-08-23 Tamar Christina <tamar.christina@arm.com>
8691
8692 PR middle-end/19706
8693 * tree-ssa-math-opts.c (convert_expand_mult_copysign):
8694 Fix single-use check.
8695
8696 2017-08-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
8697
8698 * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
8699
8700 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
8701
8702 * doc/install.texi: Modify to add more details on running selected
8703 tests.
8704
8705 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
8706
8707 * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
8708 is combined with -mabi=ms.
8709 (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
8710 ms_abi.
8711
8712 2017-08-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8713
8714 PR tree-optimization/81488
8715 * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
8716 and cached_basis fields.
8717 (MAX_SPREAD): New constant.
8718 (alloc_cand_and_find_basis): Initialize new fields.
8719 (clear_visited): New function.
8720 (create_phi_basis_1): Rename from create_phi_basis, set visited
8721 and cached_basis fields.
8722 (create_phi_basis): New wrapper function.
8723 (phi_add_costs_1): Rename from phi_add_costs, add spread
8724 parameter, set visited field, short-circuit when limits reached.
8725 (phi_add_costs): New wrapper function.
8726 (record_phi_increments_1): Rename from record_phi_increments, set
8727 visited field.
8728 (record_phi_increments): New wrapper function.
8729 (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
8730 (phi_incr_cost): New wrapper function.
8731 (all_phi_incrs_profitable_1): Rename from
8732 all_phi_incrs_profitable, set visited field.
8733 (all_phi_incrs_profitable): New wrapper function.
8734
8735 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
8736 Alan Hayward <alan.hayward@arm.com>
8737 David Sherwood <david.sherwood@arm.com>
8738
8739 * rtl.h (paradoxical_subreg_p): Define inline, and add a version
8740 that takes the outer and inner modes.
8741 * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
8742 comparison as the canonical test for a paradoxical subreg.
8743 * combine.c (simplify_set): Use paradoxical_subreg_p.
8744 (make_extraction): Likewise.
8745 (force_to_mode): Likewise.
8746 (rtx_equal_for_field_assignment_p): Likewise.
8747 (gen_lowpart_for_combine): Likewise.
8748 (simplify_comparison): Likewise.
8749 * cse.c (equiv_constant): Likewise.
8750 * expmed.c (store_bit_field_1): Likewise.
8751 * final.c (alter_subreg): Likewise.
8752 * fwprop.c (propagate_rtx): Likewise.
8753 (forward_propagate_subreg): Likewise.
8754 * ira-conflicts.c (ira_build_conflicts): Likewise.
8755 * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
8756 * lra-constraints.c (curr_insn_transform): Likewise.
8757 (split_reg): Likewise.
8758 * lra-eliminations.c (move_plus_up): Likewise.
8759 (lra_eliminate_regs_1): Likewise.
8760 * recog.c (general_operand): Likewise.
8761 * ree.c (combine_reaching_defs): Likewise.
8762 * reload.c (push_reload): Likewise.
8763 (find_reloads): Likewise.
8764 * reload1.c (elimination_effects): Likewise.
8765 (compute_reload_subreg_offset): Likewise.
8766 (choose_reload_regs): Likewise.
8767 * rtlanal.c (subreg_lsb_1): Likewise.
8768 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8769 (simplify_subreg): Likewise.
8770 * var-tracking.c (track_loc_p): Likewise.
8771 * emit-rtl.c (byte_lowpart_offset): Likewise.
8772 (paradoxical_subreg_p): Delete out-of-line definition.
8773
8774 2017-08-22 Jeff Law <law@redhat.com>
8775
8776 PR tree-optimization/81741
8777 PR tree-optimization/71947
8778 * tree-ssa-dom.c: Include tree-inline.h.
8779 (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
8780 equivalences if one is more expensive to compute than the other.
8781 * tree-ssa-scopedtables.h (class const_or_copies): Make
8782 record_const_or_copy_raw method private.
8783 (class avail_exprs_stack): New method simplify_binary_operation.
8784 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
8785 avail_exprs_stack::simplify_binary_operation as needed.
8786 (avail_exprs_stack::simplify_binary_operation): New function.
8787
8788 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
8789
8790 * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
8791 * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
8792 (DOT_SYMBOLS): Likewise.
8793 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
8794 (RELOCATABLE_NEEDS_FIXUP): Likewise.
8795 (RS6000_ABI_NAME): Likewise.
8796 (TARGET_CMODEL): Likewise.
8797 (TOC_SECTION_ASM_OP): Likewise.
8798 (SET_CMODEL): New macro.
8799 (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
8800
8801 2017-08-22 Richard Biener <rguenther@suse.de>
8802
8803 * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
8804 to allow for free-lang-data replacements similar to verify_type_variant.
8805
8806 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
8807 Alan Hayward <alan.hayward@arm.com>
8808 David Sherwood <david.sherwood@arm.com>
8809
8810 * config/aarch64/aarch64.md (casesi): Use DImode rather than
8811 VOIDmode for the LABEL_REF.
8812
8813 2017-08-22 Richard Biener <rguenther@suse.de>
8814
8815 * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
8816
8817 2017-08-22 Richard Biener <rguenther@suse.de>
8818
8819 * common.opt (feliminate-dwarf2-dups): Ignore.
8820 * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
8821 * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
8822 same_die_p_wrap, compute_section_prefix,
8823 is_symbol_die, assign_symbol_names, break_out_includes): Remove.
8824 (comdat_symbol_id, comdat_symbol_number): Likewise.
8825 (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
8826 Likewise.
8827 (check_duplicate_cu, record_comdat_symbol_number): Likewise.
8828 (output_die): Mark unreachable path unreachable.
8829 (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
8830 (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
8831 (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
8832 (dwarf2out_early_finish): Likewise.
8833
8834 2017-08-22 Aldy Hernandez <aldyh@redhat.com>
8835
8836 * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
8837
8838 2017-08-22 Georg-Johann Lay <avr@gjlay.de>
8839
8840 PR target/81910
8841 * config/avr/avr.c (avr_handle_addr_attribute): Early return if
8842 not VAR_P. Filter attribute warnings with OPT_Wattributes.
8843 (avr_attribute_table) <io, io_low, address>: Initialize
8844 .decl_required with true.
8845
8846 2017-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8847
8848 * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
8849 undocumented debugging options.
8850 (-mvsx-scalar-double): Likewise.
8851 (-mallow-df-permute): Likewise.
8852 (-mvectorize-builtins): Likewise.
8853 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
8854 (rs6000_builtin_vectorized_function): Likewise.
8855 (rs6000_builtin_md_vectorized_function): Likewise.
8856 (rs6000_opt_vars): Likewise.
8857
8858 2017-08-21 Uros Bizjak <ubizjak@gmail.com>
8859
8860 PR target/46091
8861 * config/i386/i386.md (*btsq_imm): Rename from *btsq.
8862 (*btrq_imm): Rename from *btrq.
8863 (*btcq_imm): Rename from *btcq.
8864 (btsc): New code attribute.
8865 (*<btsc><mode>): New insn pattern.
8866 (*btr<mode>): Ditto.
8867 (*<btsc><mode>_mask): New insn_and_split pattern.
8868 (*btr<mode>_mask): Ditto.
8869
8870 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
8871 Alan Hayward <alan.hayward@arm.com>
8872 David Sherwood <david.sherwood@arm.com>
8873
8874 * function.c (pad_below): Simplify padding calculation.
8875
8876 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
8877 Alan Hayward <alan.hayward@arm.com>
8878 David Sherwood <david.sherwood@arm.com>
8879
8880 * target.def (function_prologue): Remove frame size argument.
8881 (function_epilogue): Likewise.
8882 * doc/tm.texi: Regenerate.
8883 * final.c (final_start_function): Update call to function_prologue.
8884 (final_end_function): Update call to function_epilogue.
8885 (default_function_pro_epilogue): Remove frame size argument.
8886 * output.h (default_function_pro_epilogue): Likewise.
8887 * config/arm/arm.c (arm_output_function_epilogue): Likewise.
8888 (arm_output_function_prologue): Likewise.
8889 * config/frv/frv.c (frv_function_prologue): Likewise.
8890 (frv_function_epilogue): Likewise.
8891 * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
8892 * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
8893 (ia64_output_function_epilogue): Likewise.
8894 * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
8895 (m32r_output_function_epilogue): Likewise.
8896 * config/microblaze/microblaze.c (microblaze_function_prologue)
8897 (microblaze_function_epilogue): Likewise.
8898 * config/mips/mips.c (mips_output_function_prologue): Likewise.
8899 (mips_output_function_epilogue): Likewise.
8900 * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
8901 (mmix_target_asm_function_epilogue): Likewise.
8902 * config/msp430/msp430.c (msp430_start_function): Likewise.
8903 * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
8904 (nds32_asm_function_epilogue): Likewise.
8905 * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
8906 * config/pa/pa.c (pa_output_function_prologue): Likewise.
8907 (pa_output_function_epilogue): Likewise.
8908 * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
8909 (rs6000_output_function_epilogue): Likewise.
8910 * config/rl78/rl78.c (rl78_start_function): Likewise.
8911 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
8912 (rs6000_output_function_epilogue): Likewise.
8913 * config/rx/rx.c (rx_output_function_prologue): Likewise.
8914 * config/sh/sh.c (sh_output_function_epilogue): Likewise.
8915 * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
8916 (sparc_asm_function_epilogue): Likewise.
8917
8918 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
8919
8920 * tree.h (type_has_mode_precision_p): New function.
8921 * convert.c (convert_to_integer_1): Use it.
8922 * expr.c (expand_expr_real_2): Likewise.
8923 (expand_expr_real_1): Likewise.
8924 * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
8925 * match.pd: Likewise.
8926 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
8927 * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
8928 * tree-tailcall.c (process_assignment): Likewise.
8929 * tree-vect-loop.c (vectorizable_reduction): Likewise.
8930 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
8931 (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
8932 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8933 (vectorizable_assignment): Likewise.
8934 (vectorizable_shift): Likewise.
8935 (vectorizable_operation): Likewise.
8936 * tree-vrp.c (register_edge_assert_for_2): Likewise.
8937
8938 2017-08-21 Wilco Dijkstra <wdijkstr@arm.com>
8939
8940 * match.pd: Add pow (C, x) simplification.
8941
8942 2017-08-21 Richard Biener <rguenther@suse.de>
8943
8944 PR tree-optimization/81900
8945 * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
8946 for blocks with abnormal predecessors.
8947 (compute_antic): Do not set visited flag prematurely.
8948
8949 2017-08-21 Georg-Johann Lay <avr@gjlay.de>
8950
8951 PR target/79883
8952 * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
8953
8954 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
8955
8956 * stor-layout.h (vector_type_mode): Move to...
8957 * tree.h (vector_type_mode): ...here.
8958 * stor-layout.c (vector_type_mode): Move to...
8959 * tree.c (vector_type_mode): ...here. Include rtl.h and regs.h.
8960
8961 2017-08-21 Richard Biener <rguenther@suse.de>
8962
8963 * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
8964 register_external_die hooks.
8965 (debug_false_tree_charstarstar_uhwistar): Declare.
8966 (debug_nothing_tree_charstar_uhwi): Likewise.
8967 * debug.c (do_nothing_debug_hooks): Adjust.
8968 (debug_false_tree_charstarstar_uhwistar): New do nothing.
8969 (debug_nothing_tree_charstar_uhwi): Likewise.
8970 * dbxout.c (dbx_debug_hooks): Adjust.
8971 (xcoff_debug_hooks): Likewise.
8972 * sdbout.c (sdb_debug_hooks): Likewise.
8973 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8974 * dwarf2out.c (macinfo_label_base): New global.
8975 (dwarf2out_register_external_die): New function for the
8976 register_external_die hook.
8977 (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
8978 (dwarf2_debug_hooks): Use them.
8979 (dwarf2_lineno_debug_hooks): Adjust.
8980 (struct die_struct): Add with_offset flag.
8981 (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
8982 DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
8983 DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
8984 DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
8985 DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
8986 DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
8987 defining section names for the early LTO debug variants.
8988 (reset_indirect_string): New helper.
8989 (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
8990 (print_dw_val): Add support for offsetted symbol references.
8991 (get_ultimate_context): Split out from is_cxx.
8992 (is_cxx): Use get_ultimate_context.
8993 (is_fortran): Add decl overload.
8994 (compute_comp_unit_symbol): Split out worker from
8995 compute_section_prefix.
8996 (compute_section_prefix): Call compute_comp_unit_symbol and
8997 set comdat_type_p here.
8998 (output_die): Skip DIE symbol output for the LTO added one.
8999 Handle DIE symbol references with offset.
9000 (output_comp_unit): Guard section name mangling properly.
9001 For LTO debug sections emit a symbol at the section beginning
9002 which we use to refer to its DIEs.
9003 (add_abstract_origin_attribute): For DIEs registered via
9004 dwarf2out_register_external_die directly refer to the early
9005 DIE rather than indirectly through the shadow one we created.
9006 Remove obsolete call to dwarf2out_abstract_function for
9007 non-function/block origins.
9008 (gen_array_type_die): When generating early LTO debug do
9009 not emit DW_AT_string_length.
9010 (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
9011 late when in LTO. As suggested place a gcc_unreachable for
9012 the DECL_ABSTRACT_P case.
9013 (gen_subprogram_die): Avoid another specification DIE
9014 for early built declarations/definitions for the late LTO case.
9015 (gen_variable_die): Add type references for late duplicated VLA dies
9016 when in late LTO.
9017 (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
9018 we have the abstract instance already.
9019 (process_scope_var): Adjust decl DIE contexts in LTO which
9020 first puts them in limbo.
9021 (gen_decl_die): Do not generate type DIEs late apart from
9022 types for VLAs or for decls we do not yet have a DIE. Do not
9023 call dwarf2out_abstract_function late.
9024 (dwarf2out_early_global_decl): Make sure to create DIEs
9025 for abstract instances of a decl first.
9026 (dwarf2out_late_global_decl): Adjust comment.
9027 (output_macinfo_op): With multiple macro sections use
9028 macinfo_label_base to distinguish labels.
9029 (output_macinfo): Likewise. Update macinfo_label_base.
9030 Pass in the line info label.
9031 (note_variable_value_in_expr): When generating LTO resolve
9032 all variable values here by generating DIEs as needed.
9033 (init_sections_and_labels): Add early LTO debug flag parameter
9034 and generate different sections and names if set. Add generation
9035 counter for the labels so we can have multiple of them.
9036 (reset_dies): Helper to allow DIEs to be output multiple times.
9037 (dwarf2out_finish): When outputting DIEs to the fat part of an
9038 LTO object first reset DIEs.
9039 (dwarf2out_early_finish): Output early DIEs when generating LTO.
9040 (modified_type_die): Check for decl_ultimate_origin being self
9041 before recursing.
9042 (gen_type_die_with_usage): Likewise.
9043 (gen_typedef_die): Allow decl_ultimate_origin being self.
9044 (set_decl_abstract_flags): Remove.
9045 (set_block_abstract_flags): Likewise.
9046 (dwarf2out_abstract_function): Treat the early generated DIEs
9047 as the abstract copy and only add DW_AT_inline and
9048 DW_AT_artificial here and call set_decl_origin_self.
9049 If the DIE has an abstract origin don't do anything.
9050 * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
9051 if we have none yet (Go fails to build one, PR78628).
9052 (variably_modified_type_p): Prevent endless recursion for Ada
9053 cyclic pointer types.
9054 * lto-streamer-in.c: Include debug.h.
9055 (dref_queue): New global.
9056 (lto_read_tree_1): Stream in DIE references.
9057 (lto_input_tree): Register DIE references.
9058 (input_function): Stream DECL_DEBUG_ARGS.
9059 * lto-streamer-out.c: Include debug.h.
9060 (lto_write_tree_1): Output DIE references.
9061 (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
9062 Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
9063 (output_function): Stream DECL_DEBUG_ARGS.
9064 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9065 Stream DECL_ABSTRACT_ORIGIN.
9066 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
9067 (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
9068 DECL_CONTEXT for file-scope decls.
9069 * lto-streamer.h (struct dref_entry): Declare.
9070 (dref_queue): Likewise.
9071 * cfgexpand.c (pass_expand::execute): Do not call the
9072 outlining_inline_function hook here.
9073 * lto-wrapper.c (debug_obj): New global.
9074 (tool_cleanup): Unlink it if required.
9075 (debug_objcopy): New function.
9076 (run_gcc): Handle early debug sections in the IL files by
9077 extracting them to separate files, partially linkin them and
9078 feeding the result back as result to the linker.
9079 * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
9080 DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
9081 DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
9082 sections into a separate segment.
9083 * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
9084 segments.
9085 (darwin_asm_dwarf_section): Likewise.
9086 (darwin_asm_output_dwarf_offset): Likewise.
9087 * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
9088
9089 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
9090 Alan Hayward <alan.hayward@arm.com>
9091 David Sherwood <david.sherwood@arm.com>
9092
9093 * read-md.h (md_reader::record_potential_iterator_use): Replace
9094 pointer argument with an rtx and an index.
9095 * read-rtl.c (iterator_group::apply_iterator): Likewise.
9096 (apply_mode_iterator): Likewise.
9097 (apply_code_iterator): Likewise.
9098 (apply_int_iterator): Likewise.
9099 (apply_subst_iterator): Likewise.
9100 (record_iterator_use): Likewise.
9101 (record_attribute_use): Likewise.
9102 (md_reader::record_potential_iterator_use): Likewise. Update calls
9103 to record_iterator_use and apply_iterator.
9104 (iterator_use): Replace ptr with x and index.
9105 (attribute_use): Likewise.
9106 (apply_attribute_uses): Update calls to apply_iterator.
9107 (apply_iterators): Likewise. Update initialization of iterator_use.
9108 (rtx_reader::read_rtx_code): Update calls to record_iterator_use
9109 and record_potential_iterator_use.
9110 (rtx_reader::read_rtx_operand): Likewise.
9111
9112 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
9113 Alan Hayward <alan.hayward@arm.com>
9114 David Sherwood <david.sherwood@arm.com>
9115
9116 * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
9117 CONST_WIDE_INT.
9118
9119 2017-08-21 Richard Biener <rguenther@suse.de>
9120
9121 PR middle-end/81884
9122 * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
9123 at struct end conservatively when comparing common bases.
9124
9125 2017-08-21 Richard Biener <rguenther@suse.de>
9126
9127 * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
9128 (mem_ref_in_stmt): Remove.
9129 (determine_max_movement): Use ref index to get at the reference.
9130 (invariantness_dom_walker::before_dom_children): Deal with
9131 lim data already initialized.
9132 (gather_mem_refs_stmt): Initialize lim data and record ref index.
9133
9134 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
9135
9136 * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
9137 (TARGET_ISA_ROUND): Ditto.
9138 (TARGET_ROUND): Ditto.
9139 * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
9140 * config/i386/i386.md: Ditto.
9141 * config/i386/sse.md: Ditto.
9142 * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
9143 with OPTION_MASK_ISA_SSE4_1.
9144
9145 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
9146
9147 PR target/81894
9148 * doc/extend.texi (x86 Built-in Functions): Correct the name of
9149 __builtin_ia32_lzcnt_u16.
9150
9151 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
9152
9153 PR target/80210
9154 * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
9155 (rs6000_set_current_function): Rewrite function to use it.
9156
9157 2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
9158
9159 PR c/53037
9160 * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
9161 and TYPE_WARN_IF_NOT_ALIGN.
9162 * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
9163 (handle_warn_if_not_align): New.
9164 (place_union_field): Call handle_warn_if_not_align.
9165 (place_field): Call handle_warn_if_not_align.
9166 Copy TYPE_WARN_IF_NOT_ALIGN.
9167 (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
9168 (layout_type): Likewise.
9169 * tree-core.h (tree_type_common): Add warn_if_not_align. Set
9170 spare to 18.
9171 (tree_decl_common): Add warn_if_not_align.
9172 * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
9173 * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
9174 (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
9175 (DECL_WARN_IF_NOT_ALIGN): Likewise.
9176 (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
9177 * doc/extend.texi: Document warn_if_not_aligned attribute.
9178 * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
9179
9180 2017-08-17 Martin Liska <mliska@suse.cz>
9181
9182 PR bootstrap/81864
9183 * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
9184 (get_data_dependence): Use it as pointer type.
9185 (distribute_loop): Likewise.
9186
9187 2017-08-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9188
9189 * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
9190 (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
9191 (p8_vmrgow_<mode>_direct): New define_insn.
9192 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
9193 handle endianness for vmrgew and vmrgow permute patterns.
9194
9195 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
9196
9197 * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
9198 * config/rs6000/rs6000-cpus.def: Remove comment.
9199 (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
9200 (POWERPC_MASKS): Likewise.
9201 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
9202 use of TARGET_VSX_TIMODE.
9203 (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
9204 (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
9205 TARGET_VSX_TIMODE. Change use of TARGET_VSX_TIMODE to TARGET_VSX.
9206 (rs6000_option_override_internal): Remove dead code.
9207 (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
9208 (rs6000_legitimize_reload_address): Likewise.
9209 (rs6000_legitimate_address_p): Likewise.
9210 (rs6000_opt_masks): Delete "vsx-timode".
9211 (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
9212 from function comment.
9213 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
9214 * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
9215 (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
9216 condition.
9217 * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
9218 * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
9219 * config/rs6000/vsx.md (VSX_LE_128): Likewise.
9220 (VSX_TI): Likewise.
9221 (VSX_M): Likewise.
9222 (define_peephole2): Likewise.
9223
9224 2017-08-17 Martin Sebor <msebor@redhat.com>
9225
9226 PR c/81859
9227 * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
9228 past the end of an array.
9229 (test_pp_format): Add test cases.
9230
9231 2017-08-17 Richard Sandiford <richard.sandiford@linaro.org>
9232
9233 * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
9234 missing ECF_NOTHROW flags.
9235
9236 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
9237
9238 PR target/72804
9239 * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
9240 operands residing in integer registers.
9241 (*vsx_le_perm_load_<mode>): Likewise.
9242 (*vsx_le_perm_store_<mode>): Likewise.
9243 (define_peephole2): Add peepholes to optimize the above.
9244
9245 2017-08-17 Marek Polacek <polacek@redhat.com>
9246
9247 PR middle-end/81814
9248 * fold-const.c (operand_equal_for_comparison_p): Remove code that used
9249 to mimic what shorten_compare did. Change the return type to bool.
9250 (fold_cond_expr_with_comparison): Update call to
9251 operand_equal_for_comparison_p.
9252 (fold_ternary_loc): Likewise.
9253
9254 2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com>
9255
9256 * aarch64-simd.md (mov<mode>): No longer force zero immediate into
9257 register.
9258 (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
9259
9260 2017-08-17 Richard Biener <rguenther@suse.de>
9261
9262 * tree-ssa-structalias.c (solve_graph): When propagating
9263 to successors update the graphs succ edges and avoid duplicate work.
9264
9265 2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com>
9266
9267 PR target/81861
9268 * config/i386/i386.c (ix86_option_override_internal): Save target
9269 specific options after ix86_stack_protector_guard_reg was changed.
9270
9271 2017-08-17 Richard Biener <rguenther@suse.de>
9272
9273 PR tree-optimization/81827
9274 * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
9275 (new_var_info): Initialize it conservatively.
9276 (get_call_vi): Mark register vars.
9277 (new_scalar_tmp_constraint_exp): Likewise.
9278 (handle_rhs_call): Likewise.
9279 (handle_const_call): Likewise.
9280 (create_function_info_for): Likewise.
9281 (solve_constraints): Sort varinfos to separate register from
9282 non-register vars to pack points-to solution bitmaps during
9283 iteration.
9284
9285 2017-08-17 Marek Polacek <polacek@redhat.com>
9286
9287 * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
9288
9289 2017-08-17 Richard Biener <rguenther@suse.de>
9290
9291 * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
9292 to true when overflow is undefined and we saturated the result.
9293
9294 2017-08-17 Alan Modra <amodra@gmail.com>
9295
9296 PR target/80938
9297 * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
9298 Don't use store multiple if only one reg needs saving.
9299 (interesting_frame_related_regno): New function.
9300 (rs6000_frame_related): Don't emit frame info for regs that
9301 don't need saving.
9302 (rs6000_emit_epilogue): Likewise.
9303
9304 2017-08-16 Nathan Sidwell <nathan@acm.org>
9305
9306 * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
9307 * tree.h (TYPE_BINFO): Use type_non_common.maxval.
9308 (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
9309 * tree.c (free_lang_data_in_type): Use else-if chain. Always
9310 clear TYPE_LANG_1. Remove obsolete member-function stripping.
9311 (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
9312 (verify_type): Adjust for TYPE_BINFO move.
9313 * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
9314 process TYPE_BINFO directly.
9315 (hash_tree): Likewise.
9316 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
9317 Likewise.
9318 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
9319 Likewise.
9320
9321 2017-08-16 David Malcolm <dmalcolm@redhat.com>
9322
9323 * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
9324
9325 2017-08-16 Uros Bizjak <ubizjak@gmail.com>
9326
9327 PR target/46091
9328 * config/i386/i386.md (*anddi_1_btr): Change predicates of
9329 operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
9330 Add ix86_binary_operator_ok to insn constraint.
9331 (*iordi_1_bts): Ditto.
9332 (*xordi_1_btc): Ditto.
9333 (*btsq): Change predicate of operand 0 to nonimmediate_operand.
9334 Update corresponding peephole2 pattern.
9335 (*btrq): Ditto.
9336 (*btcq): Ditto.
9337
9338 2017-08-16 Bin Cheng <bin.cheng@arm.com>
9339
9340 PR tree-optimization/81832
9341 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
9342 copy loop header which has IFN_LOOP_DIST_ALIAS call.
9343
9344 2017-08-16 Marek Polacek <polacek@redhat.com>
9345
9346 PR middle/81695
9347 * fold-const.c (fold_indirect_ref_1): Restore original behavior
9348 regarding size_zero_node.
9349
9350 2017-08-16 Martin Liska <mliska@suse.cz>
9351
9352 PR target/81753
9353 * config.gcc: Respect previously set extra_objs in case
9354 of darwin target.
9355
9356 2017-08-16 Richard Sandiford <richard.sandiford@linaro.org>
9357
9358 PR tree-optimization/81835
9359 * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
9360 the phi SSA_NAME. Check that the condition in a COND_EXPR does
9361 not depend on the phi.
9362
9363 2017-08-16 Alan Modra <amodra@gmail.com>
9364
9365 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
9366 dead code.
9367
9368 2017-08-16 Alan Modra <amodra@gmail.com>
9369
9370 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
9371 (save_reg_p): ..into this. Update all callers.
9372 (first_reg_to_save): Simplify.
9373
9374 2017-08-16 Alan Modra <amodra@gmail.com>
9375
9376 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
9377 fixed regs.
9378
9379 2017-08-15 Joseph Myers <joseph@codesourcery.com>
9380
9381 PR target/78460
9382 PR target/67712
9383 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
9384 constant count if that count is less than 32.
9385
9386 2017-08-15 Nathan Sidwell <nathan@acm.org>
9387
9388 * gcc.c (execute): Emit friendlier message if inferior is killed
9389 by an external cause.
9390
9391 2017-08-15 Richard Biener <rguenther@suse.de>
9392
9393 PR tree-optimization/81790
9394 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
9395 CONSTRUCTORs from simplifying and VN.
9396
9397 2017-08-14 Martin Sebor <msebor@redhat.com>
9398
9399 * builtin-attrs.def: Add comments.
9400
9401 2017-08-14 Martin Sebor <msebor@redhat.com>
9402
9403 PR c/81117
9404 * doc/extend.texi (attribute nonstring): Document new attribute.
9405
9406 2017-08-14 Martin Sebor <msebor@redhat.com>
9407
9408 PR c/81117
9409 * tree-diagnostic.c (default_tree_printer): Handle %G.
9410 * gimple-pretty-print.h (percent_G_format): Declare new function.
9411 * gimple-pretty-print.c (percent_G_format): Define.
9412 * tree-pretty-print.c (percent_K_format): Add argument.
9413
9414 2017-08-14 Martin Sebor <msebor@redhat.com>
9415
9416 PR translation/79998
9417 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
9418 Remove a stray space.
9419
9420 2017-08-14 Uros Bizjak <ubizjak@gmail.com>
9421
9422 PR target/46091
9423 * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
9424 (*iordi_1_bts): Ditto.
9425 (*xordi_1_btc): Ditto.
9426
9427 2017-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9428
9429 PR target/79845
9430 * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
9431 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9432 Likewise.
9433 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
9434 quoted strings, and make more translator-friendly.
9435 (darwin_rs6000_override_options): Likewise.
9436 (rs6000_option_override_internal): Likewise.
9437 (rs6000_return_in_memory): Fix overlong line.
9438 (init_cmulative_args): Use quoted strings, and make more
9439 translator-friendly.
9440 (rs6000_pass_by_reference): Fix overlong line.
9441 (def_builtin): Use quoted strings.
9442 (altivec_expand_predicate_builtin): Use quoted strings, and make
9443 more translator-friendly.
9444 (htm_expand_builtin): Use quoted strings.
9445 (cpu_expand_builtin): Use quoted strings, and make more
9446 translator-friendly.
9447 (altivec_expand_builtin): Likewise.
9448 (paired_expand_predicate_builtin): Likewise.
9449 (rs6000_invalid_builtin): Likewise.
9450 (builtin_function_type): Use quoted strings.
9451 (rs6000_expand_split_stack_prologue): Use quoted strings, and make
9452 more translator-friendly.
9453 (rs6000_trampoline_init): Likewise.
9454 (rs6000_handle_altivec_attribute): Likewise.
9455 (rs6000_inner_target_options): Use quoted strings.
9456 (rs6000_disable_incompatible_switches): Likewise.
9457 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
9458 strings, and make more translator-friendly.
9459 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
9460
9461 2017-08-14 Bin Cheng <bin.cheng@arm.com>
9462
9463 PR tree-optimization/81799
9464 * tree-loop-distribution.c (version_loop_by_alias_check): Force
9465 cond_expr to simple gimple operand.
9466
9467 2017-08-14 Wilco Dijkstra <wdijkstr@arm.com>
9468
9469 PR middle-end/46932
9470 * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
9471
9472 2017-08-14 Georg-Johann Lay <avr@gjlay.de>
9473
9474 PR target/81754
9475 PR target/81268
9476 * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
9477 * config/avr/avr.md (gasisr, *gasisr): Use it instead of
9478 TARGET_GASISR_PROLOGUES.
9479 * config/avr/avr.c (avr_option_override): Same.
9480 (avr_pass_pre_proep::execute): Same.
9481
9482 2017-08-13 H.J. Lu <hongjiu.lu@intel.com>
9483
9484 PR target/81820
9485 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
9486 frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
9487
9488 2017-08-13 Uros Bizjak <ubizjak@gmail.com>
9489
9490 * config/i386/i386.md (*load_tp_<mode>): Redefine as
9491 define_insn_and_split. Split to a memory load from 0 in
9492 DEFAULT_TLS_SEG_REG address space. Merge with *load_tp_x32
9493 using PTR mode iterator.
9494 (*load_tp_x32_zext"): Redefine as define_insn_and_split.
9495 Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
9496 (*add_tp_<mode>): Redefine as define_insn_and_split.
9497 Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
9498 address space. Merge with *add_tp_x32 using PTR mode iterator.
9499 (*add_tp_x32_zext"): Redefine as define_insn_and_split.
9500 Split to an add with a memory load from 0 in
9501 DEFAULT_TLS_SEG_REG address space.
9502
9503 2017-08-12 Andrew Pinski <apinski@cavium.com>
9504
9505 * config/aarch64/aarch64-option-extensions.def (rdma):
9506 Fix feature string to what Linux prints out in /proc/cpuinfo.
9507
9508 2017-08-12 Pierre-Marie de Rodat <derodat@adacore.com>
9509
9510 PR ada/79542
9511 * dwarf2out.c (modified_type_die): For C typedef types that have
9512 an ultimate origin, process the ultimate origin instead of the
9513 input type.
9514 (gen_typedef_die): Assert that input DECLs have no ultimate
9515 origin.
9516 (gen_type_die_with_usage): For typedef variants that have an
9517 ultimate origin, just call gen_decl_die on the original DECL.
9518 (process_scope_var): Avoid creating DIEs for local typedefs and
9519 concrete static variables.
9520
9521 2017-08-12 Alan Modra <amodra@gmail.com>
9522
9523 PR target/81170
9524 PR target/81295
9525 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
9526 match gnu-user.h startfile.
9527 (ENDFILE_LINUX_SPEC): Similarly.
9528
9529 2017-08-11 Thomas Schwinge <thomas@codesourcery.com>
9530
9531 PR lto/81430
9532 * config/nvptx/nvptx.c (nvptx_override_options_after_change):
9533 Remove function.
9534 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
9535
9536 2017-08-11 Tamar Christina <tamar.christina@arm.com>
9537 * config/aarch64/aarch64.md (mov<mode>): Change.
9538 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
9539 aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
9540 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
9541
9542 2017-08-11 Eric Botcazou <ebotcazou@adacore.com>
9543
9544 * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
9545 for storage order barriers.
9546
9547 2017-08-11 Martin Liska <mliska@suse.cz>
9548
9549 PR tree-opt/79987
9550 * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
9551 variables of void type.
9552
9553 2017-08-11 Martin Liska <mliska@suse.cz>
9554
9555 * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
9556 TARGET_SUPPORTS_ALIASES.
9557 * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
9558 * ipa-visibility.c (can_replace_by_local_alias): Likewise.
9559 (optimize_weakref): Likewise.
9560 * symtab.c (symtab_node::noninterposable_alias): Likewise.
9561 * varpool.c (varpool_node::create_extra_name_alias): Likewise.
9562 * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
9563
9564 2017-08-11 Martin Liska <mliska@suse.cz>
9565
9566 PR ipa/81213
9567 * config/i386/i386.c (make_resolver_func): Do complete
9568 refactoring of the function.
9569
9570 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
9571
9572 PR target/81708
9573 * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
9574 * config/i386/i386.c (ix86_stack_protect_guard): Use
9575 ix86_stack_protect_guard_symbol_str to generate varible declaration.
9576 * doc/invoke.texi (x86 Options): Document
9577 -mstack-protector-guard-symbol= option.
9578
9579 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
9580
9581 * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
9582 * config/i386/i386.c (ix86_split_stack_guard): New function.
9583 (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
9584 (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
9585 (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
9586 (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
9587 * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
9588 (split_stack_space_check): Call ix86_split_stack_guard.
9589
9590 2017-08-10 Martin Sebor <msebor@redhat.com>
9591
9592 * print-tree.c (print_node): Print location using the established
9593 format %s:%i%i.
9594 Replace spaces with colons.
9595 (debug_raw, debug): Ditto.
9596
9597 2017-08-10 Martin Sebor <msebor@redhat.com>
9598
9599 PR c++/81586
9600 * pretty-print.c (pp_format): Correct the handling of %s precision.
9601
9602 2017-08-10 H.J. Lu <hongjiu.lu@intel.com>
9603
9604 PR target/81736
9605 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
9606 to ...
9607 (ix86_finalize_stack_frame_flags): This. Also clear
9608 frame_pointer_needed if -fno-omit-frame-pointer is used without
9609 stack access.
9610 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
9611 with ix86_finalize_stack_frame_flags.
9612 (ix86_expand_epilogue): Likewise.
9613 (ix86_expand_split_stack_prologue): Likewise.
9614 * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
9615
9616 2017-08-10 Martin Liska <mliska@suse.cz>
9617
9618 PR c++/81355
9619 * c-attribs.c (handle_target_attribute):
9620 Report warning for an empty string argument of target attribute.
9621
9622 2017-08-09 Jakub Jelinek <jakub@redhat.com>
9623
9624 PR c/81687
9625 * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
9626 LABEL_DECLs.
9627 * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
9628 or DECL_NONLOCAL labels.
9629 (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
9630 or DECL_NONLOCAL labels here.
9631
9632 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com>
9633
9634 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
9635 to indicate when early gimple folding has been disabled.
9636 (rs6000_gimple_fold_builtin): Add debug content.
9637 (rs6000_invalid_builtin): Fix whitespace.
9638 (rs6000_expand_builtin): Fix whitespace.
9639 * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
9640
9641 2017-08-09 Segher Boessenkool <segher@kernel.crashing.org>
9642
9643 PR target/80938
9644 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
9645 SAVE_MULTIPLE if not all the registers that saves, should be saved.
9646
9647 2017-08-09 Jim Wilson <jim.wilson@linaro.org>
9648
9649 * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
9650 (qdf24xx): Likewise.
9651 * config/aarch64/aarch64.md: Include falkor.md.
9652 * config/aarch64/falkor.md: New.
9653
9654 2017-08-09 Marek Polacek <polacek@redhat.com>
9655
9656 PR c/81233
9657 * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
9658 * diagnostic.c (emit_diagnostic): Add a comment.
9659 (emit_diagnostic_valist): New function.
9660
9661 2017-08-09 Marek Polacek <polacek@redhat.com>
9662
9663 PR c/81417
9664 * input.c (make_location): New overload.
9665 * input.h (make_location): Declare.
9666
9667 2017-08-08 Alan Modra <amodra@gmail.com>
9668 H.J. Lu <hongjiu.lu@intel.com>
9669
9670 PR driver/81523
9671 * gcc.c (NO_PIE_SPEC): Delete.
9672 (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r
9673 exclusion..
9674 (LINK_PIE_SPEC): ..to here.
9675 (LINK_COMMAND_SPEC): Support -no-pie.
9676 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
9677 chain of crtbegin*.o selection, update for PIE_SPEC changes and
9678 format.
9679 (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
9680 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
9681 (ENDFILE_CRTEND_SPEC): Similarly.
9682
9683 2017-08-08 Uros Bizjak <ubizjak@gmail.com>
9684
9685 PR target/81708
9686 * config/i386/i386.opt (mstack-protector-guard-reg=): New option
9687 (mstack-protector-guard-offset=): Ditto.
9688 * config/i386/i386.c (ix86_option_override): Handle
9689 -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
9690 options.
9691 (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
9692 ix86_stack_protect_guard_offset variables.
9693 (TARGET_STACK_PROTECT_GUARD): Always define.
9694 * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
9695 and -mstack-protector-guard-offset= options.
9696
9697 2017-08-08 Bin Cheng <bin.cheng@arm.com>
9698
9699 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
9700 boundary case for the last candidate.
9701
9702 2017-08-08 Bin Cheng <bin.cheng@arm.com>
9703
9704 * doc/invoke.texi: Document -ftree-loop-distribution for O3.
9705 * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
9706
9707 2017-08-08 Tamar Christina <tamar.christina@arm.com>
9708
9709 PR middle-end/19706
9710 * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
9711 * config/aarch64/aarch64-builtins.c
9712 (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
9713 * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
9714 * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
9715
9716 2017-08-08 Tamar Christina <tamar.christina@arm.com>
9717 Andrew Pinski <pinskia@gmail.com>
9718
9719 PR middle-end/19706
9720 * internal-fn.def (XORSIGN): New.
9721 * optabs.def (xorsign_optab): New.
9722 * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
9723 (convert_expand_mult_copysign): New.
9724 (pass_optimize_widening_mul::execute): Call
9725 convert_expand_mult_copysign.
9726
9727 2017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9728
9729 PR tree-optimization/81354
9730 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
9731 Insert on edges rather than explicitly creating landing pads.
9732 (analyze_candidates_and_replace): Commit edge inserts.
9733
9734 2017-08-08 Richard Biener <rguenther@suse.de>
9735
9736 PR middle-end/81719
9737 * tree-ssa-loop-niter.c: Include tree-dfa.h.
9738 (expand_simple_operations): Also look through ADDR_EXPRs with
9739 MEM_REF bases treating them as POINTER_PLUS_EXPR.
9740
9741 2017-08-08 Richard Biener <rguenther@suse.de>
9742
9743 PR tree-optimization/81723
9744 * tree-vect-slp.c (struct bst_traits): New hash traits.
9745 (bst_fail): New global.
9746 (vect_build_slp_tree_2): New worker, split out from ...
9747 (vect_build_slp_tree): ... this now wrapping it with using
9748 bst_fail set to cache SLP tree build fails. Properly handle
9749 max_tree_size.
9750 (vect_analyze_slp_instance): Allocate and free bst_fail.
9751
9752 2017-08-08 Martin Liska <mliska@suse.cz>
9753
9754 PR tree-opt/81696
9755 * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
9756 LABEL_DECLs that can be from a different function.
9757
9758 2017-08-08 Bin Cheng <bin.cheng@arm.com>
9759
9760 PR tree-optimization/81744
9761 * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
9762 loop's number of iterations.
9763
9764 2017-08-08 Martin Liska <mliska@suse.cz>
9765
9766 * asan.c: Include header files.
9767 * attribs.c (build_decl_attribute_variant): New function moved
9768 from tree.[ch].
9769 (build_type_attribute_qual_variant): Likewise.
9770 (cmp_attrib_identifiers): Likewise.
9771 (simple_cst_list_equal): Likewise.
9772 (omp_declare_simd_clauses_equal): Likewise.
9773 (attribute_value_equal): Likewise.
9774 (comp_type_attributes): Likewise.
9775 (build_type_attribute_variant): Likewise.
9776 (lookup_ident_attribute): Likewise.
9777 (remove_attribute): Likewise.
9778 (merge_attributes): Likewise.
9779 (merge_type_attributes): Likewise.
9780 (merge_decl_attributes): Likewise.
9781 (merge_dllimport_decl_attributes): Likewise.
9782 (handle_dll_attribute): Likewise.
9783 (attribute_list_equal): Likewise.
9784 (attribute_list_contained): Likewise.
9785 * attribs.h (lookup_attribute): New function moved from tree.[ch].
9786 (lookup_attribute_by_prefix): Likewise.
9787 * bb-reorder.c: Include header files.
9788 * builtins.c: Likewise.
9789 * calls.c: Likewise.
9790 * cfgexpand.c: Likewise.
9791 * cgraph.c: Likewise.
9792 * cgraphunit.c: Likewise.
9793 * convert.c: Likewise.
9794 * dwarf2out.c: Likewise.
9795 * final.c: Likewise.
9796 * fold-const.c: Likewise.
9797 * function.c: Likewise.
9798 * gimple-expr.c: Likewise.
9799 * gimple-fold.c: Likewise.
9800 * gimple-pretty-print.c: Likewise.
9801 * gimple.c: Likewise.
9802 * gimplify.c: Likewise.
9803 * hsa-common.c: Likewise.
9804 * hsa-gen.c: Likewise.
9805 * internal-fn.c: Likewise.
9806 * ipa-chkp.c: Likewise.
9807 * ipa-cp.c: Likewise.
9808 * ipa-devirt.c: Likewise.
9809 * ipa-fnsummary.c: Likewise.
9810 * ipa-inline.c: Likewise.
9811 * ipa-visibility.c: Likewise.
9812 * ipa.c: Likewise.
9813 * lto-cgraph.c: Likewise.
9814 * omp-expand.c: Likewise.
9815 * omp-general.c: Likewise.
9816 * omp-low.c: Likewise.
9817 * omp-offload.c: Likewise.
9818 * omp-simd-clone.c: Likewise.
9819 * opts-global.c: Likewise.
9820 * passes.c: Likewise.
9821 * predict.c: Likewise.
9822 * sancov.c: Likewise.
9823 * sanopt.c: Likewise.
9824 * symtab.c: Likewise.
9825 * toplev.c: Likewise.
9826 * trans-mem.c: Likewise.
9827 * tree-chkp.c: Likewise.
9828 * tree-eh.c: Likewise.
9829 * tree-into-ssa.c: Likewise.
9830 * tree-object-size.c: Likewise.
9831 * tree-parloops.c: Likewise.
9832 * tree-profile.c: Likewise.
9833 * tree-ssa-ccp.c: Likewise.
9834 * tree-ssa-live.c: Likewise.
9835 * tree-ssa-loop.c: Likewise.
9836 * tree-ssa-sccvn.c: Likewise.
9837 * tree-ssa-structalias.c: Likewise.
9838 * tree-ssa.c: Likewise.
9839 * tree-streamer-in.c: Likewise.
9840 * tree-vectorizer.c: Likewise.
9841 * tree-vrp.c: Likewise.
9842 * tsan.c: Likewise.
9843 * ubsan.c: Likewise.
9844 * varasm.c: Likewise.
9845 * varpool.c: Likewise.
9846 * tree.c: Remove functions moved to attribs.[ch].
9847 * tree.h: Likewise.
9848 * config/aarch64/aarch64.c: Add attrs.h header file.
9849 * config/alpha/alpha.c: Likewise.
9850 * config/arc/arc.c: Likewise.
9851 * config/arm/arm.c: Likewise.
9852 * config/avr/avr.c: Likewise.
9853 * config/bfin/bfin.c: Likewise.
9854 * config/c6x/c6x.c: Likewise.
9855 * config/cr16/cr16.c: Likewise.
9856 * config/cris/cris.c: Likewise.
9857 * config/darwin.c: Likewise.
9858 * config/epiphany/epiphany.c: Likewise.
9859 * config/fr30/fr30.c: Likewise.
9860 * config/frv/frv.c: Likewise.
9861 * config/ft32/ft32.c: Likewise.
9862 * config/h8300/h8300.c: Likewise.
9863 * config/i386/winnt.c: Likewise.
9864 * config/ia64/ia64.c: Likewise.
9865 * config/iq2000/iq2000.c: Likewise.
9866 * config/lm32/lm32.c: Likewise.
9867 * config/m32c/m32c.c: Likewise.
9868 * config/m32r/m32r.c: Likewise.
9869 * config/m68k/m68k.c: Likewise.
9870 * config/mcore/mcore.c: Likewise.
9871 * config/microblaze/microblaze.c: Likewise.
9872 * config/mips/mips.c: Likewise.
9873 * config/mmix/mmix.c: Likewise.
9874 * config/mn10300/mn10300.c: Likewise.
9875 * config/moxie/moxie.c: Likewise.
9876 * config/msp430/msp430.c: Likewise.
9877 * config/nds32/nds32-isr.c: Likewise.
9878 * config/nds32/nds32.c: Likewise.
9879 * config/nios2/nios2.c: Likewise.
9880 * config/nvptx/nvptx.c: Likewise.
9881 * config/pa/pa.c: Likewise.
9882 * config/pdp11/pdp11.c: Likewise.
9883 * config/powerpcspe/powerpcspe.c: Likewise.
9884 * config/riscv/riscv.c: Likewise.
9885 * config/rl78/rl78.c: Likewise.
9886 * config/rx/rx.c: Likewise.
9887 * config/s390/s390.c: Likewise.
9888 * config/sh/sh.c: Likewise.
9889 * config/sol2.c: Likewise.
9890 * config/sparc/sparc.c: Likewise.
9891 * config/spu/spu.c: Likewise.
9892 * config/stormy16/stormy16.c: Likewise.
9893 * config/tilegx/tilegx.c: Likewise.
9894 * config/tilepro/tilepro.c: Likewise.
9895 * config/v850/v850.c: Likewise.
9896 * config/vax/vax.c: Likewise.
9897 * config/visium/visium.c: Likewise.
9898 * config/xtensa/xtensa.c: Likewise.
9899
9900 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com>
9901
9902 PR target/81593
9903 * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
9904 constraints since the -mupper-regs-* switches have been
9905 eliminated.
9906 (vsx_concat_<mode>_1): New combiner insns to recognize inserting
9907 into a vector from a double word element that was extracted from
9908 another vector, and eliminate extra XXPERMDI instructions.
9909 (vsx_concat_<mode>_2): Likewise.
9910 (vsx_concat_<mode>_3): Likewise.
9911 (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
9912 concat to allow optimizing inserts from previous extracts.
9913
9914 2017-08-07 Uros Bizjak <ubizjak@gmail.com>
9915
9916 * config/i386/i386.c (ix86_stack_protect_guard): Generate
9917 memory reference to a SSP offset in TLS address space.
9918 (ix86_print_operand) <case '@'>: Remove.
9919 (ix86_print_operand_punct_valid_p): Remove '@' code.
9920 * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
9921 UNSPEC_SP_TLS_TEST.
9922 (stack_tls_protect_set_<mode>): Remove.
9923 (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
9924 (stack_tls_protect_test_<mode>): Remove.
9925 (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
9926
9927 2017-08-07 Olivier Hainque <hainque@adacore.com>
9928
9929 PR target/81755
9930 * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
9931
9932 2017-08-07 Douglas Rupp <rupp@adacore.com>
9933
9934 * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
9935 variable was referenced as multidir in command.
9936
9937 2017-08-07 Jakub Jelinek <jakub@redhat.com>
9938
9939 PR c/69389
9940 * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
9941 BIT_FIELD_REF.
9942
9943 2017-08-07 Martin Liska <mliska@suse.cz>
9944
9945 * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
9946 * config/rl78/rl78.c: Add include of attribs.h.
9947 * config/sh/sh.c: Likewise.
9948 * config/v850/v850.c: Likewise.
9949
9950 2017-08-07 Tom de Vries <tom@codesourcery.com>
9951
9952 PR middle-end/78266
9953 * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
9954
9955 2017-08-07 Martin Liska <mliska@suse.cz>
9956
9957 * config/mips/mips.c: Include attribs.h.
9958
9959 2017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
9960
9961 PR fortran/68829
9962 * doc/invoke.texi: Document change in behvaior for -Ofast for
9963 Fortran.
9964
9965 2017-08-07 Wilco Dijkstra <wdijkstr@arm.com>
9966
9967 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
9968 Use gen_frame_mem.
9969 (aarch64_pop_regs): Likewise.
9970 (aarch64_gen_load_pair): Likewise.
9971 (aarch64_save_callee_saves): Likewise.
9972 (aarch64_restore_callee_saves): Likewise.
9973
9974 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
9975
9976 * config/i386/i386.c: Revert the last change.
9977
9978 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
9979
9980 PR target/81736
9981 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
9982 to ...
9983 (ix86_finalize_stack_frame_flags): This. Also clear
9984 frame_pointer_needed if -fno-omit-frame-pointer is used without
9985 stack access.
9986 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
9987 with ix86_finalize_stack_frame_flags.
9988 (ix86_expand_epilogue): Likewise.
9989 (ix86_expand_split_stack_prologue): Likewise.
9990
9991 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
9992
9993 PR target/81743
9994 * config/i386/i386.c (get_builtin_code_for_version): Set priority
9995 to P_AES for Westmere.
9996
9997 2017-08-07 Jonathan Yong <10walls@gmail.com>
9998
9999 * config/i386/mingw.opt (fset-stack-executable): Removed.
10000 * config/i386/cygming.opt (fset-stack-executable): Moved
10001 from mingw.opt.
10002 * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
10003
10004 2017-08-07 Segher Boessenkool <segher@kernel.crashing.org>
10005
10006 * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
10007
10008 2017-08-07 Marek Polacek <polacek@redhat.com>
10009
10010 PR middle-end/81737
10011 * fold-const.c (fold_indirect_ref_1): Check type_domain.
10012
10013 2017-08-07 Martin Liska <mliska@suse.cz>
10014
10015 * attribs.h (canonicalize_attr_name): New function.
10016 (cmp_attribs): Move from c-format.c and adjusted.
10017 (is_attribute_p): Moved from tree.h.
10018 * tree-inline.c: Add new includes.
10019 * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
10020 (private_is_attribute_p): Remove.
10021 (private_lookup_attribute): Likewise.
10022 (private_lookup_attribute_by_prefix): Simplify.
10023 (remove_attribute): Use is_attribute_p.
10024 * tree.h: Remove removed declarations.
10025
10026 2017-08-07 Jakub Jelinek <jakub@redhat.com>
10027
10028 PR middle-end/81698
10029 * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
10030 instead of computing it in the function. Formatting fix.
10031 (expand_case): Don't rely on default_edge being the first edge,
10032 clear it if removing it, pass default_edge to
10033 emit_case_dispatch_table.
10034 (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
10035 fix.
10036
10037 2017-08-06 Uros Bizjak <ubizjak@gmail.com>
10038
10039 * config/alpha/alpha.c (alpha_reorg): If trap is the last active
10040 insn in the function, emit NOP after the insn.
10041
10042 2017-08-06 Tom de Vries <tom@codesourcery.com>
10043
10044 * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
10045 and element loops.
10046
10047 2017-08-06 Tom de Vries <tom@codesourcery.com>
10048
10049 * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
10050 loop.
10051
10052 2017-08-04 Yury Gribov <tetra2005@gmail.com>
10053
10054 PR tree-optimization/57371
10055 * match.pd: New pattern.
10056
10057 2017-08-04 Marek Polacek <polacek@redhat.com>
10058
10059 PR middle-end/81695
10060 * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
10061 perform the computation in offset_int.
10062
10063 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
10064
10065 PR tree-optimization/81136
10066 * tree-vectorizer.h: Include tree-hash-traits.h.
10067 (vec_base_alignments): New typedef.
10068 (vec_info): Add a base_alignments field.
10069 (vect_record_base_alignments): Declare.
10070 * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
10071 field.
10072 (DR_IS_CONDITIONAL_IN_STMT): New macro.
10073 (create_data_ref): Add an is_conditional_in_stmt argument.
10074 * tree-data-ref.c (create_data_ref): Likewise. Use it to initialize
10075 the is_conditional_in_stmt field.
10076 (data_ref_loc): Add an is_conditional_in_stmt field.
10077 (get_references_in_stmt): Set the is_conditional_in_stmt field.
10078 (find_data_references_in_stmt): Update call to create_data_ref.
10079 (graphite_find_data_references_in_stmt): Likewise.
10080 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
10081 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
10082 (vect_record_base_alignment): New function.
10083 (vect_record_base_alignments): Likewise.
10084 (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
10085 for nested statements even if we fail to compute a misalignment.
10086 Use pooled base alignments for unconditional references.
10087 (vect_find_same_alignment_drs): Compare base addresses instead
10088 of base objects.
10089 (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
10090 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
10091
10092 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
10093
10094 * tree-vectorizer.h (vec_info): Add a constructor and destructor.
10095 Add an explicit name for the enum. Use auto_vec for slp_instances
10096 and grouped_stores.
10097 (_loop_vec_info): Add a constructor and destructor. Use auto_vec
10098 for all vectors.
10099 (_bb_vec_info): Add a constructor and destructor.
10100 (vinfo_for_stmt): Return NULL for uids of -1 as well.
10101 (destroy_loop_vec_info): Delete.
10102 (vect_destroy_datarefs): Likewise.
10103 * tree-vectorizer.c (vect_destroy_datarefs): Delete.
10104 (vec_info::vec_info): New function.
10105 (vec_info::~vec_info): Likewise.
10106 (vectorize_loops): Use delete instead of destroy_loop_vec_info.
10107 * tree-parloops.c (gather_scalar_reductions): Use delete instead of
10108 destroy_loop_vec_info.
10109 * tree-vect-loop.c (new_loop_vec_info): Replace with...
10110 (_loop_vec_info::_loop_vec_info): ...this.
10111 (destroy_loop_vec_info): Replace with...
10112 (_loop_vec_info::~_loop_vec_info): ...this. Unconditionally delete
10113 the stmt_vec_infos. Leave handling of vec_info information to its
10114 destructor. Remove explicit vector releases.
10115 (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
10116 (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
10117 * tree-vect-slp.c (new_bb_vec_info): Replace with...
10118 (_bb_vec_info::_bb_vec_info): ...this. Don't reserve space in
10119 BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
10120 (destroy_bb_vec_info): Replace with...
10121 (_bb_vec_info::~_bb_vec_info): ...this. Leave handling of vec_info
10122 information to its destructor.
10123 (vect_slp_analyze_bb_1): Use new and delete instead of
10124 new_bb_vec_info and destroy_bb_vec_info.
10125 (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
10126 single delete.
10127
10128 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
10129
10130 * tree-data-ref.h (subscript): Add access_fn field.
10131 (data_dependence_relation): Add could_be_independent_p.
10132 (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
10133 (same_access_functions): Move to tree-data-ref.c.
10134 * tree-data-ref.c (ref_contains_union_access_p): New function.
10135 (access_fn_component_p): Likewise.
10136 (access_fn_components_comparable_p): Likewise.
10137 (dr_analyze_indices): Add a reference to access_fn_component_p.
10138 (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
10139 DR_ACCESS_FN.
10140 (constant_access_functions): Likewise.
10141 (add_other_self_distances): Likewise.
10142 (same_access_functions): Likewise. (Moved from tree-data-ref.h.)
10143 (initialize_data_dependence_relation): Use XCNEW and remove
10144 explicit zeroing of DDR_REVERSED_P. Look for a subsequence
10145 of access functions that have the same type. Allow the
10146 subsequence to end with different bases in some circumstances.
10147 Record the chosen access functions in SUB_ACCESS_FN.
10148 (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
10149 a_index and b_index. Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
10150 (subscript_dependence_tester_1): Likewise dra and drb.
10151 (build_classic_dist_vector): Update calls accordingly.
10152 (subscript_dependence_tester): Likewise.
10153 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
10154 DDR_COULD_BE_INDEPENDENT_P.
10155 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
10156 comp_alias_ddrs instead of may_alias_ddrs.
10157 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
10158 New function.
10159 (vect_analyze_data_ref_dependence): Use it if
10160 DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
10161 distance vectors if that fails.
10162 (dependence_distance_ge_vf): New function.
10163 (vect_prune_runtime_alias_test_list): Use it. Don't clear
10164 LOOP_VINFO_MAY_ALIAS_DDRS.
10165
10166 2017-08-04 Richard Biener <rguenther@suse.de>
10167
10168 PR middle-end/81705
10169 * fold-const.c (fold_binary_loc): Properly restrict
10170 minus_var0 && minus_var1 case when associating undefined overflow
10171 entities.
10172
10173 2017-08-04 Tom de Vries <tom@codesourcery.com>
10174
10175 * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
10176
10177 2017-08-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10178
10179 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10180 Don't start diagnostic messages with a capital letter.
10181 * config/rs6000/rs6000.c (rs6000_option_override_internal):
10182 Likewise.
10183 (rs6000_invalid_builtin): Likewise.
10184 (rs6000_trampoline_init): Likewise.
10185
10186 2017-08-03 Jakub Jelinek <jakub@redhat.com>
10187
10188 PR target/81621
10189 * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
10190 after setting changeable df flags.
10191
10192 2017-08-03 Richard Biener <rguenther@suse.de>
10193
10194 * tree-ssa-reassoc.c (should_break_up_subtract): Also break
10195 up if the use is in USE - X.
10196
10197 2017-08-03 Alexander Monakov <amonakov@ispras.ru>
10198
10199 * toplev.c (dumpfile.h): New include.
10200 (internal_error_reentered): New static function. Use it...
10201 (internal_error_function): ...here to handle reentered internal_error.
10202
10203 2017-08-03 Richard Biener <rguenther@suse.de>
10204
10205 PR middle-end/81148
10206 * fold-const.c (split_tree): Add minus_var and minus_con
10207 arguments, remove unused loc arg. Never generate NEGATE_EXPRs
10208 here but always use minus_*.
10209 (associate_trees): Assert we never associate with MINUS_EXPR
10210 and NULL first operand. Do not recurse for PLUS_EXPR operands
10211 when associating as MINUS_EXPR either.
10212 (fold_binary_loc): Track minus_var and minus_con.
10213
10214 2017-08-03 Tom de Vries <tom@codesourcery.com>
10215
10216 PR lto/81430
10217 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
10218 ACCEL_COMPILER, apply finish_options on
10219 DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
10220
10221 2017-08-03 Tom de Vries <tom@codesourcery.com>
10222
10223 PR target/81662
10224 * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
10225 function_entry_patch_area_size > 0.
10226
10227 2017-08-03 Jakub Jelinek <jakub@redhat.com>
10228
10229 PR driver/81650
10230 * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
10231 instead of 10??LU, perform unit multiplication in wide_int,
10232 don't change alloc_object_size_limit if the limit is larger
10233 than SSIZE_MAX.
10234
10235 PR tree-optimization/81655
10236 PR tree-optimization/81588
10237 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
10238 the case when ranges[i].low and high are 1 for unsigned type with
10239 precision 1.
10240
10241 PR middle-end/81052
10242 * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
10243 (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
10244
10245 2017-08-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10246
10247 * tree-vrp.h: Add include guard.
10248
10249 2017-08-02 Uros Bizjak <ubizjak@gmail.com>
10250
10251 PR target/81644
10252 * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
10253 (ud2): New insn pattern.
10254 * config/i386/i386.c (ix86_expand_epilogue):
10255 For naked functions, generate ud2 instead of trap insn.
10256
10257 2017-08-02 Marek Polacek <polacek@redhat.com>
10258
10259 PR other/81667
10260 * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
10261
10262 2017-08-02 Tom de Vries <tom@codesourcery.com>
10263 Cesar Philippidis <cesar@codesourcery.com>
10264
10265 * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
10266 Add missing edge probabilities.
10267
10268 2017-08-02 Tamar Christina <tamar.christina@arm.com>
10269
10270 * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
10271 Correct endianness.
10272
10273 2017-08-02 Jakub Jelinek <jakub@redhat.com>
10274
10275 PR middle-end/79499
10276 * function.c (thread_prologue_and_epilogue_insns): Determine blocks
10277 for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
10278 of first NONDEBUG_INSN_P in each of the split_prologue_seq and
10279 prologue_seq sequences - if any.
10280
10281 2017-08-02 Richard Biener <rguenther@suse.de>
10282
10283 * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
10284 via vectors if supported, integer extracts via punning if supported
10285 or otherwise vector extracts.
10286
10287 2017-08-02 Richard Biener <rguenther@suse.de>
10288
10289 * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
10290 into ...
10291 (bitmap_insert_into_set): ... this.
10292
10293 2017-08-02 Richard Biener <rguenther@suse.de>
10294
10295 PR tree-optimization/81633
10296 Revert
10297 2015-08-17 Alan Hayward <alan.hayward@arm.com>
10298
10299 PR tree-optimization/71752
10300 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
10301
10302 2017-08-01 Daniel Santos <daniel.santos@pobox.com>
10303
10304 * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
10305 (machine_function::call_ms2sysv_pad_out): Remove field.
10306 * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
10307 (ix86_compute_frame_layout): Likewise.
10308
10309 2017-08-01 H.J. Lu <hongjiu.lu@intel.com>
10310
10311 PR target/81654
10312 * config/i386/i386.c (ix86_set_func_type): Disallow naked
10313 attribute with interrupt attribute.
10314
10315 2017-08-01 Andrew Pinski <apinski@cavium.com>
10316
10317 * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
10318 BIT_INSERT_EXPR's operand 1
10319 to see if the types precision matches.
10320
10321 2017-08-01 Martin Liska <mliska@suse.cz>
10322
10323 PR middle-end/70140
10324 * builtins.c (expand_builtin_memcpy_args): Remove.
10325 (expand_builtin_memcpy): Call newly added function
10326 expand_builtin_memory_copy_args.
10327 (expand_builtin_memcpy_with_bounds): Likewise.
10328 (expand_builtin_mempcpy): Remove last argument.
10329 (expand_builtin_mempcpy_with_bounds): Likewise.
10330 (expand_builtin_memory_copy_args): New function created from
10331 expand_builtin_mempcpy_args with small modifications.
10332 (expand_builtin_mempcpy_args): Remove.
10333 (expand_builtin_stpcpy): Remove unused argument.
10334 (expand_builtin): Likewise.
10335 (expand_builtin_with_bounds): Likewise.
10336
10337 2017-08-01 Martin Liska <mliska@suse.cz>
10338
10339 Revert r250771
10340 Make mempcpy more optimal (PR middle-end/70140).
10341
10342 2017-08-01 Jakub Jelinek <jakub@redhat.com>
10343
10344 PR target/81622
10345 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
10346 __builtin_vec_cmpne verify both arguments are compatible vectors
10347 before looking at TYPE_MODE on the element type. For __builtin_vec_ld
10348 verify arg1_type is a pointer or array type. For __builtin_vec_st,
10349 move computation of aligned to after checking the argument types.
10350 Formatting fixes.
10351
10352 PR target/80846
10353 * config/rs6000/vsx.md (vextract_fp_from_shorth,
10354 vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
10355 calls.
10356
10357 2017-08-01 Jerome Lambourg <lambourg@adacore.com>
10358 Doug Rupp <rupp@adacore.com>
10359 Olivier Hainque <hainque@adacore.com>
10360
10361 * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
10362 well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
10363 arm8 (arch v4).
10364 * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
10365 for TARGET_OS_CPP_BUILTIN.
10366 (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
10367 refine CPU definitions for arm_arch5 and add those for arm_arch6 and
10368 arm_arch7.
10369 (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
10370 passing required abi options to the assembler for EABI configurations.
10371 (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
10372 of .text.hot and .text.unlikely sections for kernel modules when
10373 using ARM style exceptions.
10374 (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
10375 options. Add EXTRA_CC1_SPEC.
10376 (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
10377 toolchain options.
10378 (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
10379 transition.
10380 (ARM_TARGET2_DWARF_FORMAT): Define.
10381 * config/arm/t-vxworks: Adjust multilib control to removal of the
10382 Diab command line options.
10383
10384 2017-08-01 Martin Liska <mliska@suse.cz>
10385
10386 PR gcov-profile/81561
10387 * gcov.c (unblock): Make unblocking safe as we need to preserve
10388 index correspondence of blocks and block_lists.
10389
10390 2017-08-01 Richard Biener <rguenther@suse.de>
10391
10392 PR tree-optimization/81181
10393 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
10394 (compute_antic): ... end of iteration here.
10395
10396 2017-08-01 James Greenhalgh <james.greenhalgh@arm.com>
10397
10398 * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
10399 (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
10400 (ftree-slp-vectorize): Likewise.
10401 * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
10402 can no longer be set independent of flag_tree_loop_vectorize.
10403 * omp-general.c (emp_max_vf): Likewise.
10404 * opts.c (enable_fdo_optimizations): Remove references to
10405 flag_tree_vectorize, these are now implicit.
10406 (common_handle_option): Remove handling for OPT_ftree_vectorize,
10407 and leave it for the options machinery.
10408
10409 2017-08-01 Martin Liska <mliska@suse.cz>
10410
10411 PR middle-end/70140
10412 * builtins.c (expand_builtin_memcpy_args): Remove.
10413 (expand_builtin_memcpy): Call newly added function
10414 expand_builtin_memory_copy_args.
10415 (expand_builtin_memcpy_with_bounds): Likewise.
10416 (expand_builtin_mempcpy): Remove last argument.
10417 (expand_builtin_mempcpy_with_bounds): Likewise.
10418 (expand_builtin_memory_copy_args): New function created from
10419 expand_builtin_mempcpy_args with small modifications.
10420 (expand_builtin_mempcpy_args): Remove.
10421 (expand_builtin_stpcpy): Remove unused argument.
10422 (expand_builtin): Likewise.
10423 (expand_builtin_with_bounds): Likewise.
10424
10425 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
10426
10427 PR target/81641
10428 * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
10429 print "ds:" only for immediates in generic address space.
10430
10431 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
10432
10433 PR target/81639
10434 * config/i386/i386.c (ix86_funciton_naked): New prototype.
10435 (ix86_function_ok_for_sibcall): Return false for naked functions.
10436
10437 2017-08-01 Richard Biener <rguenther@suse.de>
10438
10439 * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
10440 (compute_antic): Seed worklist with exit block predecessors.
10441 * cfganal.c (dfs_find_deadend): For a cycle return the source
10442 of the edge closing it.
10443
10444 2017-08-01 Tamar Christina <tamar.christina@arm.com>
10445
10446 * config/aarch64/aarch64.c
10447 (aarch64_can_const_movi_rtx_p): Move 0 check.
10448
10449 2017-08-01 Bin Cheng <bin.cheng@arm.com>
10450
10451 * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
10452 * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
10453 above macro.
10454 * match.pd: Ditto in address comparison pattern.
10455
10456 2017-08-01 Bin Cheng <bin.cheng@arm.com>
10457
10458 PR tree-optimization/81627
10459 * tree-predcom.c (prepare_finalizers): Always rewrite into loop
10460 closed ssa form for store-store chain.
10461
10462 2017-08-01 Bin Cheng <bin.cheng@arm.com>
10463
10464 PR tree-optimization/81620
10465 * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
10466 for store-store chain.
10467
10468 2017-08-01 Jakub Jelinek <jakub@redhat.com>
10469
10470 PR tree-optimization/81588
10471 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
10472 ranges[i].in_p, invert comparison code ccode. For >/>=,
10473 swap rhs1 and rhs2 and comparison code unconditionally,
10474 for </<= don't do that. Don't swap rhs1/rhs2 again if
10475 ranges[i].in_p, instead invert comparison code ccode if
10476 opcode or oe->rank is BIT_IOR_EXPR.
10477
10478 PR target/80846
10479 * optabs.def (vec_extract_optab, vec_init_optab): Change from
10480 a direct optab to conversion optab.
10481 * optabs.c (expand_vector_broadcast): Use convert_optab_handler
10482 with GET_MODE_INNER as last argument instead of optab_handler.
10483 * expmed.c (extract_bit_field_1): Likewise. Use vector from
10484 vector extraction if possible and optab is available.
10485 * expr.c (store_constructor): Use convert_optab_handler instead
10486 of optab_handler. Use vector initialization from smaller
10487 vectors if possible and optab is available.
10488 * tree-vect-stmts.c (vectorizable_load): Likewise.
10489 * doc/md.texi (vec_extract, vec_init): Document that the optabs
10490 now have two modes.
10491 * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
10492 of vec_init from half-sized vectors with the same element mode.
10493 * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
10494 (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
10495 (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
10496 reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
10497 reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
10498 after mode in gen_vec_extract* calls.
10499 (vec_extract<mode>): Renamed to ...
10500 (vec_extract<mode><ssescalarmodelower>): ... this.
10501 (vec_extract<mode><ssehalfvecmodelower>): New expander.
10502 (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
10503 element mode after mode in gen_vec_init* calls.
10504 (VEC_INIT_HALF_MODE): New mode iterator.
10505 (vec_init<mode>): Renamed to ...
10506 (vec_init<mode><ssescalarmodelower>): ... this.
10507 (vec_init<mode><ssehalfvecmodelower>): New expander.
10508 * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
10509 (vec_extractv2sfsf): ... this.
10510 (vec_initv2sf): Renamed to ...
10511 (vec_initv2sfsf): ... this.
10512 (vec_extractv2si): Renamed to ...
10513 (vec_extractv2sisi): ... this.
10514 (vec_initv2si): Renamed to ...
10515 (vec_initv2sisi): ... this.
10516 (vec_extractv4hi): Renamed to ...
10517 (vec_extractv4hihi): ... this.
10518 (vec_initv4hi): Renamed to ...
10519 (vec_initv4hihi): ... this.
10520 (vec_extractv8qi): Renamed to ...
10521 (vec_extractv8qiqi): ... this.
10522 (vec_initv8qi): Renamed to ...
10523 (vec_initv8qiqi): ... this.
10524 * config/rs6000/vector.md (VEC_base_l): New mode attribute.
10525 (vec_init<mode>): Renamed to ...
10526 (vec_init<mode><VEC_base_l>): ... this.
10527 (vec_extract<mode>): Renamed to ...
10528 (vec_extract<mode><VEC_base_l>): ... this.
10529 * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
10530 (vec_initv2sfsf): ... this.
10531 * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
10532 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
10533 vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
10534 element mode after mode in gen_vec_init* calls.
10535 * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
10536 (vec_init<mode><Vel>): ... this.
10537 (vec_extract<mode>): Renamed to ...
10538 (vec_extract<mode><Vel>): ... this.
10539 * config/aarch64/iterators.md (Vel): New mode attribute.
10540 * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
10541 Add element mode after mode in gen_vec_extract* calls.
10542 * config/s390/vector.md (non_vec_l): New mode attribute.
10543 (vec_extract<mode>): Renamed to ...
10544 (vec_extract<mode><non_vec_l>): ... this.
10545 (vec_init<mode>): Renamed to ...
10546 (vec_init<mode><non_vec_l>): ... this.
10547 * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
10548 s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
10549 vec_extract mode.
10550 * config/arm/iterators.md (V_elem_l): New mode attribute.
10551 * config/arm/neon.md (vec_extract<mode>): Renamed to ...
10552 (vec_extract<mode><V_elem_l>): ... this.
10553 (vec_extractv2di): Renamed to ...
10554 (vec_extractv2didi): ... this.
10555 (vec_init<mode>): Renamed to ...
10556 (vec_init<mode><V_elem_l>): ... this.
10557 (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
10558 reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
10559 reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
10560 Add element mode after gen_vec_extract* calls.
10561 * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
10562 (vec_init<mode><unitmode>): ... this.
10563 (vec_extract<mode>): Renamed to ...
10564 (vec_extract<mode><unitmode>): ... this.
10565 * config/mips/loongson.md (vec_init<mode>): Renamed to ...
10566 (vec_init<mode><unitmode>): ... this.
10567 * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
10568 (vec_initv2sfsf): ... this.
10569 (vec_extractv2sf): Renamed to ...
10570 (vec_extractv2sfsf): ... this.
10571 (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
10572 Add element mode after gen_vec_extract* calls.
10573 * config/mips/mips.md (unitmode): New mode iterator.
10574 * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
10575 spu_builtin_extract): Add element mode after gen_vec_extract* calls.
10576 * config/spu/spu.md (inner_l): New mode attribute.
10577 (vec_init<mode>): Renamed to ...
10578 (vec_init<mode><inner_l>): ... this.
10579 (vec_extract<mode>): Renamed to ...
10580 (vec_extract<mode><inner_l>): ... this.
10581 * config/sparc/sparc.md (veltmode): New mode iterator.
10582 (vec_init<VMALL:mode>): Renamed to ...
10583 (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
10584 * config/ia64/vect.md (vec_initv2si): Renamed to ...
10585 (vec_initv2sisi): ... this.
10586 (vec_initv2sf): Renamed to ...
10587 (vec_initv2sfsf): ... this.
10588 (vec_extractv2sf): Renamed to ...
10589 (vec_extractv2sfsf): ... this.
10590 * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
10591 (vec_init<mode>): Renamed to ...
10592 (vec_init<mode><VEC_base_l>): ... this.
10593 (vec_extract<mode>): Renamed to ...
10594 (vec_extract<mode><VEC_base_l>): ... this.
10595 * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
10596 (vec_initv2sfsf): ... this.
10597 * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
10598 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
10599 vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
10600 gen_vec_init* calls.
10601
10602 2017-08-01 Richard Biener <rguenther@suse.de>
10603
10604 PR tree-optimization/81297
10605 * tree-vrp.c (get_single_symbol): Remove assert, instead drop
10606 TREE_OVERFLOW from INTEGER_CSTs.
10607
10608 2017-07-31 Segher Boessenkool <segher@kernel.crashing.org>
10609
10610 * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
10611
10612 2017-07-31 Carl Love <cel@us.ibm.com>
10613
10614 * config/rs6000/rs6000-c: Add support for built-in functions
10615 vector signed char vec_xl_be (signed long long, signed char *);
10616 vector unsigned char vec_xl_be (signed long long, unsigned char *);
10617 vector signed int vec_xl_be (signed long long, signed int *);
10618 vector unsigned int vec_xl_be (signed long long, unsigned int *);
10619 vector signed long long vec_xl_be (signed long long, signed long long *);
10620 vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
10621 vector signed short vec_xl_be (signed long long, signed short *);
10622 vector unsigned short vec_xl_be (signed long long, unsigned short *);
10623 vector double vec_xl_be (signed long long, double *);
10624 vector float vec_xl_be (signed long long, float *);
10625 * config/rs6000/altivec.h (vec_xl_be): Add #define.
10626 * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
10627 XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
10628 for the builtins.
10629 * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
10630 (altivec_expand_builtin): Add switch statement to call
10631 altivec_expand_xl_be for each builtin.
10632 (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
10633 __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
10634 __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
10635 __builtin_vsx_le_be_v16qi.
10636 * doc/extend.texi: Update the built-in documentation file for the
10637 new built-in functions.
10638
10639 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
10640
10641 PR target/25967
10642 * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
10643 New function.
10644 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
10645
10646 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10647
10648 * config.gcc: Add z14.
10649 * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
10650 CPU model numbers for z13s and z14.
10651 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
10652 arch12 with z14.
10653 * config/s390/s390-opts.h (enum processor_type): Rename
10654 PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
10655 * config/s390/s390.c (processor_table): Add field for CPU name to
10656 be passed to Binutils.
10657 (s390_asm_output_machine_for_arch): Use the new field in
10658 processor_table for Binutils.
10659 (s390_expand_builtin): Replace arch12 with z14.
10660 (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
10661 (s390_get_sched_attrmask): Likewise.
10662 (s390_get_unit_mask): Likewise.
10663 * config/s390/s390.opt: Add z14 to processor_type enum.
10664
10665 2017-07-31 Martin Jambor <mjambor@suse.cz>
10666
10667 PR hsa/81477
10668 * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
10669 regardless of optimization level.
10670
10671 2017-07-31 Jan Hubicka <hubicka@ucw.cz>
10672 Martin Liska <mliska@suse.cz>
10673
10674 * predict.def: Remove old comment and adjust probability.
10675 * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
10676 PREDICT statements.
10677
10678 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
10679
10680 PR target/25967
10681 * config/i386/i386.c (ix86_function_naked): New function.
10682 (ix86_can_use_return_insn_p): Return false for naked functions.
10683 (ix86_expand_prologue): Skip prologue for naked functions.
10684 (ix86_expand_epilogue): Skip epilogue for naked functions
10685 and emit trap instruction.
10686 (ix86_warn_func_return): New function.
10687 (ix86_attribute_table): Add "naked" attribute specification.
10688 (TARGET_WARN_FUNC_RETURN): Define.
10689 * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
10690
10691 2017-07-31 Martin Liska <mliska@suse.cz>
10692
10693 * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
10694 (dump_gimple_bb_header): Always dump BB info.
10695 (pp_cfg_jump): Do not append info about BB when dumping a jump.
10696
10697 2017-07-31 Martin Liska <mliska@suse.cz>
10698
10699 PR sanitize/81530
10700 * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
10701 also with current_function_decl non-null equality.
10702
10703 2017-07-31 Jakub Jelinek <jakub@redhat.com>
10704
10705 PR sanitizer/81604
10706 * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
10707 change type to the element type, instead add eltype variable and
10708 use it where we are interested in the element type.
10709
10710 PR tree-optimization/81603
10711 * ipa-polymorphic-call.c
10712 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
10713 offset arithmetic in offset_int, bail out if the resulting bit offset
10714 doesn't fit into shwi.
10715
10716 2017-07-31 Martin Liska <mliska@suse.cz>
10717
10718 * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
10719 (gimplify_save_expr): Fix comment.
10720
10721 2017-07-30 H.J. Lu <hongjiu.lu@intel.com>
10722
10723 PR target/79793
10724 * config/i386/i386.c (ix86_function_arg): Update arguments for
10725 exception handler.
10726 (ix86_compute_frame_layout): Set the initial stack offset to
10727 INCOMING_FRAME_SP_OFFSET. Update red-zone offset with
10728 INCOMING_FRAME_SP_OFFSET.
10729 (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
10730 stack before exception handler returns.
10731 * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
10732 the 'ERROR_CODE' for exception handler.
10733
10734 2017-07-30 Uros Bizjak <ubizjak@gmail.com>
10735
10736 * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
10737 (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
10738 (ASM_OUTPUT_REG_POP): Ditto.
10739 * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
10740 instead of asm_fprintf to output pure string.
10741
10742 2017-07-29 Jakub Jelinek <jakub@redhat.com>
10743
10744 * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
10745 to imported_module_or_decl hook.
10746 (debug_nothing_tree_tree_tree_bool): Remove.
10747 (debug_nothing_tree_tree_tree_bool_bool): New declaration.
10748 * debug.c (do_nothing_debug_hooks): Use
10749 debug_nothing_tree_tree_tree_bool_bool instead of
10750 debug_nothing_tree_tree_tree_bool.
10751 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10752 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
10753 * sdbout.c (sdb_debug_hooks): Likewise.
10754 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
10755 (gen_namespace_die): Add DW_AT_export_symbols attribute if
10756 langhook wants it.
10757 (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
10758 if true, -gdwarf-5 and decl will have DW_AT_export_symbols
10759 attribute, don't add anything.
10760
10761 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10762
10763 * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
10764 (fold_build2_stat_loc): Likewise.
10765 (fold_build3_stat_loc): Likewise.
10766 * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
10767 (fold_build1_loc): Remove macro.
10768 (fold_build2_loc): Likewise.
10769 (fold_build3_loc): Likewise.
10770
10771 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10772
10773 * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
10774 (gimple_build_debug_bind_source_stat): Likewise.
10775 * gimple.h (gimple_build_debug_bind): Remove macro.
10776 (gimple_build_debug_bind_source): Likewise.
10777
10778 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10779
10780 * bitmap.c (bitmap_alloc): Adjust.
10781 (bitmap_gc_alloc): Likewise.
10782 * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
10783
10784 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10785
10786 * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
10787 (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
10788 * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
10789 (bitmap_gc_alloc_stat): Likewise.
10790 (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
10791
10792 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10793
10794 * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
10795 * rtl.h (shallow_copy_rtx): Remove macro.
10796
10797 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10798
10799 * emit-rtl.c (gen_raw_REG): Adjust.
10800 * gengenrtl.c (gendef): Likewise.
10801 * rtl.c (rtx_alloc_stat): Remove _stat from name.
10802 * rtl.h (rtx_alloc): Remove macro.
10803
10804 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10805
10806 * tree.c (build_tree_list_vec_stat): Remove _stat from name.
10807 (build_tree_list_stat): Likewise.
10808 * tree.h (build_tree_list): Remove macro.
10809 (build_tree_list_vec): Likewise.
10810
10811 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10812
10813 * tree.c (make_vector_stat): Remove _stat from name.
10814 (build_vector_stat): Likewise.
10815 * tree.h (make_vector_stat): Remove macro.
10816 (build_vector_stat): Likewise.
10817
10818 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10819
10820 * tree.h (build_var_debug_value): Remove prototype.
10821
10822 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10823
10824 * tree.c (tree_cons_stat): Remove _stat from name.
10825 * tree.h (tree_cons): Remove macro.
10826
10827 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10828
10829 * tree.c (build_vl_exp_stat): Remove _stat from name.
10830 * tree.h (build_vl_exp): Remove macro.
10831
10832 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10833
10834 * tree.c (build_decl_stat): Remove _stat from name.
10835 * tree.h (build_decl): Remove macro.
10836
10837 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10838
10839 * gimple.c (gimple_build_with_ops_stat): Adjust.
10840 (gimple_alloc_stat): Remove _stat from name.
10841 * gimple.h (gimple_alloc): Remove macro.
10842
10843 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10844
10845 * tree.c (make_tree_vec_stat): Remove _stat from name.
10846 (grow_tree_vec_stat): Likewise.
10847 * tree.h (make_tree_vec_stat): Adjust prototype.
10848 (grow_tree_vec_stat): Likewise.
10849 (make_tree_vec): Remove macro.
10850 (grow_tree_vec): Likewise.
10851
10852 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10853
10854 * fold-const.c (fold_build1_stat_loc): Adjust.
10855 (fold_build2_stat_loc): Likewise.
10856 (fold_build3_stat_loc): Likewise.
10857 * tree.c (build0_stat): Remove _stat from name.
10858 (build1_stat): Likewise.
10859 (build2_stat): Likewise.
10860 (build3_stat): Likewise.
10861 (build4_stat): Likewise.
10862 (build5_stat): Likewise.
10863 * tree.h (build1_loc): Remove macro, and rename _stat function
10864 to this.
10865 (build2_loc): Likewise.
10866 (build3_loc): Likewise.
10867 (build4_loc): Likewise.
10868 (build5_loc): Likewise.
10869
10870 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10871
10872 * tree.c (make_int_cst_stat): Remove _stat from name.
10873 * tree.h (make_int_cst_stat): Adjust prototype.
10874 (make_int_cst): Remove macro.
10875
10876 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10877
10878 * tree.c (make_tre_binfo_stat): Remove _stat from name.
10879 * tree.h (make_tree_binfo_stat): Adjust prototype.
10880 (make_tree_binfo): Remove.
10881
10882 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10883
10884 * tree.c (copy_node_stat): Rename to copy_node.
10885 (build_distinct_type_copy): Adjust.
10886 * tree.h (copy_node_stat): Adjust prototype.
10887 (copy_node): Remove macro.
10888
10889 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10890
10891 * tree.c (make_node_stat): rename to make_node.
10892 (build_tree_list_stat): Adjust.
10893 (build0_stat): Likewise.
10894 (build2_stat): Likewise.
10895 (build3_stat): Likewise.
10896 (build4_stat): Likewise.
10897 (build5_stat): Likewise.
10898 (build_decl_stat): Likewise.
10899 * tree.h (make_node_stat): Adjust prototype.
10900 (make_node): remove macro.
10901
10902 2017-07-28 Peter Bergner <bergner@vnet.ibm.com>
10903
10904 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
10905 (PPC_FEATURE2_SCV): Likewise.
10906 * config/rs6000/rs6000.c (cpu_supports_info): Use them.
10907
10908 2017-07-28 Tamar Christina <tamar.christina@arm.com>
10909
10910 * config/aarch64/aarch64.c
10911 (aarch64_internal_mov_immediate): Add new special pattern.
10912 * config/aarch64/aarch64.md (*movdi_aarch64):
10913 Add reg/32bit const mov case.
10914
10915 2017-07-28 Tamar Christina <tamar.christina@arm.com>
10916 Richard Sandiford <richard.sandiford@linaro.org>
10917
10918 * config/aarch64/aarch64.md (mov<mode>): Generalize.
10919 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
10920 Add integer and movi cases.
10921 (movi-split-hf-df-sf split, fp16): New.
10922 (enabled): Added TARGET_FP_F16INST.
10923 * config/aarch64/iterators.md (GPF_HF): New.
10924 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
10925
10926 2017-07-28 Tamar Christina <tamar.christina@arm.com>
10927
10928 * config/aarch64/aarch64.c
10929 (aarch64_simd_container_mode): Add prototype.
10930 (aarch64_expand_mov_immediate): Add HI support.
10931 (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
10932 (aarch64_can_const_movi_rtx_p): New.
10933 (aarch64_preferred_reload_class):
10934 Remove restrictions of using FP registers for certain SIMD operations.
10935 (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
10936 (aarch64_valid_floating_const): Add integer move validation.
10937 (aarch64_simd_imm_scalar_p): Remove.
10938 (aarch64_output_scalar_simd_mov_immediate): Generalize function.
10939 (aarch64_legitimate_constant_p): Expand list of supported cases.
10940 * config/aarch64/aarch64-protos.h
10941 (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
10942 (aarch64_reinterpret_float_as_int): New.
10943 (aarch64_simd_imm_scalar_p): Remove.
10944 * config/aarch64/constraints.md (Uvi): New.
10945 (Dd): Split into Ds and new Dd.
10946 * config/aarch64/aarch64.md (*movsi_aarch64):
10947 Add SIMD mov case.
10948 (*movdi_aarch64): Add SIMD mov case.
10949
10950 2017-07-28 Bin Cheng <bin.cheng@arm.com>
10951
10952 * tree-predcom.c: (struct chain): Handle store-store chain in which
10953 stores for elimination only store loop invariant values.
10954 (execute_pred_commoning_chain): Ditto.
10955 (prepare_initializers_chain_store_elim): Ditto.
10956 (prepare_finalizers): Ditto.
10957 (is_inv_store_elimination_chain): New function.
10958 (initialize_root_vars_store_elim_1): New function.
10959
10960 2017-07-28 Bin Cheng <bin.cheng@arm.com>
10961
10962 * tree-predcom.c: Revise general description of the pass.
10963 (enum chain_type): New enum type for store elimination.
10964 (struct chain): New field supporting store elimination.
10965 (struct component): Ditto.
10966 (dump_chain): Dump store-stores chain.
10967 (release_chain): Release resources.
10968 (split_data_refs_to_components): Compute and create component
10969 contains only stores for elimination.
10970 (get_chain_last_ref_at): New function.
10971 (make_invariant_chain): Initialization.
10972 (make_rooted_chain): Specify chain type in parameter and record it.
10973 (add_looparound_copies): Skip for store-stores chain.
10974 (determine_roots_comp): Compute type of chain and pass it to
10975 make_rooted_chain.
10976 (initialize_root_vars_store_elim_2): New function.
10977 (finalize_eliminated_stores): New function.
10978 (remove_stmt): Handle store for elimination.
10979 (execute_pred_commoning_chain): Execute predictive commoning on
10980 store-store chains.
10981 (determine_unroll_factor): Skip unroll for store-stores chain.
10982 (prepare_initializers_chain_store_elim): New function.
10983 (prepare_initializers_chain): Hanlde store-store chain.
10984 (prepare_finalizers_chain, prepare_finalizers): New function.
10985 (tree_predictive_commoning_loop): Return integer value indicating
10986 if loop is unrolled or lcssa form is corrupted.
10987 (tree_predictive_commoning): Rewrite for lcssa form if necessary.
10988
10989 2017-07-28 Bin Cheng <bin.cheng@arm.com>
10990
10991 * tree-predcom.c (initialize_root): Delete.
10992 (execute_pred_commoning_chain): Initialize root vars and replace
10993 reference of non-combined chain directly, rather than call above
10994 function.
10995
10996 2017-07-28 Bin Cheng <bin.cheng@arm.com>
10997
10998 * tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute
10999 memory reference to DR at (NITERS + ITERS)-th iteration of loop.
11000
11001 2017-07-28 Bin Cheng <bin.cheng@arm.com>
11002
11003 * tree-predcom.c (struct chain): New field init_seq.
11004 (release_chain): Release init_seq.
11005 (prepare_initializers_chain): Record intialization stmts in above
11006 field.
11007 (insert_init_seqs): New function.
11008 (tree_predictive_commoning_loop): Call insert_init_seqs.
11009
11010 2017-07-28 Bin Cheng <bin.cheng@arm.com>
11011
11012 * tree-predcom.c (determine_roots_comp): Skip trivial components.
11013
11014 2017-07-28 Richard Biener <rguenther@suse.de>
11015
11016 * match.pd: Remove superfluous :c.
11017 * genmatch.c (simplify::id): Add member.
11018 (lower_commutative, lower_opt_convert, lower_cond, lower_for):
11019 Copy id.
11020 (current_id): New global.
11021 (dt_node::parent): Move from ...
11022 (dt_operand::parent): ... here. Add for_id member.
11023 (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
11024 (decision_tree::find_node): Relax order requirement when
11025 merging DT_TRUE nodes to ones inbetween the current simplify
11026 and the one we try to merge with. Add diagnostic whenever
11027 we need to enforce pattern order by not merging.
11028 (decision_tree::insert): Set current_id.
11029 (decision_tree::print_node): Dump parent node and for_id.
11030 (parser::last_id): Add member.
11031 (parser::push_simplify): Assign unique id.
11032 (parser::parser): Initialize last_id.
11033
11034 2017-07-28 Martin Liska <mliska@suse.cz>
11035
11036 PR sanitizer/81340
11037 * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
11038 gimple_build_debug_bind.
11039
11040 2017-07-28 Richard Biener <rguenther@suse.de>
11041
11042 PR tree-optimization/81502
11043 * match.pd: Add pattern combining BIT_INSERT_EXPR with
11044 BIT_FIELD_REF.
11045 * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
11046 size/pos operands.
11047 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
11048 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
11049 for BIT_FIELD_REF args.
11050 * fold-const.c (make_bit_field_ref): Likewise.
11051 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
11052
11053 2017-07-28 Jakub Jelinek <jakub@redhat.com>
11054
11055 PR sanitizer/80998
11056 * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
11057 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
11058 * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
11059 Or it into SANITIZER_UNDEFINED.
11060 * ubsan.c: Include gimple-fold.h and varasm.h.
11061 (ubsan_expand_ptr_ifn): New function.
11062 (instrument_pointer_overflow): New function.
11063 (maybe_instrument_pointer_overflow): New function.
11064 (instrument_object_size): Formatting fix.
11065 (pass_ubsan::execute): Call instrument_pointer_overflow
11066 and maybe_instrument_pointer_overflow.
11067 * internal-fn.c (expand_UBSAN_PTR): New function.
11068 * ubsan.h (ubsan_expand_ptr_ifn): Declare.
11069 * sanitizer.def (__ubsan_handle_pointer_overflow,
11070 __ubsan_handle_pointer_overflow_abort): New builtins.
11071 * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
11072 * internal-fn.def (UBSAN_PTR): New internal function.
11073 * opts.c (sanitizer_opts): Add pointer-overflow.
11074 * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
11075 * fold-const.c (build_range_check): Compute pointer range check in
11076 integral type if pointer arithmetics would be needed. Formatting
11077 fixes.
11078
11079 2017-07-28 Martin Liska <mliska@suse.cz>
11080
11081 PR sanitizer/81460
11082 * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
11083 parameters that are of a variable-length.
11084
11085 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11086
11087 * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add
11088 rs6000/biarch64.h.
11089 * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
11090 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
11091 (CRT_CALL_STATIC_FUNCTION): Likewise.
11092 (ASM_DEFAULT_SPEC): New define.
11093 (ASM_SPEC32): Likewise.
11094 (ASM_SPEC64): Likewise.
11095 (ASM_SPEC_COMMON): Likewise.
11096 (ASM_SPEC): Likewise.
11097 (INVALID_64BIT): Likewise.
11098 (LINK_OS_DEFAULT_SPEC): Likewise.
11099 (LINK_OS_SPEC32): Likewise.
11100 (LINK_OS_SPEC64): Likewise.
11101 (POWERPC_LINUX): Likewise.
11102 (PTRDIFF_TYPE): Likewise.
11103 (RESTORE_FP_PREFIX): Likewise.
11104 (RESTORE_FP_SUFFIX): Likewise.
11105 (SAVE_FP_PREFIX): Likewise.
11106 (SAVE_FP_SUFFIX): Likewise.
11107 (SIZE_TYPE): Likewise.
11108 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
11109 (TARGET_64BIT): Likewise.
11110 (TARGET_64BIT): Likewise.
11111 (TARGET_AIX): Likewise.
11112 (WCHAR_TYPE_SIZE): Likewise.
11113 (WCHAR_TYPE): Undefine.
11114 (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
11115 (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
11116 (CPP_OS_RTEMS_SPEC): Delete.
11117 (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add
11118 asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
11119 link_os_spec64.
11120 * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
11121
11122 2017-07-28 Jakub Jelinek <jakub@redhat.com>
11123
11124 PR tree-optimization/81578
11125 * tree-parloops.c (build_new_reduction): Bail out if
11126 reduction_code isn't one of the standard OpenMP reductions.
11127 Move the details printing after that decision.
11128
11129 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
11130
11131 * config/rs6000/predicates.md (volatile_mem_operand): Remove code
11132 related to reload_in_progress.
11133 (splat_input_operand): Likewise.
11134 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
11135 Delete prototype.
11136 * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
11137 field.
11138 (TARGET_EXPAND_TO_RTL_HOOK): Delete.
11139 (TARGET_INSTANTIATE_DECLS): Likewise.
11140 (legitimate_indexed_address_p): Delete reload_in_progress code.
11141 (rs6000_debug_legitimate_address_p): Likewise.
11142 (rs6000_eliminate_indexed_memrefs): Likewise.
11143 (rs6000_emit_le_vsx_store): Likewise.
11144 (rs6000_emit_move_si_sf_subreg): Likewise.
11145 (rs6000_emit_move): Likewise.
11146 (register_to_reg_type): Likewise.
11147 (rs6000_pre_atomic_barrier): Likewise.
11148 (rs6000_machopic_legitimize_pic_address): Likewise.
11149 (rs6000_allocate_stack_temp): Likewise.
11150 (rs6000_address_for_fpconvert): Likewise.
11151 (rs6000_address_for_altivec): Likewise.
11152 (rs6000_secondary_memory_needed_rtx): Delete function.
11153 (rs6000_check_sdmode): Likewise.
11154 (rs6000_alloc_sdmode_stack_slot): Likewise.
11155 (rs6000_instantiate_decls): Likewise.
11156 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
11157 * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
11158 Delete reload_in_progress.
11159 (*vec_reload_and_plus_<mptrsize>): Likewise.
11160 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
11161 (vsx_div_v2di): Likewise.
11162 (vsx_udiv_v2di): Likewise.
11163
11164 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
11165
11166 * config/rs6000/rs6000.opt (mlra): Replace with stub.
11167 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
11168 * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
11169 (rs6000_debug_reg_global): Delete print of LRA status.
11170 (rs6000_option_override_internal): Delete dead LRA related code.
11171 (rs6000_lra_p): Delete function.
11172 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
11173
11174 2017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
11175
11176 * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
11177 * config/riscv/rtems.h: New file.
11178
11179 2017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11180 Sudakshina Das <sudi.das@arm.com>
11181
11182 * config/aarch64/aarch64.md
11183 (define_split for and<mode>3nr_compare): Move
11184 non aarch64_logical_operand to a register.
11185 (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
11186 register immediate operand to a register.
11187 * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
11188
11189 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
11190
11191 PR middle-end/81564
11192 * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
11193
11194 2017-07-27 Richard Biener <rguenther@suse.de>
11195
11196 PR tree-optimization/81573
11197 PR tree-optimization/81494
11198 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
11199 multi defuse cycle case.
11200
11201 2017-07-27 Richard Biener <rguenther@suse.de>
11202
11203 PR tree-optimization/81571
11204 * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
11205 PHIs.
11206
11207 2017-07-27 Eric Botcazou <ebotcazou@adacore.com>
11208
11209 * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
11210 earlier and only if MASK_FPU is set. Adjust formatting.
11211
11212 2017-07-27 Martin Liska <mliska@suse.cz>
11213
11214 * opt-functions.awk: Add validation of value of Init.
11215 * optc-gen.awk: Pass new argument.
11216
11217 2017-07-27 Martin Liska <mliska@suse.cz>
11218
11219 * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
11220 Fix wrong condition.
11221
11222 2017-07-27 Martin Liska <mliska@suse.cz>
11223
11224 * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
11225 BBs and edges seen by autoFDO.
11226
11227 2017-07-27 Richard Biener <rguenther@suse.de>
11228
11229 PR tree-optimization/81502
11230 * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
11231 with incompatible but same sized type.
11232 (execute_update_addresses_taken): Likewise.
11233
11234 2017-07-27 James Greenhalgh <james.greenhalgh@arm.com>
11235
11236 * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
11237 flag_tree_loop_vectorize rather than flag_tree_vectorize.
11238
11239 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11240
11241 PR target/81534
11242 * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
11243 ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
11244 Change s_operand to memory_operand.
11245
11246 2017-07-27 Richard Sandiford <richard.sandiford@linaro.org>
11247
11248 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
11249 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
11250 (rs6000_emit_le_vsx_permute): ...this. Take the destination as input.
11251 Emit instructions rather than returning an expression. Handle TFmode
11252 and KFmode by casting to TImode.
11253 (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
11254 (rs6000_emit_le_vsx_store): Likewise.
11255 * config/rs6000/vsx.md (VSX_TI): New iterator.
11256 (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
11257 (*vsx_le_undo_permute_<mode>): Likewise.
11258 (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
11259 emit the split sequence.
11260 (*vsx_le_perm_store_<mode>): Likewise.
11261
11262 2017-07-27 Jakub Jelinek <jakub@redhat.com>
11263
11264 PR tree-optimization/81555
11265 PR tree-optimization/81556
11266 * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
11267 if true, force CHANGED for the recursive invocation.
11268 (reassociate_bb): Remember original length of ops array, pass
11269 len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
11270
11271 * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
11272 attributes for noipa attribute. For naked attribute use
11273 lookup_attribute first before lookup_attribute_spec.
11274 * final.c (rest_of_handle_final): Disable IPA RA for functions with
11275 noipa attribute.
11276 * ipa-visibility.c (non_local_p): Fix comment typos. Return true
11277 for functions with noipa attribute.
11278 (cgraph_externally_visible_p): Return true for functions with noipa
11279 attribute.
11280 * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
11281 for functions with noipa attribute.
11282 * doc/extend.texi: Document noipa function attribute.
11283 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
11284 also for functions with noipa attribute.
11285 (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
11286
11287 2017-07-26 Andrew Pinski <apinski@cavium.com>
11288
11289 * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
11290 vec_unalign_load_cost and vec_unalign_store_cost.
11291
11292 2017-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
11293
11294 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
11295 -mvsx-small-integer option.
11296 (ISA_3_0_MASKS_IEEE): Likewise.
11297 (OTHER_VSX_VECTOR_MASKS): Likewise.
11298 (POWERPC_MASKS): Likewise.
11299 * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
11300 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
11301 code, only testing for DImode being allowed in non-VSX floating
11302 point registers.
11303 (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
11304 to TARGET_P8_VECTOR test. Remove redundant VSX test inside of
11305 another VSX test.
11306 (rs6000_option_override_internal): Delete -mvsx-small-integer.
11307 (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
11308 TARGET_P8_VECTOR test.
11309 (rs6000_secondary_reload_simple_move): Likewise.
11310 (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
11311 since TARGET_P9_VECTOR was already tested.
11312 (rs6000_opt_masks): Remove -mvsx-small-integer.
11313 * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
11314 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
11315 used.
11316 (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
11317 test for TARGET_VEXTRACTUB was used, and that uses
11318 TARGET_P9_VECTOR.
11319 (p9 extract splitter): Likewise.
11320 (vsx_extract_<mode>_di_p9): Likewise.
11321 (vsx_extract_<mode>_store_p9): Likewise.
11322 (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
11323 for TARGET_P9_VECTOR was used. Delete code that is now dead with
11324 the elimination of TARGET_VSX_SMALL_INTEGER.
11325 (vsx_extract_<mode>_p8): Likewise.
11326 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
11327 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
11328 (vsx_set_<mode>_p9): Likewise.
11329 (vsx_set_v4sf_p9): Likewise.
11330 (vsx_set_v4sf_p9_zero): Likewise.
11331 (vsx_insert_extract_v4sf_p9): Likewise.
11332 (vsx_insert_extract_v4sf_p9_2): Likewise.
11333 * config/rs6000/rs6000.md (sign extend splitter): Change
11334 TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
11335 (floatsi<mode>2_lfiwax_mem): Likewise.
11336 (floatunssi<mode>2_lfiwzx_mem): Likewise.
11337 (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
11338 since a test for TARGET_P9_VECTOR was used.
11339 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
11340 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
11341 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
11342 (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
11343 TARGET_P8_VECTOR test.
11344 (fix_trunc<mode>si2_stfiwx): Likewise.
11345 (fix_trunc<mode>si2_internal): Likewise.
11346 (fix_trunc<SFDF:mode><QHI:mode>2): Delete
11347 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
11348 used.
11349 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
11350 (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
11351 TARGET_P8_VECTOR test.
11352 (fixuns_trunc<mode>si2_stfiwx): Likewise.
11353 (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
11354 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
11355 used.
11356 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
11357 (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
11358 since a test for TARGET_P9_VECTOR was used.
11359 (splitter for loading small constants): Likewise.
11360
11361 2017-07-26 Andrew Pinski <apinski@cavium.com>
11362
11363 * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
11364 vec_fp_stmt_cost.
11365
11366 2017-07-26 H.J. Lu <hongjiu.lu@intel.com>
11367
11368 PR target/81563
11369 * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
11370 (fp_valid_at): Likewise.
11371
11372 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
11373
11374 * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
11375 (qdf24xx_addrcost_table): Likewise.
11376 (cortexa57_tunings): Update to use generic_branch_cost.
11377 (cortexa72_tunings): Likewise.
11378 (cortexa73_tunings): Likewise.
11379 (qdf24xx_tunings): Likewise.
11380
11381 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
11382
11383 * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
11384 (thunderx2t99_branch_cost): Likewise.
11385 (cortexa35_tunings): Update to use generic_branch_cost.
11386 (cortexa53_tunings): Likewise.
11387 (cortexa57_tunings): Likewise.
11388 (cortexa72_tunings): Likewise.
11389 (cortexa73_tunings): Likewise.
11390 (thunderx2t99_tunings): Likewise.
11391
11392 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
11393
11394 * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
11395 (sparc_option_override): Honour MASK_FSMULD.
11396 * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
11397 * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
11398 * config/sparc/sparc.opt (mfsmuld): New option.
11399 * doc/invoke.texi (mfsmuld): Document option.
11400
11401 2017-07-26 Marek Polacek <polacek@redhat.com>
11402
11403 PR middle-end/70992
11404 * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
11405
11406 2017-07-26 Richard Biener <rguenther@suse.de>
11407
11408 * gimple-match-head.c (do_valueize): Return OP if valueize
11409 returns NULL_TREE.
11410 (get_def): New helper to get at the def stmt of a SSA name
11411 if valueize allows.
11412 * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
11413 do_valueize to get at the def stmt.
11414 (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
11415
11416 2017-07-26 Wilco Dijkstra <wdijkstr@arm.com>
11417
11418 PR middle-end/46932
11419 * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
11420
11421 2017-07-26 Martin Liska <mliska@suse.cz>
11422
11423 PR sanitize/81186
11424 * function.c (expand_function_start): Make expansion of
11425 nonlocal_goto_save_area after parm_birth_insn.
11426
11427 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
11428
11429 * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
11430 from all CPU target flags enable members.
11431
11432 2017-07-26 Richard Biener <rguenther@suse.de>
11433
11434 * genmatch.c (dt_simplify::gen): Make iterator vars const.
11435 (decision_tree::gen): Make 'type' const.
11436 (write_predicate): Likewise.
11437
11438 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
11439
11440 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
11441 Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
11442 (rs6000_option_override_internal): Likewise.
11443 (rs6000_expand_vector_set): Likewise.
11444 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
11445 (TARGET_UPPER_REGS_SF): Likewise.
11446 (TARGET_UPPER_REGS_DI): Likewise.
11447 (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
11448 (TARGET_DIRECT_MOVE_64BIT): Likewise.
11449 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
11450 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
11451 (Splitters for DI constants in Altivec registers): Likewise.
11452 * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
11453 (vsx_set_v4sf_p9): Likewise.
11454 (vsx_set_v4sf_p9_zero): Likewise.
11455 (vsx_insert_extract_v4sf_p9): Likewise.
11456 (vsx_insert_extract_v4sf_p9_2): Likewise.
11457
11458 2017-07-25 Carl Love <cel@us.ibm.com>
11459
11460 * doc/extend.texi: Update the built-in documentation file for the
11461 existing built-in functions
11462 vector signed char vec_cnttz (vector signed char);
11463 vector unsigned char vec_cnttz (vector unsigned char);
11464 vector signed short vec_cnttz (vector signed short);
11465 vector unsigned short vec_cnttz (vector unsigned short);
11466 vector signed int vec_cnttz (vector signed int);
11467 vector unsigned int vec_cnttz (vector unsigned int);
11468 vector signed long long vec_cnttz (vector signed long long);
11469 vector unsigned long long vec_cnttz (vector unsigned long long);
11470
11471 2017-07-25 Andrew Pinski <apinski@cavium.com>
11472
11473 * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
11474 accesses where the use is for the first operand of a BIT_INSERT.
11475
11476 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
11477
11478 PR bootstrap/81521
11479 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
11480 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
11481
11482 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
11483
11484 * config/i386/gstabs.h: Delete.
11485 * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
11486
11487 2017-07-25 Uros Bizjak <ubizjak@gmail.com>
11488
11489 * config/i386/i386.c (ix86_decompose_address): Do not check for
11490 register RTX when looking at index_reg or base_reg.
11491 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
11492
11493 2017-07-25 Eric Botcazou <ebotcazou@adacore.com>
11494
11495 * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
11496 to update EH info here.
11497
11498 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
11499
11500 * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
11501
11502 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
11503
11504 * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
11505
11506 2017-07-25 Torsten Duwe <duwe@suse.de>
11507
11508 * common.opt: Introduce -fpatchable-function-entry
11509 command line option, and its variables function_entry_patch_area_size
11510 and function_entry_patch_area_start.
11511 * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
11512 including a two-value parser.
11513 * target.def (print_patchable_function_entry): New target hook.
11514 * targhooks.h (default_print_patchable_function_entry): New function.
11515 * targhooks.c (default_print_patchable_function_entry): Likewise.
11516 * toplev.c (process_options): Switch off IPA-RA if
11517 patchable function entries are being generated.
11518 * varasm.c (assemble_start_function): Look at the
11519 patchable-function-entry command line switch and current
11520 function attributes and maybe generate NOP instructions by
11521 calling the print_patchable_function_entry hook.
11522 * doc/extend.texi: Document patchable_function_entry attribute.
11523 * doc/invoke.texi: Document -fpatchable_function_entry
11524 command line option.
11525 * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
11526 New target hook.
11527 * doc/tm.texi: Re-generate.
11528
11529 2017-07-25 Jakub Jelinek <jakub@redhat.com>
11530
11531 PR target/81532
11532 * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
11533 TARGET_AVX512DQ rather than TARGET_AVX512BW.
11534
11535 2017-07-25 Tamar Christina <tamar.christina@arm.com>
11536
11537 * config/arm/parsecpu.awk (all_cores): Remove duplicates.
11538
11539 2017-07-25 Richard Biener <rguenther@suse.de>
11540
11541 PR tree-optimization/81455
11542 * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
11543 not walk in cycles when looking for guards.
11544
11545 2017-07-25 Richard Biener <rguenther@suse.de>
11546
11547 PR tree-optimization/81529
11548 * tree-vect-stmts.c (process_use): Disregard live induction PHIs
11549 when optimizing backedge uses.
11550
11551 2017-07-25 David Edelsohn <dje.gcc@gmail.com>
11552
11553 * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
11554 character for AIX.
11555 * dwarf2out.c (output_macinfo): Copy debug_line_section_label
11556 to dl_section_ref. On AIX, append an expression to subtract
11557 the size of the section length to dl_section_ref.
11558
11559 2017-07-25 Segher Boessenkool <segher@kernel.crashing.org>
11560
11561 * configure.ac: If any of the config.* scripts fail, exit 1.
11562 * configure: Regenerate.
11563
11564 2017-07-25 Richard Biener <rguenther@suse.de>
11565
11566 PR middle-end/81546
11567 * tree-ssa-operands.c (verify_imm_links): Remove cap on number
11568 of immediate uses, be more verbose on errors.
11569
11570 2017-07-25 Richard Biener <rguenther@suse.de>
11571
11572 PR tree-optimization/81510
11573 * tree-vect-loop.c (vect_is_simple_reduction): When the
11574 reduction stmt is not inside the loop bail out.
11575
11576 2017-07-25 Richard Biener <rguenther@suse.de>
11577
11578 PR tree-optimization/81303
11579 * tree-vect-loop-manip.c (vect_loop_versioning): Build
11580 profitability check against LOOP_VINFO_NITERSM1.
11581
11582 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
11583
11584 * domwalk.c (cmp_bb_postorder): Simplify.
11585 (sort_bbs_postorder): New function. Use it...
11586 (dom_walker::walk): ...here to optimize common cases.
11587
11588 2017-07-25 Martin Liska <mliska@suse.cz>
11589
11590 PR ipa/81520
11591 * ipa-visibility.c (function_and_variable_visibility): Make the
11592 redirection just on target that supports aliasing.
11593 Fix GNU coding style.
11594
11595 2017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
11596
11597 PR libgcc/61152
11598 * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
11599 Format changes.
11600 * config/arm/rtems.h: Likewise.
11601 * config/bfin/rtems.h: Likewise.
11602 * config/i386/rtemself.h: Likewise.
11603 * config/lm32/rtems.h: Likewise.
11604 * config/m32c/rtems.h: Likewise.
11605 * config/m68k/rtemself.h: Likewise.
11606 * config/microblaze/rtems.h: Likewise.
11607 * config/mips/rtems.h: Likewise.
11608 * config/moxie/rtems.h: Likewise.
11609 * config/nios2/rtems.h: Likewise.
11610 * config/powerpcspe/rtems.h: Likewise.
11611 * config/rs6000/rtems.h: Likewise.
11612 * config/rtems.h: Likewise.
11613 * config/sh/rtems.h: Likewise.
11614 * config/sh/rtemself.h: Likewise.
11615 * config/sparc/rtemself.h: Likewise.
11616
11617 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
11618
11619 PR 81487
11620 * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
11621 * gimple-pretty-print.c (dump_profile, dump_probability): Same.
11622 * tree-ssa-structalias.c (alias_get_name): Same.
11623
11624 2017-07-25 Bin Cheng <bin.cheng@arm.com>
11625
11626 PR target/81414
11627 * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
11628 instructions if no du chain is found.
11629
11630 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
11631
11632 * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
11633
11634 2017-07-25 Richard Biener <rguenther@suse.de>
11635
11636 PR middle-end/81505
11637 * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
11638 sticky.
11639
11640 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
11641
11642 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
11643 upper-regs options.
11644 (ISA_2_7_MASKS_SERVER): Likewise.
11645 (ISA_3_0_MASKS_IEEE): Likewise.
11646 (OTHER_P8_VECTOR_MASKS): Likewise.
11647 (OTHER_VSX_VECTOR_MASKS): Likewise.
11648 (POWERPC_MASKS): Likewise.
11649 (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
11650 duplicate list of options.
11651 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
11652 explicit -mupper-regs options.
11653 * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
11654 -mupper-regs* options. Delete -mvsx-scalar-memory, which was an
11655 alias for -mupper-regs-df.
11656 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
11657 (rs6000_init_hard_regno_mode_ok): Likewise.
11658 (rs6000_option_override_internal): Likewise.
11659 (rs6000_opt_masks): Likewise.
11660 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
11661 options in terms of whether -mvsx or -mpower8-vector was used.
11662 (TARGET_UPPER_REGS_DI): Likewise.
11663 (TARGET_UPPER_REGS_SF): Likewise.
11664 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
11665 -mupper-regs-* options.
11666
11667 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
11668
11669 * passes.c (emergency_dump_function): Print some empty lines and a
11670 header before the RTL dump.
11671
11672 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
11673
11674 * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
11675
11676 2017-07-24 Wilco Dijkstra <wdijkstr@arm.com>
11677
11678 PR target/79041
11679 * config/aarch64/aarch64.c (aarch64_classify_symbol):
11680 Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
11681
11682 2017-07-24 Carl Love <cel@us.ibm.com>
11683
11684 * config/rs6000/rs6000-c.c: Add support for built-in functions
11685 vector float vec_extract_fp32_from_shorth (vector unsigned short);
11686 vector float vec_extract_fp32_from_shortl (vector unsigned short);
11687 * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
11688 vec_extract_fp_from_shortl): Add defines for the two builtins.
11689 * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
11690 VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
11691 new builtins.
11692 * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
11693 (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
11694 * doc/extend.texi: Update the built-in documentation file for the
11695 new built-in function.
11696
11697 2017-07-24 Jakub Jelinek <jakub@redhat.com>
11698
11699 PR bootstrap/81521
11700 * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
11701 documentation.
11702 * doc/generic.texi: Likewise.
11703 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
11704 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
11705
11706 2017-07-24 Jackson Woodruff <jackson.woodruff@arm.com>
11707
11708 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
11709 (aarch64_mls_elt_merge<mode>): Likewise.
11710
11711 2017-07-23 Krister Walfridsson <krister.walfridsson@gmail.com>
11712
11713 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
11714 having __cxa_atexit.
11715
11716 2017-07-23 Michael Collison <michael.collison@arm.com>
11717
11718 * config/arm/arm.c (arm_option_override): Deprecate
11719 use of -mstructure-size-boundary.
11720 * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
11721 * doc/invoke.texi: Deprecate -mstructure-size-boundary.
11722
11723 2017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11724
11725 PR target/80695
11726 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
11727 Reduce cost estimate for direct moves.
11728
11729 2017-07-23 Uros Bizjak <ubizjak@gmail.com>
11730
11731 PR target/80569
11732 * config/i386/i386.c (ix86_option_override_internal): Disable
11733 BMI, BMI2 and TBM instructions for -m16.
11734
11735 2017-07-21 Carl Love <cel@us.ibm.com>
11736
11737 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11738 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
11739 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
11740 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
11741 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
11742 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
11743 VMULOSW): New enum "unspec" values.
11744 (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
11745 altivec_vmulosw): New patterns.
11746 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
11747 VMULOSW): Add definitions.
11748
11749 2017-07-21 Jim Wilson <jim.wilson@linaro.org>
11750
11751 * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
11752 (qdf24xx): Likewise.
11753 * config/aarch64/aarch64-options-extensions.def (rdma); New.
11754 * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
11755 (AARCH64_FL_V8_1): Renumber.
11756 (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
11757 (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
11758 * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
11759 * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs. Add
11760 rdma to feature modifiers list.
11761
11762 2017-07-21 Yury Gribov <tetra2005@gmail.com>
11763
11764 PR middle-end/56727
11765 * ipa-visibility (function_and_variable_visibility): Convert
11766 recursive PLT call to direct call if appropriate.
11767
11768 2017-07-21 Andrew Pinski <apinski@cavium.com>
11769
11770 * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
11771 operand 1 to see if the types precision matches.
11772 * fold-const.c (operand_equal_p): Likewise.
11773
11774 2017-07-21 Richard Biener <rguenther@suse.de>
11775
11776 PR tree-optimization/81303
11777 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
11778 in datarefs vector. Allow NULL dr0 for no peeling cost estimate.
11779 (vect_peeling_hash_get_lowest_cost): Adjust.
11780 (vect_enhance_data_refs_alignment): Likewise. Use
11781 vect_get_peeling_costs_all_drs to compute the penalty for no
11782 peeling to match up costs.
11783
11784 2017-07-21 Richard Biener <rguenther@suse.de>
11785
11786 PR tree-optimization/81500
11787 * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
11788 we didn't identify a reduction path.
11789
11790 2017-07-21 Tom de Vries <tom@codesourcery.com>
11791 Cesar Philippidis <cesar@codesourcery.com>
11792
11793 PR gcov-profile/81442
11794 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
11795 probabilities.
11796
11797 2017-07-21 Tom de Vries <tom@codesourcery.com>
11798
11799 PR lto/81430
11800 * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
11801 function.
11802 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
11803 nvptx_override_options_after_change.
11804
11805 2017-07-21 Ulrich Drepper <drepper@redhat.com>
11806
11807 * dwarf2out.c (output_file_names): Avoid double testing for
11808 dwarf_version >= 5.
11809
11810 2017-07-21 Georg-Johann Lay <avr@gjlay.de>
11811
11812 * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
11813
11814 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
11815
11816 * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
11817 hot/cold regions.
11818 (try_crossjump_to_edge): Do not punt on partitioned functions.
11819
11820 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
11821
11822 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
11823 Put all BBs reachable only via paths crossing cold region to cold
11824 region.
11825 * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
11826
11827 2016-07-21 Richard Biener <rguenther@suse.de>
11828
11829 PR tree-optimization/81303
11830 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
11831 into account prologue and epilogue iterations when raising
11832 min_profitable_iters to sth at least covering one vector iteration.
11833
11834 2017-07-21 Tamar Christina <tamar.christina@arm.com>
11835
11836 * config/arm/arm.c (arm_test_cpu_arch_dat):
11837 Check for overlap.
11838
11839 2017-07-20 Nathan Sidwell <nathan@acm.org>
11840
11841 Remove TYPE_METHODS.
11842 * tree.h (TYPE_METHODS): Delete.
11843 * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
11844 * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
11845 (dbxout_type_methods): Scan TYPE_FIELDS.
11846 (dbxout_type): Don't check TYPE_METHODS here.
11847 * function.c (use_register_for_decl): Always ignore register for
11848 class types when not optimizing.
11849 * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
11850 * tree.c (free_lang_data_in_type): Stitch out member functions and
11851 templates from TYPE_FIELDS.
11852 (build_distinct_type_copy, verify_type_variant,
11853 verify_type): Member fns are on TYPE_FIELDS.
11854 * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
11855 * tree-pretty-print.c (dump_generic_node): Likewise.
11856
11857 2017-07-20 Jakub Jelinek <jakub@redhat.com>
11858
11859 PR target/80846
11860 * config/i386/i386.c (ix86_expand_vector_init_general): Handle
11861 V2TImode and V4TImode.
11862 (ix86_expand_vector_extract): Likewise.
11863 * config/i386/sse.md (VMOVE): Enable V4TImode even for just
11864 TARGET_AVX512F, instead of only for TARGET_AVX512BW.
11865 (ssescalarmode): Handle V4TImode and V2TImode.
11866 (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
11867 (*vec_extractv2ti, *vec_extractv4ti): New insns.
11868 (VEXTRACTI128_MODE): New mode iterator.
11869 (splitter for *vec_extractv?ti first element): New.
11870 (VEC_INIT_MODE): New mode iterator.
11871 (vec_init<mode>): Consolidate 3 expanders into one using
11872 VEC_INIT_MODE mode iterator.
11873
11874 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
11875
11876 * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
11877 non_spilled_static_chain_regno_p.
11878
11879 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
11880
11881 * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
11882
11883 2017-07-20 Jan Hubicka <hubicka@ucw.cz>
11884
11885 * bb-reorder.c (connect_traces): Allow copying of blocks within
11886 single partition.
11887
11888 2017-07-20 Richard Biener <rguenther@suse.de>
11889
11890 * gimple.h (gimple_phi_result): Add gphi * overload.
11891 (gimple_phi_result_ptr): Likewise.
11892 (gimple_phi_arg): Likewise. Adjust index assert to only
11893 allow actual argument accesses rather than all slots available
11894 by capacity.
11895 (gimple_phi_arg_def): Add gphi * overload.
11896 * tree-phinodes.c (make_phi_node): Initialize only actual
11897 arguments.
11898 (resize_phi_node): Clear memory not covered by old node,
11899 do not initialize excess argument slots.
11900 (reserve_phi_args_for_new_edge): Initialize new argument slot
11901 completely.
11902
11903 2017-07-20 Bin Cheng <bin.cheng@arm.com>
11904
11905 PR tree-optimization/81388
11906 Revert r238585:
11907 2016-07-21 Bin Cheng <bin.cheng@arm.com>
11908
11909 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
11910 by removing computation of may_be_zero.
11911
11912 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
11913 Tom de Vries <tom@codesourcery.com>
11914
11915 PR middle-end/81030
11916 * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
11917 when gimple level profile disagrees with what RTL expander did.
11918
11919 2017-07-20 Richard Biener <rguenther@suse.de>
11920
11921 PR tree-optimization/61171
11922 * tree-vectorizer.h (slp_instance): Add reduc_phis member.
11923 (vect_analyze_stmt): Add slp instance parameter.
11924 (vectorizable_reduction): Likewise.
11925 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
11926 (vect_is_simple_reduction): Deal with chains not detected
11927 as SLP reduction chain, specifically not properly associated
11928 chains containing a mix of plus/minus.
11929 (get_reduction_op): Remove.
11930 (get_initial_defs_for_reduction): Simplify, pass in whether
11931 this is a reduction chain, pass in the SLP node for the PHIs.
11932 (vect_create_epilog_for_reduction): Get the SLP instance as
11933 arg and adjust.
11934 (vectorizable_reduction): Get the SLP instance as arg.
11935 During analysis remember the SLP node with the PHIs in the
11936 instance. Simplify getting at the vectorized reduction PHIs.
11937 * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
11938 through SLP instance.
11939 (vect_slp_analyze_operations): Likewise.
11940 * tree-vect-stms.c (vect_analyze_stmt): Likewise.
11941 (vect_transform_stmt): Likewise.
11942
11943 2017-07-20 Tom de Vries <tom@codesourcery.com>
11944
11945 PR tree-optimization/81489
11946 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
11947 read of phi arg location to before loop that modifies phi.
11948
11949 2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
11950
11951 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
11952 New pattern.
11953
11954 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
11955
11956 PR middle-end/81331
11957 * except.c (execute): Fix ordering issue.
11958
11959 2018-07-19 Segher Boessenkool <segher@kernel.crashing.org>
11960
11961 PR rtl-optimization/81423
11962 * combine.c (make_compound_operation_int): Don't try to optimize
11963 the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
11964
11965 2017-07-19 Segher Boessenkool <segher@kernel.crashing.org>
11966
11967 PR rtl-optimization/81423
11968 * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
11969 with a constant that is -1 in the truncated to mode.
11970
11971 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
11972
11973 * predict.c (propagate_unlikely_bbs_forward): Break out from ...
11974 (determine_unlikely_bbs): ... here.
11975 * predict.h (propagate_unlikely_bbs_forward): Declare.
11976 * cfgexpand.c (pass_expand::execute): Use it.
11977 * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
11978 unlikely edges.
11979 (find_rarely_executed_basic_blocks_and_crossing_edges): Use
11980 propagate_unlikely_bbs_forward.
11981
11982 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
11983
11984 PR middle-end/81331
11985 * except.c (maybe_add_nop_after_section_switch): New function.
11986 (execute): Use it.
11987
11988 2017-07-19 Tom de Vries <tom@codesourcery.com>
11989
11990 * gimple.h (gimple_phi_set_arg): Make assert more strict.
11991
11992 2017-07-19 Tom de Vries <tom@codesourcery.com>
11993
11994 * gimple.h (gimple_phi_arg): Make assert more strict.
11995
11996 2017-07-19 Steven Munroe <munroesj@gcc.gnu.org>
11997
11998 * config.gcc (powerpc*-*-*): Add mmintrin.h.
11999 * config/rs6000/mmintrin.h: New file.
12000 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
12001
12002 2017-07-19 Jakub Jelinek <jakub@redhat.com>
12003
12004 PR tree-optimization/81346
12005 * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
12006
12007 2017-07-19 Tom de Vries <tom@codesourcery.com>
12008
12009 * config/nvptx/nvptx.md (VECIM): Add V2DI.
12010
12011 2017-07-19 Tom de Vries <tom@codesourcery.com>
12012
12013 * config/nvptx/nvptx-modes.def: Add V2DImode.
12014 * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
12015 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
12016 (nvptx_output_mov_insn): Handle lack of mov.b128.
12017 (nvptx_print_operand): Handle 'H' and 'L' codes.
12018 (nvptx_vector_mode_supported): Allow V2DImode.
12019 (nvptx_preferred_simd_mode): New function.
12020 (nvptx_data_alignment): New function.
12021 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
12022 nvptx_preferred_simd_mode.
12023 * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
12024 64 to 128 bits.
12025 (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment.
12026
12027 2017-07-19 Tom de Vries <tom@codesourcery.com>
12028
12029 * config/nvptx/nvptx-modes.def: New file. Add V2SImode.
12030 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
12031 (nvptx_vector_mode_supported): New function. Allow V2SImode.
12032 (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
12033 * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
12034 (mov<VECIM>_insn): New define_insn.
12035 (define_expand "mov<VECIM>): New define_expand.
12036
12037 2017-07-19 Tom de Vries <tom@codesourcery.com>
12038
12039 * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
12040
12041 2017-07-19 Jakub Jelinek <jakub@redhat.com>
12042
12043 PR tree-optimization/81346
12044 * fold-const.h (fold_div_compare, range_check_type): Declare.
12045 * fold-const.c (range_check_type): New function.
12046 (build_range_check): Use range_check_type.
12047 (fold_div_compare): No longer static, rewritten into
12048 a match.pd helper function.
12049 (fold_comparison): Don't call fold_div_compare here.
12050 * match.pd (X / C1 op C2): New optimization using fold_div_compare
12051 as helper function.
12052
12053 2017-07-19 Nathan Sidwell <nathan@acm.org>
12054
12055 * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
12056 (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
12057 * tree.c (find_decls_types_r, verify_type): Use
12058 TYPE_{MIN,MAX}_VALUE_RAW.
12059 * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
12060 (hash_tree): Likewise.
12061 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
12062 Likewise.
12063 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
12064 Likewise.
12065
12066 2017-07-18 Tom de Vries <tom@codesourcery.com>
12067
12068 PR middle-end/81464
12069 * omp-expand.c (expand_omp_for_static_chunk): Handle
12070 equal-argument loop exit phi.
12071
12072 2017-07-18 Uros Bizjak <ubizjak@gmail.com>
12073
12074 PR target/81471
12075 * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
12076 (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
12077 operand 2 predicate.
12078 (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
12079 operand 2 predicate.
12080 (ror,rol -> rorx splitters): Use const_int_operand as
12081 operand 2 predicate.
12082
12083 2017-06-18 Richard Biener <rguenther@suse.de>
12084
12085 PR tree-optimization/81410
12086 * tree-vect-stmts.c (vectorizable_load): Properly adjust for
12087 the gap in the ! slp_perm SLP case after each group.
12088
12089 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
12090
12091 PR middle-end/81463
12092 * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
12093 again.
12094
12095 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
12096
12097 PR middle-end/81462
12098 * predict.c (set_even_probabilities): Cleanup; do not affect
12099 probabilities that are already known.
12100 (combine_predictions_for_bb): Call even when count is set.
12101
12102 2017-07-18 Nathan Sidwell <nathan@acm.org>
12103
12104 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
12105 TYPE_MAX_VALUE.
12106
12107 2017-07-18 Bin Cheng <bin.cheng@arm.com>
12108
12109 PR target/81408
12110 * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
12111 optimization for loop niter analysis.
12112
12113 2017-07-18 Georg-Johann Lay <avr@gjlay.de>
12114
12115 PR target/81473
12116 * config/avr/avr.c (avr_optimize_casesi): Don't use
12117 INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
12118
12119 2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
12120
12121 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
12122 body_cost_vec from _vect_peel_extended_info.
12123 (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
12124 (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
12125 npeel.
12126
12127 2017-07-18 Bin Cheng <bin.cheng@arm.com>
12128
12129 * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
12130
12131 2017-07-18 Richard Biener <rguenther@suse.de>
12132
12133 PR tree-optimization/80620
12134 PR tree-optimization/81403
12135 * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
12136 info when re-using a VN table entry.
12137
12138 2017-07-18 Richard Biener <rguenther@suse.de>
12139
12140 PR tree-optimization/81418
12141 * tree-vect-loop.c (vectorizable_reduction): Properly compute
12142 vectype_in. Verify that with lane-reducing reduction operations
12143 we have a single def-use cycle.
12144
12145 2017-07-17 Carl Love <cel@us.ibm.com>
12146
12147 Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com>
12148
12149 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12150 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
12151 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
12152 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
12153 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
12154 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
12155 VMULOSW): New enum "unspec" values.
12156 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
12157 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
12158 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
12159 altivec_vmulosw): New patterns.
12160 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
12161 VMULOSW): Add definitions.
12162 2017-07-17 Uros Bizjak <ubizjak@gmail.com>
12163
12164 * config/alpha/alpha.c: Include predict.h.
12165
12166 2017-07-17 Yury Gribov <tetra2005@gmail.com>
12167
12168 * tree-vrp.c (compare_assert_loc): Fix comparison function
12169 to return predictable results.
12170
12171 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
12172
12173 * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
12174 option.
12175 (subdi3): Likewise.
12176 * config/arc/arc.opt (mexpand-adddi): Deprecate it.
12177 * doc/invoke.texi (mexpand-adddi): Update text.
12178
12179 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
12180
12181 * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
12182 that also clobbers the CC register. The old expand code is moved
12183 to ...
12184 (*arc_clzsi2): ... here.
12185 (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
12186 the CC register. The old expand code is moved to ...
12187 (arc_ctzsi2): ... here.
12188
12189 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
12190
12191 * config/arc/arc.opt (mindexed-loads): Use initial value
12192 TARGET_INDEXED_LOADS_DEFAULT.
12193 (mauto-modify-reg): Use initial value
12194 TARGET_AUTO_MODIFY_REG_DEFAULT.
12195 * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
12196 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
12197 * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
12198 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
12199
12200 2017-07-17 Martin Liska <mliska@suse.cz>
12201
12202 PR sanitizer/81302
12203 * opts.c (finish_options): Do not allow -fgnu-tm
12204 w/ -fsanitize={kernel-,}address. Say sorry.
12205
12206 2017-07-17 Bin Cheng <bin.cheng@arm.com>
12207
12208 PR target/81369
12209 * tree-loop-distribution.c (classify_partition): Only assert on
12210 numer of iterations.
12211 (merge_dep_scc_partitions): Delete prameter. Update function call.
12212 (distribute_loop): Remove code handling loop with unknown niters.
12213 (pass_loop_distribution::execute): Skip loop with unknown niters.
12214
12215 2017-07-17 Bin Cheng <bin.cheng@arm.com>
12216
12217 PR target/81369
12218 * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
12219 function sort_partitions_by_post_order.
12220
12221 2017-07-17 Bin Cheng <bin.cheng@arm.com>
12222
12223 PR tree-optimization/81374
12224 * tree-loop-distribution.c (pass_loop_distribution::execute): Record
12225 the max index of basic blocks, rather than number of basic blocks.
12226
12227 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
12228
12229 * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
12230 proto.
12231 (arc_legitimate_pic_operand_p): Likewise.
12232 * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
12233 function.
12234 (arc_needs_pcl_p): Likewise.
12235 (arc_legitimate_pc_offset_p): Likewise.
12236 (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
12237 function is also used in constrains.md.
12238 (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
12239 validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
12240 PLUS. Only return true/false in known cases, otherwise assert.
12241 (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
12242 is already called in arc_legitimate_constant_p.
12243 * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
12244 pic addresses.
12245 (LEGITIMATE_PIC_OPERAND_P): Use
12246 arc_raw_symbolic_reference_mentioned_p function.
12247 * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
12248 function.
12249 (Cal): Likewise.
12250 (C32): Likewise.
12251
12252 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
12253 Andrew Burgess <andrew.burgess@embecosm.com>
12254
12255 * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
12256 (arc_return_address_register): New function.
12257 * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
12258 (arc_handle_fndecl_attribute): Add naked attribute.
12259 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
12260 (TARGET_WARN_FUNC_RETURN): Likewise.
12261 (arc_allocate_stack_slots_for_args): New function.
12262 (arc_warn_func_return): Likewise.
12263 (machine_function): Change type fn_type.
12264 (arc_compute_function_type): Consider new naked function type,
12265 change function return type.
12266 (arc_must_save_register): Adapt to handle new
12267 arc_compute_function_type's return type.
12268 (arc_expand_prologue): Likewise.
12269 (arc_expand_epilogue): Likewise.
12270 (arc_return_address_regs): Delete.
12271 (arc_return_address_register): New function.
12272 (arc_epilogue_uses): Use above function.
12273 * config/arc/arc.h (arc_return_address_regs): Delete prototype.
12274 (arc_function_type): Change encoding, add naked type.
12275 (ARC_INTERRUPT_P): Change to handle the new encoding.
12276 (ARC_FAST_INTERRUPT_P): Likewise.
12277 (ARC_NORMAL_P): Define.
12278 (ARC_NAKED_P): Likewise.
12279 (arc_compute_function_type): Delete prototype.
12280 * config/arc/arc.md (in_ret_delay_slot): Use
12281 arc_return_address_register function.
12282 (simple_return): Likewise.
12283 (p_return_i): Likewise.
12284
12285 2017-07-17 Jakub Jelinek <jakub@redhat.com>
12286
12287 PR tree-optimization/81428
12288 * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
12289 can't be built for those types.
12290
12291 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
12292
12293 Remove stuff dead since r239246.
12294
12295 * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
12296 * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
12297 (avr_inform_devices): Remove dead stuff.
12298
12299 2017-07-17 Tamar Christina <tamar.christina@arm.com>
12300
12301 * config/arm/arm_neon.h: Fix softp typo.
12302
12303 2017-07-17 Jakub Jelinek <jakub@redhat.com>
12304
12305 PR tree-optimization/81365
12306 * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
12307 aggregate moves onto bb predecessor edges, make sure there are no
12308 loads that could alias the lhs in between the start of bb and the
12309 loads from *phi.
12310
12311 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
12312
12313 PR 80929
12314 * config/avr/avr.c (avr_mul_highpart_cost): New static function.
12315 (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
12316 [LSHIFTRT, outer_code = TRUNCATE]: Same.
12317
12318 2017-07-17 Jakub Jelinek <jakub@redhat.com>
12319
12320 PR tree-optimization/81396
12321 * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
12322 (init_symbolic_number): Initialize it to 1.
12323 (perform_symbolic_merge): Add n_ops from both operands into the new
12324 n_ops.
12325 (find_bswap_or_nop): Don't consider n->n == cmpnop computations
12326 without base_addr as useless if they need more than one operation.
12327 (bswap_replace): Handle !bswap case for NULL base_addr.
12328
12329 2017-07-17 Tom de Vries <tom@codesourcery.com>
12330
12331 PR target/81069
12332 * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
12333 as possible.
12334
12335 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
12336
12337 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
12338 conditional builtin define __FIX_LEON3FT_B2BST.
12339
12340 2017-07-17 Daniel Cederman <cederman@gaisler.com>
12341
12342 * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
12343 MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
12344 with -mfix-ut700.
12345
12346 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
12347
12348 PR rtl-optimization/81424
12349 * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
12350 to remove potential trapping from operands if -fnon-call-exceptions.
12351
12352 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
12353
12354 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
12355 profile_proability for scalling.
12356 * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
12357
12358 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
12359
12360 * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
12361
12362 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
12363
12364 * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
12365 fixpoint arithmetics.
12366
12367 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
12368
12369 * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
12370 fixpoint arithmetics.
12371
12372 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
12373
12374 * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
12375 fixpoint arithmetics.
12376
12377 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
12378
12379 * profile-count.h (profile_probability::from_reg_br_prob_note,
12380 profile_probability::to_reg_br_prob_note): New functions.
12381 * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
12382 * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
12383 * predict.c (probability_reliable_p): Update.
12384 (edge_probability_reliable_p): Update.
12385 (br_prob_note_reliable_p): Update.
12386 (invert_br_probabilities): Update.
12387 (add_reg_br_prob_note): New function.
12388 (combine_predictions_for_insn): Update.
12389 * asan.c (asan_clear_shadow): Update.
12390 * cfgbuild.c (compute_outgoing_frequencies): Update.
12391 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
12392 (update_br_prob_note): Update.
12393 (rtl_verify_edges): Update.
12394 (purge_dead_edges): Update.
12395 (fixup_reorder_chain): Update.
12396 * emit-rtl.c (try_split): Update.
12397 * ifcvt.c (cond_exec_process_insns): Update.
12398 (cond_exec_process_if_block): Update.
12399 (dead_or_predicable): Update.
12400 * internal-fn.c (expand_addsub_overflow): Update.
12401 (expand_neg_overflow): Update.
12402 (expand_mul_overflow): Update.
12403 * loop-doloop.c (doloop_modify): Update.
12404 * loop-unroll.c (compare_and_jump_seq): Update.
12405 * optabs.c (emit_cmp_and_jump_insn_1): Update.
12406 * predict.h: Update.
12407 * reorg.c (mostly_true_jump): Update.
12408 * rtl.h: Update.
12409 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
12410 * config/alpha/alpha.c (emit_unlikely_jump): Update.
12411 * config/arc/arc.c: (emit_unlikely_jump): Update.
12412 * config/arm/arm.c: (emit_unlikely_jump): Update.
12413 * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
12414 * config/frv/frv.c (frv_print_operand_jump_hint): Update.
12415 * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
12416 (ix86_print_operand): Update.
12417 (ix86_split_fp_branch): Update.
12418 (predict_jump): Update.
12419 * config/ia64/ia64.c (ia64_print_operand): Update.
12420 * config/mmix/mmix.c (mmix_print_operand): Update.
12421 * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
12422 (rs6000_expand_split_stack_prologue): Update.
12423 * config/rs6000/rs6000.c: Update.
12424 * config/s390/s390.c (s390_expand_vec_strlen): Update.
12425 (s390_expand_vec_movstr): Update.
12426 (s390_expand_cs_tdsi): Update.
12427 (s390_expand_split_stack_prologue): Update.
12428 * config/sh/sh.c (sh_print_operand): Update.
12429 (expand_cbranchsi4): Update.
12430 (expand_cbranchdi4): Update.
12431 * config/sparc/sparc.c (output_v9branch): Update.
12432 * config/spu/spu.c (get_branch_target): Update.
12433 (ea_load_store_inline): Update.
12434 * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
12435 * config/tilepro/tilepro.c: Update.
12436
12437 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
12438
12439 * gimplify.c (mostly_copy_tree_r): Revert latest change.
12440 (gimplify_save_expr): Likewise.
12441
12442 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
12443
12444 * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
12445
12446 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
12447
12448 * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
12449 TV_IPA_FNSUMMARY.
12450 * timevar.def (TV_IPA_FNSUMMARY): Define.
12451
12452 2017-07-16 Daniel Cederman <cederman@gaisler.com>
12453
12454 * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
12455 to back store errata sensitive sequence from being generated.
12456 (sqrtdf2_fix): Likewise.
12457
12458 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
12459
12460 * tree-ssa-threadupdate.c (compute_path_counts,
12461 update_joiner_offpath_counts): Use profile_probability.
12462
12463 2017-07-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
12464
12465 Revert:
12466 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
12467
12468 * config/arm/arm-c.c (arm_cpu_builtins): Define
12469 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
12470
12471 2017-07-14 Kelvin Nilsen <kelvin@gcc.gnu.org>
12472
12473 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12474 array entries to represent __ieee128 versions of the
12475 scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
12476 scalar_extract_sig, and scalar_insert_exp built-in functions.
12477 (altivec_resolve_overloaded_builtin): Add special case handling
12478 for the __builtin_scalar_insert_exp function, as represented by
12479 the P9V_BUILTIN_VEC_VSIEDP constant.
12480 * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
12481 exponent support for __ieee128 argument.
12482 (VSESQP): Add scalar extract signature support for __ieee128
12483 argument.
12484 (VSTDCNQP): Add scalar test negative support for __ieee128
12485 argument.
12486 (VSIEQP): Add scalar insert exponent support for __int128 argument
12487 with __ieee128 result.
12488 (VSIEQPF): Add scalar insert exponent support for __ieee128
12489 argument with __ieee128 result.
12490 (VSTDCQP): Add scalar test data class support for __ieee128
12491 argument.
12492 (VSTDCNQP): Add overload support for scalar test negative with
12493 __ieee128 argument.
12494 (VSTDCQP): Add overload support for scalar test data class
12495 __ieee128 argument.
12496 * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
12497 UNSPEC_VSX_SXSIGDP.
12498 (UNSPEC_VSX_SIEXPQP): New constant.
12499 (xsxexpqp): New insn for VSX scalar extract exponent quad
12500 precision.
12501 (xsxsigqp): New insn for VSX scalar extract significand quad
12502 precision.
12503 (xsiexpqpf): New insn for VSX scalar insert exponent quad
12504 precision with floating point argument.
12505 (xststdcqp): New expand for VSX scalar test data class quad
12506 precision.
12507 (xststdcnegqp): New expand for VSX scalar test negative quad
12508 precision.
12509 (xststdcqp): New insn to match expansions for VSX scalar test data
12510 class quad precision and VSX scalar test negative quad precision.
12511 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
12512 special case operand checking to enforce that second operand of
12513 VSX scalar test data class with quad precision argument is a 7-bit
12514 unsigned literal.
12515 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
12516 prototypes and descriptions of __ieee128 versions of
12517 scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
12518 scalar_test_data_class, and scalar_test_neg built-in functions.
12519
12520 2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12521
12522 PR tree-optimization/81162
12523 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
12524 replace a negate with an add.
12525
12526 2017-07-14 James Greenhalgh <james.greenhalgh@arm.com>
12527
12528 * doc/invoke.texi (arm/-mcpu): Document +crypto.
12529
12530 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
12531
12532 * config/arm/arm-c.c (arm_cpu_builtins): Define
12533 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
12534
12535 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
12536
12537 * config/arm/arm-cpus.in (cortex-r52): Add new entry.
12538 (armv8-r): Set ARM Cortex-R52 as default CPU.
12539 * config/arm/arm-tables.opt: Regenerate.
12540 * config/arm/arm-tune.md: Regenerate.
12541 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
12542 Cortex-R52.
12543 * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
12544 extension for -mcpu=cortex-r52.
12545
12546 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
12547
12548 * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
12549 (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
12550 * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
12551 (fp-armv8): Define it as FP_ARMv8 only.
12552 config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
12553 (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
12554 TARGET_FPU_ARMV8.
12555 config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
12556 TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
12557 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
12558 first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
12559 than TARGET_FPU_ARMV8.
12560 * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
12561 __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
12562 * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
12563 TARGET_FPU_ARMV8.
12564 * config/arm/neon.md (neon_vrint): Likewise.
12565 (neon_vcvt): Likewise.
12566 (neon_<fmaxmin_op><mode>): Likewise.
12567 (<fmaxmin><mode>3): Likewise.
12568 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
12569 * config/arm/predicates.md (arm_cond_move_operator): Check against
12570 TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
12571
12572 2017-07-14 Jackson Woodruff <jackson.woodruff@arm.com>
12573
12574 * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
12575 to top of function.
12576
12577 2017-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12578
12579 * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
12580 loop in comment with memset.
12581
12582 2017-07-14 Martin Liska <mliska@suse.cz>
12583
12584 * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
12585 * dwarf2out.c (is_java): Remove the function.
12586 (output_pubname): Remove usage of the function.
12587 (lower_bound_default): Remove usage of DW_LANG_Java.
12588 (gen_compile_unit_die): Likewise.
12589 * gcc.c: Remove compiler defaults for .java and .zip files.
12590 * gimple-expr.c (remove_suffix): Change as there's no longer
12591 extension than 4-letter one.
12592 * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
12593 (gimplify_save_expr): Likewise.
12594 * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
12595 as it's possible even for other languages than Java.
12596 * langhooks.h (struct lang_hooks): Remove Java from a comment.
12597 * lto-opts.c (lto_write_options): Remove reference to Java.
12598 * opts.c (strip_off_ending): Update file extension handling.
12599 * tree-cfg.c (verify_gimple_call): Remove comment with Java.
12600 * tree-eh.c (lower_resx): Likewise.
12601 * tree.c (free_lang_data_in_type): Remove dead code.
12602 (find_decls_types_r): Likewise.
12603 (build_common_builtin_nodes): Remove Java from a comment.
12604 (verify_type): Remove dead code.
12605 * varasm.c (assemble_external): Remove Java from a comment.
12606
12607 2017-07-14 Martin Liska <mliska@suse.cz>
12608
12609 * opts.c (finish_options): Add quotes.
12610 (common_handle_option): Likewise.
12611
12612 2017-07-14 Martin Liska <mliska@suse.cz>
12613
12614 * dbxout.c (get_lang_number): Do not handle GNU Pascal.
12615 * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
12616 Remove N_SO_PASCAL.
12617 * dwarf2out.c (lower_bound_default): Do not handle
12618 DW_LANG_Pascal83.
12619 (gen_compile_unit_die): Likewise.
12620 * gcc.c: Remove default extension binding for GNU Pascal.
12621 * stmt.c: Remove Pascal language from a comment.
12622 * xcoffout.c: Likewise.
12623
12624 2017-07-13 David Malcolm <dmalcolm@redhat.com>
12625
12626 PR c/81405
12627 * diagnostic-show-locus.c (fixit_cmp): New function.
12628 (layout::layout): Sort m_fixit_hints.
12629 (column_range::column_range): Assert that the values are valid.
12630 (struct char_span): New struct.
12631 (correction::overwrite): New method.
12632 (struct source_line): New struct.
12633 (line_corrections::add_hint): Add assertions. Reimplement memcpy
12634 calls in terms of classes source_line and char_span, and
12635 correction::overwrite.
12636 (selftest::test_overlapped_fixit_printing_2): New function.
12637 (selftest::diagnostic_show_locus_c_tests): Call it.
12638
12639 2017-07-13 Will Schmidt <will_schmidt@vnet.ibm.com>
12640
12641 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
12642 early if there is no lhs.
12643
12644 2017-07-13 Martin Liska <mliska@suse.cz>
12645
12646 * dwarf2out.c (gen_pointer_type_die): Remove dead code.
12647 (gen_reference_type_die): Likewise.
12648 * stor-layout.c: Remove Pascal-related comment.
12649
12650 2017-07-13 Martin Liska <mliska@suse.cz>
12651
12652 * opts.c (finish_options): Add quotes to error messages.
12653 (parse_sanitizer_options): Likewise.
12654
12655 2017-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
12656
12657 * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
12658
12659 2017-07-13 Richard Earnshaw <rearnsha@arm.com>
12660
12661 * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
12662
12663 2017-07-13 Maxim Ostapenko <m.ostapenko@samsung.com>
12664
12665 * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
12666 during expansion.
12667 * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
12668
12669 2017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12670
12671 PR target/81193
12672 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
12673 provides the hardware capability bits, define the macro
12674 __BUILTIN_CPU_SUPPORTS__.
12675 * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
12676 if GLIBC does not provide the hardware capability bits. Add a
12677 gcc_unreachable call if the built-in cpu function is neither
12678 __builtin_cpu_is nor __builtin_cpu_supports.
12679 (rs6000_get_function_versions_dispatcher): Change the warning
12680 that an old GLIBC is used which does not export the capability
12681 bits to be an error.
12682 * doc/extend.texi (target_clones attribute): Document the
12683 restriction that GLIBC 2.23 or newer is needed on the PowerPC.
12684 (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
12685 needed by __builtin_cpu_is and __builtin_cpu_supports. Document
12686 the macros defined by GCC if the newer GLIBC is available.
12687
12688 2017-07-12 Jeff Law <law@redhat.com>
12689
12690 * config/riscv/riscv.c: Remove unnecessary includes. Reorder
12691 remaining includes slightly.
12692 * config/riscv/riscv-builtins.c: Include profile-count.h.
12693
12694 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
12695
12696 PR target/79883
12697 * config/avr/avr.c (avr_set_current_function): In diagnostic
12698 messages: Quote keywords and (parts of) identifiers.
12699 [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
12700 "INTERUPT".
12701
12702 2017-07-12 Carl Love <cel@us.ibm.com>
12703
12704 * config/rs6000/rs6000-c.c: Add support for built-in functions
12705 vector bool char vec_revb (vector bool char);
12706 vector bool short vec_revb (vector short char);
12707 vector bool int vec_revb (vector bool int);
12708 vector bool long long vec_revb (vector bool long long);
12709 * doc/extend.texi: Update the built-in documentation file for the
12710 new built-in functions.
12711
12712 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12713
12714 * config/s390/s390.md: Remove movcc splitter.
12715
12716 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12717
12718 * config/s390/s390.c (s390_rtx_costs): Return proper costs for
12719 load/store on condition.
12720
12721 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
12722
12723 PR target/81407
12724 * config/avr/avr.c (avr_encode_section_info)
12725 [progmem && !TREE_READONLY]: Error if progmem object needs
12726 constructing.
12727
12728 2017-07-11 Michael Collison <michael.collison@arm.com>
12729
12730 * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
12731 New pattern.
12732
12733 2017-07-11 Carl Love <cel@us.ibm.com>
12734
12735 * config/rs6000/rs6000-c.c: Add support for builtins
12736 vector unsigned int vec_parity_lsbb (vector signed int);
12737 vector unsigned int vec_parity_lsbb (vector unsigned int);
12738 vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
12739 vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
12740 vector unsigned long long vec_parity_lsbb (vector signed long long);
12741 vector unsigned long long vec_parity_lsbb (vector unsigned long long);
12742 * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
12743 * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
12744 * doc/extend.texi: Update the built-in documentation file for the
12745 new built-in functions.
12746
12747 2017-07-11 David Malcolm <dmalcolm@redhat.com>
12748
12749 * diagnostic-show-locus.c: Include "gcc-rich-location.h".
12750 (layout::m_primary_loc): New field.
12751 (layout::layout): Initialize new field. Move location filtering
12752 logic from here to...
12753 (layout::maybe_add_location_range): ...this new method. Add
12754 support for filtering to just the lines already specified by other
12755 locations.
12756 (layout::will_show_line_p): New method.
12757 (gcc_rich_location::add_location_if_nearby): New method.
12758 (selftest::test_add_location_if_nearby): New test function.
12759 (selftest::diagnostic_show_locus_c_tests): Call it.
12760 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
12761 New method.
12762
12763 2017-07-11 Tom de Vries <tom@codesourcery.com>
12764
12765 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
12766 (bb_first_real_insn): New function.
12767 (nvptx_single): Add extra initialization of broadcasted condition
12768 variables.
12769
12770 2017-07-11 Nathan Sidwell <nathan@acm.org>
12771
12772 * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
12773
12774 2017-07-11 Georg-Johann Lay <avr@gjlay.de>
12775
12776 * doc/extend.texi (AVR Function Attributes): Remove weblink to
12777 Binutils doc as TEXI will mess them up.
12778 * doc/invoke.texi (AVR Options): Same here.
12779
12780 2017-07-11 Daniel Cederman <cederman@gaisler.com>
12781
12782 * config/sparc/sparc.opt (mfix-ut700): New option.
12783 (mfix-gr712rc): Likewise.
12784 (sparc_fix_b2bst): New variable.
12785 * doc/invoke.texi (SPARC options): Document them.
12786 (ARM options): Fix warnings.
12787 * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
12788 instructions to prevent sequences that can trigger the store-store
12789 errata for certain LEON3FT processors.
12790 (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
12791 (sparc_option_override): Set sparc_fix_b2bst appropriately.
12792 * config/sparc/sparc.md (fix_b2bst): New attribute.
12793 (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
12794
12795 2017-07-10 Uros Bizjak <ubizjak@gmail.com>
12796
12797 PR target/81375
12798 * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
12799 (rcpps): Ditto.
12800 (*rsqrtsf2_sse): Ditto.
12801 (rsqrtsf2): Ditto.
12802 (div<mode>3): Macroize insn from divdf3 and divsf3
12803 using MODEF mode iterator.
12804
12805 2017-07-10 Martin Sebor <msebor@redhat.com>
12806
12807 PR tree-optimization/80397
12808 * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
12809 instead of testing for equality to INTEGER_TYPE.
12810
12811 2017-07-10 Vineet Gupta <vgupta@synopsys.com>
12812
12813 * config.gcc: Remove uclibc from arc target spec.
12814
12815 2017-07-10 Claudiu Zissulescu <claziss@synopsys.com>
12816
12817 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
12818
12819 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
12820
12821 PR lto/80838
12822 * lto-wrapper.c (remove_option): New function.
12823 (merge_and_complain): Merge PIC/PIE options more realistically.
12824
12825 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
12826
12827 Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
12828
12829 PR target/20296
12830 PR target/81268
12831 * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
12832 (HAVE_AS_AVR_MGCCISR_OPTION): If so, AC_DEFINE it.
12833 * config.in: Regenerate.
12834 * configure: Regenerate.
12835 * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
12836 * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
12837 * config/avr/avr.opt (-mgas-isr-prologues): New option and...
12838 (TARGET_GASISR_PROLOGUES): ...target mask.
12839 * common/config/avr/avr-common.c
12840 (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
12841 Set -mgas-isr-prologues.
12842 * config/avr/avr-passes.def (avr_pass_pre_proep): Add
12843 INSERT_PASS_BEFORE for it.
12844 * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
12845 * config/avr/avr.c (avr_option_override)
12846 [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
12847 (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
12848 (avr_attribute_table) <no_gccisr>: Add new function attribute.
12849 (avr_set_current_function) <is_no_gccisr>: Init machine field.
12850 (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
12851 and rtl_opt_pass.
12852 (make_avr_pass_pre_proep): New function.
12853 (emit_push_sfr) <treg>: Add argument to function and use it
12854 instead of TMP_REG.
12855 (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
12856 and set machine->gasisr.yes.
12857 (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
12858 (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
12859 __gcc_isr.n_pushed to .L__stack_usage.
12860 (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
12861 (avr_asm_final_postscan_insn): ...this new static function.
12862 * config/avr/avr.h (machine_function)
12863 <is_no_gccisr, use_L__stack_usage>: New fields.
12864 <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
12865 * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
12866 (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
12867 (gasisr, *gasisr): New expander and insn.
12868 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
12869 [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
12870 * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
12871
12872 2017-07-10 Richard Earnshaw <rearnsha@arm.com>
12873
12874 * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
12875 in quoted strings.
12876
12877 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
12878
12879 Move jump-tables out of .text again.
12880
12881 PR target/81075
12882 * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
12883 (ASM_OUTPUT_ADDR_VEC): New function.
12884 (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
12885 (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
12886 INSN_ADDRESSes as asm comment.
12887 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
12888 (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
12889 (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
12890 * config/avr/avr.md (*tablejump): Adjust comment.
12891 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
12892 * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
12893 New detail.
12894 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
12895 (avr_output_addr_vec): New proto.
12896 (avr_log_t) <insn_addresses>: New field.
12897
12898 2017-07-09 H.J. Lu <hongjiu.lu@intel.com>
12899
12900 PR target/81313
12901 * config/i386/i386.c (ix86_function_arg_advance): Set
12902 outgoing_args_on_stack to true if there are outgoing arguments
12903 on stack.
12904 (ix86_function_arg): Likewise.
12905 (ix86_get_drap_rtx): Use DRAP only if there are outgoing
12906 arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
12907 * config/i386/i386.h (machine_function): Add
12908 outgoing_args_on_stack.
12909
12910 2017-07-09 Krister Walfridsson <krister.walfridsson@gmail.com>
12911
12912 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
12913 supporting pthreds.
12914 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
12915
12916 2017-07-08 Richard Sandiford <richard.sandiford@linaro.org>
12917
12918 * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
12919 (REAL_H): Remove $(MACHMODE_H).
12920 (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
12921 double-int.h.
12922 (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
12923 $(MACHMODE_H) and double-int.h.
12924 (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
12925 $(MACHMODE_H).
12926 (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
12927 double-int.h.
12928
12929 2017-07-07 Andrew Pinski <apinski@cavium.com>
12930
12931 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
12932 prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
12933
12934 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com>
12935
12936 * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
12937 Add warning if GCC was not configured to link against a GLIBC that
12938 exports the hardware capability bits.
12939 (make_resolver_func): Make resolver function private and not a
12940 COMDAT function. Create the name with clone_function_name instead
12941 of make_unique_name.
12942
12943 PR target/81348
12944 * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
12945 correct operand in doing the split.
12946
12947 2017-07-07 Carl Love <cel@us.ibm.com>
12948
12949 * config/rs6000/rs6000-c: Add support for built-in function
12950 vector unsigned short vec_pack_to_short_fp32 (vector float,
12951 vector float).
12952 * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
12953 BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
12954 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
12955 * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
12956 (convert_4f32_8i16): Add define_expand.
12957 * doc/extend.texi: Update the built-in documentation file for the
12958 new built-in function.
12959
12960 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
12961
12962 * config/sparc/m8.md: New file.
12963 * config/sparc/sparc.md: Include m8.md.
12964
12965 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
12966
12967 * config/sparc/sparc.opt: New option -mvis4b.
12968 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
12969 (sparc_option_override): Handle VIS4B.
12970 (enum sparc_builtins): Define
12971 SPARC_BUILTIN_DICTUNPACK{8,16,32},
12972 SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
12973 SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
12974 SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
12975 SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
12976 (check_constant_argument): New function.
12977 (sparc_vis_init_builtins): Define builtins
12978 __builtin_vis_dictunpack{8,16,32},
12979 __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
12980 __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
12981 __builtin_vis_fpcmpde{8,16,32}shl and
12982 __builtin_vis_fpcmpur{8,16,32}shl.
12983 (sparc_expand_builtin): Check that the constant operands to
12984 __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
12985 constant and in range.
12986 * config/sparc/sparc-c.c (sparc_target_macros): Handle
12987 TARGET_VIS4B.
12988 * config/sparc/sparc.h (SPARC_IMM2_P): Define.
12989 (SPARC_IMM5_P): Likewise.
12990 * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
12991 (enabled): Handle vis4b.
12992 (UNSPEC_DICTUNPACK): New unspec.
12993 (UNSPEC_FPCMPSHL): Likewise.
12994 (UNSPEC_FPUCMPSHL): Likewise.
12995 (UNSPEC_FPCMPDESHL): Likewise.
12996 (UNSPEC_FPCMPURSHL): Likewise.
12997 (cpu_feature): New CPU feature `vis4b'.
12998 (dictunpack{8,16,32}): New insns.
12999 (FPCSMODE): New mode iterator.
13000 (fpcscond): New code iterator.
13001 (fpcsucond): Likewise.
13002 (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
13003 (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
13004 (fpcmpde{8,16,32}{si,di}shl): Likewise.
13005 (fpcmpur{8,16,32}{si,di}shl): Likewise.
13006 * config/sparc/constraints.md: Define constraints `q' for unsigned
13007 2-bit integer constants and `t' for unsigned 5-bit integer
13008 constants.
13009 * config/sparc/predicates.md (imm5_operand_dictunpack8): New
13010 predicate.
13011 (imm5_operand_dictunpack16): Likewise.
13012 (imm5_operand_dictunpack32): Likewise.
13013 (imm2_operand): Likewise.
13014 * doc/invoke.texi (SPARC Options): Document -mvis4b.
13015 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
13016 ditunpack* and fpcmp*shl builtins.
13017
13018 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
13019
13020 * config.gcc: Handle m8 in --with-{cpu,tune} options.
13021 * config.in: Add HAVE_AS_SPARC6 define.
13022 * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
13023 M8.
13024 * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
13025 TARGET_CPU_m8.
13026 (ASM_CPU32_DEFAUILT_SPEC): Likewise.
13027 (CPP_CPU_SPEC): Handle m8.
13028 (ASM_CPU_SPEC): Likewise.
13029 * config/sparc/sparc-opts.h (enum processor_type): Add
13030 PROCESSOR_M8.
13031 * config/sparc/sparc.c (m8_costs): New struct.
13032 (sparc_option_override): Handle TARGET_CPU_m8.
13033 (sparc32_initialize_trampoline): Likewise.
13034 (sparc64_initialize_trampoline): Likewise.
13035 (sparc_issue_rate): Likewise.
13036 (sparc_register_move_cost): Likewise.
13037 * config/sparc/sparc.h (TARGET_CPU_m8): Define.
13038 (CPP_CPU64_DEFAULT_SPEC): Define for M8.
13039 (ASM_CPU64_DEFAULT_SPEC): Likewise.
13040 (CPP_CPU_SPEC): Handle M8.
13041 (ASM_CPU_SPEC): Likewise.
13042 (AS_M8_FLAG): Define.
13043 * config/sparc/sparc.md: Add m8 to the cpu attribute.
13044 * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
13045 * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
13046 M8 instructions.
13047 * configure: Regenerate.
13048 * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
13049 -mtune=m8.
13050
13051 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
13052
13053 * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
13054 subtypes.
13055 * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
13056 ("*movdi_insn_sp32"): Do not set v3pipe.
13057 ("*movsi_insn"): Likewise.
13058 ("*movdi_insn_sp64"): Likewise.
13059 ("*movsf_insn"): Likewise.
13060 ("*movdf_insn_sp32"): Likewise.
13061 ("*movdf_insn_sp64"): Likewise.
13062 ("*zero_extendsidi2_insn_sp64"): Likewise.
13063 ("*sign_extendsidi2_insn"): Likewise.
13064 ("*mov<VM32:mode>_insn"): Likewise.
13065 ("*mov<VM64:mode>_insn_sp64"): Likewise.
13066 ("*mov<VM64:mode>_insn_sp32"): Likewise.
13067 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
13068 ("<vlop:code><VL:mode>3"): Likewise.
13069 ("*not_<vlop:code><VL:mode>3"): Likewise.
13070 ("*nand<VL:mode>_vis"): Likewise.
13071 ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
13072 ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
13073 ("one_cmpl<VL:mode>2"): Likewise.
13074 ("faligndata<VM64:mode>_vis"): Likewise.
13075 ("alignaddrsi_vis"): Likewise.
13076 ("alignaddrdi_vis"): Likweise.
13077 ("alignaddrlsi_vis"): Likewise.
13078 ("alignaddrldi_vis"): Likewise.
13079 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
13080 ("bmaskdi_vis"): Likewise.
13081 ("bmasksi_vis"): Likewise.
13082 ("bshuffle<VM64:mode>_vis"): Likewise.
13083 ("cmask8<P:mode>_vis"): Likewise.
13084 ("cmask16<P:mode>_vis"): Likewise.
13085 ("cmask32<P:mode>_vis"): Likewise.
13086 ("pdistn<P:mode>_vis"): Likewise.
13087 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
13088
13089 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
13090
13091 * config/sparc/sparc.md ("subtype"): New insn attribute.
13092 ("*wrgsr_sp64"): Set insn subtype.
13093 ("*rdgsr_sp64"): Likewise.
13094 ("alignaddrsi_vis"): Likewise.
13095 ("alignaddrdi_vis"): Likewise.
13096 ("alignaddrlsi_vis"): Likewise.
13097 ("alignaddrldi_vis"): Likewise.
13098 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
13099 ("fexpand_vis"): Likewise.
13100 ("fpmerge_vis"): Likewise.
13101 ("faligndata<VM64:mode>_vis"): Likewise.
13102 ("bshuffle<VM64:mode>_vis"): Likewise.
13103 ("cmask8<P:mode>_vis"): Likewise.
13104 ("cmask16<P:mode>_vis"): Likewise.
13105 ("cmask32<P:mode>_vis"): Likewise.
13106 ("fchksm16_vis"): Likewise.
13107 ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
13108 ("fmean16_vis"): Likewise.
13109 ("fp<plusminus_insn>64_vis"): Likewise.
13110 ("<plusminus_insn>v8qi3"): Likewise.
13111 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
13112 ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
13113 ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
13114 ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
13115 ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
13116 ("*movqi_insn"): Likewise.
13117 ("*movhi_insn"): Likewise.
13118 ("*movsi_insn"): Likewise.
13119 ("movsi_pic_gotdata_op"): Likewise.
13120 ("*movdi_insn_sp32"): Likewise.
13121 ("*movdi_insn_sp64"): Likewise.
13122 ("movdi_pic_gotdata_op"): Likewise.
13123 ("*movsf_insn"): Likewise.
13124 ("*movdf_insn_sp32"): Likewise.
13125 ("*movdf_insn_sp64"): Likewise.
13126 ("*zero_extendhisi2_insn"): Likewise.
13127 ("*zero_extendqihi2_insn"): Likewise.
13128 ("*zero_extendqisi2_insn"): Likewise.
13129 ("*zero_extendqidi2_insn"): Likewise.
13130 ("*zero_extendhidi2_insn"): Likewise.
13131 ("*zero_extendsidi2_insn_sp64"): Likewise.
13132 ("ldfsr"): Likewise.
13133 ("prefetch_64"): Likewise.
13134 ("prefetch_32"): Likewise.
13135 ("tie_ld32"): Likewise.
13136 ("tie_ld64"): Likewise.
13137 ("*tldo_ldub_sp32"): Likewise.
13138 ("*tldo_ldub1_sp32"): Likewise.
13139 ("*tldo_ldub2_sp32"): Likewise.
13140 ("*tldo_ldub_sp64"): Likewise.
13141 ("*tldo_ldub1_sp64"): Likewise.
13142 ("*tldo_ldub2_sp64"): Likewise.
13143 ("*tldo_ldub3_sp64"): Likewise.
13144 ("*tldo_lduh_sp32"): Likewise.
13145 ("*tldo_lduh1_sp32"): Likewise.
13146 ("*tldo_lduh_sp64"): Likewise.
13147 ("*tldo_lduh1_sp64"): Likewise.
13148 ("*tldo_lduh2_sp64"): Likewise.
13149 ("*tldo_lduw_sp32"): Likewise.
13150 ("*tldo_lduw_sp64"): Likewise.
13151 ("*tldo_lduw1_sp64"): Likewise.
13152 ("*tldo_ldx_sp64"): Likewise.
13153 ("*mov<VM32:mode>_insn"): Likewise.
13154 ("*mov<VM64:mode>_insn_sp64"): Likewise.
13155 ("*mov<VM64:mode>_insn_sp32"): Likewise.
13156
13157 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
13158
13159 * config/sparc/sparc.md ("type"): New insn type viscmp.
13160 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
13161 viscmp.
13162 ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
13163 ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
13164 ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
13165 * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
13166 viscmp.
13167 ("n7_vis_logical_11cycle"): Likewise.
13168 * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
13169 * config/sparc/niagara2.md ("niag3_vis": Likewise.
13170 * config/sparc/niagara.md ("niag_vis"): Likewise.
13171 * config/sparc/ultra3.md ("us3_fga"): Likewise.
13172 * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
13173
13174 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
13175
13176 * config/sparc/sparc.md: New instruction type `bmask'.
13177 (bmaskdi_vis): Use the `bmask' type.
13178 (bmasksi_vis): Likewise.
13179 * config/sparc/ultra3.md (us3_array): Likewise.
13180 * config/sparc/niagara7.md (n7_array): Likewise.
13181 * config/sparc/niagara4.md (n4_array): Likewise.
13182 * config/sparc/niagara2.md (niag2_vis): Likewise.
13183 (niag3_vis): Likewise.
13184 * config/sparc/niagara.md (niag_vis): Likewise.
13185
13186 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
13187
13188 * ipa-comdats.c: Remove optimize check from gate.
13189 * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
13190 for functions not optimized.
13191 (ipa_fn_summary_read): Skip optimize check.
13192 (ipa_fn_summary_write): Likewise.
13193 * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
13194 is optimized.
13195 * ipa-inline.c (can_inline_edge_p): Not optimized functions are
13196 uninlinable.
13197 (can_inline_edge_p): Check flag_pcc_struct_return for match.
13198 (check_callers): Give up on caller which is not optimized.
13199 (inline_small_functions): Likewise.
13200 (ipa_inline): Do not give up when not optimizing.
13201 * ipa-visbility.c (function_and_variable_visibility): Do not optimize
13202 away unoptimizes cdtors.
13203 (whole_program_function_and_variable_visibility): Do
13204 ipa_discover_readonly_nonaddressable_vars in LTO mode.
13205 * ipa.c (process_references): Do not check optimize.
13206 (symbol_table::remove_unreachable_nodes): Update optimize check.
13207 (set_writeonly_bit): Update optimize check.
13208 (pass_ipa_cdtor_merge::gate): Do not check optimize.
13209 (pass_ipa_single_use::gate): Remove.
13210
13211 2017-07-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
13212
13213 * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
13214 insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
13215 rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
13216 mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
13217 permute_load, permute_store, adjust_extract, adjust_splat,
13218 adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
13219 replace_swap_with_copy, dump_swap_insn_table,
13220 alignment_with_canonical_addr, alignment_mask, find_alignment_op,
13221 recombine_lvx_pattern, recombine_stvx_pattern,
13222 recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
13223 make_pass_analyze_swaps): Move all code related to p8 swap optimizations
13224 to file rs6000-p8swap.c.
13225 * config/rs6000/rs6000-p8swap.c: New file.
13226 * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
13227 * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
13228 and rs6000*-*-* targets.
13229
13230 2017-07-06 David Malcolm <dmalcolm@redhat.com>
13231
13232 * Makefile.in (selftest): Remove dependency on s-selftest-c++.
13233
13234 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
13235
13236 * lto-wrapper.c (merge_and_complain): Do not merge
13237 fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
13238 fsigned_zeros, ftrapping_math, fwrapv.
13239 (append_compiler_options): Do not track these options.
13240 (append_linker_options): Likewie
13241
13242 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
13243
13244 * cgraphunit.c (cgraph_node::finalize_function): When
13245 !flag_toplevel_reorde set no_reorder flag.
13246 (varpool_node::finalize_decl): Likewise.
13247 (symbol_table::compile): Drop no toplevel reorder path.
13248
13249 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
13250
13251 * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
13252 edges; zero probability is not better than uninitialized.
13253
13254 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
13255
13256 * asan.h (asan_sanitize_allocas_p): Declare.
13257 * asan.c (asan_sanitize_allocas_p): New function.
13258 (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
13259 (handle_builtin_alloca): Likewise.
13260 * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
13261 if !asan_sanitize_allocas_p.
13262 * params.def (asan-instrument-allocas): Add new option.
13263 * params.h (ASAN_PROTECT_ALLOCAS): Define.
13264 * opts.c (common_handle_option): Disable allocas sanitization for
13265 KASan by default.
13266
13267 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
13268
13269 * asan.c: Include gimple-fold.h.
13270 (get_last_alloca_addr): New function.
13271 (handle_builtin_stackrestore): Likewise.
13272 (handle_builtin_alloca): Likewise.
13273 (asan_emit_allocas_unpoison): Likewise.
13274 (get_mem_refs_of_builtin_call): Add new parameter, remove const
13275 quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
13276 BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
13277 (instrument_builtin_call): Pass gimple iterator to
13278 get_mem_refs_of_builtin_call.
13279 (last_alloca_addr): New global.
13280 * asan.h (asan_emit_allocas_unpoison): Declare.
13281 * builtins.c (expand_asan_emit_allocas_unpoison): New function.
13282 (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
13283 * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
13284 if function calls alloca.
13285 * gimple-fold.c (replace_call_with_value): Remove static keyword.
13286 * gimple-fold.h (replace_call_with_value): Declare.
13287 * internal-fn.c: Include asan.h.
13288 * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
13289 BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
13290
13291 2017-07-06 David Malcolm <dmalcolm@redhat.com>
13292
13293 * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
13294 (C_SELFTEST_FLAGS): New.
13295 (CPP_SELFTEST_FLAGS): New.
13296 (SELFTEST_DEPS): New, from deps of s-selftest.
13297 (C_SELFTEST_DEPS): New, from deps of s-selftest.
13298 (CPP_SELFTEST_DEPS): New.
13299 (selftest): Add dependency on s-selftest-c++.
13300 (s-selftest): Rename to...
13301 (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
13302 and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
13303 than SELFTEST_FLAGS.
13304 (selftest-gdb): Rename to...
13305 (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
13306 C_SELFTEST_FLAGS.
13307 (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
13308 (selftest-valgrind): Rename to...
13309 (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
13310 C_SELFTEST_FLAGS.
13311 (selftest-valgrind): Reintroduce as an alias for
13312 selftest-c-valgrind.
13313 (s-selftest-c++): New.
13314 (selftest-c++-gdb): New.
13315 (selftest-c++-valgrind): New.
13316
13317 2017-07-06 Olivier Hainque <hainque@adacore.com>
13318
13319 * gcc.c (process_command): When deciding if undefined variables
13320 should be ignored when processing specs, accept "gcc -v" as well.
13321
13322 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
13323
13324 * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
13325 afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
13326
13327 2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
13328
13329 * config/arm/arm-cpus.in (armv8-r): Add new entry.
13330 * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
13331 * config/arm/arm-tables.opt: Regenerate.
13332 * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
13333 enumerator.
13334 * doc/invoke.texi: Mention -march=armv8-r and its extensions.
13335
13336 2017-07-06 Carl Love <cel@us.ibm.com>
13337
13338 * ChangeLog: Clean up from mid air collision
13339
13340 2017-07-06 Carl Love <cel@us.ibm.com>
13341
13342 * config/rs6000/rs6000-c.c: Add support for built-in functions
13343 vector signed int vec_subc (vector signed int, vector signed int);
13344 vector signed __int128 vec_subc (vector signed __int128,
13345 vector signed __int128);
13346 vector unsigned __int128 vec_subc (vector unsigned __int128,
13347 vector unsigned __int128);
13348 vector signed int vec_sube (vector signed int, vector signed int,
13349 vector signed int);
13350 vector unsigned int vec_sube (vector unsigned int,
13351 vector unsigned int,
13352 vector unsigned int);
13353 vector signed __int128 vec_sube (vector signed __int128,
13354 vector signed __int128,
13355 vector signed__int128);
13356 vector unsigned __int128 vec_sube (vector unsigned __int128,
13357 vector unsigned __int128,
13358 vector unsigned __int128);
13359 vector signed int vec_subec (vector signed int, vector signed int,
13360 vector signed int);
13361 vector unsigned int vec_subec (vector unsigned int,
13362 vector unsigned int,
13363 vector unsigned int);
13364 vector signed __int128 vec_subec (vector signed __int128,
13365 vector signed __int128,
13366 vector signed__int128);
13367 vector unsigned __int128 vec_subec (vector unsigned __int128,
13368 vector unsigned __int128,
13369 vector unsigned __int128);
13370 * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
13371 ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
13372 * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
13373 BU_ALTIVEC_OVERLOAD_X definitions.
13374 * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
13375 * doc/extend.texi: Update the built-in documentation file for the new
13376 built-in functions.
13377
13378 2017-07-06 David Malcolm <dmalcolm@redhat.com>
13379
13380 PR c++/79300
13381 * diagnostic-show-locus.c (layout::layout): Use start and finish
13382 spelling location for the start and finish of each range.
13383 * genmatch.c (linemap_client_expand_location_to_spelling_point):
13384 Add unused aspect param.
13385 * input.c (expand_location_1): Add "aspect" param, and use it
13386 to access the correct part of the location.
13387 (expand_location): Pass LOCATION_ASPECT_CARET to new param of
13388 expand_location_1.
13389 (expand_location_to_spelling_point): Likewise.
13390 (linemap_client_expand_location_to_spelling_point): Add "aspect"
13391 param, and pass it to expand_location_1.
13392
13393 2017-07-06 Sebastian Peryt <sebastian.peryt@intel.com>
13394
13395 * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
13396 _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
13397 _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
13398 _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
13399 _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
13400 _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
13401 _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
13402 _mm_maskz_getmant_ss): New intrinsics.
13403 (__builtin_ia32_getexpss128_mask): Changed to ...
13404 __builtin_ia32_getexpss128_round ... this.
13405 (__builtin_ia32_getexpsd128_mask): Changed to ...
13406 __builtin_ia32_getexpsd128_round ... this.
13407 * config/i386/i386-builtin-types.def
13408 ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
13409 (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
13410 * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
13411 __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round,
13412 __builtin_ia32_getmantss_mask_round): New builtins.
13413 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
13414 V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
13415 (CODE_FOR_avx512f_vgetmantv2df_mask_round,
13416 CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
13417 * config/i386/sse.md
13418 (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
13419 avx512f_sgetexp<mode><mask_scalar_name>
13420 <round_saeonly_scalar_name> ... this.
13421 (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
13422 %0, %1, %2<round_saeonly_op3>}): Changed to ...
13423 vgetexp<ssescalarmodesuffix>
13424 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
13425 %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
13426 (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
13427 avx512f_vgetmant<mode><mask_scalar_name>
13428 <round_saeonly_scalar_name> ... this.
13429 (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
13430 %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
13431 vgetmant<ssescalarmodesuffix>
13432 \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
13433 %0<mask_scalar_operand4>, %1, %2
13434 <round_saeonly_scalar_mask_op4>, %3} ... this.
13435 * config/i386/subst.md (mask_scalar_operand4,
13436 round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4,
13437 round_saeonly_scalar_nimm_predicate): New subst attributes.
13438
13439 2017-07-06 Julia Koval <julia.koval@intel.com>
13440
13441 * config/i386/i386.c (ix86_erase_embedded_rounding):
13442 Remove code for old rounding pattern.
13443
13444 2017-07-06 Richard Earnshaw <rearnsha@arm.com>
13445
13446 * config/arm/t-arm (GTM_H): Add arm-cpu.h.
13447
13448 2017-07-06 Christophe Lyon <christophe.lyon@linaro.org>
13449
13450 * doc/sourcebuild.texi (Test Directives, Variants of
13451 dg-require-support): Add documentation for dg-require-stack-check.
13452
13453 2017-07-05 Sebastian Peryt <sebastian.peryt@intel.com>
13454
13455 * config/i386/subst.md (mask_scalar, round_scalar,
13456 round_saeonly_scalar): New meta-templates.
13457 (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
13458 round_scalar_mask_operand3, round_scalar_mask_op3,
13459 round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
13460 round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
13461 round_saeonly_scalar_constraint,
13462 round_saeonly_scalar_prefix): New subst attribute.
13463 * config/i386/sse.md
13464 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
13465 <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
13466 <round_scalar_name> ... this.
13467 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
13468 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
13469 <round_scalar_name> ... this.
13470 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
13471 <sse>_vm<code><mode>3<mask_scalar_name>
13472 <round_saeonly_scalar_name> ... this.
13473 (v<plusminus_mnemonic><ssescalarmodesuffix>
13474 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
13475 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
13476 v<plusminus_mnemonic><ssescalarmodesuffix>
13477 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
13478 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
13479 (v<multdiv_mnemonic><ssescalarmodesuffix>
13480 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
13481 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
13482 v<multdiv_mnemonic><ssescalarmodesuffix>
13483 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
13484 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
13485 (v<maxmin_float><ssescalarmodesuffix>
13486 \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
13487 %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
13488 v<maxmin_float><ssescalarmodesuffix>
13489 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
13490 %0<mask_scalar_operand3>, %1, %<iptr>2
13491 <round_saeonly_scalar_mask_op3>} ... this.
13492
13493 2017-07-05 Richard Earnshaw <rearnsha@arm.com>
13494
13495 * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
13496 (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
13497
13498 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
13499 Alan Hayward <alan.hayward@arm.com>
13500 David Sherwood <david.sherwood@arm.com>
13501
13502 * combine.c (simplify_if_then_else): Remove "enum" before
13503 "machine_mode".
13504 * compare-elim.c (can_eliminate_compare): Likewise.
13505 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
13506 Likewise.
13507 (aarch64_lookup_simd_builtin_type): Likewise.
13508 (aarch64_simd_builtin_type): Likewise.
13509 (aarch64_init_simd_builtin_types): Likewise.
13510 (aarch64_simd_expand_args): Likewise.
13511 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
13512 Likewise.
13513 (aarch64_reverse_mask): Likewise.
13514 (aarch64_simd_emit_reg_reg_move): Likewise.
13515 (aarch64_gen_adjusted_ldpstp): Likewise.
13516 (aarch64_ccmp_mode_to_code): Likewise.
13517 (aarch64_operands_ok_for_ldpstp): Likewise.
13518 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
13519 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
13520 Likewise.
13521 (aarch64_min_divisions_for_recip_mul): Likewise.
13522 (aarch64_reassociation_width): Likewise.
13523 (aarch64_get_condition_code_1): Likewise.
13524 (aarch64_simd_emit_reg_reg_move): Likewise.
13525 (aarch64_simd_attr_length_rglist): Likewise.
13526 (aarch64_reverse_mask): Likewise.
13527 (aarch64_operands_ok_for_ldpstp): Likewise.
13528 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
13529 (aarch64_gen_adjusted_ldpstp): Likewise.
13530 * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
13531 Likewise.
13532 * config/arc/arc.c (legitimate_offset_address_p): Likewise.
13533 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
13534 (arm_lookup_simd_builtin_type): Likewise.
13535 (arm_simd_builtin_type): Likewise.
13536 (arm_init_simd_builtin_types): Likewise.
13537 (arm_expand_builtin_args): Likewise.
13538 * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
13539 * config/ft32/ft32.c (ft32_libcall_value): Likewise.
13540 (ft32_setup_incoming_varargs): Likewise.
13541 (ft32_function_arg): Likewise.
13542 (ft32_function_arg_advance): Likewise.
13543 (ft32_pass_by_reference): Likewise.
13544 (ft32_arg_partial_bytes): Likewise.
13545 (ft32_valid_pointer_mode): Likewise.
13546 (ft32_addr_space_pointer_mode): Likewise.
13547 (ft32_addr_space_legitimate_address_p): Likewise.
13548 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
13549 Likewise.
13550 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
13551 (ix86_emit_outlined_ms2sysv_restore): Likewise.
13552 (iamcu_alignment): Likewise.
13553 (canonicalize_vector_int_perm): Likewise.
13554 (ix86_noce_conversion_profitable_p): Likewise.
13555 (ix86_mpx_bound_mode): Likewise.
13556 (ix86_operands_ok_for_move_multiple): Likewise.
13557 * config/microblaze/microblaze-protos.h
13558 (microblaze_expand_conditional_branch_reg): Likewise.
13559 * config/microblaze/microblaze.c
13560 (microblaze_expand_conditional_branch_reg): Likewise.
13561 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
13562 Likewise.
13563 (rs6000_reassociation_width): Likewise.
13564 (rs6000_invalid_binary_op): Likewise.
13565 (fusion_p9_p): Likewise.
13566 (emit_fusion_p9_load): Likewise.
13567 (emit_fusion_p9_store): Likewise.
13568 * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
13569 Likewise.
13570 (riscv_hard_regno_mode_ok_p): Likewise.
13571 (riscv_address_insns): Likewise.
13572 (riscv_split_symbol): Likewise.
13573 (riscv_legitimize_move): Likewise.
13574 (riscv_function_value): Likewise.
13575 (riscv_hard_regno_nregs): Likewise.
13576 (riscv_expand_builtin): Likewise.
13577 * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
13578 (riscv_build_integer): Likewise.
13579 (riscv_split_integer): Likewise.
13580 (riscv_legitimate_constant_p): Likewise.
13581 (riscv_cannot_force_const_mem): Likewise.
13582 (riscv_regno_mode_ok_for_base_p): Likewise.
13583 (riscv_valid_base_register_p): Likewise.
13584 (riscv_valid_offset_p): Likewise.
13585 (riscv_valid_lo_sum_p): Likewise.
13586 (riscv_classify_address): Likewise.
13587 (riscv_legitimate_address_p): Likewise.
13588 (riscv_address_insns): Likewise.
13589 (riscv_load_store_insns): Likewise.
13590 (riscv_force_binary): Likewise.
13591 (riscv_split_symbol): Likewise.
13592 (riscv_force_address): Likewise.
13593 (riscv_legitimize_address): Likewise.
13594 (riscv_move_integer): Likewise.
13595 (riscv_legitimize_const_move): Likewise.
13596 (riscv_legitimize_move): Likewise.
13597 (riscv_address_cost): Likewise.
13598 (riscv_subword): Likewise.
13599 (riscv_output_move): Likewise.
13600 (riscv_canonicalize_int_order_test): Likewise.
13601 (riscv_emit_int_order_test): Likewise.
13602 (riscv_function_arg_boundary): Likewise.
13603 (riscv_pass_mode_in_fpr_p): Likewise.
13604 (riscv_pass_fpr_single): Likewise.
13605 (riscv_pass_fpr_pair): Likewise.
13606 (riscv_get_arg_info): Likewise.
13607 (riscv_function_arg): Likewise.
13608 (riscv_function_arg_advance): Likewise.
13609 (riscv_arg_partial_bytes): Likewise.
13610 (riscv_function_value): Likewise.
13611 (riscv_pass_by_reference): Likewise.
13612 (riscv_setup_incoming_varargs): Likewise.
13613 (riscv_print_operand): Likewise.
13614 (riscv_elf_select_rtx_section): Likewise.
13615 (riscv_save_restore_reg): Likewise.
13616 (riscv_for_each_saved_reg): Likewise.
13617 (riscv_register_move_cost): Likewise.
13618 (riscv_hard_regno_mode_ok_p): Likewise.
13619 (riscv_hard_regno_nregs): Likewise.
13620 (riscv_class_max_nregs): Likewise.
13621 (riscv_memory_move_cost): Likewise.
13622 * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
13623 * config/rl78/rl78.c (rl78_split_movsi): Likewise.
13624 (rl78_addr_space_address_mode): Likewise.
13625 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13626 Likewise.
13627 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
13628 (rs6000_reassociation_width): Likewise.
13629 (rs6000_invalid_binary_op): Likewise.
13630 (fusion_p9_p): Likewise.
13631 (emit_fusion_p9_load): Likewise.
13632 (emit_fusion_p9_store): Likewise.
13633 * config/visium/visium-protos.h (prepare_move_operands): Likewise.
13634 (ok_for_simple_move_operands): Likewise.
13635 (ok_for_simple_move_strict_operands): Likewise.
13636 (ok_for_simple_arith_logic_operands): Likewise.
13637 (visium_legitimize_reload_address): Likewise.
13638 (visium_select_cc_mode): Likewise.
13639 (output_cbranch): Likewise.
13640 (visium_split_double_move): Likewise.
13641 (visium_expand_copysign): Likewise.
13642 (visium_expand_int_cstore): Likewise.
13643 (visium_expand_fp_cstore): Likewise.
13644 * config/visium/visium.c (visium_pass_by_reference): Likewise.
13645 (visium_function_arg): Likewise.
13646 (visium_function_arg_advance): Likewise.
13647 (visium_libcall_value): Likewise.
13648 (visium_setup_incoming_varargs): Likewise.
13649 (visium_legitimate_constant_p): Likewise.
13650 (visium_legitimate_address_p): Likewise.
13651 (visium_legitimize_address): Likewise.
13652 (visium_secondary_reload): Likewise.
13653 (visium_register_move_cost): Likewise.
13654 (visium_memory_move_cost): Likewise.
13655 (prepare_move_operands): Likewise.
13656 (ok_for_simple_move_operands): Likewise.
13657 (ok_for_simple_move_strict_operands): Likewise.
13658 (ok_for_simple_arith_logic_operands): Likewise.
13659 (visium_function_value_1): Likewise.
13660 (rtx_ok_for_offset_p): Likewise.
13661 (visium_legitimize_reload_address): Likewise.
13662 (visium_split_double_move): Likewise.
13663 (visium_expand_copysign): Likewise.
13664 (visium_expand_int_cstore): Likewise.
13665 (visium_expand_fp_cstore): Likewise.
13666 (visium_split_cstore): Likewise.
13667 (visium_select_cc_mode): Likewise.
13668 (visium_split_cbranch): Likewise.
13669 (output_cbranch): Likewise.
13670 (visium_print_operand_address): Likewise.
13671 * expmed.c (flip_storage_order): Likewise.
13672 * expmed.h (emit_cstore): Likewise.
13673 (flip_storage_order): Likewise.
13674 * genrecog.c (validate_pattern): Likewise.
13675 * hsa-gen.c (gen_hsa_addr): Likewise.
13676 * internal-fn.c (expand_arith_overflow): Likewise.
13677 * ira-color.c (allocno_copy_cost_saving): Likewise.
13678 * lra-assigns.c (find_hard_regno_for_1): Likewise.
13679 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
13680 (process_invariant_for_inheritance): Likewise.
13681 * lra-eliminations.c (move_plus_up): Likewise.
13682 * omp-low.c (lower_oacc_reductions): Likewise.
13683 * simplify-rtx.c (simplify_subreg): Likewise.
13684 * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
13685 (TARGET_CHKP_BOUND_MODE): Likewise..
13686 * targhooks.c (default_chkp_bound_mode): Likewise.
13687 (default_setup_incoming_vararg_bounds): Likewise.
13688 * targhooks.h (default_chkp_bound_mode): Likewise.
13689 (default_setup_incoming_vararg_bounds): Likewise.
13690 * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
13691 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
13692 (have_whole_vector_shift): Likewise.
13693 * tree-vect-stmts.c (vectorizable_load): Likewise.
13694 * doc/tm.texi: Regenerate.
13695
13696 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
13697
13698 Graceful degrade if Binutils PR21472 is not available.
13699
13700 PR target/81072
13701 * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
13702 .rodata in flash test fails.
13703 (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
13704 * confgure: Regenerate.
13705 * config.in: Regenerate.
13706 * config/avr/avr.c (avr_asm_named_section)
13707 [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
13708 __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
13709 (avr_asm_init_sections): Same.
13710
13711 2017-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13712
13713 * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
13714 (fma<VH:mode>4_intrinsic): Likewise.
13715 (*fmsub<VCVTF:mode>4): Likewise.
13716 (*fmsub<VH:mode>4_intrinsic): Likewise.
13717
13718 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
13719
13720 PR target/81305
13721 * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
13722 Don't depend on "optimize > 0".
13723 (out_movhi_r_mr, out_movqi_mr_r): Same.
13724 (out_movhi_mr_r, out_movqi_r_mr): Same.
13725 (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
13726 io_address_operand on "optimize > 0".
13727
13728 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13729
13730 * tree-loop-distribution.c: Add general explanantion on the pass.
13731 (generate_loops_for_partition): Mark distributed loop.
13732 (pg_add_dependence_edges): New parameter. Handle alias data
13733 dependence specially and record it in the parameter if asked.
13734 (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
13735 (init_partition_graph_vertices, add_partition_graph_edge): New.
13736 (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
13737 (free_partition_graph_vdata, build_partition_graph): New.
13738 (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
13739 (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
13740 (data_ref_segment_size, latch_dominated_by_data_ref): New.
13741 (compute_alias_check_pairs, version_loop_by_alias_check): New.
13742 (version_for_distribution_p, finalize_partitions): New.
13743 (distribute_loop): Handle alias data dependence specially. Factor
13744 out loop fusion code as functions and call these functions.
13745
13746 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13747
13748 * tree-loop-distribution.c (classify_partition): New parameter and
13749 better handle reduction statement.
13750 (rdg_build_partitions): Revise comment.
13751 (distribute_loop): Compute statements in all partitions and pass it
13752 to classify_partition.
13753
13754 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13755
13756 * tree-loop-distribution.c (enum partition_type): New.
13757 (struct partition): New field type.
13758 (partition_merge_into): Add parameter. Update partition type.
13759 (data_dep_in_cycle_p, update_type_for_merge): New functions.
13760 (build_rdg_partition_for_vertex): Compute partition type.
13761 (rdg_build_partitions): Dump partition type.
13762 (distribute_loop): Update calls to partition_merge_into.
13763
13764 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13765
13766 * tree-loop-distribution.c (struct ddr_hasher): New.
13767 (ddr_hasher::hash, ::equal, get_data_dependence): New function.
13768 (ddrs_table): New.
13769 (classify_partition): Call get_data_dependence.
13770 (pg_add_dependence_edges): Ditto.
13771 (distribute_loop): Release data dependence hash table.
13772
13773 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13774
13775 * tree-loop-distribution.c (ref_base_address): Delete.
13776 (similar_memory_accesses): Rename ...
13777 (share_memory_accesses): ... to this. Check if partitions access
13778 the same memory reference.
13779 (distribute_loop): Call share_memory_accesses.
13780
13781 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13782
13783 * tree-loop-distribution.c (struct partition): New field recording
13784 its data reference.
13785 (partition_alloc, partition_free): Init and release data refs.
13786 (partition_merge_into): Merge data refs.
13787 (build_rdg_partition_for_vertex): Collect data refs for partition.
13788 (pg_add_dependence_edges): Change parameters from vector to bitmap.
13789 Update uses.
13790 (distribute_loop): Remve data refs from vertice data of partition
13791 graph.
13792
13793 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13794
13795 * tree-loop-distribution.c (params.h): Include header file.
13796 (MAX_DATAREFS_NUM, DR_INDEX): New macro.
13797 (datarefs_vec): New global var.
13798 (create_rdg_vertices): Use datarefs_vec directly.
13799 (free_rdg): Don't free data references.
13800 (build_rdg): Update use. Don't free data references.
13801 (distribute_loop): Compute global variable for data references.
13802 Bail out if there are too many data references.
13803
13804 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13805
13806 * tree-loop-distribution.c (loop_nest): New global var.
13807 (build_rdg): Use loop directly, rather than loop nest.
13808 (pg_add_dependence_edges): Remove loop nest parameter. Use global
13809 variable directly.
13810 (distribute_loop): Compute global variable loop nest. Update use.
13811
13812 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13813
13814 * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
13815 (partition_merge_into): New parameter. Dump reason for fusion.
13816 (distribute_loop): Update use of partition_merge_into.
13817
13818 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13819
13820 * tree-loop-distribution.c (bb_top_order_index): New.
13821 (bb_top_order_index_size, bb_top_order_cmp): New.
13822 (stmts_from_loop): Use topological order.
13823 (pass_loop_distribution::execute): Compute and release topological
13824 order for basic blocks.
13825
13826 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13827
13828 * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
13829 if no loops.
13830
13831 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13832
13833 * cfgloop.h (struct loop): Add comment. New field orig_loop_num.
13834 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
13835 * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
13836 * internal-fn.def (LOOP_DIST_ALIAS): New.
13837 * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
13838 (fold_loop_internal_call): ... this.
13839 (vect_loop_dist_alias_call): New function.
13840 (set_uid_loop_bbs): Call fold_loop_internal_call.
13841 (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
13842 internal calls.
13843
13844 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
13845
13846 PR target/81300
13847 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
13848 Require dead FLAGS_REG at the beginning of a peephole.
13849
13850 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
13851
13852 PR target/81294
13853 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
13854 arguments in the call to __builtin_ia32_sbb_u32.
13855 (_subborrow_u64): Swap _X and _Y arguments in the call to
13856 __builtin_ia32_sbb_u64.
13857
13858 2017-07-04 Jakub Jelinek <jakub@redhat.com>
13859
13860 PR debug/81278
13861 * tree-vrp.c (compare_assert_loc): Turn into a function template
13862 with stable template parameter. Only test if a->e is NULL,
13863 !a->e == !b->e has been verified already. Use e == NULL or
13864 e != NULL instead of e or ! e tests. If stable is true, don't use
13865 iterative_hash_expr, on the other side allow a or b or both NULL
13866 and sort the NULLs last.
13867 (process_assert_insertions): Sort using compare_assert_loc<false>
13868 instead of compare_assert_loc, later sort using
13869 compare_assert_loc<true> before calling process_assert_insertions_for
13870 in a loop. Use break instead of continue once seen NULL pointer.
13871
13872 2017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
13873
13874 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
13875 Cortex-R7 and Cortex-R8 processors.
13876
13877 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
13878
13879 * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
13880 uninitialized while src is not.
13881
13882 2017-07-04 Richard Earnshaw <rearnsha@arm.com>
13883
13884 * common/config/arm/arm-common.c: Adjust include path for
13885 arm-cpu-cdata.h
13886 * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
13887 (arm-cpu.h): Create in build directory. Adjust dependency rules.
13888 (arm-cpu-data.h): Likewise.
13889 (arm-cpu-cdata.h): Likewise.
13890 * config/arm/arm-cpu.h: Delete.
13891 * config/arm/arm-cpu-cdata.h: Delete.
13892 * config/arm/arm-cpu-data.h: Delete.
13893
13894 2017-07-04 James Greenhalgh <james.greenhalgh@arm.com>
13895
13896 * config/arm/arm-cpus.in (cortex-a55): New.
13897 (cortex-a75): Likewise.
13898 (cortex-a75.cortex-a55): Likewise.
13899 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
13900 cortex-a75.
13901 * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
13902 * config/arm/arm-cpu-cdata.h: Regenerate.
13903 * config/arm/arm-cpu-data.h: Regenerate.
13904 * config/arm/arm-cpu.h: Regenerate.
13905 * config/arm/arm-tables.opt: Regenerate.
13906 * config/arm/arm-tune.md: Regenerate.
13907
13908 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
13909
13910 * haifa-sched.c (sched_create_recovery_edges): Update profile.
13911
13912 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
13913
13914 * bb-reorder.c (better_edge_p): Fix handling of uninitialized
13915 probability.
13916
13917 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org>
13918
13919 PR tree-optimization/81292
13920 * tree-ssa-strlen.c (handle_builtin_strlen): When setting
13921 full_string_p, also call adjust_related_strinfos if the adjustment
13922 is simple, otherwise invalidate related strinfos.
13923
13924 2017-07-04 Martin Liska <mliska@suse.cz>
13925
13926 PR sanitizer/81040
13927 * sanopt.c (sanitize_rewrite_addressable_params): Mark the
13928 newly created variable as DECL_IGNORED_P.
13929
13930 2017-07-04 Martin Liska <mliska@suse.cz>
13931
13932 PR ipa/81293
13933 * ipa-inline.c (inline_small_functions):
13934 Use xstrdup_for_dump.
13935
13936 2017-07-04 Tom de Vries <tom@codesourcery.com>
13937
13938 * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
13939
13940 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
13941
13942 PR target/81033
13943 * config/darwin.c (darwin_function_switched_text_sections):
13944 Fix spaces.
13945
13946 2017-07-03 Jan Hubicka <hubicka@ucw.cz>
13947
13948 * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
13949
13950 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
13951
13952 * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
13953
13954 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
13955
13956 * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
13957 min_profitable_iters, and th as inclusive lower bounds.
13958 Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
13959 (vect_estimate_min_profitable_iters): Return inclusive lower bounds
13960 for min_profitable_iters and min_profitable_estimate.
13961 (vect_transform_loop): Treat th as an inclusive lower bound.
13962 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
13963
13964 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
13965
13966 PR target/81033
13967 * config/darwin.c (darwin_function_switched_text_sections):
13968 Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
13969 in two pieces, and suppress the use of buf.
13970
13971 2017-07-03 Nathan Sidwell <nathan@acm.org>
13972
13973 * hash-table.h (hash_table_mod1): Fix indentation.
13974
13975 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
13976
13977 PR middle-end/81290
13978 * predict.c (force_edge_cold): Be more careful about propagation
13979 backward.
13980 * profile-count.h (profile_probability::guessed,
13981 profile_probability::fdo, profile_count::guessed, profile_count::fdo):
13982 New.
13983 * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
13984
13985 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com>
13986
13987 * doc/invoke.texi (rcpc architecture extension): Document it.
13988
13989 2017-07-03 Richard Biener <rguenther@suse.de>
13990
13991 PR tree-optimization/60510
13992 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
13993 the scalar reduction PHI and use it.
13994 (vectorizable_reduction): Properly guard the single_defuse_cycle
13995 path for non-SLP reduction chains where we cannot use it.
13996 Rework reduc_def/index and vector type deduction. Rework
13997 vector operand gathering during reduction op code-gen.
13998 * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
13999 chains dissolve the chain and leave it to non-SLP reduction
14000 handling.
14001
14002 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
14003
14004 * tree-data-ref.h (dr_alignment): Declare.
14005 * tree-data-ref.c (dr_alignment): New function.
14006 * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
14007 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
14008 set it.
14009 * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
14010
14011 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
14012
14013 * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
14014 and base_misalignment fields.
14015 (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
14016 * tree-data-ref.c: Include builtins.h.
14017 (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
14018 * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
14019 (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
14020 * tree-vect-data-refs.c: Include tree-cfg.h.
14021 (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
14022 fields instead of calculating an alignment here.
14023 (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new
14024 innermost_loop_behavior fields.
14025
14026 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
14027
14028 * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
14029 field.
14030 (DR_STEP_ALIGNMENT): New macro.
14031 * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
14032 * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
14033 (create_data_ref): Print it.
14034 * tree-vect-stmts.c (vectorizable_load): Use the step alignment
14035 to tell whether the step preserves vector (mis)alignment.
14036 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
14037 Move the check for an integer step and generalise to all INTEGER_CST.
14038 (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
14039 Print the outer step alignment.
14040
14041 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
14042
14043 * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
14044 with offset_alignment.
14045 (DR_ALIGNED_TO): Delete.
14046 (DR_OFFSET_ALIGNMENT): New macro.
14047 * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
14048 (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
14049 * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
14050 (create_data_ref): Likewise.
14051 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
14052 (vect_analyze_data_refs): Likewise.
14053 * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
14054 creating dummy innermost behavior.
14055
14056 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
14057
14058 * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
14059 with a "innermost_loop_behavior *" and refeence tree.
14060 * tree-data-ref.c (dr_analyze_innermost): Likewise.
14061 (create_data_ref): Update call accordingly.
14062 * tree-predcom.c (find_looparound_phi): Likewise.
14063
14064 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
14065
14066 * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
14067 fields with dr_wrt_vec_loop.
14068 (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
14069 (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
14070 (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
14071 (vect_dr_behavior): New function.
14072 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
14073 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
14074 vect_dr_behavior. Use a step_preserves_misalignment_p boolean to
14075 track whether the step preserves the misalignment.
14076 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
14077 Use vect_dr_behavior.
14078 (vect_setup_realignment): Update call accordingly.
14079 (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior.
14080 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
14081 call to vect_create_addr_base_for_vector_ref.
14082 (vect_create_cond_for_align_checks): Likewise.
14083 * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
14084 STMT_VINFO_DR_WRT_VEC_LOOP as a block.
14085 (vect_recog_mask_conversion_pattern): Likewise.
14086 * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
14087 (new_stmt_vec_info): Remove redundant zeroing.
14088
14089 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
14090
14091 * common/config/arm/arm-common.c (arm_be8_option): New function.
14092 * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
14093 (ISA_ARMv6): Add isa_bit_be8.
14094 * config/arm/arm.h (arm_be8_option): Add prototype.
14095 (BE8_SPEC_FUNCTION): New define.
14096 (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
14097 * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
14098 (mlittle-endian): Similarly.
14099 (mbe8, mbe32): New options.
14100 * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
14101 * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
14102
14103 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
14104
14105 * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
14106
14107 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
14108
14109 * tree-cfgcleanup.c (want_merge_blocks_p): New function.
14110 (cleanup_tree_cfg_bb): Use it.
14111 * profile-count.h (profile_count::of_for_merging, profile_count::merge):
14112 New functions.
14113 * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
14114
14115 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
14116
14117 PR bootstrap/81285
14118 * loop-doloop.c (add_test): Update profile.
14119
14120 2017-07-03 Martin Liska <mliska@suse.cz>
14121
14122 PR sanitize/81040
14123 * sanopt.c (rewrite_usage_of_param): New function.
14124 (sanitize_rewrite_addressable_params): Likewise.
14125 (pass_sanopt::execute): Call rewrite_usage_of_param.
14126
14127 2017-07-03 Richard Biener <rguenther@suse.de>
14128
14129 * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
14130 back to using VIEW_CONVERT_EXPR.
14131
14132 2017-07-03 Martin Liska <mliska@suse.cz>
14133
14134 PR other/78366
14135 * doc/extend.texi: Document when a resolver function is
14136 generated for target_clones.
14137
14138 2017-07-03 Martin Liska <mliska@suse.cz>
14139
14140 * asan.c (asan_emit_stack_protection): Unpoison just red zones
14141 and shadow memory of auto variables which are subject of
14142 use-after-scope sanitization.
14143 (asan_expand_mark_ifn): Add do set only when is_poison.
14144
14145 2016-07-03 Richard Biener <rguenther@suse.de>
14146
14147 * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
14148 reduction PHIs.
14149 (vect_force_simple_reduction): Record reduction def -> phi mapping.
14150 (vectorizable_reduction): Perform reduction PHI creation when
14151 visiting a reduction PHI and adjust and simplify code generation
14152 phase of the reduction op. Cache dts, use fold_binary, not fold_build2.
14153 (vect_transform_loop): Visit reduction PHIs.
14154 * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
14155 defs into the SLP tree.
14156 (vect_build_slp_tree): Reduction defs terminate the recursion.
14157 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
14158 of reduction defs.
14159 (vect_get_vec_defs_for_stmt_copy): Export.
14160 (vect_get_vec_defs): Likewise.
14161 * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
14162 purpose.
14163 (vect_get_vec_defs_for_stmt_copy): Declare.
14164 (vect_get_vec_defs): Likewise.
14165
14166 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
14167
14168 * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
14169 parameter with a "loop" parameter and use it instead of the
14170 loop containing DR_STMT. Don't check simple_iv when doing
14171 BB analysis. Describe the two analysis modes in the comment.
14172
14173 2017-07-03 Tom de Vries <tom@codesourcery.com>
14174
14175 PR tree-optimization/69468
14176 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
14177 (find_same_succ_bb): Handle ignore_edge_flags.
14178
14179 2017-07-03 Tom de Vries <tom@codesourcery.com>
14180
14181 PR tree-optimization/81192
14182 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
14183 hash.
14184 (same_succ::equal): Don't find bbs to be equal if bb->loop_father
14185 differs.
14186 (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
14187
14188 2017-07-03 Tom de Vries <tom@codesourcery.com>
14189
14190 PR tree-optimization/81192
14191 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
14192 BB_SAME_SUCC (bb) == NULL.
14193
14194 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
14195
14196 * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
14197 consistency.
14198
14199 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
14200
14201 * dumpfile.c: Include profile-count.h
14202 * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
14203 update profile.
14204 (insert_cond_bb): Update profile.
14205 * tree-cfg.h (insert_cond_bb): Update prototype.
14206 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
14207 * tree-dump.c: Do not include tree-cfg.
14208
14209 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
14210
14211 * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
14212
14213 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
14214
14215 * expect.c (dw2_build_landing_pads): Update profile of the landing pad
14216 bb.
14217
14218 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
14219
14220 * tree-complex.c (expand_complex_div_wide): update profile.
14221
14222 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
14223 Alan Hayward <alan.hayward@arm.com>
14224 David Sherwood <david.sherwood@arm.com>
14225
14226 * Makefile.in (MACHMODE_H): Remove insn-modes.h
14227 (CORETYPES_H): New define.
14228 (MOSTLYCLEANFILES): Add insn-modes-inline.h.
14229 (insn-modes-inline.h, s-modes-inline-h): New rules.
14230 (generated_files): Add insn-modes-inline.h.
14231 (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
14232 (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
14233 (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
14234 (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
14235 (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
14236 (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
14237 (build/gencodes.o, build/genconditions.o): Likewise.
14238 (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
14239 (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
14240 (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
14241 (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
14242 (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
14243 (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
14244 * coretypes.h: Include everything up to real.h for generators.
14245 Include insn-modes.h first. Include wide-int-print.h after
14246 wide-int.h. Include insn-modes-inline.h and then machmode.h.
14247 * machmode.h: Don't include insn-modes.h here.
14248 * function-tests.c: Remove includes of signop.h, machmode.h,
14249 double-int.h and wide-int.h.
14250 * rtl.h: Likewise.
14251 * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
14252 and wide-int.h.
14253 * optc-save-gen.awk: Likewise.
14254 * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
14255 * godump.c: Remove include of wide-int-print.h.
14256 * pretty-print.h: Likewise.
14257 * wide-int-print.cc: Likewise.
14258 * wide-int.cc: Likewise.
14259 * hash-map-tests.c: Remove include of signop.h.
14260 * hash-set-tests.c: Likewise.
14261 * rtl-tests.c: Likewise.
14262 * mkconfig.sh: Remove include of machmode.h.
14263 * genmodes.c (emit_insn_modes_h): Split emission of inline functions
14264 into...
14265 (emit_insn_modes_inline_h): ...this new function. Emit the code
14266 into an insn-modes-inline.h header file, adding appropriate
14267 include guards and end comments.
14268 (emit_insn_modes_c_header): Remove include of machmode.h.
14269 (emit_min_insn_modes_c_header): Include coretypes.h rather than
14270 machmode.h.
14271 (main): Handle -i flag and call emit_insn_modes_inline_h when
14272 it is passed.
14273
14274 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
14275
14276 * tree-ssa-strlen.c (strinfo): Rename the length field to
14277 nonzero_chars. Add a full_string_p field.
14278 (compare_nonzero_chars, zero_length_string_p): New functions.
14279 (get_addr_stridx): Add an offset_out parameter.
14280 Use compare_nonzero_chars.
14281 (get_stridx): Update accordingly. Use compare_nonzero_chars.
14282 (new_strinfo): Update after above changes to strinfo.
14283 (set_endptr_and_length): Set full_string_p.
14284 (get_string_length): Update after above changes to strinfo.
14285 (unshare_strinfo): Update call to new_strinfo.
14286 (maybe_invalidate): Likewise.
14287 (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
14288 Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars
14289 as a uhwi instead of an shwi. Update after above changes to
14290 strinfo and new_strinfo.
14291 (zero_length_string): Assert that chainsi contains full strings.
14292 Use zero_length_string_p. Update call to new_strinfo.
14293 (adjust_related_strinfos): Update after above changes to strinfo.
14294 Copy full_string_p from origsi.
14295 (adjust_last_stmt): Use zero_length_string_p.
14296 (handle_builtin_strlen): Update after above changes to strinfo and
14297 new_strinfo. Install the lhs as the string length if the previous
14298 entry didn't describe a full string.
14299 (handle_builtin_strchr): Update after above changes to strinfo
14300 and new_strinfo.
14301 (handle_builtin_strcpy): Likewise.
14302 (handle_builtin_strcat): Likewise.
14303 (handle_builtin_malloc): Likewise.
14304 (handle_pointer_plus): Likewise.
14305 (handle_builtin_memcpy): Likewise. Track nonzero characters
14306 that aren't necessarily followed by a nul terminator.
14307 (handle_char_store): Likewise.
14308
14309 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
14310
14311 PR tree-optimization/80769
14312 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
14313 for malloc and calloc. Document the new invariant that all related
14314 strinfos have delayed lengths or none do.
14315 (verify_related_strinfos): Move earlier in file.
14316 (set_endptr_and_length): New function, split out from...
14317 (get_string_length): ...here. Also set the lengths of related
14318 strinfos.
14319 (zero_length_string): Assert that chainsi has known (rather than
14320 delayed) lengths.
14321 (adjust_related_strinfos): Likewise.
14322
14323 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
14324
14325 PR tree-optimization/81136
14326 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
14327 assert that two references with the same misalignment have the same
14328 compile-time misalignment if those compile-time misalignments
14329 are known.
14330
14331 2017-07-01 Andi Kleen <ak@linux.intel.com>
14332
14333 * print-tree.c (print_node): Print all attributes.
14334
14335 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
14336
14337 * cfg.c (scale_bbs_frequencies): New function.
14338 * cfg.h (scale_bbs_frequencies): Declare it.
14339 * cfgloopanal.c (single_likely_exit): Cleanup.
14340 * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
14341 as parameter.
14342 (scale_loop_profile): Likewise.
14343 (loop_version): Likewise.
14344 (create_empty_loop_on_edge): Update.
14345 * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
14346 scale_loop_frequencies, scale_loop_profile, loopify,
14347 loop_version): Update prototypes.
14348 * modulo-sched.c (sms_schedule): Update.
14349 * predict.c (unlikely_executed_edge_p): Also check probability.
14350 (probably_never_executed_edge_p): Fix typo.
14351 * tree-if-conv.c (version_loop_for_if_conversion): Update.
14352 * tree-parloops.c (gen_parallel_loop): Update.
14353 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
14354 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
14355 * tree-ssa-loop-split.c (split_loop): Update.
14356 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
14357 * tree-vect-loop-manip.c (vect_do_peeling): Update.
14358 (vect_loop_versioning): Update.
14359 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
14360
14361 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
14362
14363 * trans-mem.c (split_bb_make_tm_edge): Update profile.
14364
14365 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
14366
14367 * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
14368 to keep profile consistent.
14369
14370 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
14371
14372 * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
14373 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
14374 * profile-count.h (max_safe_multiplier): Make unsigned.
14375 (profile_count::guessed_zero): New.
14376
14377 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
14378
14379 * bb-reorder.c (fix_up_crossing_landing_pad,
14380 fix_crossing_conditional_branches): Use make_single_succ_edge
14381 to keep profile consistent.
14382
14383 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
14384
14385 * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
14386 to update profile.
14387
14388 2017-07-01 Jakub Jelinek <jakub@redhat.com>
14389
14390 PR sanitizer/81262
14391 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
14392 the right scopes, make sure cond_jump isn't preserved between multiple
14393 iterations. Search for fallthru edge whenever there are 3+ edges and
14394 use find_fallthru_edge for it.
14395
14396 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
14397
14398 Patch by Alexander Monakov <amonakov@ispras.ru>
14399 * sel-sched-ir.c (compute_succs_info): Handle uninitialized
14400 probabilities consistently.
14401
14402 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
14403
14404 * pa.c (pa_expand_compare_and_swap_loop): Update call of
14405 emit_cmp_and_jump_insns.
14406
14407 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
14408
14409 PR ipa/81261
14410 * tree-inline.c (expand_call_inline): Combine profile statuses.
14411
14412 2017-06-30 Andrew Pinski <apinski@cavium.com>
14413
14414 * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
14415 fold_stmt returned true.
14416
14417 2017-06-30 Nathan Sidwell <nathan@acm.org>
14418
14419 * ggc.h (empty_string): Delete.
14420 * cfgexpand.c (expand_asm_stmt): Use plain "".
14421 * optabs.c (expand_asm_memory_barrier): Likewise.
14422 * stringpool.c (empty_string): Delete.
14423 (digit_vector, digit_string): Delete.
14424 (ggc_alloc_string): Use plain "", don't optimize single digit
14425 strings. Use ggc_alloc_atomic.
14426
14427 2017-06-30 Richard Earnshaw <rearnsha@arm.com>
14428
14429 * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
14430 comparison set and one other set, use the cost of the non-comparison
14431 set.
14432
14433 2017-06-30 Nathan Sidwell <nathan@acm.org>
14434
14435 * ggc.h: Replace all 'static inline' with plain 'inline'. Fix
14436 some formatting.
14437
14438 2017-06-30 Peter Bergner <bergner@vnet.ibm.com>
14439
14440 * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
14441 loops. Remove now unneeded calls to gimple_switch_set_label() that
14442 just set removed labels to NULL_TREE.
14443
14444 2017-06-30 Aldy Hernandez <aldyh@redhat.com>
14445
14446 * tree-ssanames.c (set_range_info_raw): Abstract from ...
14447 (set_range_info): ...here. Only call set_range_info_raw if domain
14448 is useful.
14449 (set_nonzero_bits): Call set_range_info_raw.
14450 * tree-ssanames.h (set_range_info_raw): New.
14451
14452 2017-06-30 Jakub Jelinek <jakub@redhat.com>
14453
14454 PR target/81225
14455 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
14456 V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
14457 of nonimmediate_operand and <store_mask_constraint> instead of m
14458 for the input operand. For V8FI iterator, always split if input
14459 is a MEM. For V16FI and V8SF_256 iterators, don't test if both
14460 operands are MEM if <mask_applied>. For VI4F_256 iterator, use
14461 <store_mask_predicate> instead of register_operand and
14462 <store_mask_constraint> instead of v for the input operand. Make
14463 sure both operands aren't MEMs for if not <mask_applied>.
14464
14465 2017-06-30 Sylvestre Ledru <sylvestre@debian.org>
14466
14467 * lto-wrapper.c (copy_file) Close both file descriptors before
14468 exiting normally.
14469
14470 2017-06-30 Martin Liska <mliska@suse.cz>
14471
14472 PR ipa/81214
14473 * multiple_target.c (create_dispatcher_calls): Make ifunc
14474 also for function that don't have calls or are not referenced.
14475
14476 2017-06-30 Richard Biener <rguenther@suse.de>
14477
14478 * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
14479 analyze the first scalar stmt. Move vector type computation
14480 for the BB case here from ...
14481 * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard
14482 live operation processing in the SLP case properly.
14483
14484 2017-06-30 Richard Biener <rguenther@suse.de>
14485
14486 * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
14487
14488 2017-06-30 Martin Liska <mliska@suse.cz>
14489
14490 PR sanitizer/81021
14491 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
14492 before BUILT_IN_UNWIND_RESUME when ASAN is used.
14493
14494 2017-06-30 Yvan Roux <yvan.roux@linaro.org>
14495
14496 * doc/invoke.texi (AArch64): Add missing options and remove redundant
14497 ones.
14498
14499 2017-06-30 Richard Biener <rguenther@suse.de>
14500
14501 PR tree-optimization/81249
14502 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
14503 condition reduction result to original scalar type.
14504
14505 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14506
14507 * profile-count.h (enum profile_quality): Fix typos and whitespace
14508 issues.
14509
14510 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14511
14512 * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
14513 type for branch probabilities.
14514
14515 2017-06-29 Julian Brown <julian@codesourcery.com>
14516 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
14517
14518 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
14519 * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
14520 (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
14521 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
14522
14523 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
14524
14525 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
14526 check for CC usage into AARCH64_FUSE_CMP_BRANCH.
14527 * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
14528 CC usage from generic code to here.
14529 * sched-deps.c (sched_macro_fuse_insns): Move the condition for
14530 CC usage into the target macros.
14531
14532 2017-06-29 Maya Rashish <coypu@sdf.org>
14533
14534 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
14535 objects.
14536
14537 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
14538
14539 * arm/arm-builtins.c: Include profile-count.h
14540 * except.c (sjlj_emit_function_enter): Use
14541 profile_probability::unlikely.
14542
14543 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
14544
14545 * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
14546 and tocrel_offset be pointer args rather than implicitly using
14547 static versions.
14548 (legitimate_constant_pool_address_p, rs6000_emit_move,
14549 const_load_sequence_p, adjust_vperm): Add local tocrel_base and
14550 tocrel_offset and use in toc_relative_expr_p call.
14551 (print_operand, print_operand_address): Use static tocrel_base_oac
14552 and tocrel_offset_oac.
14553 (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
14554 tocrel_offset_oac.
14555
14556 2017-06-29 Maya Rashish <coypu@sdf.org>
14557
14558 * config/vax/builtins.md (ffssi2_internal): Correct constraint.
14559
14560 2017-06-29 Eric Botcazou <ebotcazou@adacore.com>
14561
14562 * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
14563 objects, take into account only the alignment of 'op0' and 'mode1' if
14564 'op0' is a MEM.
14565
14566 2017-06-29 Steve Ellcey <sellcey@cavium.com>
14567
14568 * ccmp.c (ccmp_tree_comparison_p): New function.
14569 (ccmp_candidate_p): Update to use above function.
14570 (get_compare_parts): New function.
14571 (expand_ccmp_next): Update to use new functions.
14572 (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
14573 new functions.
14574 (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
14575 take mode as argument.
14576 * ccmp.h (expand_ccmp_expr): Add mode as argument.
14577 * expr.c (expand_expr_real_1): Pass mode as argument.
14578
14579 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org>
14580
14581 * combine.c (combine_instructions): Print insns to dump_file, together
14582 with their costs.
14583
14584 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
14585
14586 * asan.c (asan_emit_stack_protection): Update.
14587 (create_cond_insert_point): Update.
14588 * auto-profile.c (afdo_propagate_circuit): Update.
14589 * basic-block.h (struct edge_def): Turn probability to
14590 profile_probability.
14591 (EDGE_FREQUENCY): Update.
14592 * bb-reorder.c (find_traces_1_round): Update.
14593 (better_edge_p): Update.
14594 (sanitize_hot_paths): Update.
14595 * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
14596 (make_single_succ_edge): Update.
14597 (check_bb_profile): Update.
14598 (dump_edge_info): Update.
14599 (update_bb_profile_for_threading): Update.
14600 * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
14601 probabilitycount to 0.
14602 * cfgbuild.c (compute_outgoing_frequencies): Update.
14603 * cfgcleanup.c (try_forward_edges): Update.
14604 (outgoing_edges_match): Update.
14605 (try_crossjump_to_edge): Update.
14606 * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
14607 (expand_gimple_tailcall): Update.
14608 (construct_init_block): Use make_single_succ_edge.
14609 (construct_exit_block): Use make_single_succ_edge.
14610 * cfghooks.c (verify_flow_info): Update.
14611 (redirect_edge_succ_nodup): Update.
14612 (split_edge): Update.
14613 (account_profile_record): Update.
14614 * cfgloopanal.c (single_likely_exit): Update.
14615 * cfgloopmanip.c (scale_loop_profile): Update.
14616 (set_zero_probability): Remove.
14617 (duplicate_loop_to_header_edge): Update.
14618 * cfgloopmanip.h (loop_version): Update prototype.
14619 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
14620 (force_nonfallthru_and_redirect): Update.
14621 (update_br_prob_note): Update.
14622 (rtl_verify_edges): Update.
14623 (purge_dead_edges): Update.
14624 (rtl_lv_add_condition_to_bb): Update.
14625 * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
14626 * cgraphunit.c (init_lowered_empty_function): Update.
14627 (cgraph_node::expand_thunk): Update.
14628 * cilk-common.c: Include profile-count.h
14629 * dojump.c (inv): Remove.
14630 (jumpifnot): Update.
14631 (jumpifnot_1): Update.
14632 (do_jump_1): Update.
14633 (do_jump): Update.
14634 (do_jump_by_parts_greater_rtx): Update.
14635 (do_compare_rtx_and_jump): Update.
14636 * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
14637 do_jump_1. do_compare_rtx_and_jump): Update prototype.
14638 * dwarf2cfi.c: Include profile-count.h
14639 * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
14640 (sjlj_emit_dispatch_table): Likewise.
14641 * explow.c: Include profile-count.h
14642 * expmed.c (emit_store_flag_force): Update.
14643 (do_cmp_and_jump): Update.
14644 * expr.c (compare_by_pieces_d::generate): Update.
14645 (compare_by_pieces_d::finish_mode): Update.
14646 (emit_block_move_via_loop): Update.
14647 (store_expr_with_bounds): Update.
14648 (store_constructor): Update.
14649 (expand_expr_real_2): Update.
14650 (expand_expr_real_1): Update.
14651 * expr.h (try_casesi, try_tablejump): Update prototypes.
14652 * gimple-pretty-print.c (dump_probability): Update.
14653 (dump_profile): New.
14654 (dump_gimple_label): Update.
14655 (dump_gimple_bb_header): Update.
14656 * graph.c (draw_cfg_node_succ_edges): Update.
14657 * hsa-gen.c (convert_switch_statements): Update.
14658 * ifcvt.c (cheap_bb_rtx_cost_p): Update.
14659 (find_if_case_1): Update.
14660 (find_if_case_2): Update.
14661 * internal-fn.c (expand_arith_overflow_result_store): Update.
14662 (expand_addsub_overflow): Update.
14663 (expand_neg_overflow): Update.
14664 (expand_mul_overflow): Update.
14665 (expand_vector_ubsan_overflow): Update.
14666 * ipa-cp.c (good_cloning_opportunity_p): Update.
14667 * ipa-split.c (split_function): Use make_single_succ_edge.
14668 * ipa-utils.c (ipa_merge_profiles): Update.
14669 * loop-doloop.c (add_test): Update.
14670 (doloop_modify): Update.
14671 * loop-unroll.c (compare_and_jump_seq): Update.
14672 (unroll_loop_runtime_iterations): Update.
14673 * lra-constraints.c (lra_inheritance): Update.
14674 * lto-streamer-in.c (input_cfg): Update.
14675 * lto-streamer-out.c (output_cfg): Update.
14676 * mcf.c (adjust_cfg_counts): Update.
14677 * modulo-sched.c (sms_schedule): Update.
14678 * omp-expand.c (expand_omp_for_init_counts): Update.
14679 (extract_omp_for_update_vars): Update.
14680 (expand_omp_ordered_sink): Update.
14681 (expand_omp_for_ordered_loops): Update.
14682 (expand_omp_for_generic): Update.
14683 (expand_omp_for_static_nochunk): Update.
14684 (expand_omp_for_static_chunk): Update.
14685 (expand_cilk_for): Update.
14686 (expand_omp_simd): Update.
14687 (expand_omp_taskloop_for_outer): Update.
14688 (expand_omp_taskloop_for_inner): Update.
14689 * omp-simd-clone.c (simd_clone_adjust): Update.
14690 * optabs.c (expand_doubleword_shift): Update.
14691 (expand_abs): Update.
14692 (emit_cmp_and_jump_insn_1): Update.
14693 (expand_compare_and_swap_loop): Update.
14694 * optabs.h (emit_cmp_and_jump_insns): Update prototype.
14695 * predict.c (predictable_edge_p): Update.
14696 (edge_probability_reliable_p): Update.
14697 (set_even_probabilities): Update.
14698 (combine_predictions_for_insn): Update.
14699 (combine_predictions_for_bb): Update.
14700 (propagate_freq): Update.
14701 (estimate_bb_frequencies): Update.
14702 (force_edge_cold): Update.
14703 * profile-count.c (profile_count::dump): Add missing space into dump.
14704 (profile_count::debug): Add newline.
14705 (profile_count::differs_from_p): Explicitly convert to unsigned.
14706 (profile_count::stream_in): Update.
14707 (profile_probability::dump): New member function.
14708 (profile_probability::debug): New member function.
14709 (profile_probability::differs_from_p): New member function.
14710 (profile_probability::differs_lot_from_p): New member function.
14711 (profile_probability::stream_in): New member function.
14712 (profile_probability::stream_out): New member function.
14713 * profile-count.h (profile_count_quality): Rename to ...
14714 (profile_quality): ... this one.
14715 (profile_probability): New.
14716 (profile_count): Update.
14717 * profile.c (compute_branch_probabilities): Update.
14718 * recog.c (peep2_attempt): Update.
14719 * sched-ebb.c (schedule_ebbs): Update.
14720 * sched-rgn.c (find_single_block_region): Update.
14721 (compute_dom_prob_ps): Update.
14722 (schedule_region): Update.
14723 * sel-sched-ir.c (compute_succs_info): Update.
14724 * stmt.c (struct case_node): Update.
14725 (do_jump_if_equal): Update.
14726 (get_outgoing_edge_probs): Update.
14727 (conditional_probability): Update.
14728 (emit_case_dispatch_table): Update.
14729 (expand_case): Update.
14730 (expand_sjlj_dispatch_table): Update.
14731 (emit_case_nodes): Update.
14732 * targhooks.c: Update.
14733 * tracer.c (better_p): Update.
14734 (find_best_successor): Update.
14735 * trans-mem.c (expand_transaction): Update.
14736 * tree-call-cdce.c: Update.
14737 * tree-cfg.c (gimple_split_edge): Upate.
14738 (move_sese_region_to_fn): Upate.
14739 * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
14740 * tree-eh.c (lower_resx): Upate.
14741 (cleanup_empty_eh_move_lp): Upate.
14742 * tree-if-conv.c (version_loop_for_if_conversion): Update.
14743 * tree-inline.c (copy_edges_for_bb): Update.
14744 (copy_cfg_body): Update.
14745 * tree-parloops.c (gen_parallel_loop): Update.
14746 * tree-profile.c (gimple_gen_ic_func_profiler): Update.
14747 (gimple_gen_time_profiler): Update.
14748 * tree-ssa-dce.c (remove_dead_stmt): Update.
14749 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
14750 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
14751 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
14752 (unloop_loops): Update.
14753 (try_peel_loop): Update.
14754 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
14755 * tree-ssa-loop-split.c (connect_loops): Update.
14756 (split_loop): Update.
14757 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
14758 (hoist_guard): Update.
14759 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
14760 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
14761 (value_replacement): Update.
14762 * tree-ssa-reassoc.c (branch_fixup): Update.
14763 * tree-ssa-tail-merge.c (replace_block_by): Update.
14764 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
14765 (create_edge_and_update_destination_phis): Update.
14766 (compute_path_counts): Update.
14767 (recompute_probabilities): Update.
14768 (update_joiner_offpath_counts): Update.
14769 (freqs_to_counts_path): Update.
14770 (duplicate_thread_path): Update.
14771 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
14772 (struct switch_conv_info): Update.
14773 (gen_inbound_check): Update.
14774 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
14775 (vect_do_peeling): Update.
14776 (vect_loop_versioning): Update.
14777 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
14778 (optimize_mask_stores): Update.
14779 * ubsan.c (ubsan_expand_null_ifn): Update.
14780 * value-prof.c (gimple_divmod_fixed_value): Update.
14781 (gimple_divmod_fixed_value_transform): Update.
14782 (gimple_mod_pow2): Update.
14783 (gimple_mod_pow2_value_transform): Update.
14784 (gimple_mod_subtract): Update.
14785 (gimple_mod_subtract_transform): Update.
14786 (gimple_ic): Update.
14787 (gimple_stringop_fixed_value): Update.
14788 (gimple_stringops_transform): Update.
14789 * value-prof.h: Update.
14790
14791 2017-06-29 Carl Love <cel@us.ibm.com>
14792
14793 * config/rs6000/rs6000-c.c: Add support for built-in functions
14794 vector signed int vec_signed (vector float);
14795 vector signed long long vec_signed (vector double);
14796 vector signed int vec_signed2 (vector double, vector double);
14797 vector signed int vec_signede (vector double);
14798 vector signed int vec_signedo (vector double);
14799 * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
14800 instruction generator.
14801 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
14802 UNSPEC_VSX_VSIGNED2): Add UNSPECS.
14803 (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
14804 Add define_insn.
14805 (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
14806 vunsignede_v2df): Add define_expands.
14807 * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
14808 VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
14809 VEC_UNSIGNEDO): Add definitions.
14810 * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
14811 UNSPEC_VSX_VSIGNED2): Add UNSPECs.
14812 (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
14813 (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
14814 vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
14815 * config/rs6000/altivec.h (vec_signed, vec_signed2,
14816 vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
14817 vec_unsignede, vec_unsignedo): Add builtin defines.
14818 * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
14819 declaration.
14820 * doc/extend.texi: Update the built-in documentation file for the
14821 new built-in functions.
14822
14823 2017-06-29 Richard Biener <rguenther@suse.de>
14824
14825 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
14826 reduction chains to LOOP_VINFO_REDUCTIONS.
14827 * tree-vect-slp.c (vect_analyze_slp): Continue looking for
14828 SLP reductions after processing reduction chains.
14829
14830 2017-06-29 Nathan Sidwell <nathan@acm.org>
14831
14832 * builtins.c (fold_builtin_FUNCTION): Use
14833 lang_hooks.decl_printable_name.
14834
14835 2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
14836
14837 PR middle-end/81194
14838 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
14839 with only one label.
14840 * stmt.c (expand_case): Assert NCASES is greater than one.
14841
14842 2017-06-29 Richard Biener <rguenther@suse.de>
14843
14844 * tree-cfg.c (group_case_labels_stmt): Return whether we changed
14845 anything.
14846 (group_case_labels): Likewise.
14847 (find_taken_edge): Push sanity checking on val to workers...
14848 (find_taken_edge_cond_expr): ... here
14849 (find_taken_edge_switch_expr): ... and here, handle cases
14850 with just a default label.
14851 * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
14852 (group_case_labels): Likewise.
14853 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
14854 group_case_labels does anything cleanup the CFG again.
14855
14856 2017-06-29 Bin Cheng <bin.cheng@arm.com>
14857
14858 PR tree-optimization/81196
14859 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
14860 exit condition comparing two IVs.
14861
14862 2017-06-29 Richard Earnshaw <rearnsha@arm.com>
14863
14864 * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
14865 profile to the dummy entry at the end of the list of architectures.
14866 * config/arm/arm-cpu-cdata.h: Regenerated.
14867
14868 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14869 Michael Collison <michael.collison@arm.com>
14870
14871 PR target/70119
14872 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
14873 New pattern.
14874 (*aarch64_reg_<mode>3_neg_mask2): New pattern.
14875 (*aarch64_reg_<mode>3_minus_mask): New pattern.
14876 (*aarch64_<optab>_reg_di3_mask2): New pattern.
14877 * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
14878 of shift when the shift amount is masked with constant equal to
14879 the size of the mode.
14880 * config/aarch64/predicates.md (subreg_lowpart_operator): New
14881 predicate.
14882
14883 2017-06-29 Martin Liska <mliska@suse.cz>
14884
14885 * config/i386/i386.opt: Change range from [1,5] to [0,5].
14886
14887 2017-06-29 Yury Gribov <tetra2005@gmail.com>
14888
14889 PR bootstrap/80565
14890 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
14891 code.
14892 * ipa-inline.h
14893 (edge_growth_cache_entry::edge_growth_cache_entry): New
14894 function.
14895 (reset_edge_growth_cache): Update to use constructor.
14896
14897 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14898
14899 * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
14900 (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
14901 (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
14902
14903 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com>
14904
14905 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
14906 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
14907
14908 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
14909
14910 * config.gcc (*-linux-musl*): Add t-musl tmake_file.
14911 (*-linux-uclibc*): Add t-uclibc tmake_file.
14912 * config/t-musl: New.
14913 * config/t-uclibc: New.
14914
14915 2017-06-28 Richard Earnshaw <rearnsha@arm.com>
14916
14917 * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
14918 context.
14919 (gen_comm_data): Emit architectural setting of arch_prof.
14920 * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
14921 profile.
14922 (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
14923 (armv8-m.base, armv8-m.main): Likewise.
14924 * arm-protos.h (arm_build_target): Add profile field.
14925 (arch_option): Likewise.
14926 * config/arm/arm.c (arm_configure_build_target): Copy the profile to
14927 the active target.
14928 * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
14929 arm_active_target.profile.
14930
14931 2017-06-28 Richard Biener <rguenther@suse.de>
14932
14933 PR middle-end/81227
14934 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
14935 TYPE_OVERFLOW_WRAPS.
14936 * match.pd (negate_expr_p): Likewise.
14937 * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
14938 fold_build2, not fold_binary.
14939
14940 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
14941
14942 * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
14943 Convert memory address to Pmode.
14944 (aarch64_print_operand): Assert MEM operands are always Pmode.
14945
14946 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
14947
14948 PR target/79665
14949 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
14950 Remove redundant if.
14951 (aarch_forward_to_shift_is_not_shifted_reg): Remove.
14952 * config/arm/aarch-common-protos.h
14953 (aarch_forward_to_shift_is_not_shifted_re): Remove.
14954 * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
14955
14956 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
14957
14958 PR ipa/81238
14959 * multiple_target.c (create_dispatcher_calls): Set the default
14960 clone to be static, not public.
14961
14962 2017-06-28 Richard Biener <rguenther@suse.de>
14963
14964 * tree-vect-loop.c (vectorizable_reduction): Move special
14965 cond reduction IV var creation ...
14966 (vect_create_epilog_for_reduction): ... here. Remove induction_index
14967 parameter. Use STMT_VINFO_VECTYPE.
14968 * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
14969 constant_p.
14970
14971 2017-06-28 Martin Liska <mliska@suse.cz>
14972
14973 PR ipa/81128
14974 * ipa-visibility.c (non_local_p): Handle visibility.
14975
14976 2017-06-28 Martin Liska <mliska@suse.cz>
14977
14978 PR driver/79659
14979 * common.opt: Add IntegerRange to various options.
14980 * opt-functions.awk (integer_range_info): New function.
14981 * optc-gen.awk: Add integer_range_info to cl_options struct.
14982 * opts-common.c (decode_cmdline_option): Handle
14983 CL_ERR_INT_RANGE_ARG.
14984 (cmdline_handle_error): Likewise.
14985 * opts.c (print_filtered_help): Show valid interval in
14986 when --help is provided.
14987 * opts.h (struct cl_option): Add range_min and range_max fields.
14988 * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
14989
14990 2017-06-28 Marc Glisse <marc.glisse@inria.fr>
14991
14992 * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
14993 (x * C EQ/NE y * C): New transformation.
14994
14995 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org>
14996
14997 * genmultilib (combination_space): Accept '+' in option names.
14998
14999 2017-06-28 Martin Liska <mliska@suse.cz>
15000
15001 PR sanitizer/81224
15002 * asan.c (instrument_derefs): Bail out inner references
15003 that are hard register variables.
15004
15005 2017-06-28 Jakub Jelinek <jakub@redhat.com>
15006
15007 PR target/81175
15008 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
15009 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
15010
15011 2017-06-28 Richard Biener <rguenther@suse.de>
15012
15013 * tree-vectorizer.h (vect_get_vec_defs): Remove.
15014 (vect_get_slp_defs): Adjust.
15015 * tree-vect-loop.c (get_initial_defs_for_reduction): Split
15016 out from ...
15017 * tree-vect-slp.c (vect_get_constant_vectors): ... here and
15018 simplify.
15019 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
15020 get_initial_defs_for_reduction instead of vect_get_vec_defs.
15021 (vectorizable_reduction): Adjust.
15022 * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
15023 handling.
15024 (vect_get_slp_defs): Likewise.
15025 * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
15026 (vectorizable_bswap): Adjust.
15027 (vectorizable_call): Likewise.
15028 (vectorizable_conversion): Likewise.
15029 (vectorizable_assignment): Likewise.
15030 (vectorizable_shift): Likewise.
15031 (vectorizable_operation): Likewise.
15032 (vectorizable_store): Likewise.
15033 (vectorizable_condition): Likewise.
15034 (vectorizable_comparison): Likewise.
15035
15036 2017-06-28 Michael Collison <michael.collison@arm.com>
15037
15038 PR target/68535
15039 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
15040 set of base_reg
15041 (arm_gen_movmemqi): Removed unused variable 'i'.
15042 Convert 'for' loop into 'while' loop.
15043 (arm_expand_prologue): Remove last unnecessary set of insn.
15044 (thumb_pop): Remove unused variable 'pushed_words'.
15045 (thumb_exit): Remove last unnecessary set of regs_to_pop.
15046
15047 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15048
15049 * config/s390/predicates.md: Use s390_rel_address_ok_p.
15050 * config/s390/s390-protos.h: Add prototype of
15051 s390_rel_address_ok_p.
15052 * config/s390/s390.c (s390_got_symbol): New function.
15053 (s390_rel_address_ok_p): New function.
15054 (legitimize_pic_address): Use s390_rel_address_ok_p.
15055 (s390_load_got): Use s390_got_symbol.
15056 (s390_option_override): Issue error if
15057 -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
15058 * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
15059 New macro.
15060 * config/s390/s390.opt: New option mpic-data-is-text-relative.
15061
15062 2017-06-27 Andrew Pinski <apinski@cavium.com>
15063
15064 * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
15065 (X * copysign (1.0, X)): New pattern.
15066 (X * copysign (1.0, -X)): New pattern.
15067 (copysign (-1.0, CST)): New pattern.
15068
15069 2017-06-27 Joseph Myers <joseph@codesourcery.com>
15070
15071 * genmultilib (combination_space): Remove variable.
15072 Validate reuse rules against regular expression for any sequence
15073 of multilib options in any order.
15074
15075 2017-06-27 Michael Collison <michael.collison@arm.com>
15076
15077 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
15078 call aarch64_split_simd_combine.
15079 * (aarch64_combine_internal<mode>): Delete pattern.
15080 * config/aarch64/aarch64.c (aarch64_split_simd_combine):
15081 Allow register and subreg operands.
15082
15083 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
15084
15085 * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
15086 specific need, just fallback on defaults.
15087 (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
15088
15089 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
15090 Olivier Hainque <hainque@adacore.com>
15091
15092 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
15093 map for 64bits.
15094 (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
15095 targets. Pick a default if no particular attempt applied.
15096 (STACK_CHECK_PROTECT): Double for 64bit targets, which have
15097 larger contexts.
15098
15099 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
15100
15101 * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
15102 (x86_64-wrs-vxworks7): Likewise.
15103
15104 2017-06-27 Marek Polacek <polacek@redhat.com>
15105
15106 PR sanitizer/81223
15107 * ubsan.c (instrument_null): Check get_base_address's result for null.
15108
15109 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
15110
15111 * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
15112
15113 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
15114
15115 * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
15116 BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
15117 (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
15118 BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
15119 New function types.
15120 * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
15121 BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
15122 BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
15123 BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
15124 BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
15125 BUILT_IN_FEUPDATEENV): New builtins.
15126 * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
15127 TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
15128 * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
15129 fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
15130 macros.
15131 (builtin_structptr_types): Adjust size.
15132 * tree.c (builtin_structptr_types): Add four entries.
15133
15134 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
15135 Olivier Hainque <hainque@adacore.com>
15136
15137 * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
15138 (TLS_SYM): New local macro, forcing reference to __tls__ on
15139 link command lines for VxWorks 7 RTPs, triggering initialization
15140 of tlsLib.
15141 (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
15142 OS features TLS support, true for RTPs on VxWorks 7.
15143 * config/vxworks.c (vxworks_override_options): Setup emutls
15144 accordingly.
15145
15146 2017-06-27 Jakub Jelinek <jakub@redhat.com>
15147
15148 * predict.c (test_prediction_value_range): Use -1U instead of -1
15149 to avoid narrowing conversion warning.
15150 * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
15151 to avoid narrowing conversion warning.
15152 * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
15153 -1.
15154 * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
15155
15156 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
15157
15158 * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
15159 64bit configurations.
15160 (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
15161 (SIZE_TYPE): Likewise.
15162 * config/vxworks.c (vxworks_emutls_var_fields): Use
15163 long_unsigned_type_node instead of unsigned_type_node as the offset
15164 field type, which is "pointer" mode in emutls.c.
15165
15166 2017-06-27 Jakub Jelinek <jakub@redhat.com>
15167
15168 PR sanitizer/81209
15169 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
15170
15171 PR middle-end/81207
15172 * gimple-fold.c (replace_call_with_call_and_fold): Handle
15173 gimple_vuse copying separately from gimple_vdef copying.
15174
15175 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15176
15177 * value-prof.c (free_hist): Remove call to memset and the enclosing if
15178 condition.
15179
15180 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
15181 Olivier Hainque <hainque@adacore.com>
15182
15183 * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
15184 for all vxworks7 targets.
15185 * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
15186 (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
15187 (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
15188 variations for VX6/VX7 and 32/64bits later on in ...
15189 (VXWORKS_LIB_SPEC): Leverage new macros.
15190 (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
15191 as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
15192
15193 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
15194
15195 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
15196 _VX_TOOL_FAMILY and _VX_TOOL to gnu.
15197
15198 2017-06-26 Carl Love <cel@us.ibm.com>
15199
15200 * config/rs6000/rs6000-c.c: Add support for built-in functions
15201 vector bool char vec_reve (vector bool char);
15202 vector signed char vec_reve (vector signed char);
15203 vector unsigned char vec_reve (vector unsigned char);
15204 vector bool int vec_reve (vector bool int);
15205 vector signed int vec_reve (vector signed int);
15206 vector unsigned int vec_reve (vector unsigned int);
15207 vector bool long long vec_reve (vector bool long long);
15208 vector signed long long vec_reve (vector signed long long);
15209 vector unsigned long long vec_reve (vector unsigned long long);
15210 vector bool short vec_reve (vector bool short);
15211 vector signed short vec_reve (vector signed short);
15212 vector double vec_reve (vector double);
15213 vector float vec_reve (vector float);
15214 * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
15215 VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
15216 * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
15217 (altivec_vreve): New pattern.
15218 * config/rs6000/altivec.h (vec_reve): New define.
15219 * doc/extend.texi (vec_rev): Update the built-in documentation file
15220 for the new built-in functions.
15221
15222 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15223
15224 PR tree-optimization/71815
15225 * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
15226 function.
15227 (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
15228 has_single_use.
15229 (slsr_process_phi): Likewise.
15230 (replace_uncond_cands_and_profitable_phis): Don't replace a
15231 multiply candidate with a stride of 1 (copy or cast).
15232 (phi_incr_cost): Call uses_consumed_by_stmt rather than
15233 has_single_use.
15234 (lowest_cost_path): Likewise.
15235 (total_savings): Likewise.
15236
15237 2017-06-26 Richard Biener <rguenther@suse.de>
15238
15239 PR target/81175
15240 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
15241 Use def_builtin_pure for all gather builtins.
15242
15243 2017-06-26 Richard Biener <rguenther@suse.de>
15244
15245 PR tree-optimization/81203
15246 * tree-tailcall.c (find_tail_calls): Do not move stmts into
15247 non-dominating BBs.
15248
15249 2017-06-26 Marek Polacek <polacek@redhat.com>
15250
15251 PR c/80116
15252 * doc/invoke.texi: Document -Wmultistatement-macros.
15253
15254 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
15255
15256 * doc/sourcebuild.texi (ARM-specific attributes): Document new
15257 arm_neon_ok_no_float_abi effective target.
15258
15259 2017-06-26 Richard Biener <rguenther@suse.de>
15260
15261 PR tree-optimization/80928
15262 * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
15263 (copy_bbs): Set BB_DUPLICATED flag early.
15264 (execute_on_growing_pred): Do not execute for BB_DUPLICATED
15265 marked blocks.
15266 (execute_on_shrinking_pred): Likewise.
15267 * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
15268 BB_DUPLICATED blocks.
15269 * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
15270 iterate over all PHIs considering removal of *gsi.
15271
15272 2017-06-23 Jim Wilson <jim.wilson@linaro.org>
15273
15274 * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
15275 qdf24xx.
15276
15277 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
15278
15279 * config/rs6000/rs6000-string.c: (expand_block_clear,
15280 do_load_for_compare, select_block_compare_mode,
15281 compute_current_alignment, expand_block_compare,
15282 expand_strncmp_align_check, expand_strn_compare,
15283 expand_block_move, rs6000_output_load_multiple)
15284 Move functions related to string/block move/compare
15285 to a separate file.
15286 * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
15287 * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
15288 for this function which is now used in two files.
15289 * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
15290 * config.gcc: Add rs6000-string.o to extra_objs for
15291 targets powerpc*-*-* and rs6000*-*-*.
15292
15293 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
15294
15295 PR target/80510
15296 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
15297 32-bit, since indexed is not valid for DImode.
15298 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
15299 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
15300 (define_peephole2 for Altivec d-form load): Add 32-bit support.
15301 (define_peephole2 for Altivec d-form store): Likewise.
15302
15303 PR ipa/81185
15304 * multiple_target.c (create_dispatcher_calls): Only create the
15305 dispatcher call if the function is the default clone of a
15306 versioned function.
15307
15308 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
15309
15310 PR middle-end/80902
15311 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
15312 a call, force the call to not be a tail call.
15313
15314 2017-06-23 Jeff Law <law@redhat.com>
15315
15316 * doc/contrib.texi: Add entry for Steven Pemberton's work on
15317 enquire.
15318
15319 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com>
15320
15321 * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
15322 update_call_from_tree(). (rs6000_gimple_fold_builtin): Add
15323 handling for early expansion of vector shifts (sl,sr,sra,rl).
15324 (builtin_function_type): Add vector shift right instructions
15325 to the unsigned argument list.
15326
15327 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
15328
15329 rtl-optimizatoin/79286
15330 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
15331 * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
15332 trap. PIC register plus a const unspec without offset can never trap.
15333
15334 2017-06-23 Marc Glisse <marc.glisse@inria.fr>
15335
15336 * tree.h (builtin_structptr_type): New type.
15337 (builtin_structptr_types): Declare new array.
15338 * tree.c (builtin_structptr_types): New array.
15339 (free_lang_data, build_common_tree_nodes): Use it.
15340
15341 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
15342
15343 PR c++/81187
15344 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
15345 -Wnoexcept.
15346
15347 2017-06-22 Matt Turner <mattst88@gmail.com>
15348
15349 * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
15350 Lake models to skylake case. Assume skylake for unknown
15351 models with clflushopt.
15352
15353 2017-06-22 Jeff Law <law@redhat.com>
15354
15355 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
15356 frame sizes that do not satisfy aarch64_uimm12_shift.
15357
15358 2017-06-22 Jan Hubicka <hubicka@ucw.cz>
15359
15360 * profile-count.h (apply_probability,
15361 apply_scale, probability_in): Fix checks for zero.
15362
15363 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15364
15365 * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
15366 * doc/cppdiropts.texi (-I @var{dir}): Document it.
15367
15368 2016-06-22 Richard Biener <rguenther@suse.de>
15369
15370 * tree-vect-loop.c (vect_model_reduction_cost): Handle
15371 COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
15372 REDUC_MAX_EXPR support.
15373 (vectorizable_reduction): Likewise.
15374 (vect_create_epilog_for_reduction): Likewise.
15375
15376 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com>
15377
15378 * match.pd (A / (1 << B) -> A >> B): New.
15379 * generic-match-head.c: Include optabs-tree.h.
15380 * gimple-match-head.c: Likewise.
15381 * optabs-tree.h (target_supports_op_p): New.
15382 * optabs-tree.c (target_supports_op_p): New.
15383
15384 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15385
15386 * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
15387 $gcc_cv_ld --help output.
15388 (gcc_cv_ld_demangle): Likewise.
15389 (gcc_cv_ld_eh_frame_hdr): Likewise.
15390 (gcc_cv_ld_pie): Likewise.
15391 (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld.
15392 (gcc_cv_ld_buildid): Likewise.
15393 (gcc_cv_ld_sysroot): Likewise.
15394 (ld_bndplt_support): Likewise.
15395 (ld_pushpopstate_support): Likewise.
15396 * configure: Regenerate.
15397 * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
15398
15399 2017-06-21 Jakub Jelinek <jakub@redhat.com>
15400
15401 PR target/81151
15402 * config/i386/sse.md (round<mode>2): Renumber match_dup and
15403 operands indexes to avoid gap between operands and match_dups.
15404
15405 2017-06-21 Andrew Pinski <apinski@cavium.com>
15406
15407 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
15408 Increment Arith_shift and Arith_shift_reg by 1.
15409 * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
15410 New tuning flag.
15411 * config/aarch64/aarch64.c (thunderx_tunings): Enable
15412 AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
15413 (aarch64_strip_extend): Add new argument and test for it.
15414 (aarch64_cheap_mult_shift_p): New function.
15415 (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
15416 add a cost if it is true.
15417 Update calls to aarch64_strip_extend.
15418 (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
15419
15420 2017-06-21 Andrew Pinski <apinski@cavium.com>
15421
15422 * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
15423 tunings.
15424 (thunderxt88): Likewise.
15425 * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
15426 (thunderx_prefetch_tune): New variable.
15427 (thunderx2t99_prefetch_tune): Update for the correct values.
15428 (thunderxt88_tunings): New variable.
15429 (thunderx_tunings): Use thunderx_prefetch_tune instead of
15430 generic_prefetch_tune.
15431 (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
15432
15433 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15434
15435 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
15436 SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
15437 (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
15438 (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
15439 (aarch64_atomic_cas<mode>, GPI): Likewise.
15440
15441 2017-06-21 Martin Liska <mliska@suse.cz>
15442
15443 * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
15444 statements on cold and hot labels.
15445 * predict.c (tree_estimate_probability_bb): Remove the
15446 prediction from this place.
15447
15448 2017-06-21 Martin Liska <mliska@suse.cz>
15449
15450 PR tree-optimization/79489
15451 * gimplify.c (maybe_add_early_return_predict_stmt): New
15452 function.
15453 (gimplify_return_expr): Call the function.
15454 * predict.c (tree_estimate_probability_bb): Remove handling
15455 of early return.
15456 * predict.def: Update comment about early return predictor.
15457 * gimple-predict.h (is_gimple_predict): New function.
15458 * predict.def: Change default value of early return to 66.
15459 * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
15460 statements.
15461 * passes.def: Put pass_strip_predict_hints to the beginning of
15462 IPA passes.
15463
15464 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com>
15465
15466 * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
15467 FUNCTION_DECL declarations.
15468 (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
15469 declarations.
15470 (dwaf2out_decl): Likewise.
15471 * godump.c (go_early_global_decl): Skip call to the real debug hook
15472 for FUNCTION_DECL declarations.
15473 * passes.c (rest_of_decl_compilation): Skip call to the
15474 early_global_decl debug hook for FUNCTION_DECL declarations, unless
15475 -fdump-go-spec is passed.
15476
15477 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
15478
15479 * config/i386/i386.c (struct builtin_isa): New field pure_p.
15480 Reorder for compactness.
15481 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
15482 (def_builtin_pure, def_builtin_pure2): New functions.
15483 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
15484
15485 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
15486
15487 * match.pd (nop_convert): New predicate.
15488 ((A +- CST1) +- CST2): Allow some NOP conversions.
15489
15490 2017-06-21 Jakub Jelinek <jakub@redhat.com>
15491
15492 PR c++/81130
15493 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
15494 with ctors/dtors if GOVD_SHARED is set.
15495
15496 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
15497
15498 * config/aarch64/aarch64.md (movti_aarch64):
15499 Emit mov rather than orr.
15500 (movtf_aarch64): Likewise.
15501 * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
15502 Emit mov rather than orr.
15503
15504 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
15505
15506 * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
15507 Swap alternatives, make integer dup more expensive.
15508
15509 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
15510
15511 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
15512 Return true for non-tls symbols.
15513
15514 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com>
15515
15516 * config/aarch64/aarch64-cores.def (cortex-a55): New.
15517 (cortex-a75): Likewise.
15518 (cortex-a75.cortex-a55): Likewise.
15519 * config/aarch64/aarch64-tune.md: Regenerate.
15520 * doc/invoke.texi (-mtune): Document new values for -mtune.
15521
15522 2017-06-21 Tom de Vries <tom@codesourcery.com>
15523
15524 * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
15525 stack_size feature.
15526 (Effective-Target Keywords, Other attributes): Suggest using
15527 dg-add-options stack_size feature to get stack limit in stack_size
15528 effective target documentation.
15529
15530 2017-06-21 Julian Brown <julian@codesourcery.com>
15531 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
15532
15533 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
15534 (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
15535 * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
15536 reservation.
15537 * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
15538 attribute type list for neon_multiply.
15539 * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
15540 attribute type list for neon_multiply.
15541 * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
15542 * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
15543 attribute type list for neon_multiply.
15544 * config/arm/types.md (crypto_pmull): Add.
15545 * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
15546 attribute type list.
15547
15548 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org>
15549
15550 * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
15551 arm1176jzf-s.
15552
15553 2017-06-20 Jakub Jelinek <jakub@redhat.com>
15554
15555 * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
15556 to make sure not to dereference a NULL cost_classes_ptr pointer.
15557
15558 2017-06-20 Carl Love <cel@us.ibm.com>
15559
15560 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15561 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
15562 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
15563 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
15564 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
15565 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
15566 VMULOSW): New enum "unspec" values.
15567 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
15568 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
15569 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
15570 altivec_vmulosw): New patterns.
15571 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
15572 VMULOSW): Add definitions.
15573
15574 2017-06-20 Julia Koval <julia.koval@intel.com>
15575
15576 * config/i386/i386.c: Fix rounding expand for new pattern.
15577 * config/i386/subst.md: Fix pattern (parallel -> unspec).
15578
15579 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
15580
15581 * config/aarch64/aarch64-option-extensions.def (rcpc): New.
15582 * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
15583
15584 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
15585
15586 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
15587 feature string.
15588
15589 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
15590
15591 * config/aarch64/aarch64-cores.def: Rearrange to sort by
15592 architecture, then by implementer ID.
15593 * config/aarch64/aarch64-tune.md: Regenerate.
15594
15595 2017-06-20 Richard Biener <rguenther@suse.de>
15596
15597 PR middle-end/81097
15598 * fold-const.c (split_tree): Fold to type before negating.
15599
15600 2017-06-20 David Malcolm <dmalcolm@redhat.com>
15601
15602 * diagnostic-show-locus.c
15603 (selftest::test_fixit_deletion_affecting_newline): New function.
15604 (selftest::diagnostic_show_locus_c_tests): Call it.
15605
15606 2017-06-20 Andreas Schwab <schwab@suse.de>
15607
15608 PR target/80970
15609 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
15610 instead of "+d".
15611
15612 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
15613
15614 * config/arm/arm-c.c (arm_cpu_builtins): New block to define
15615 __ARM_FEATURE_COPROC according to support.
15616
15617 2017-06-20 Jakub Jelinek <jakub@redhat.com>
15618
15619 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
15620 Rewritten to avoid overflow for > 32-bit pointers.
15621
15622 PR sanitizer/81125
15623 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
15624 by removing enum keyword.
15625 (ubsan_type_descriptor): Likewise. Formatting fix.
15626
15627 PR target/81121
15628 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
15629 splitter): Require TARGET_SSE2 in the condition.
15630
15631 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
15632
15633 PR target/79799
15634 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
15635 for doing vector set of SFmode on ISA 3.0.
15636 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
15637 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
15638 element.
15639 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
15640 SFmode value into a V4SF variable that was extracted from another
15641 V4SF variable without converting the element to double precision
15642 and back to single precision vector format.
15643 (vsx_insert_extract_v4sf_p9_2): Likewise.
15644
15645 2017-06-19 Jakub Jelinek <jakub@redhat.com>
15646
15647 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
15648 in UWHI to avoid undefined overflow.
15649
15650 PR sanitizer/81125
15651 * ubsan.h (enum ubsan_encode_value_phase): New.
15652 (ubsan_encode_value): Change second argument to
15653 enum ubsan_encode_value_phase with default value of
15654 UBSAN_ENCODE_VALUE_GENERIC.
15655 * ubsan.c (ubsan_encode_value): Change second argument to
15656 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
15657 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
15658 create_tmp_var_raw instead of create_tmp_var and use a
15659 TARGET_EXPR.
15660 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
15661 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
15662 ubsan_encode_value callers.
15663
15664 PR sanitizer/81111
15665 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
15666 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
15667 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
15668
15669 2017-06-19 Richard Biener <rguenther@suse.de>
15670
15671 PR middle-end/81118
15672 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
15673 estimates if we changed anything.
15674
15675 2017-06-19 Richard Biener <rguenther@suse.de>
15676
15677 PR tree-optimization/80887
15678 * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
15679 (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
15680 simplified lookups, then reset mprts_hook.
15681 (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
15682 simplifying.
15683 (try_to_simplify): Likewise.
15684
15685 2017-06-19 Martin Liska <mliska@suse.cz>
15686
15687 PR sanitizer/80879
15688 * gimplify.c (gimplify_switch_expr):
15689 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
15690
15691 2017-06-19 Martin Liska <mliska@suse.cz>
15692
15693 * doc/install.texi: Document that PGO runs in 4 stages.
15694
15695 2017-06-19 Martin Liska <mliska@suse.cz>
15696
15697 PR ipa/80732
15698 * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
15699 to dispatcher function name.
15700 * multiple_target.c (replace_function_decl): New function.
15701 (create_dispatcher_calls): Redirect both edges and references.
15702
15703 2017-06-19 Jan Hubicka <hubicka@ucw.cz>
15704
15705 * profile-count.c (profile_count::dump): Dump quality.
15706 (profile_count::differs_from_p): Update for unsigned val.
15707 * profile-count.h (profile_count_quality): New enum.
15708 (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
15709
15710 2017-06-19 Richard Biener <rguenther@suse.de>
15711
15712 * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
15713 struct function as arg.
15714 (estimate_numbers_of_iterations): Export overload with loop arg.
15715 (free_numbers_of_iterations_estimates_loop): Use an overload of
15716 free_numbers_of_iterations_estimates instead.
15717 * tree-cfg.c (remove_bb): Adjust.
15718 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
15719 * tree-parloops.c (gen_parallel_loop): Likewise.
15720 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
15721 Likewise.
15722 (tree_unroll_loops_completely): Likewise.
15723 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
15724 Use an overload instead and export.
15725 (estimated_loop_iterations): Adjust.
15726 (max_loop_iterations): Likewise.
15727 (likely_max_loop_iterations): Likewise.
15728 (estimate_numbers_of_iterations): Take struct function as arg
15729 and adjust.
15730 (loop_exits_before_overflow): Adjust.
15731 (free_numbers_of_iterations_estimates_loop): Use an overload.
15732 * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
15733 * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
15734
15735 2017-06-19 Richard Biener <rguenther@suse.de>
15736
15737 PR ipa/81112
15738 * ipa-prop.c (find_constructor_constant_at_offset): Handle
15739 RANGE_EXPR conservatively.
15740
15741 2017-06-16 Carl Love <cel@us.ibm.com>
15742
15743 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15744 definitions for vec_float, vec_float2, vec_floato,
15745 vec_floate built-ins.
15746 * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
15747 for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
15748 floate.
15749 * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
15750 FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
15751 UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
15752 * config/altivec.md (define_insn "p8_vmrgew_<mode>",
15753 define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
15754 * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
15755 vec_floato): Add builtin defines.
15756 * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
15757 Update the built-in documentation file for the new built-in
15758 functions.
15759
15760 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15761
15762 * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
15763 (mthumb): Mark as the negative of -marm.
15764
15765 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15766
15767 * doc/invoke.texi (ARM Options, -mcpu): Document supported
15768 extension options.
15769 (ARM Options, -mtune): Document that this accepts the same
15770 extension options as -mcpu.
15771 (ARM Options, -mfpu): Document addition of -mfpu=auto.
15772
15773 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15774
15775 * doc/invoke.texi (ARM Options, -march=): Document new syntax and
15776 permitted extensions.
15777
15778 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15779
15780 * config/arm/arm-cpus.in (armv7): Add extension +nofp.
15781 (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
15782 (armv8-m.main): Add option +nodsp.
15783 * config/arm/arm-cpu-cdata.h: Regenerated.
15784
15785 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15786
15787 * config/arm/t-fuchsia: New file.
15788 * config.gcc (arm*-*-fuchsia*): Use it.
15789
15790 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15791
15792 * config/arm/t-symbian: Rewrite for new option infrastructure.
15793
15794 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15795
15796 * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
15797 (MULTILIB_REQUIRED): Likewise.
15798
15799 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15800
15801 * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
15802 (MULTILIB_RESUE): Likewise.
15803 (MULTILIB_MATCHES): Likewise.
15804 (MULTLIB_REQUIRED): Likewise.
15805
15806 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15807
15808 * config/arm/t-rtems: Rewrite for new option framework.
15809
15810 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15811
15812 * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
15813 (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
15814 (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
15815 (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
15816 * config/arm/t-multilib: ... here.
15817 (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
15818 (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for
15819 armv7-a and armv8*-a when A-profile libraries have not been built.
15820 * config/arm/t-rmprofile: Rewrite.
15821
15822 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15823
15824 * genmultilib (multilib_reuse): Allow an explicit period to be escaped
15825 with a backslash. Remove the backslash after substituting unescaped
15826 periods.
15827 * doc/fragments.texi (MULTILIB_REUSE): Document it.
15828
15829 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15830
15831 * config.gcc: (arm*-*-*): When building a-profile libraries, force
15832 the driver to pass through the default setting of -mfloat-abi.
15833 * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
15834 rather than NULL.
15835 * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
15836 (all_feat_combs): New rule.
15837 (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework
15838 default libraries.
15839 * config/arm/t-aprofile: Rewrite.
15840
15841 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15842
15843 * config/arm/arm.h (FPUTYPE_AUTO): Define.
15844 * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
15845 fpu is not specified by the user/command-line.
15846 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
15847 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
15848 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
15849 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
15850 * common/config/arm/arm-common.c (arm_canon_arch_option): Use
15851 FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
15852
15853 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15854
15855 * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
15856 * config/arm/t-arm-elf: Rewritten.
15857
15858 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15859
15860 * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
15861 have some floating-point instructions.
15862 (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
15863 (TARGET_MAYBE_HARD_FLOAT): New macro.
15864 * config/arm/arm-builtins.c (arm_init_builtins): Use
15865 TARGET_MAYBE_HARD_FLOAT.
15866 * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
15867
15868 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15869
15870 * common/config/arm/arm-common.c: Define INCLUDE_LIST.
15871 (configargs.h): Include it.
15872 (arm_print_hint_for_fpu_option): New function.
15873 (arm_parse_fpu_option): New function.
15874 (candidate_extension): New class.
15875 (arm_canon_for_multilib): New function.
15876 * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
15877 (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
15878 (ARCH_CANONICAL_SPECS): New macro.
15879 (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
15880
15881 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15882
15883 * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
15884 are set after handling multilib fragments. Set target_cpu_default2
15885 from with_cpu.
15886
15887 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15888
15889 * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
15890 cpu name.
15891 (arm*-*-*): Set target_cpu_default2 to a quoted string.
15892 * config/arm/parsecpu.awk (check_cpu): Validate any extension
15893 options.
15894 (check_arch): Likewise.
15895 * config/arm/arm.c (arm_configure_build_target): Handle
15896 TARGET_CPU_DEFAULT being a string constant. Scan any feature
15897 options in the default.
15898
15899 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15900
15901 * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
15902 when an option is an alias of another.
15903 * config/arm/parsecpu.awk (optalias): New parser token.
15904 (gen_comm_data): Mark non-alias options as such. Emit entries
15905 for extension aliases.
15906 * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
15907 (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
15908 (armv6kz, armv6zk, armv6t2): Likewise.
15909 (armv7): Make vfpv3-d16 an alias.
15910 (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in
15911 canonical order.
15912 (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
15913 Sort in canonical order.
15914 (armv8-a): Sort in canonical order.
15915 (armv8.1-a, armv8.2-a): Likewise.
15916 (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in
15917 canonical order.
15918 (cortex-a9): Sort in canonical order.
15919 * config/arm/arm.c (selftests.h): Include it.
15920 (arm_test_cpu_arch_data): New function.
15921 (arm_run_self_tests): New function.
15922 (TARGET_RUN_TARGET_SELFTESTS): Redefine.
15923 (targetm): Move declaration to the end of the file.
15924 * arm-cpu-cdata.h: Regenerated.
15925
15926 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15927
15928 * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
15929 call to target_mode_check describing the type of option passed.
15930 * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
15931 (arm_target_thumb_only): Use arm_parse_arch_option_name or
15932 arm_parse_cpu_option_name to match parameters against list of
15933 available targets.
15934 * config/arm/parsecpu.awk (gen_comm_data): Don't generate
15935 arm_arch_core_flags data structure.
15936 * config/arm/arm-cpu_cdata.h: Regenerated.
15937
15938 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15939
15940 * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
15941 config/arm/arm.c.
15942 (arm_print_hint_for_cpu_option): Likewise.
15943 (arm_print_hint_for_arch_option): Likewise.
15944 (arm_parse_cpu_option_name): Likewise.
15945 (arm_parse_arch_option_name): Likewise.
15946 * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
15947 of entries in the all_fpus list.
15948 * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
15949 (arm_parse_cpu_option_name): Declare.
15950 (arm_parse_arch_option_name): Declare.
15951 (arm_parse_option_features): Declare.
15952 (arm_intialize_isa): Declare.
15953 * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
15954 data tables to ...
15955 (gen_comm_data): ... here. Make definitions non-static.
15956 * config/arm/arm-cpu-data.h: Regenerated.
15957 * config/arm/arm-cpu-cdata.h: Regenerated.
15958
15959 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15960
15961 * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
15962 (cpu_arch_extension): New structure.
15963 (cpu_arch_option, arch_option, cpu_option): New structures.
15964 * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
15965 architecture types.
15966 (gen_data): Generate new format data tables.
15967 * config/arm/arm.c (cpu_tune): New structure.
15968 (cpu_option, processors): Delete.
15969 (arm_print_hint_for_core_or_arch): Delete. Replace with ...
15970 (arm_print_hint_for_cpu_option): ... this and ...
15971 (arm_print_hint_for_arch_option): ... this.
15972 (arm_parse_arch_cpu_name): Delete. Replace with ...
15973 (arm_parse_cpu_option_name): ... this and ...
15974 (arm_parse_arch_option_name): ... this.
15975 (arm_unrecognized_feature): Change type of target parameter to
15976 cpu_arch_option.
15977 (arm_parse_arch_cpu_features): Delete. Replace with ...
15978 (arm_parse_option_features): ... this.
15979 (arm_configure_build_target): Rework to use new configuration data
15980 tables.
15981 (arm_print_tune_info): Rework for new configuration data tables.
15982 * config/arm/arm-cpu-data.h: Regenerated.
15983 * config/arm/arm-cpu.h: Regenerated.
15984
15985 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15986
15987 * Makefile.in (OBJS): Move sbitmap.o from here ...
15988 (OBJS-libcommon): ... to here.
15989
15990 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15991
15992 * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
15993 (ISA_ALL_CRYPTO): New macro.
15994 (ISA_ALL_SIMD): New macro
15995 (ISA_ALL_FP): New macro.
15996 * config/arm/arm.c (fpu_bitlist): Update initializer.
15997 * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
15998 simd or fp.
15999 (arm9e): Add fpu. Add option for nofp
16000 (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
16001 (arm926ej-s, arm1026ej-s): Likewise.
16002 (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16,
16003 vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
16004 neon-fp16, neon-vfpv4, nofp and nosimd.
16005 (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp.
16006 (cortex-a8): Add fpu. Add option for nofp.
16007 (cortex-a9): Add fpu. Add options for nosimd and nofp.
16008 (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp.
16009 (cortex-r4f): Add fpu.
16010 (cortex-r5): Add fpu. Add options for nofp.dp and nofp.
16011 (cortex-r7): Use idiv option from architecture. Add fpu. Add option
16012 for nofp.
16013 (cortex-r8): Likewise.
16014 (cortex-m4): Add fpu. Add option for nofp.
16015 (cortex-a15.cortex-a7): Add fpu. Add option for nofp.
16016 (cortex-a17.cortex-a7): Likewise.
16017 (cortex-a32): Add fpu. Add options for crypto and nofp.
16018 (cortex-a35, cortex-a53): Likewise.
16019 (cortex-a57): Add fpu. Add option for crypto.
16020 (cortex-a72, cortex-a73): Likewise.
16021 (exynos-m1): Likewise.
16022 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
16023 (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
16024 (cortex-m33): Add fpu. Add option for nofp.
16025 * config/arm/arm-cpu-cdata.h: Regenerated
16026 * config/arm/arm-cpu-data.h: Regenerated.
16027
16028 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16029
16030 * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
16031 (armv5te, armv5tej): Likewise.
16032 (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
16033 (armv7): Add options fp and vfpv3-d16.
16034 (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
16035 vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
16036 nofp and nosimd.
16037 (armv7ve): Likewise.
16038 (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
16039 (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
16040 (armv8-a): Add nocrypto option.
16041 (armv8.1-a, armv8.2-a): Likewise.
16042 (armv8-m.main): add options fp, fp.dp and nofp.
16043
16044 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16045
16046 * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
16047 nofp.
16048 (armv8-a+crc): Delete.
16049 (armv8.1-a): Add options simd, crypto and nofp.
16050 (armv8.2-a): Add options fp16, simd, crypto and nofp.
16051 (armv8.2-a+fp16): Delete.
16052 (armv8-m.main): Add option dsp.
16053 (armv8-m.main+dsp): Delete.
16054 (cortex-a8): Add fpu. Add nofp option.
16055 (cortex-a9): Add fpu. Add nofp and nosimd options.
16056 * config/arm/parsecpu.awk (gen_data): Generate option tables and
16057 link to main cpu and architecture data structures.
16058 (gen_comm_data): Only put isa attributes from the main architecture
16059 in common tables.
16060 (option): New statement for architecture and CPU entries.
16061 * arm.c (struct cpu_option): New structure.
16062 (struct processors): Add entry for options.
16063 (arm_unrecognized_feature): New function.
16064 (arm_parse_arch_cpu_name): Ignore any characters after the first
16065 '+' character.
16066 (arm_parse_arch_cpu_feature): New function.
16067 (arm_configure_build_target): Separate out any CPU and architecture
16068 features and parse separately. Don't error out if -mfpu=auto is
16069 used with only an architecture string.
16070 (arm_print_asm_arch_directives): New function.
16071 (arm_file_start): Call it.
16072 * config/arm/arm-cpu-cdata.h: Regenerated.
16073 * config/arm/arm-cpu-data.h: Likewise.
16074 * config/arm/arm-tables.opt: Likewise.
16075
16076 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16077
16078 * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
16079 assembler when it is not -mfpu=auto.
16080
16081 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16082
16083 * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
16084 (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
16085 (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
16086 (ASM_CPU_SPEC): Rewrite.
16087 (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
16088 (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use
16089 MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove
16090 reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
16091 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
16092 copied string is NUL-terminated. Also strip any characters prefixed
16093 by '+'.
16094 (arm_rewrite_selected_arch): New function.
16095 (arm_rewrite_march): New function.
16096
16097 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16098
16099 * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
16100 (x_arm_cpu_string, x_arm_tune_string): Likewise.
16101 (march, mcpu, mtune): Convert to string-based options.
16102 * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
16103 (arm_parse_arch_cpu_name): New function.
16104 (arm_configure_build_target): Use arm_parse_arch_cpu_name to
16105 identify selected architecture or CPU.
16106 (arm_option_save): New function.
16107 (TARGET_OPTION_SAVE): Redefine.
16108 (arm_option_restore): Restore string options.
16109 (arm_option_print): Print string options.
16110
16111 2017-06-16 Martin Sebor <msebor@redhat.com>
16112
16113 PR tree-optimization/80933
16114 PR tree-optimization/80934
16115 * builtins.c (fold_builtin_3): Do not handle bcmp here.
16116 * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
16117 (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
16118 (gimple_fold_builtin): Call them.
16119
16120 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
16121
16122 * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
16123 as unlikely; update profile.
16124
16125 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
16126
16127 * predict.c (force_edge_cold): Handle declaring edges impossible
16128 more aggresively.
16129
16130 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
16131
16132 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
16133 profile.
16134 (try_unroll_loop_completely): Fix reporting.
16135
16136 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
16137
16138 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
16139
16140 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com>
16141
16142 PR target/71778
16143 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
16144 if given a non-constant argument for an intrinsic which requires a
16145 constant.
16146
16147 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
16148
16149 * profile.c (compare_freqs): New function.
16150 (branch_prob): Sort edge list.
16151 (find_spanning_tree): Assume that the list is priority sorted.
16152
16153 2017-06-16 Richard Biener <rguenther@suse.de>
16154
16155 PR tree-optimization/81090
16156 * passes.def (pass_record_bounds): Remove.
16157 * tree-pass.h (make_pass_record_bounds): Likewise.
16158 * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
16159 make_pass_record_bounds): Likewise.
16160 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
16161 not free niter estimates at the beginning but at the end.
16162 * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
16163
16164 2017-06-16 Richard Biener <rguenther@suse.de>
16165
16166 * tree-switch-conversion.c (emit_case_bit_tests): Adjust
16167 initializer to workaround ICE in host GCC 4.8.
16168
16169 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
16170
16171 * ipa-inline-transform.c (update_noncloned_frequencies): Update also
16172 counts.
16173 (clone_inlined_nodes): Update.
16174
16175 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
16176
16177 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
16178 prefetch settings, and enable prefetching by default at -O3.
16179
16180 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
16181
16182 * config/aarch64/aarch64.c (aarch64_override_options_internal):
16183 Set flag_prefetch_loop_arrays according to tuning data.
16184
16185 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
16186
16187 * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
16188 New tune structure.
16189 (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
16190 [Unrelated to main purpose of the patch] Place the pointer field last
16191 to enable type checking errors when tune structure are wrongly merged.
16192 * config/aarch64/aarch64.c (generic_prefetch_tune,)
16193 (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
16194 (thunderx2t99_prefetch_tune): New tune constants.
16195 (tune_params *_tunings): Update all tunings (no functional change).
16196 (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
16197 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
16198 from tunings structures.
16199
16200 2017-06-16 Jakub Jelinek <jakub@redhat.com>
16201
16202 PR sanitizer/81094
16203 * ubsan.c (instrument_null): Add T argument, use it instead
16204 of computing it based on IS_LHS.
16205 (instrument_object_size): Likewise.
16206 (pass_ubsan::execute): Adjust instrument_null and
16207 instrument_object_size callers to pass gimple_get_lhs or
16208 gimple_assign_rhs1 result to it. Use instrument_null instead of
16209 calling get_base_address and instrument_mem_ref. Handle
16210 aggregate call arguments for object-size sanitization.
16211
16212 2017-06-16 Yury Gribov <tetra2005@gmail.com>
16213
16214 PR tree-optimization/81089
16215 * tree-vrp.c (is_masked_range_test): Validate operands of
16216 subexpression.
16217
16218 2017-06-15 Martin Sebor <msebor@redhat.com>
16219
16220 PR c++/80560
16221 * dumpfile.c (dump_register): Avoid calling memset to initialize
16222 a class with a default ctor.
16223 * gcc.c (struct compiler): Remove const qualification.
16224 * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
16225 * hash-table.h: Ditto.
16226 * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
16227 assignment.
16228 * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
16229 * omp-low.c (lower_omp_ordered_clauses): Replace memset with
16230 default ctor.
16231 * params.h (struct param_info): Make struct members non-const.
16232 * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
16233 with default initialization.
16234 * vec.h (vec_copy_construct, vec_default_construct): New helper
16235 functions.
16236 (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
16237 with vec_copy_construct.
16238 (vect<T>::quick_grow_cleared): Replace memset with default ctor.
16239 (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
16240 * doc/invoke.texi (-Wclass-memaccess): Document.
16241
16242 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16243
16244 * emit-rtl.h (is_leaf): Update comment about local
16245 register allocator.
16246
16247 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com>
16248
16249 PR target/78818
16250 * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
16251 for a variable to have a section before checking if the section has a
16252 name.
16253 Set section to.persistent if persistent attribute is set.
16254 Warn if .persistent attribute is used on an automatic variable.
16255
16256 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
16257
16258 PR rtl-optimization/80474
16259 * reorg.c (update_block): Do not ignore instructions in a delay slot.
16260
16261 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
16262
16263 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
16264 of REGNO.
16265
16266 2017-06-14 Maciej W. Rozycki <macro@imgtec.com>
16267
16268 * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
16269 (casesi): Emit bounds checking as RTL.
16270 (casesi_internal_mips16_<mode>): Remove bounds checking.
16271
16272 2017-06-14 Max Filippov <jcmvbkbc@gmail.com>
16273
16274 * config/xtensa/xtensa.c (xtensa_option_override): Append
16275 MASK_CONST16 to target_flags in the absence of TARGET_L32R.
16276 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
16277 xtensa_doloop_hooks): Define unconditionally.
16278 (xtensa_reorg_loops): Only call reorg_loops in the presence of
16279 TARGET_LOOPS.
16280 * config/xtensa/xtensa.h (TARGET_L32R): New definition.
16281 (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
16282 for it in xtensa_option_override.
16283 (HARD_FRAME_POINTER_IS_FRAME_POINTER,
16284 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
16285
16286 2017-06-14 Boris Kolpackov <boris@codesynthesis.com>
16287
16288 * doc/cppopts.texi: Document '-' special value to -MF.
16289
16290 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com>
16291
16292 * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
16293 (cortex_a53_fconst): Likewise.
16294 (cortex_a53_fpmul): Likewise.
16295 (cortex_a53_f_load_64): Likewise.
16296 (cortex_a53_f_load_many): Likewise.
16297 (cortex_a53_advsimd_alu): Likewise.
16298 (cortex_a53_advsimd_alu_q): Likewise.
16299 (cortex_a53_advsimd_mul): Likewise.
16300 (cortex_a53_advsimd_mul_q): Likewise.
16301 (fpmac bypass): Add new bypass for fpmac-fpmac case.
16302 Add missing fmul, r2f_cvt and fconst cases.
16303
16304 2017-06-14 Richard Biener <rguenther@suse.de>
16305
16306 PR middle-end/81088
16307 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
16308 literal constants.
16309 (fold_binary_loc): When associating do not treat pre-existing
16310 TREE_OVERFLOW on literal constants as a reason to allow
16311 TREE_OVERFLOW on associated literal constants.
16312
16313 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
16314
16315 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
16316 (MASK_FEATURES): New macro.
16317 * config/sparc/sparc.c (sparc_option_override): Remove the special
16318 handling of -mfpu and generalize it to all MASK_FEATURES switches.
16319
16320 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
16321
16322 * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
16323 a division of 0 if non-call exceptions are enabled.
16324
16325 2017-06-14 Andrew Pinski <apinski@cavium.com>
16326 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
16327
16328 PR target/71663
16329 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
16330 Improve vector initialization code gen for only variable case.
16331
16332 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
16333
16334 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
16335
16336 2017-06-14 Richard Biener <rguenther@suse.de>
16337
16338 PR tree-optimization/81083
16339 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
16340 as values.
16341
16342 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16343
16344 * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
16345 (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
16346 * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
16347 * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use.
16348 * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
16349 * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
16350
16351 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16352
16353 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
16354 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
16355
16356 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16357
16358 * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
16359
16360 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16361
16362 * config/rs6000/t-rtems: Don't handle SPE.
16363
16364 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16365
16366 * config/rs6000/t-linux: Don't handle SPE.
16367
16368 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16369
16370 * config/rs6000/eabispe.h: Delete file.
16371
16372 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16373
16374 * config/rs6000/t-spe: Delete file.
16375
16376 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16377
16378 * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
16379 (rs6000_legitimate_offset_address_p): Return false for anything in
16380 V2SImode or V2SFmode.
16381
16382 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16383
16384 * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
16385 except V2SF and V2SI. Rearrange the vector modes, and add comments.
16386 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
16387 and V4HImode.
16388 (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
16389 (rs6000_legitimate_offset_address_p): Ditto.
16390 (rs6000_emit_move): Ditto.
16391 (rs6000_init_builtins): Remove V4HI_type_node.
16392
16393 2017-06-13 Martin Liska <mliska@suse.cz>
16394
16395 PR sanitize/78204
16396 * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
16397 (gate_asan): Likewise.
16398 * asan.h (asan_no_sanitize_address_p): Remove the function.
16399 (sanitize_flags_p): New function.
16400 * builtins.def: Fix coding style.
16401 * common.opt: Use renamed enum value.
16402 * convert.c (convert_to_integer_1): Use sanitize_flags_p.
16403 * doc/extend.texi: Document no_sanitize attribute.
16404 * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
16405 to SANITIZE_UNDEFINED_NONDEFAULT.
16406 * gcc.c (sanitize_spec_function): Use the renamed enum value.
16407 * gimple-fold.c (optimize_atomic_compare_exchange_p):
16408 Use sanitize_flags_p.
16409 * gimplify.c (gimplify_function_tree): Likewise.
16410 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
16411 * opts.c (parse_no_sanitize_attribute): New function.
16412 (common_handle_option): Use renamed enum value.
16413 * opts.h (parse_no_sanitize_attribute): Declare.
16414 * tree.c (sanitize_flags_p): New function.
16415 * tree.h: Declared here.
16416 * tsan.c: Use sanitize_flags_p.
16417 * ubsan.c (ubsan_expand_null_ifn): Likewise.
16418 (instrument_mem_ref): Likewise.
16419 (instrument_bool_enum_load): Likewise.
16420 (do_ubsan_in_current_function): Remove the function.
16421 (pass_ubsan::execute): Use sanitize_flags_p.
16422 * ubsan.h: Remove do_ubsan_in_current_function
16423 * tree-cfg.c (print_no_sanitize_attr_value): New function.
16424 (dump_function_to_file): Use it here.
16425
16426 2017-06-13 Martin Jambor <mjambor@suse.cz>
16427
16428 PR tree-optimization/80803
16429 PR tree-optimization/81063
16430 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
16431 (propagate_subaccesses_across_link): Enqueue subtree whenever
16432 necessary instead of relying on the caller.
16433
16434 2017-06-13 Martin Jambor <mjambor@suse.cz>
16435
16436 * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
16437 that have a first_link.
16438 (sort_and_splice_var_accesses): Do not check first_link before
16439 enquing.
16440 (subtree_mark_written_and_enqueue): Likewise.
16441 (propagate_all_subaccesses): Likewise and do not stop at first
16442 parent with a first_link.
16443
16444 2017-06-13 Martin Jambor <mjambor@suse.cz>
16445
16446 * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
16447 instead of f.
16448
16449 2017-06-13 Yury Gribov <tetra2005@gmail.com>
16450
16451 * match.pd: New pattern.
16452
16453 2017-06-13 Yury Gribov <tetra2005@gmail.com>
16454
16455 * tree-vrp.c (is_masked_range_test): New function.
16456 (register_edge_assert_for): Determine ranges for
16457 some bit tests.
16458
16459 2017-06-13 Yury Gribov <tetra2005@gmail.com>
16460
16461 PR tree-optimization/67328
16462 * fold-const.c (maskable_range_p): New function.
16463 (build_range_check): Generate bittests if possible.
16464
16465 2017-06-13 Martin Liska <mliska@suse.cz>
16466
16467 * gimple-pretty-print.c (dump_probability): Add new argument.
16468 (dump_edge_probability): Dump both probability and count.
16469 (dump_gimple_label): Likewise.
16470 (dump_gimple_bb_header): Likewise.
16471
16472 2017-06-13 Georg-Johann Lay <avr@gjlay.de>
16473
16474 PR target/81072
16475 * config/avr/avr-devices.c: Fix indentation.
16476 * config/avr/gen-avr-mmcu-specs.c: Dito.
16477
16478 2017-06-13 Richard Biener <rguenther@suse.de>
16479
16480 * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
16481 instead get vector type from stmt_info.
16482 (vectorizable_reduction): Adjust. Remove dead code.
16483
16484 2017-06-13 Richard Biener <rguenther@suse.de>
16485
16486 PR middle-end/81065
16487 * fold-const.c (extract_muldiv_1): Remove bogus distribution
16488 case of C * (x * C2 + C3).
16489 (fold_addr_of_array_ref_difference): Properly fold index difference.
16490
16491 2017-06-12 David S. Miller <davem@davemloft.net>
16492
16493 PR target/80968
16494 * config/sparc/sparc.md (return expander): Emit frame blockage if
16495 function uses alloca.
16496
16497 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org>
16498
16499 * combine.c (make_field_assignment): Check len rather than the mode
16500 precision when calling force_to_mode.
16501
16502 2017-06-12 Georg-Johann Lay <avr@gjlay.de>
16503
16504 Support multilibs and devices that see flash in RAM address range.
16505
16506 PR target/81072
16507 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
16508 (avr_mcu_t) <flash_pm_offset>: New field.
16509 (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
16510 * config/avr/avr.h (AVR_SHORT_CALLS): New define.
16511 (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
16512 (AVR_TINY_PM_OFFSET): Remove macro.
16513 * config/avr/avr.opt (-mshort-calls): New option.
16514 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
16515 [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
16516 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
16517 <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
16518 <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
16519 instead of avr_arch->have_jmp_call.
16520 <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
16521 [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
16522 avr_arch->flash_pm_offset to define.
16523 * config/avr/avr-devices.c (avr_arch_types): Add initializers for
16524 new field flash_pm_offset. Add entry for avrxmega3.
16525 (avr_texinfo): Add entry for avrxmega3.
16526 * config/avr/avr-mcus.def: Add entries for: avrxmega3,
16527 attiny212, attiny214,
16528 attiny412, attiny414, attiny416, attiny417,
16529 attiny814, attiny816, attiny817,
16530 attiny1614, attiny1616, attiny1617,
16531 attiny3214, attiny3216, attiny3217.
16532 * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
16533 avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
16534 (avr_print_operand_address) [AVR_TINY]: Same.
16535 (avr_asm_init_sections) <readonly_data_section>: Only patch
16536 callback if avr_arch->flash_pm_offset = 0.
16537 (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
16538 for rodata if avr_arch->flash_pm_offset != 0.
16539 (avr_encode_section_info) [AVR_TINY]: Adjust comment.
16540 * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
16541 (opts) [AVR_ISA_RCALL]: Append opt_rcall.
16542 (m_options): Append opt_rcall.
16543 (m_dirnames): Append dir_rcall.
16544 * config/avr/t-multilib: Regenerate.
16545
16546 * configure.ac [target=avr]: Check whether avrxmega3 default
16547 linker description file works as needed.
16548 * configure: Regenerate.
16549 * doc/avr-mmcu.texi: Regenerate.
16550 * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
16551 <__AVR_ARCH__>: Document avrxmega3 and 103.
16552 <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
16553 <__AVR_SHORT_CALLS__>: Document it.
16554 <__AVR_PM_BASE_ADDRESS__>: Document it.
16555 * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
16556 (AVR Variable Attributes) <progmem>: Document this is
16557 not needed for avrxmega3.
16558 (AVR Named Address Spaces) <__flash>: Dito.
16559
16560 2017-06-12 Jan Hubicka <hubicka@ucw.cz>
16561
16562 * cgraph.c (cgraph_node::dump): Complain about profile insanities.
16563
16564 2017-06-12 Doug Rupp <rupp@adacore.com>
16565
16566 * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
16567 Append vxworks-stdint.h to the tm_file list.
16568 * config/vxworks-stdint.h: New file.
16569
16570 2017-06-12 Martin Liska <mliska@suse.cz>
16571
16572 PR tree-optimization/81041
16573 * tree-profile.c (gimple_gen_ic_func_profiler):
16574 Create an extra BB in profile-generate
16575 (gimple_gen_time_profiler): Likewise.
16576
16577 2017-06-12 Jakub Jelinek <jakub@redhat.com>
16578
16579 PR tree-optimization/81003
16580 * tree-ssa-reassoc.c (force_into_ssa_name): New function.
16581 (update_range_test): Use it instead of force_gimple_operand_gsi.
16582
16583 2017-06-12 Richard Biener <rguenther@suse.de>
16584
16585 PR tree-optimization/81053
16586 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
16587 with backedge value not defined in loop. Simplify def stmt
16588 compute.
16589
16590 2017-06-11 Tom de Vries <tom@codesourcery.com>
16591
16592 PR target/79939
16593 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
16594 Return true.
16595 (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
16596 nvptx_cannot_force_const_mem.
16597
16598 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
16599
16600 * opts.c (finish_options): Move test for flag_split_stack after
16601 it has been initialized.
16602
16603 2017-06-11 Jason Merrill <jason@redhat.com>
16604
16605 * tree.h (id_equal): New.
16606 * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
16607 omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
16608 instead of strcmp of IDENTIFIER_POINTER.
16609
16610 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
16611
16612 * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
16613 (mark_all_inlined_calls_cdtor): Fix formating.
16614 (inline_transform): Rescale profile before inlining.
16615
16616 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
16617
16618 * cgraph.h (cgraph_edge::clone): Update prototype.
16619 * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
16620 (cgraph_node::create_clone): Update.
16621 (cgraph_node::create_version_clone): Update.
16622 * tree-inline.c (copy_bb): Update.
16623 (expand_call_inline): Update.
16624
16625 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
16626
16627 * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
16628 factored out from ...
16629 (rs6000_emit_prologue): ... here.
16630
16631 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
16632
16633 * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
16634 factored out from ...
16635 (rs6000_emit_prologue): ... here.
16636
16637 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
16638
16639 * predict.c (drop_profile): Also drop individual bb/edge and cgraph
16640 edge counts.
16641 (handle_missing_profiles): Fix computation of tp_first_run.
16642 (counts_to_freqs): Do not touch freqs when count is 0.
16643
16644 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
16645
16646 * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
16647 profile.
16648
16649 2017-06-10 Tom de Vries <tom@codesourcery.com>
16650
16651 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
16652 attributes): Document signal effective target.
16653
16654 2017-06-10 Tom de Vries <tom@codesourcery.com>
16655
16656 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
16657 Document effective target stack_size.
16658
16659 2017-06-09 David Malcolm <dmalcolm@redhat.com>
16660
16661 * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
16662 to the edit_context if they can be auto-applied.
16663
16664 2017-06-9 Ian Lance Taylor <iant@golang.org>
16665
16666 * opts.c (finish_options): If -fsplit-stack, disable implicit
16667 -forder-blocks-and-partition.
16668 * doc/invoke.texi (Optimize Options): Document that when using
16669 -fsplit-stack -forder-blocks-and-partition is not implicitly
16670 enabled.
16671
16672 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
16673
16674 * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
16675 ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
16676 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
16677 * builtins.def (abort, trap, unreachable): Declare cold.
16678 * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
16679 * tree-core.h (ECF_COLD): New.
16680 * tree.c (set_call_expr_flags): Handle ECF_COLD.
16681 (build_common_builtin_nodes): Mark unreachable and abort as cold.
16682
16683 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
16684
16685 * predict.c (unlikely_executed_stmt_p): Cleanup.
16686
16687 2017-06-09 Richard Biener <rguenther@suse.de>
16688
16689 * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
16690 model if the ref is always written to.
16691
16692 2017-06-09 Tamar Christina <tamar.christina@arm.com>
16693
16694 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
16695
16696 2017-06-09 Tamar Christina <tamar.christina@arm.com>
16697
16698 * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
16699 than udiv.
16700
16701 2017-06-09 Tom de Vries <tom@codesourcery.com>
16702
16703 PR target/80855
16704 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
16705 "target cannot support label values" when encountering LABEL_REF.
16706
16707 2017-06-09 Martin Liska <mliska@suse.cz>
16708
16709 * tree-profile.c (gimple_gen_ic_profiler): Update comment.
16710 (gimple_gen_ic_func_profiler): Emit direct comparison
16711 of __gcov_indirect_call_callee with NULL.
16712 (gimple_gen_time_profiler): Change probability from
16713 PROB_VERY_UNLIKELY to PROB_UNLIKELY.
16714
16715 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
16716
16717 * profile.c (edge_gcov_counts): Turn to pointer.
16718 (compute_branch_probabilities, compute_branch_probabilities): Update.
16719 (branch_prob): Do not clear edge_gcov_count.
16720 * profile.h (edge_gcov_counts): Turn to pointer.
16721 (edge_gcov_count): Update.
16722
16723 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
16724
16725 * gimple.h (gimple_check_failed): Mark cold.
16726
16727 2017-06-09 Richard Biener <rguenther@suse.de>
16728
16729 PR tree-optimization/66623
16730 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
16731 refactor check_reduction into two parts, properly computing
16732 whether we have to check reduction validity for outer loop
16733 vectorization.
16734
16735 2017-06-09 Richard Biener <rguenther@suse.de>
16736
16737 PR tree-optimization/79483
16738 * graphite-scop-detection.c (order): New global.
16739 (get_order): Compute bb to order mapping that satisfies code
16740 generation constraints.
16741 (cmp_pbbs): New helper.
16742 (build_scops): Start domwalk at entry block, sort generated
16743 pbbs.
16744
16745 2017-06-09 Richard Biener <rguenther@suse.de>
16746
16747 PR middle-end/81007
16748 * ipa-polymorphic-call.c
16749 (ipa_polymorphic_call_context::restrict_to_inner_class):
16750 Skip FIELD_DECLs with error_mark_node type.
16751 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
16752 last again.
16753
16754 2017-06-09 Martin Liska <mliska@suse.cz>
16755
16756 * predict.c (struct branch_predictor): New struct.
16757 (test_prediction_value_range): New test.
16758 (predict_c_tests): New function.
16759 * selftest-run-tests.c (selftest::run_tests): Run the function.
16760 * selftest.h: Declare new tests.
16761
16762 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
16763
16764 PR target/80966
16765 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
16766 gen_add3_insn did not fail.
16767 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
16768 r0, construct that number in a temporary reg and add that reg to r0.
16769 If asked to put the result in r0 as well, fail.
16770
16771 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com>
16772
16773 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
16774 for early expansion of vec_eqv.
16775
16776 2017-06-08 Jakub Jelinek <jakub@redhat.com>
16777
16778 PR middle-end/81005
16779 * ubsan.c (instrument_null): Avoid pointless code temporary.
16780 (pass_ubsan::execute): Instrument aggregate arguments of calls.
16781
16782 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
16783
16784 PR target/81015
16785 Revert:
16786 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
16787
16788 PR target/59874
16789 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
16790 (*clzhi2): Ditto.
16791
16792 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16793
16794 * predict.c (unlikely_executed_edge_p): Move ahead.
16795 (probably_never_executed_edge_p): Use it.
16796
16797 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
16798
16799 PR middle-end/79988
16800 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
16801 gimple_call_builtin_p call.
16802
16803 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16804
16805 * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
16806 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
16807 rtl_check_failed_type2, rtl_check_failed_code1,
16808 rtl_check_failed_code2, rtl_check_failed_code_mode,
16809 rtl_check_failed_block_symbol, cwi_check_failed_bounds,
16810 rtvec_check_failed_bounds, rtl_check_failed_flag,
16811 _fatal_insn_not_found, _fatal_insn): Likewise.
16812 * tree.h (tree_contains_struct_check_failed,
16813 tree_check_failed, tree_not_check_failed,
16814 tree_class_check_failed, tree_range_check_failed,
16815 tree_not_class_check_failed, tree_int_cst_elt_check_failed,
16816 tree_vec_elt_check_failed, phi_node_elt_check_failed,
16817 tree_operand_check_failed, omp_clause_check_failed,
16818 omp_clause_operand_check_failed, omp_clause_range_check_failed):
16819 Likewise.
16820
16821 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16822
16823 * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
16824 flag_branch_probabilities.
16825 * ipa-inline.c (edge_badness): Likewise.
16826 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
16827 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
16828 * predict.c (maybe_hot_frequency_p): Likewise.
16829 (probably_never_executed): Likewise.
16830 * sched-ebb.c (schedule_ebbs): Likewise.
16831 * sched-rgn.c (find_single_block_region): Likewise.
16832 * tracer.c (tail_duplicate): Likewise.
16833
16834 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16835
16836 * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
16837 longer requires x_flag_profile_use.
16838
16839 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16840
16841 * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
16842 instead of flag_reorder_blocks_and_partition.
16843 * dbxout.c (dbxout_function_end): Likewise.
16844 * dwarf2out.c (gen_subprogram_die): Likewise.
16845 * haifa-sched.c (sched_create_recovery_edges): Likewise.
16846 * hw-doloop.c (reorg_loops): Likewise.
16847 * varasm.c (assemble_start_function,
16848 assemble_end_function): Likewise.
16849 (decide_function_section): Do not check for
16850 flag_reorder_blocks_and_partition.
16851
16852 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
16853
16854 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
16855 New function.
16856 (chkp_get_hard_register_fake_addr_expr): Ditto.
16857 (chkp_build_addr_expr): Add check for hard reg case.
16858 (chkp_parse_array_and_component_ref): Ditto.
16859 (chkp_find_bounds_1): Ditto.
16860 (chkp_process_stmt): Don't generate bounds store for
16861 hard reg case.
16862
16863 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16864
16865 * predict.c (maybe_hot_bb_p): Do not check profile status.
16866 (maybe_hot_edge_p): Likewise.
16867 (probably_never_executed): Check for zero counts even if profile
16868 is not read.
16869 (unlikely_executed_edge_p): New function.
16870 (unlikely_executed_stmt_p): New function.
16871 (unlikely_executed_bb_p): New function.
16872 (set_even_probabilities): Use unlikely predicates.
16873 (combine_predictions_for_bb): Likewise.
16874 (predict_paths_for_bb): Likewise.
16875 (predict_paths_leading_to_edge): Likewise.
16876 (determine_unlikely_bbs): New function.
16877 (estimate_bb_frequencies): Use it.
16878 (compute_function_frequency): Use zero counts even if profile is
16879 not read.
16880 * profile-count.h: Fix typo.
16881
16882 2017-08-08 Julia Koval <julia.koval@intel.com>
16883
16884 * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
16885 _mm512_mask_cvtsepi16_storeu_epi8,
16886 _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
16887 * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
16888 _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
16889 _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
16890 _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
16891 * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
16892 (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
16893 VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
16894 * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
16895 __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
16896 __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
16897 __builtin_ia32_pmovuswb256mem_mask,
16898 __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
16899 __builtin_ia32_pmovwb512mem_mask): New builtins.
16900
16901 2017-08-08 Julia Koval <julia.koval@intel.com>
16902
16903 PR target/73350,80862
16904 * config/i386/subst.md (round): Fix round pattern.
16905 * config/i386/i386.c (ix86_erase_embedded_rounding):
16906 Fix erasing rounding for the fixed pattern.
16907
16908 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16909
16910 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
16911
16912 2017-06-08 Martin Liska <mliska@suse.cz>
16913
16914 PR gcov-profile/80911
16915 * gcov.c (block_info::block_info): New constructor.
16916
16917 2017-06-07 Carl Love <cel@us.ibm.com>
16918
16919 * config/rs6000/rs6000-c: The return type of the following
16920 built-in functions was implemented as int not long long. Fix sign
16921 of return value for the unsigned version of vec_mulo and vec_mule.
16922 vector unsigned long long vec_bperm (vector unsigned long long,
16923 vector unsigned char)
16924 vector signed long long vec_mule (vector signed int,
16925 vector signed int)
16926 vector unsigned long long vec_mule (vector unsigned int,
16927 vector unsigned int)
16928 vector signed long long vec_mulo (vector signed int,
16929 vector signed int)
16930 vector unsigned long long vec_mulo (vector unsigned int,
16931 vector unsigned int)
16932 * doc/extend.texi: Fix the documentation for the built-in
16933 functions.
16934
16935 2017-06-07 Carl Love <cel@us.ibm.com>
16936
16937 PR target/80982
16938 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
16939 for BE.
16940
16941 2017-06-07 Carl Love <cel@us.ibm.com>
16942
16943 * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
16944 support, Generate doublehv for signed int/float for BE case only.
16945
16946 2017-06-07 Alexander Monakov <amonakov@ispras.ru>
16947
16948 * doc/invoke.texi (mcx16): Rewrite.
16949
16950 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16951
16952 * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
16953 * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
16954 *mov<mode>_softfloat, and an anonymous splitter): Use
16955 nonimmediate_operand instead of rs6000_nonimmediate_operand.
16956
16957 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16958
16959 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
16960 SPEFSCR registers.
16961 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
16962 (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
16963 (rs6000_debug_reg_global): Adjust.
16964 (rs6000_init_hard_regno_mode_ok): Adjust.
16965 (rs6000_dbx_register_number): Adjust.
16966 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
16967 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
16968 Remove SPE_ACC and SPEFSCR.
16969 (REG_ALLOC_ORDER): Ditto.
16970 (FRAME_POINTER_REGNUM): Change to 111.
16971 (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
16972 (REG_CLASS_NAMES): Ditto.
16973 (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
16974 (REGISTER_NAMES): Ditto.
16975 (ADDITIONAL_REG_NAMES): Ditto.
16976 (rs6000_reg_names): Ditto.
16977 * config/rs6000/rs6000.md: Renumber some register number
16978 define_constants.
16979
16980 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16981
16982 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
16983 registers.
16984 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
16985 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
16986 to 117.
16987 (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
16988 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
16989 Delete the SPE high registers.
16990 (REG_ALLOC_ORDER): Ditto.
16991 (enum reg_class): Remove SPE_HIGH_REGS.
16992 (REG_CLASS_NAMES): Ditto.
16993 (REG_CLASS_CONTENTS): Delete the SPE high registers.
16994 (REGISTER_NAMES): Ditto.
16995 (rs6000_reg_names): Ditto.
16996 * doc/tm.texi.in: Remove SPE as example.
16997 * doc/tm.texi: Regenerate.
16998
16999 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
17000
17001 * config/rs6000/8540.md (ppc8540_brinc): Delete.
17002 * config/rs6000/e500mc.md (e500mc_brinc): Delete.
17003 * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
17004 * config/rs6000/rs6000.md (type): Remove "brinc".
17005
17006 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
17007
17008 * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
17009 (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
17010 * config/rs6000/linuxspe.h: Delete file.
17011 * config/rs6000/rs6000.md: Don't include spe.md.
17012 * config/rs6000/spe.h: Delete file.
17013 * config/rs6000/spe.md: Delete file.
17014 * config/rs6000/t-rs6000: Remove spe.md.
17015
17016 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
17017
17018 * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
17019 (reg_or_none500mem_operand): Delete.
17020 * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
17021 instead of reg_or_none500mem_operand.
17022
17023 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
17024
17025 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
17026 handling of SPE flags.
17027 * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
17028
17029 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
17030
17031 * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
17032 SPE ABI handling.
17033 * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
17034 (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
17035 paired_divv2sf3): Similar.
17036 * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
17037 SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
17038 * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
17039 RS6000_BUILTIN_S.
17040 Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
17041 Rename the paired_* instruction patterns.
17042 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
17043 define __SPE__.
17044 * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
17045 * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
17046 (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
17047 spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and
17048 TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with
17049 PAIRED_VECTOR_MODE.
17050 (struct machine_function): Delete field spe_insn_chain_scanned_p.
17051 (spe_func_has_64bit_regs_p): Delete.
17052 (spe_expand_predicate_builtin): Delete.
17053 (spe_expand_evsel_builtin): Delete.
17054 (TARGET_DWARF_REGISTER_SPAN): Do not define.
17055 (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
17056 (invalid_e500_subreg): Delete.
17057 (rs6000_legitimize_address): Always force_reg op2 as well, for
17058 paired single memory accesses.
17059 (rs6000_member_type_forces_blk): Delete.
17060 (rs6000_spe_function_arg): Delete.
17061 (rs6000_expand_unop_builtin): Delete SPE handling.
17062 (rs6000_expand_binop_builtin): Ditto.
17063 (spe_expand_stv_builtin): Delete.
17064 (bdesc_2arg_spe): Delete.
17065 (spe_expand_builtin): Delete.
17066 (spe_expand_predicate_builtin): Delete.
17067 (spe_expand_evsel_builtin): Delete.
17068 (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
17069 (spe_init_builtins): Delete.
17070 (spe_func_has_64bit_regs_p): Delete.
17071 (savres_routine_name): Delete "info" parameter. Adjust callers.
17072 (rs6000_emit_stack_reset): Ditto.
17073 (rs6000_dwarf_register_span): Delete.
17074 * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
17075 UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
17076 SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
17077 Delete.
17078 * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
17079 Delete.
17080 * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
17081 * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
17082 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
17083 mulv2sf3, divv2sf3): Delete expanders.
17084
17085 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
17086
17087 config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
17088
17089 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
17090
17091 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
17092 * config/rs6000/rs6000.c: Ditto.
17093
17094 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
17095
17096 * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
17097 * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
17098 comparison_operator.
17099
17100 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
17101
17102 * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
17103 * config/rs6000/rs6000.opt: Ditto.
17104 * config/rs6000/t-rtems: Ditto.
17105
17106 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
17107
17108 * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
17109 TARGET_E500_SINGLE by 0, simplify.
17110 * config/rs6000/rs6000.c: Ditto.
17111 (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
17112 (spe_build_register_parallel): Delete.
17113 * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
17114 TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
17115 * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
17116 TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
17117 (E500_CONVERT): Delete.
17118 * config/rs6000/spe.md: Remove many patterns and all define_constants.
17119
17120 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
17121
17122 * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
17123 * config/rs6000/dfp.md: Ditto.
17124 (negdd2, *negdd2_fpr): Merge.
17125 (absdd2, *absdd2_fpr): Merge.
17126 (negtd2, *negtd2_fpr): Merge.
17127 (abstd2, *abstd2_fpr): Merge.
17128 * config/rs6000/e500.h: Delete file.
17129 * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
17130 TARGET_FPRS by 1 and simplify.
17131 * config/rs6000/rs6000-c.c: Ditto.
17132 * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and
17133 TARGET_DF_SPE by 0.
17134 * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and
17135 TARGET_DF_SPE.
17136 * config/rs6000/rs6000.md: Ditto.
17137 (floatdidf2, *floatdidf2_fpr): Merge.
17138 (move_from_CR_gt_bit): Delete.
17139 * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
17140 (E500_CR_IOR_COMPARE): Delete.
17141 (All patterns that require !TARGET_FPRS): Delete.
17142 * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
17143
17144 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17145
17146 * passes.def (pass_iv_canon): Move before pass_loop_distribution.
17147
17148 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17149
17150 * graphds.c (add_edge): Intitialize edge's attached data.
17151 (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
17152 pointer parameter. Call pointed function on each edge during
17153 graph traversing. Skip traversing the edge when the function
17154 returns true.
17155 (graphds_dfs, graphds_scc): Ditto.
17156 (for_each_edge): New parameter. Pass the new parameter to callback
17157 function.
17158 * graphds.h (skip_edge_callback): New function pointer type.
17159 (graphds_dfs, graphds_scc): New function pointer parameter.
17160 (graphds_edge_callback, for_each_edge): New parameter.
17161
17162 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17163
17164 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
17165 out code checking if runtime alias check is possible to below ...
17166 Call the new function.
17167 * tree-data-ref.c (runtime_alias_check_p): ... to new function.
17168 * tree-data-ref.h (runtime_alias_check_p): New decalaration.
17169
17170 2017-06-07 Marek Polacek <polacek@redhat.com>
17171
17172 PR sanitizer/80932
17173 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
17174 TYPE_OVERFLOW_WRAPS check.
17175
17176 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17177
17178 * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
17179 if versioning is required.
17180 * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
17181 peeling with the check for versioning.
17182
17183 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17184
17185 * tree-vectorizer.h (vect_build_loop_niters): New parameter.
17186 * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
17187 Set true to new parameter if new ssa variable is defined.
17188 (vect_gen_vector_loop_niters): Refactor. Set range information
17189 for the new vector loop bound variable.
17190 (vect_do_peeling): Ditto.
17191
17192 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17193
17194 * tree-affine.c (ssa.h): Include header file.
17195 (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
17196 has wrapping overflow behavior.
17197
17198 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17199
17200 * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
17201
17202 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17203
17204 (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
17205 (tree_to_aff_combination): ... here.
17206
17207 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17208
17209 * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
17210 reg_pressure model function.
17211 (ivopts_global_cost_for_size): Delete.
17212 (determine_set_costs, iv_ca_recount_cost): Call new model function
17213 ivopts_estimate_reg_pressure.
17214
17215 2017-06-07 Tamar Christina <tamar.christina@arm.com>
17216
17217 * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
17218 expensive than udiv. Remove floating point cases from mod.
17219
17220 2017-06-07 Tamar Christina <tamar.christina@arm.com>
17221
17222 * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
17223 Increase idiv cost.
17224
17225 2017-06-07 Tamar Christina <tamar.christina@arm.com>
17226
17227 * config/aarch64/aarch64.md
17228 (copysignsf3): Fix mask generation.
17229
17230 2017-06-07 Jakub Jelinek <jakub@redhat.com>
17231
17232 * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
17233 TDI_gimple.
17234 (class dump_manager): Add register_dumps method.
17235 * dumpfile.c: Include langhooks.h.
17236 (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
17237 (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
17238 (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
17239 (dump_manager::dump_register): Start with 512 entries instead of 32.
17240 (dump_manager::register_dumps): New method.
17241 * toplev.c (general_init): Instead of invoking register_dumps
17242 langhook, invoke register_dumps method on the dump manager.
17243 * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
17244 TDI_generic.
17245
17246 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org>
17247
17248 * doc/md.texi: Clarify the restrictions on a define_insn condition.
17249 Say that # requires an associated define_split to exist, and that
17250 the define_split must be suitable for use after register allocation.
17251
17252 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
17253
17254 * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
17255 (compute_outgoing_frequencies): Also initialize zero counts.
17256 (find_many_sub_basic_blocks): Do not produce uninitialized profile
17257 around loops; preserve more of profile when nothing changes.
17258
17259 2017-06-06 Jim Wilson <jim.wilson@linaro.org>
17260
17261 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
17262 here.
17263 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
17264 * config/arm/arm-cpu-cdata.h: Regenerate.
17265 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
17266 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
17267 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
17268 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
17269 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
17270 support.
17271 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
17272 support.
17273 * config/arm/t-rmprofile: Likewise.
17274 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
17275
17276 2017-06-06 David S. Miller <davem@davemloft.net>
17277
17278 PR target/80968
17279 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
17280 blockage if function uses alloca.
17281
17282 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17283
17284 * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
17285 New "uid" fields to hold pretty-print IDs of group and ref.
17286 Memory references are now identified as <group_id>:<ref_id>
17287 instead of using [random] addresses.
17288 (dump_mem_details): Simplify, no functional change.
17289 (dump_mem_ref): Simplify and make output more concise.
17290 Replace couple of fprintf's throughout code with calls to dump_mem_ref.
17291 (find_or_create_group): Initialize group uid.
17292 (record_ref): Initialize ref uid. Improve debug output.
17293 (prune_group_by_reuse, should_issue_prefetch_p,)
17294 (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
17295 (mark_nontemporal_store, determine_loop_nest_reuse):
17296 Improve debug output.
17297
17298 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17299
17300 * dbgcnt.def (prefetch): New debug counter.
17301 * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
17302 (schedule_prefetches): Stop issueing prefetches if debug counter
17303 tripped.
17304
17305 2017-06-06 Tom de Vries <tom@codesourcery.com>
17306
17307 * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
17308 gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
17309
17310 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17311
17312 * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
17313 Use aarch64_reg_or_zero predicate for operand 4.
17314 (aarch64_compare_and_swap<mode> define_insn_and_split):
17315 Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint.
17316 (aarch64_store_exclusive<mode>): Likewise for operand 2.
17317
17318 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
17319
17320 * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
17321 (arm_compute_save_core_reg_mask): This.
17322 (thumb1_compute_save_reg_mask): Rename into ...
17323 (thumb1_compute_save_core_reg_mask): This.
17324 (arm_compute_save_reg0_reg12_mask): Adapt comment.
17325 (arm_compute_frame_layout): Likewise.
17326
17327 2017-06-06 Richard Biener <rguenther@suse.de>
17328
17329 PR tree-optimization/80974
17330 * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
17331 keep or clear leaders SSA info.
17332
17333 2017-06-06 Tom de Vries <tom@codesourcery.com>
17334
17335 * config/nvptx/nvptx.c (split_mode_p): New function.
17336 (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
17337
17338 2017-06-06 Tom de Vries <tom@codesourcery.com>
17339
17340 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
17341
17342 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
17343
17344 PR bootstrap/80978
17345 * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
17346 profile.
17347
17348 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
17349
17350 * shrink-wrap.c (handle_simple_exit): Update profile.
17351 (try_shrink_wrapping): Upate profile.
17352
17353 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
17354
17355 * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
17356 (tree_guess_outgoing_edge_probabilities): New.
17357 * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
17358 * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
17359
17360 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
17361
17362 * ipa-split.c (split_function): Initialize return bb profile.
17363
17364 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
17365
17366 * profile.c (compute_branch_probabilities): Also initialize
17367 EXIT_BLOCK profile.
17368
17369 2017-06-06 Richard Biener <rguenther@suse.de>
17370
17371 PR tree-optimization/80928
17372 * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
17373 (vect_analyze_loop_operations): Properly guard analysis for
17374 pure SLP case.
17375 (vect_transform_loop): Likewise.
17376 (vect_analyze_loop_2): Also reset SLP type on PHIs.
17377 (vect_model_induction_cost): Do not cost for pure SLP.
17378 (vectorizable_induction): Pass in SLP node, implement SLP vectorization
17379 of induction in inner loop vectorization.
17380 * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
17381 (vect_get_and_check_slp_defs): Handle vect_induction_def.
17382 (vect_build_slp_tree): Likewise. Handle PHIs as terminating the
17383 recursion.
17384 (vect_analyze_slp_cost_1): Cost induction.
17385 (vect_detect_hybrid_slp_stmts): Handle PHIs.
17386 (vect_get_slp_vect_defs): Likewise.
17387 * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
17388 (vect_transform_stmt): Handle SLP reductions.
17389 * tree-vectorizer.h (vectorizable_induction): Adjust.
17390
17391 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
17392
17393 * config/rs6000/rs6000.c (make_resolver_func): Update
17394 init_lowered_empty_function call.
17395
17396 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
17397
17398 * doc/invoke.texi: Document the -fprofile-abs-path option.
17399 * common.opt (fprofile-abs-path): New option.
17400 * gcov-io.h (gcov_write_filename): Declare.
17401 * gcov-io.c (gcov_write_filename): New function.
17402 * coverage.c (coverage_begin_function): Use gcov_write_filename.
17403 * profile.c (output_location): Likewise.
17404
17405 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
17406
17407 * shring-wrap.c: Revert accidental commit.
17408
17409 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
17410
17411 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
17412
17413 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
17414
17415 * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
17416 new edge.
17417 * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
17418 profile in callgraph edge.
17419 * profile-count.h (apply_probability): If THIS is 0, then result is 0
17420 (apply_scale): Likewise.
17421 * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
17422 Also scale profile when inlining function with zero profile.
17423 (initialize_cfun): Update exit block profile even when it is zero.
17424 * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
17425 when profile is read.
17426
17427 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
17428
17429 * config/rs6000/rs6000.c (toplevel): Include attribs.h.
17430 (CLONE_*): New constants to define the processors we can generate
17431 code for with the target_clone attribute.
17432 (rs6000_clone_map): New array to identify which clone processors
17433 the current program is running on.
17434 (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
17435 target_clone attribute.
17436 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
17437 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
17438 (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
17439 (cpu_expand_builtin): Add support for target_clone attribute.
17440 (rs6000_valid_attribute_p): Allow "default" attribute.
17441 (get_decl_name): New debug function to simplify printing the
17442 current function name in debugging statements.
17443 (rs6000_clone_priority): New functions to support the target_clone
17444 attribute, and be able to generate code to switch between ISA 2.05
17445 through ISA 3.0 (power6 through power9).
17446 (rs6000_compare_version_priority): Likewise.
17447 (rs6000_get_function_versions_dispatcher): Likewise.
17448 (make_resolver_func): Likewise.
17449 (add_condition_to_bb): Likewise.
17450 (dispatch_function_versions): Likewise.
17451 (rs6000_generate_version_dispatcher_body): Likewise.
17452 (rs6000_can_inline_p): Call get_decl_name for debugging usage.
17453 (fusion_gpr_load_p): Fix a spacing issue.
17454 * doc/extend.texi (Common Function Attributes): Document that the
17455 PowerPC supports the target_clone attribute.
17456
17457 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
17458
17459 * config/arm/arm.h: explain F symbol found in description of ARM
17460 register allocation in its legend.
17461
17462 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
17463
17464 * config/mips/frame-header-opt.c: Include profile-count.h.
17465 * config/riscv/riscv.c: Include profile-count.h
17466
17467 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
17468
17469 * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
17470 update profile.
17471 (sm_set_flag_if_changed): Add bbs field.
17472 (execute_sm_if_changed_flag_set): Pass BBS.
17473 (execute_sm): Update.
17474
17475 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17476
17477 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
17478 New pattern.
17479
17480 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17481
17482 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
17483 (peephole2): New peephole2 to emit the above.
17484 * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
17485
17486 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17487
17488 * config/aarch64/aarch64.c (define_peephole2 above
17489 *sub_<shift>_<mode>): New peephole.
17490
17491 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
17492
17493 * config/i386/i386.c (make_resolver_func): Update.
17494 * Makefile.in: Add profile-count.h and profile-count.o
17495 * auto-profile.c (afdo_indirect_call): Update to new API.
17496 (afdo_set_bb_count): Update.
17497 (afdo_propagate_edge): Update.
17498 (afdo_propagate_circuit): Update.
17499 (afdo_calculate_branch_prob): Update.
17500 (afdo_annotate_cfg): Update.
17501 * basic-block.h: Include profile-count.h
17502 (struct edge_def): Turn count to profile_count.
17503 (struct basic_block_def): Likewie.
17504 (REG_BR_PROB_BASE): Move to profile-count.h
17505 (RDIV): Move to profile-count.h
17506 * bb-reorder.c (max_entry_count): Turn to profile_count.
17507 (find_traces): Update.
17508 (rotate_loop):Update.
17509 (connect_traces):Update.
17510 (sanitize_hot_paths):Update.
17511 * bt-load.c (migrate_btr_defs): Update.
17512 * cfg.c (RDIV): Remove.
17513 (init_flow): Use alloc_block.
17514 (alloc_block): Uninitialize count.
17515 (unchecked_make_edge): Uninitialize count.
17516 (check_bb_profile): Update.
17517 (dump_edge_info): Update.
17518 (dump_bb_info): Update.
17519 (update_bb_profile_for_threading): Update.
17520 (scale_bbs_frequencies_int): Update.
17521 (scale_bbs_frequencies_gcov_type): Update.
17522 (scale_bbs_frequencies_profile_count): New.
17523 * cfg.h (update_bb_profile_for_threading): Update.
17524 (scale_bbs_frequencies_profile_count): Declare.
17525 * cfgbuild.c (compute_outgoing_frequencies): Update.
17526 (find_many_sub_basic_blocks): Update.
17527 * cfgcleanup.c (try_forward_edges): Update.
17528 (try_crossjump_to_edge): Update.
17529 * cfgexpand.c (expand_gimple_tailcall): Update.
17530 (construct_exit_block): Update.
17531 * cfghooks.c (verify_flow_info): Update.
17532 (dump_bb_for_graph): Update.
17533 (split_edge): Update.
17534 (make_forwarder_block): Update.
17535 (duplicate_block): Update.
17536 (account_profile_record): Update.
17537 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
17538 (get_estimated_loop_iterations): Update.
17539 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
17540 (single_likely_exit): Update.
17541 * cfgloopmanip.c (scale_loop_profile): Update.
17542 (loopify): Update.
17543 (set_zero_probability): Update.
17544 (lv_adjust_loop_entry_edge): Update.
17545 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
17546 (purge_dead_edges): Update.
17547 (rtl_account_profile_record): Update.
17548 * cgraph.c (cgraph_node::create): Uninitialize count.
17549 (symbol_table::create_edge): Uninitialize count.
17550 (cgraph_update_edges_for_call_stmt_node): Update.
17551 (cgraph_edge::dump_edge_flags): Update.
17552 (cgraph_node::dump): Update.
17553 (cgraph_edge::maybe_hot_p): Update.
17554 * cgraph.h: Include profile-count.h
17555 (create_clone), create_edge, create_indirect_edge): Update.
17556 (cgraph_node): Turn count to profile_count.
17557 (cgraph_edge0: Likewise.
17558 (make_speculative, clone): Update.
17559 (create_edge): Update.
17560 (init_lowered_empty_function): Update.
17561 * cgraphclones.c (cgraph_edge::clone): Update.
17562 (duplicate_thunk_for_node): Update.
17563 (cgraph_node::create_clone): Update.
17564 * cgraphunit.c (cgraph_node::analyze): Update.
17565 (cgraph_node::expand_thunk): Update.
17566 * final.c (dump_basic_block_info): Update.
17567 * gimple-streamer-in.c (input_bb): Update.
17568 * gimple-streamer-out.c (output_bb): Update.
17569 * graphite.c (print_global_statistics): Update.
17570 (print_graphite_scop_statistics): Update.
17571 * hsa-brig.c: Include basic-block.h.
17572 * hsa-dump.c: Include basic-block.h.
17573 * hsa-gen.c (T sum_slice): Update.
17574 (convert_switch_statements):Update.
17575 * hsa-regalloc.c: Include basic-block.h.
17576 * ipa-chkp.c (chkp_produce_thunks): Update.
17577 * ipa-cp.c (struct caller_statistics): Update.
17578 (init_caller_stats): Update.
17579 (gather_caller_stats): Update.
17580 (ipcp_cloning_candidate_p): Update.
17581 (good_cloning_opportunity_p): Update.
17582 (get_info_about_necessary_edges): Update.
17583 (dump_profile_updates): Update.
17584 (update_profiling_info): Update.
17585 (update_specialized_profile): Update.
17586 (perhaps_add_new_callers): Update.
17587 (decide_about_value): Update.
17588 (ipa_cp_c_finalize): Update.
17589 * ipa-devirt.c (struct odr_type_warn_count): Update.
17590 (struct decl_warn_count): Update.
17591 (struct final_warning_record): Update.
17592 (possible_polymorphic_call_targets): Update.
17593 (ipa_devirt): Update.
17594 * ipa-fnsummary.c (redirect_to_unreachable): Update.
17595 * ipa-icf.c (sem_function::merge): Update.
17596 * ipa-inline-analysis.c (do_estimate_edge_time): Update.
17597 * ipa-inline.c (compute_uninlined_call_time): Update.
17598 (compute_inlined_call_time): Update.
17599 (want_inline_small_function_p): Update.
17600 (want_inline_self_recursive_call_p): Update.
17601 (edge_badness): Update.
17602 (lookup_recursive_calls): Update.
17603 (recursive_inlining): Update.
17604 (inline_small_functions): Update.
17605 (dump_overall_stats): Update.
17606 (dump_inline_stats): Update.
17607 * ipa-profile.c (ipa_profile_generate_summary): Update.
17608 (ipa_propagate_frequency): Update.
17609 (ipa_profile): Update.
17610 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
17611 * ipa-utils.c (ipa_merge_profiles): Update.
17612 * loop-doloop.c (doloop_modify): Update.
17613 * loop-unroll.c (report_unroll): Update.
17614 (unroll_loop_runtime_iterations): Update.
17615 * lto-cgraph.c (lto_output_edge): Update.
17616 (lto_output_node): Update.
17617 (input_node): Update.
17618 (input_edge): Update.
17619 (merge_profile_summaries): Update.
17620 * lto-streamer-in.c (input_cfg): Update.
17621 * lto-streamer-out.c (output_cfg): Update.
17622 * mcf.c (create_fixup_graph): Update.
17623 (adjust_cfg_counts): Update.
17624 (sum_edge_counts): Update.
17625 * modulo-sched.c (sms_schedule): Update.
17626 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
17627 * predict.c (maybe_hot_count_p): Update.
17628 (probably_never_executed): Update.
17629 (dump_prediction): Update.
17630 (combine_predictions_for_bb): Update.
17631 (propagate_freq): Update.
17632 (handle_missing_profiles): Update.
17633 (counts_to_freqs): Update.
17634 (rebuild_frequencies): Update.
17635 (force_edge_cold): Update.
17636 * predict.h: Include profile-count.h
17637 (maybe_hot_count_p, counts_to_freqs): UPdate.
17638 * print-rtl-function.c: Do not include cfg.h
17639 * print-rtl.c: Include basic-block.h
17640 * profile-count.c: New file.
17641 * profile-count.h: New file.
17642 * profile.c (is_edge_inconsistent): Update.
17643 (correct_negative_edge_counts): Update.
17644 (is_inconsistent): Update.
17645 (set_bb_counts): Update.
17646 (read_profile_edge_counts): Update.
17647 (compute_frequency_overlap): Update.
17648 (compute_branch_probabilities): Update; Initialize and deinitialize
17649 gcov_count tables.
17650 (branch_prob): Update.
17651 * profile.h (bb_gcov_counts, edge_gcov_counts): New.
17652 (edge_gcov_count): New.
17653 (bb_gcov_count): New.
17654 * shrink-wrap.c (try_shrink_wrapping): Update.
17655 * tracer.c (better_p): Update.
17656 * trans-mem.c (expand_transaction): Update.
17657 (ipa_tm_insert_irr_call): Update.
17658 (ipa_tm_insert_gettmclone_call): Update.
17659 * tree-call-cdce.c: Update.
17660 * tree-cfg.c (gimple_duplicate_sese_region): Update.
17661 (gimple_duplicate_sese_tail): Update.
17662 (gimple_account_profile_record): Update.
17663 (execute_fixup_cfg): Update.
17664 * tree-inline.c (copy_bb): Update.
17665 (copy_edges_for_bb): Update.
17666 (initialize_cfun): Update.
17667 (freqs_to_counts): Update.
17668 (copy_cfg_body): Update.
17669 (expand_call_inline): Update.
17670 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
17671 * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
17672 (try_unroll_loop_completely): Update.
17673 (try_peel_loop): Update.
17674 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
17675 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
17676 * tree-ssa-loop-split.c (connect_loops): Update.
17677 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
17678 * tree-ssa-reassoc.c (branch_fixup): Update.
17679 * tree-ssa-tail-merge.c (replace_block_by): Update.
17680 * tree-ssa-threadupdate.c (create_block_for_threading): Update.
17681 (compute_path_counts): Update.
17682 (update_profile): Update.
17683 (recompute_probabilities): Update.
17684 (update_joiner_offpath_counts): Update.
17685 (estimated_freqs_path): Update.
17686 (freqs_to_counts_path): Update.
17687 (clear_counts_path): Update.
17688 (ssa_fix_duplicate_block_edges): Update.
17689 (duplicate_thread_path): Update.
17690 * tree-switch-conversion.c (case_bit_test_cmp): Update.
17691 (struct switch_conv_info): Update.
17692 * tree-tailcall.c (decrease_profile): Update.
17693 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
17694 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
17695 * value-prof.c (check_counter): Update.
17696 (gimple_divmod_fixed_value): Update.
17697 (gimple_mod_pow2): Update.
17698 (gimple_mod_subtract): Update.
17699 (gimple_ic_transform): Update.
17700 (gimple_stringop_fixed_value): Update.
17701 * value-prof.h (gimple_ic): Update.
17702
17703 2017-06-02 Carl Love <cel@us.ibm.com>
17704
17705 * config/rs6000/rs6000-c: Add support for built-in functions
17706 vector double vec_doublee (vector signed int);
17707 vector double vec_doublee (vector unsigned int);
17708 vector double vec_doublee (vector float);
17709 vector double vec_doubleh (vector signed int);
17710 vector double vec_doubleh (vector unsigned int);
17711 vector double vec_doubleh (vector float);
17712 vector double vec_doublel (vector signed int);
17713 vector double vec_doublel (vector unsigned int);
17714 vector double vec_doublel (vector float);
17715 vector double vec_doubleo (vector signed int);
17716 vector double vec_doubleo (vector unsigned int);
17717 vector double vec_doubleo (vector float);.
17718 * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
17719 DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
17720 UNS_DOUBLEL.
17721 * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
17722 unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
17723 unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
17724 VS_sxwsp.
17725 * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
17726 vec_doublel, vec_doubleh.
17727 * doc/extend.texi: Update the built-in documentation file for the
17728 new built-in functions.
17729
17730 2017-06-02 David Malcolm <dmalcolm@redhat.com>
17731
17732 PR jit/80954
17733 * ipa-inline-analysis.c (free_growth_caches): Set
17734 edge_removal_hook_holder to NULL after removing it.
17735
17736 2017-06-02 Sudakshina Das <sudi.das@arm.com>
17737
17738 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
17739 comparision with zero.
17740
17741 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
17742 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
17743 for early expansion of vec_min and vec_max builtins.
17744 (builtin_function_type): Add min/max unsigned variants to those
17745 identified as having unsigned arguments.
17746
17747 2017-06-02 Olivier Hainque <hainque@adacore.com>
17748
17749 * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
17750
17751 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17752
17753 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
17754 Use VALL_F16 iterator rather than VALL.
17755
17756 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17757
17758 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
17759 Emit CBNZ inside loop when doing a strong exchange and comparing
17760 against zero. Generate the CC flags after the loop.
17761
17762 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
17763
17764 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
17765 (dl_section_ref): New.
17766 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
17767 On AIX, append an expression to subtract the size of the
17768 section length to dl_section_ref.
17769
17770 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
17771
17772 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
17773 for early expansion of vector absolute builtins.
17774
17775 2017-06-02 Richard Biener <rguenther@suse.de>
17776
17777 * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
17778 what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
17779
17780 2017-06-02 Richard Biener <rguenther@suse.de>
17781
17782 PR tree-optimization/80948
17783 * tree-tailcall.c (find_tail_calls): Track stmts to move in
17784 stmt order as well.
17785
17786 2017-06-02 Richard Biener <rguenther@suse.de>
17787
17788 * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
17789 PHIs are ok.
17790 * tree-vect-stmts.c (process_use): Do not mark backedge defs
17791 for inductions as relevant.
17792
17793 2017-06-02 Richard Biener <rguenther@suse.de>
17794
17795 * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
17796 (vectorizable_induction): ... this. Remove dead code.
17797
17798 2017-06-02 Eric Botcazou <ebotcazou@adacore.com>
17799
17800 * builtins. (expand_builtin_alloca): Remove second parameter and
17801 infer its value from the first parameter instead.
17802 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
17803
17804 2017-06-02 Jakub Jelinek <jakub@redhat.com>
17805
17806 PR rtl-optimization/80903
17807 * loop-doloop.c (add_test): Unshare sequence.
17808
17809 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
17810
17811 * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
17812
17813 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
17814
17815 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
17816 static.
17817 (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
17818 xlogue_layout::get_instance, logue_layout::xlogue_layout,
17819 sp_valid_at, fp_valid_at, choose_basereg): Formatting.
17820 (xlogue_layout::get_stub_rtx): Make static.
17821 (xlogue_layout::get_stub_name): Avoid const-cast, make static.
17822 (xlogue_layout::compute_stub_managed_regs): Rename to...
17823 (xlogue_layout::count_stub_managed_regs): ...this.
17824 (xlogue_layout::is_stub_managed_reg): New function.
17825 (xlogue_layout::m_stub_names): Rename to...
17826 (xlogue_layout::s_stub_names): ...this, make static.
17827 (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
17828 xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
17829 xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
17830 xlogue_layout::s_stub_names): Instantiate statics.
17831 (stub_managed_regs): Remove.
17832 (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
17833 (disable_call_ms2sysv_xlogues): Rename to...
17834 (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
17835 (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
17836 warning logic.
17837 (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
17838 change after reload_completed.
17839 (ix86_can_use_return_insn_p): Use the ix86_frame data structure
17840 directly.
17841 (ix86_expand_prologue): Likewise.
17842 (ix86_expand_epilogue): Likewise.
17843 (ix86_expand_split_stack_prologue): Likewise.
17844 (ix86_compute_frame_layout): Remove frame parameter ...
17845 (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
17846 (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
17847 only if necessary.
17848 (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
17849 (ix86_frame): Move from here ...
17850 * config/i386/i386.h (ix86_frame): ... to here.
17851 (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
17852 complete ix86_frame data structure instead. Remove some_ld_name.
17853
17854 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
17855
17856 * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
17857 symbols that hold a DECL_VALUE_EXPR.
17858
17859 2017-06-01 Martin Jambor <mjambor@suse.cz>
17860
17861 PR tree-optimization/80898
17862 * tree-sra.c (process_subtree_disqualification): Removed.
17863 (disqualify_candidate): Do not acll
17864 process_subtree_disqualification.
17865 (subtree_mark_written_and_enqueue): New function.
17866 (propagate_all_subaccesses): Set grp_write of LHS subtree if the
17867 RHS has been disqualified and re-queue LHS if necessary. Apart
17868 from that, ignore disqualified RHS.
17869
17870 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17871
17872 * config/s390/s390.c (s390_emit_epilogue): Disable early return
17873 address fetch for z10 or later.
17874
17875 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17876
17877 * config/arc/arc.md (tst_movb): Add guard when splitting.
17878
17879 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17880
17881 * config/arc/arc.c (arc_can_eliminate): Test against
17882 arc_frame_pointer_needed.
17883
17884 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17885
17886 * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
17887 to prevent store reordering.
17888 * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
17889 (type): Add block type.
17890 (stack_tie): Define special instruction to be used in
17891 expand_prologue.
17892
17893 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17894
17895 * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
17896 constraint. It is not valid for the pattern.
17897 (noncommutative_binary_comparison): Likewise.
17898
17899 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17900
17901 * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
17902 scaled addresses.
17903
17904 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17905
17906 * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
17907 be used by the reg-alloc.
17908
17909 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17910
17911 * config/arc/arc.md (mulsi3): Avoid use of hard registers before
17912 reg-alloc when having mul64 or mul32x16 instructions.
17913 (mulsidi3): Likewise.
17914 (umulsidi3): Likewise.
17915 (mulsi32x16): New pattern.
17916 (mulsi64): Likewise.
17917 (mulsidi64): Likewise.
17918 (umulsidi64): Likewise.
17919 (MUL32x16_REG): Define.
17920 (mul64_600): Use MUL32x16_REG.
17921 (mac64_600): Likewise.
17922 (umul64_600): Likewise.
17923 (umac64_600): Likewise.
17924
17925 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17926
17927 * config/arc/arc.md (mulsi3_700): Make it commutative.
17928
17929 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com>
17930
17931 * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
17932 type for movstouw.
17933 (*sign_extendsidi2_insn): Likewise for movstosw.
17934
17935 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
17936
17937 * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
17938 the type of the input discriminant value. Convert the
17939 discriminant value of signedness vary.
17940
17941 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de>
17942
17943 * doc/invoke.texi (-Wcatch-value): Document new shortcut.
17944 Add to -Wall section.
17945
17946 2017-06-01 Richard Biener <rguenther@suse.de>
17947
17948 PR middle-end/66313
17949 * fold-const.c (fold_plusminus_mult_expr): If the factored
17950 factor may be zero use a wrapping type for the inner operation.
17951 * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
17952 and handle moved defs.
17953 (process_assignment): Properly guard the unary op case. Return a
17954 tri-state indicating that moving the stmt before the call may allow
17955 to continue. Pass through to_move.
17956 (find_tail_calls): Handle moving unrelated defs before
17957 the call.
17958
17959 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
17960
17961 PR target/80618
17962 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
17963 splitter result in the canonical way.
17964
17965 2017-05-31 Uros Bizjak <ubizjak@gmail.com>
17966
17967 * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
17968 also for 32bit target. Update insn attributes.
17969 (zero-extendsidi2 splitter): Allow all registers for operand 1.
17970
17971 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com>
17972
17973 * config/i386/avx512fintrin.h (_mm_mask_max_sd)
17974 (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
17975 (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
17976 (_mm_maskz_min_ss): New intrinsics.
17977
17978 2017-05-31 Martin Liska <mliska@suse.cz>
17979
17980 * tree-vect-loop.c (vect_create_epilog_for_reduction):
17981 Change comment style to one we normally use.
17982 (vectorizable_reduction): Likewise.
17983 (vectorizable_induction): Likewise.
17984 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
17985 (vectorizable_call): Likewise.
17986 (vectorizable_simd_clone_call): Likewise.
17987 (vectorizable_conversion): Likewise.
17988 (vectorizable_assignment): Likewise.
17989 (vectorizable_shift): Likewise.
17990 (vectorizable_operation): Likewise.
17991 (vectorizable_store): Likewise.
17992 (vectorizable_load): Likewise.
17993 * tree-vectorizer.h: Likewise.
17994
17995 2017-05-31 Alexander Monakov <amonakov@ispras.ru>
17996
17997 * passes.c (emergency_dump_function): New.
17998 * tree-pass.h (emergency_dump_function): Declare.
17999 * plugin.c (plugins_internal_error_function): Remove.
18000 * plugin.h (plugins_internal_error_function): Remove declaration.
18001 * toplev.c (internal_error_function): New static function. Use it...
18002 (general_init): ...here.
18003
18004 2017-05-31 Graham Markall <graham.markall@embecosm.com>
18005
18006 * config/arc/arc.c (arc_print_operand): Handle constant operands.
18007 (arc_rtx_costs): Add costs for new patterns.
18008 * config/arc/arc.md: Additional *add_n and *sub_n patterns.
18009 * config/arc/predicates.md: Add _1_2_3_operand predicate.
18010
18011 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
18012
18013 * tree-ssa-strlen.c (get_next_strinfo): New function.
18014 (get_stridx_plus_constant): Use it.
18015 (zero_length_string): Likewise.
18016 (adjust_related_strinfos): Likewise.
18017 (adjust_last_stmt): Likewise.
18018
18019 2017-05-31 Richard Biener <rguenther@suse.de>
18020
18021 PR target/80880
18022 * config/i386/i386.c (ix86_expand_builtin): Remove assert
18023 for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
18024
18025 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
18026
18027 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
18028 loop_vinfo argument and use of dependence distance vectors.
18029 Check instead whether the two references differ only in their
18030 initial value and assume that they have the same alignment if the
18031 difference is a multiple of the vector alignment.
18032 (vect_analyze_data_refs_alignment): Update call accordingly.
18033
18034 2017-05-31 Martin Liska <mliska@suse.cz>
18035
18036 PR target/79155
18037 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
18038
18039 2017-05-31 Bin Cheng <bin.cheng@arm.com>
18040
18041 * tree-vect-loop-manip.c (create_intersect_range_checks_index)
18042 (create_intersect_range_checks): Move from ...
18043 * tree-data-ref.c (create_intersect_range_checks_index)
18044 (create_intersect_range_checks): ... to here.
18045 (create_runtime_alias_checks): New function factored from ...
18046 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
18047 here. Call above function.
18048 * tree-data-ref.h (create_runtime_alias_checks): New function.
18049
18050 2017-05-31 Bin Cheng <bin.cheng@arm.com>
18051
18052 * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
18053 segment length for dr_b and compute it in wide_int.
18054
18055 2017-05-31 Richard Biener <rguenther@suse.de>
18056
18057 PR tree-optimization/80906
18058 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
18059 and pass through iv_map.
18060 (copy_bb_and_scalar_dependences): Adjust.
18061 (translate_pending_phi_nodes): Likewise.
18062 (copy_loop_close_phi_args): Handle code-generating IVs instead
18063 of ICEing.
18064
18065 2017-05-30 David Malcolm <dmalcolm@redhat.com>
18066
18067 * diagnostic-color.c (color_dict): Add "type-diff".
18068 (parse_gcc_colors): Update comment.
18069 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
18070 -fdiagnostics-show-template-tree and -fno-elide-type.
18071 (GCC_COLORS): Add type-diff to example.
18072 (type-diff=): New.
18073 (-fdiagnostics-show-template-tree): New.
18074 (-fno-elide-type): New.
18075 * pretty-print.c (pp_format): Pass quote and formatters[argno] to
18076 the pp_format_decoder callback. Call any m_format_postprocessor's
18077 "handle" method.
18078 (pretty_printer::pretty_printer): Initialize
18079 m_format_postprocessor.
18080 (pretty_printer::~pretty_printer): Delete any
18081 m_format_postprocessor.
18082 * pretty-print.h (printer_fn): Add bool and const char ** parameters.
18083 (class format_postprocessor): New class.
18084 (struct pretty_printer::format_decoder): Document the new parameters.
18085 (struct pretty_printer::m_format_postprocessor): New field.
18086 * tree-diagnostic.c (default_tree_printer): Update for new
18087 bool and const char ** params.
18088 * tree-diagnostic.h (default_tree_printer): Likewise.
18089
18090 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org>
18091
18092 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
18093 (lwa_operand): Delete rs6000_gen_cell_microcode test.
18094 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
18095 rs6000_gen_cell_microcode code.
18096 (rs6000_final_prescan_insn): Delete.
18097 (rs6000_opt_vars): Delete the "gen-cell-microcode" and
18098 "warn-cell-microcode" entries.
18099 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
18100 * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
18101 throughout. Change cc_reg_not_micro_cr0_operand to
18102 cc_reg_not_cr0_operand throughout.
18103 (*extendhi<mode>2_noload): Delete.
18104 * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
18105 (mwarn-cell-microcode): Delete.
18106 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
18107 -mgen-cell-microcode and -mwarn-cell-microcode.
18108
18109 2017-05-30 Uros Bizjak <ubizjak@gmail.com>
18110
18111 PR target/80833
18112 * config/i386/constraints.md (Yd): New constraint.
18113 (Ye): Ditto.
18114 * config/i386/i386.md (*movti_internal): Add (?r, Ye)
18115 and (?Yd, r) alternatives. Update insn attributes.
18116 * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
18117 and (?*Yd, r) alternatives. Update insn attributes.
18118 (double-mode inter-unit splitters): Add new GR<->XMM splitters.
18119
18120 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com>
18121
18122 * gimplify.c (gimplify_modify_expr): Don't create a
18123 DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
18124 function.
18125
18126 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com>
18127
18128 * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
18129
18130 2017-05-30 Richard Biener <rguenther@suse.de>
18131
18132 * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
18133 and reduc_def fields.
18134 (STMT_VINFO_REDUC_TYPE): New define.
18135 (STMT_VINFO_REDUC_DEF): Likewise.
18136 (vect_force_simple_reduction): Adjust prototype.
18137 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
18138 (vect_is_simple_reduction): Remove check_reduction argument.
18139 (vect_force_simple_reduction): Adjust and set
18140 STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
18141 (vectorizable_reduction): Do not re-do reduction analysis
18142 but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
18143 * tree-parloops.c (gather_scalar_reductions): Adjust.
18144
18145 2017-05-30 Richard Biener <rguenther@suse.de>
18146
18147 PR middle-end/80901
18148 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
18149 split_edge code.
18150
18151 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com>
18152
18153 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
18154 Introduce unknown_misalignment parameter and remove vf.
18155 (vect_peeling_hash_get_lowest_cost):
18156 Pass unknown_misalignment parameter.
18157 (vect_enhance_data_refs_alignment):
18158 Fix unsupportable data ref treatment.
18159
18160 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
18161
18162 * tree-vect-data-refs.c (vect_get_data_access_cost):
18163 Workaround for SLP handling.
18164 (vect_enhance_data_refs_alignment):
18165 Compute costs for doing no peeling at all, compare to the best
18166 peeling costs so far and avoid peeling if cheaper.
18167
18168 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
18169
18170 * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
18171 Return peeling info and set costs to zero for unlimited cost
18172 model.
18173 (vect_enhance_data_refs_alignment): Also inspect all datarefs
18174 with unknown misalignment. Compute and costs for unknown
18175 misalignment, compare them to the costs for known misalignment
18176 and choose the cheapest for peeling.
18177
18178 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
18179
18180 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
18181 (vect_get_peeling_costs_all_drs): Create function.
18182 (vect_peeling_hash_get_lowest_cost):
18183 Use vect_get_peeling_costs_all_drs.
18184 (vect_peeling_supportable): Create function.
18185 (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
18186
18187 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
18188
18189 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
18190 DR_HAS_NEGATIVE_STEP.
18191 (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
18192 (vect_enhance_data_refs_alignment): Use.
18193 (vect_duplicate_ssa_name_ptr_info): Use.
18194 * tree-vectorizer.h (dr_misalignment): Use.
18195 (known_alignment_for_access_p): Use.
18196
18197 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
18198
18199 PR target/78838
18200 * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
18201 .lowtext.
18202 (has_section_name): New function.
18203
18204 2017-05-30 Martin Liska <mliska@suse.cz>
18205
18206 PR other/80909
18207 * auto-profile.c (get_function_decl_from_block): Fix
18208 parenthesis.
18209
18210 2017-05-30 Richard Biener <rguenther@suse.de>
18211
18212 PR middle-end/80876
18213 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
18214
18215 2017-05-30 Martin Liska <mliska@suse.cz>
18216
18217 * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
18218 * dumpfile.h (struct dump_file_info): Remove ctors.
18219
18220 2017-05-30 Martin Liska <mliska@suse.cz>
18221
18222 * predict.def: Fix GNU coding style.
18223
18224 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
18225
18226 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
18227 Mark 'to' argument with ATTRIBUTE_UNUSED.
18228
18229 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
18230
18231 * config/xtensa/xtensa.c (xtensa_emit_call): Use
18232 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
18233 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
18234 format string.
18235
18236 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
18237
18238 * doc/install.texi (Options specification): Restore entry of
18239 --enable-sjlj-exceptions.
18240
18241 2017-05-27 Michael Eager <eager@eagercon.com>
18242
18243 Revert:
18244 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
18245
18246 See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
18247
18248 * config/microblaze/microblaze.h
18249 (FIXED_REGISTERS): Update in macro.
18250 (CALL_USED_REGISTERS): Update in macro.
18251
18252 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org>
18253
18254 * doc/install.texi: Add links to macOS binary distributions.
18255
18256 2017-05-27 Jakub Jelinek <jakub@redhat.com>
18257
18258 PR bootstrap/80887
18259 Revert:
18260 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
18261
18262 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
18263
18264 2017-05-26 Martin Liska <mliska@suse.cz>
18265
18266 * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
18267
18268 2017-05-26 Martin Liska <mliska@suse.cz>
18269
18270 * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
18271 always leading ';; '.
18272 (dump_bb_info): Likewise.
18273 (brief_dump_cfg): Likewise.
18274 * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
18275 * dumpfile.c: Remove usage of TDF_VERBOSE.
18276 * dumpfile.h (enum dump_kind): Likewise.
18277 (dump_gimple_bb_header): Do not use TDF_COMMENT.
18278 * print-tree.c (debug_verbose): Remove.
18279 * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
18280 (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
18281 * tree-diagnostic.c (default_tree_printer): Replace
18282 TDF_DIAGNOSTIC with TDF_SLIM.
18283
18284 2017-05-26 Bin Cheng <bin.cheng@arm.com>
18285
18286 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
18287 in parameter loop, rather than loop_vinfo.
18288 (create_intersect_range_checks): Ditto.
18289 (vect_create_cond_for_alias_checks): Update call to above functions.
18290
18291 2017-05-26 Bin Cheng <bin.cheng@arm.com>
18292
18293 PR tree-optimization/80815
18294 * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
18295 for merging runtime alias checks. Handle negative DR_STEPs.
18296
18297 2017-05-26 Bin Cheng <bin.cheng@arm.com>
18298
18299 * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
18300 Move from ...
18301 * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
18302 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
18303 out code pruning runtime alias checks.
18304 * tree-data-ref.c (prune_runtime_alias_test_list): New function
18305 factored out from above.
18306 * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
18307 Move from ...
18308 * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
18309 ... to here.
18310 (prune_runtime_alias_test_list): New decalaration.
18311
18312 2017-05-26 Bin Cheng <bin.cheng@arm.com>
18313
18314 * tree-vect-data-refs.c (compare_tree): Rename and move ...
18315 * tree-data-ref.c (data_ref_compare_tree): ... to here.
18316 * tree-data-ref.h (data_ref_compare_tree): New decalaration.
18317 * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
18318 (operator==, comp_dr_with_seg_len_pair): Ditto.
18319 (vect_prune_runtime_alias_test_list): Ditto.
18320
18321 2017-05-26 Martin Liska <mliska@suse.cz>
18322
18323 PR ipa/80663
18324 * params.def: Bound partial-inlining-entry-probability param.
18325
18326 2017-05-26 Marek Polacek <polacek@redhat.com>
18327
18328 PR sanitizer/80875
18329 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
18330 can be negated.
18331
18332 2017-05-26 Richard Biener <rguenther@suse.de>
18333
18334 PR tree-optimization/80842
18335 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
18336 value.
18337
18338 2017-05-26 Richard Biener <rguenther@suse.de>
18339
18340 PR tree-optimization/80844
18341 * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
18342
18343 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com>
18344
18345 * doc/md.texi (Machine Constraints): Update x86 family
18346 machine constraints section to match 'config/i386/constraints.md'.
18347
18348 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de>
18349
18350 * doc/invoke.texi (-Wcatch-value=): Document new warning option.
18351
18352 2017-05-25 Nathan Sidwell <nathan@acm.org>
18353
18354 * doc/invoke.texi (--enable-languages): Update documentation.
18355
18356 2017-05-25 Martin Liska <mliska@suse.cz>
18357
18358 * dumpfile.c: Add TDF_FOLDING.
18359 * dumpfile.h (enum dump_kind): Likewise.
18360 * genmatch.c (dt_simplify::gen_1): Use it.
18361
18362 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
18363
18364 * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
18365
18366 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
18367
18368 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
18369 * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
18370
18371 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
18372
18373 * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
18374 * match.pd (X == C): Rewrite it here.
18375 (with_possible_nonzero_bits, with_possible_nonzero_bits2,
18376 with_certain_nonzero_bits2): New predicates.
18377 * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
18378
18379 2017-05-24 Nathan Sidwell <nathan@acm.org>
18380
18381 * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
18382 avoid warning.
18383
18384 * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
18385 warning.
18386
18387 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
18388
18389 * config/powerpcspe: New port. Files are copied from the rs6000
18390 port, with "rs6000" in filenames replaced by "powerpcspe".
18391
18392 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com>
18393
18394 PR rtl-optimization/80754
18395 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
18396
18397 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
18398
18399 * config/sparc/sparc.md (length): Return the correct value for -mflat
18400 sibcalls to match output_sibcall.
18401
18402 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
18403
18404 PR bootstrap/80860
18405 PR bootstrap/80843
18406 * config/rs6000/rs6000.c (struct machine_function): Add new field
18407 n_components.
18408 (rs6000_get_separate_components): Init that field, use it.
18409 (rs6000_components_for_bb): Use the field.
18410
18411 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
18412
18413 * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
18414
18415 2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
18416
18417 PR middle-end/80823
18418 * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
18419
18420 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18421
18422 PR target/80725
18423 * config/s390/s390.c (s390_check_qrst_address): Check incoming
18424 address against address_operand predicate.
18425 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
18426
18427 2017-05-24 Eric Botcazou <ebotcazou@adacore.com>
18428
18429 * var-tracking.c (track_expr_p): Do not return 0 for tracked record
18430 parameters passed indirectly.
18431
18432 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
18433
18434 * config/i386/i386.md (*movdi_internal): Remove SSE4
18435 alternative 18 (?r, *v). Update insn attributes.
18436 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
18437 Update insn attributes.
18438 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
18439 Update insn attributes.
18440 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
18441 alternative 1 (r, v). Remove isa attribute.
18442 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
18443 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
18444 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
18445
18446 2017-05-23 Tom de Vries <tom@codesourcery.com>
18447
18448 * doc/sourcebuild.texi (Directives, Verify compiler message): Document
18449 dg-line directive.
18450
18451 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
18452
18453 * cgraphunit.c (symbol_table::process_new_functions): Update.
18454 * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
18455 (inline_generate_summary): Rename to ...
18456 (ipa_fn_summary_generate): ... this one.
18457 (inline_read_summary): Rename to ...
18458 (ipa_fn_summary_read): ... this one.
18459 (inline_write_summary): Rename to ...
18460 (ipa_fn_summary_write): ... this one.
18461 (inline_free_summary): Rename to ...
18462 (ipa_free_fn_summary): ... this one.
18463 (pass_data_local_fn_summary, pass_local_fn_summary,
18464 make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
18465 pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
18466 pass_data_ipa_fn_summary, pass_ipa_fn_summary,
18467 make_pass_ipa_fn_summary): New.
18468 * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
18469 inline_write_summary, inline_free_summary): Remove.
18470 (ipa_free_fn_summary) : New.
18471 * ipa-inline.c (ipa_inline): Update.
18472 (pass_ipa_inline): Do not generate summaries.
18473 * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
18474 Remove.
18475 * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
18476 and add pass_ipa_fn_summary.
18477 * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
18478 New.
18479 (make_pass_inline_parameters): Remove.
18480
18481 2017-05-23 Thomas Schwinge <thomas@codesourcery.com>
18482
18483 * omp-low.c (struct omp_context): Remove "default_kind" member.
18484 Adjust all users.
18485
18486 * omp-offload.c (execute_oacc_device_lower): Remove the
18487 parallelism dimensions function attributes for unparallelized
18488 OpenACC kernels constructs.
18489
18490 2017-05-23 Martin Liska <mliska@suse.cz>
18491
18492 * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
18493 functions.
18494 (cgraph_edge::make_speculative): Likewise.
18495 (cgraph_edge::resolve_speculation): Likewise.
18496 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
18497 (cgraph_node::dump): Likewise.
18498 * cgraph.h: Likewise.
18499 * cgraphunit.c (analyze_functions): Likewise.
18500 (symbol_table::compile): Likewise.
18501 * ipa-cp.c (print_all_lattices): Likewise.
18502 (determine_versionability): Likewise.
18503 (initialize_node_lattices): Likewise.
18504 (ipcp_verify_propagated_values): Likewise.
18505 (estimate_local_effects): Likewise.
18506 (update_profiling_info): Likewise.
18507 (create_specialized_node): Likewise.
18508 (perhaps_add_new_callers): Likewise.
18509 (decide_about_value): Likewise.
18510 (decide_whether_version_node): Likewise.
18511 (identify_dead_nodes): Likewise.
18512 (ipcp_store_bits_results): Likewise.
18513 * ipa-devirt.c (dump_targets): Likewise.
18514 (ipa_devirt): Likewise.
18515 * ipa-icf.c (sem_item::dump): Likewise.
18516 (sem_function::equals): Likewise.
18517 (sem_variable::equals): Likewise.
18518 (sem_item_optimizer::read_section): Likewise.
18519 (sem_item_optimizer::execute): Likewise.
18520 (congruence_class::dump): Likewise.
18521 * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
18522 (dump_inline_summary): Likewise.
18523 (estimate_node_size_and_time): Likewise.
18524 (inline_analyze_function): Likewise.
18525 * ipa-inline-transform.c (inline_call): Likewise.
18526 * ipa-inline.c (report_inline_failed_reason): Likewise.
18527 (want_early_inline_function_p): Likewise.
18528 (edge_badness): Likewise.
18529 (update_edge_key): Likewise.
18530 (inline_small_functions): Likewise.
18531 * ipa-profile.c (ipa_profile): Likewise.
18532 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
18533 (ipa_make_edge_direct_to_target): Likewise.
18534 (remove_described_reference): Likewise.
18535 (ipa_impossible_devirt_target): Likewise.
18536 (propagate_controlled_uses): Likewise.
18537 (ipa_print_node_params): Likewise.
18538 (ipcp_transform_function): Likewise.
18539 * ipa-pure-const.c (pure_const_read_summary): Likewise.
18540 (propagate_pure_const): Likewise.
18541 * ipa-reference.c (generate_summary): Likewise.
18542 (read_write_all_from_decl): Likewise.
18543 (propagate): Likewise.
18544 (ipa_reference_read_optimization_summary): Likewise.
18545 * ipa-utils.c (ipa_merge_profiles): Likewise.
18546 * ipa.c (walk_polymorphic_call_targets): Likewise.
18547 (symbol_table::remove_unreachable_nodes): Likewise.
18548 (ipa_single_use): Likewise.
18549 * passes.c (execute_todo): Likewise.
18550 * predict.c (drop_profile): Likewise.
18551 * symtab.c (symtab_node::get_dump_name): New function.
18552 (symtab_node::dump_name): Likewise.
18553 (symtab_node::dump_asm_name): Likewise.
18554 (symtab_node::dump_references): Likewise.
18555 (symtab_node::dump_referring): Likewise.
18556 (symtab_node::dump_base): Likewise.
18557 (symtab_node::debug_symtab): Likewise.
18558 * tree-sra.c (convert_callers_for_node): Likewise.
18559 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
18560 * value-prof.c (init_node_map): Likewise.
18561
18562 2017-05-23 Martin Liska <mliska@suse.cz>
18563
18564 * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
18565 and symtab_node::debug_symtab to symbol_table::debug.
18566 * cgraphunit.c (analyze_functions): Use the renamed function.
18567 (symbol_table::compile): Likewise.
18568 * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
18569 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
18570 * passes.c (execute_todo): Likewise.
18571 * symtab.c (symbol_table::dump): New function.
18572 * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
18573
18574 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
18575
18576 * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
18577 that nonconst implies exec.
18578
18579 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
18580
18581 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
18582 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
18583 (inline_edge_summary_vec): Turn into ...
18584 (ipa_call_summaries): ... this one.
18585 (redirect_to_unreachable, edge_set_predicate,
18586 evaluate_properties_for_edge, inline_summary_alloc,
18587 reset_ipa_call_summary, reset_inline_summary,
18588 inline_summary_t::duplicate): Update.
18589 (inline_edge_duplication_hook): Turn to ...
18590 (ipa_call_summary_t::duplicate): ... this one.
18591 (inline_edge_removal_hook): Turn to ...
18592 (ipa_call_summary_t::remove): ... this one.
18593 (dump_inline_edge_summary): Turn to ...
18594 (dump_ipa_call_summary): ... this one.
18595 (estimate_function_body_sizes): Update.
18596 (inline_update_callee_summaries): Update.
18597 (remap_edge_change_prob): Update.
18598 (remap_edge_summaries): Update.
18599 (inline_merge_summary): Update.
18600 (do_estimate_edge_time): Update.
18601 (inline_generate_summary): Update.
18602 (inline_read_section): Update.
18603 (inline_read_summary): Update.
18604 (inline_free_summary): Update.
18605 * ipa-inline.c (can_inline_edge_p): Update.
18606 (compute_inlined_call_time): Update.
18607 (want_inline_small_function_p): Update.
18608 (edge_badness): Update.
18609 (early_inliner): Update.
18610 * ipa-inline.h (inline_edge_summary): Turn to ...
18611 (ipa_call_summary): ... this one.
18612 (ipa_call_summary_t): New class.
18613 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
18614 (ipa_call_summaries): New.
18615 (inline_edge_summary): Remove.
18616 (estimate_edge_growth): Update.
18617 * ipa-profile.c (ipa_propagate_frequency_1): Update.
18618 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
18619 * ipa-split.c (execute_split_functions): Update.
18620 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
18621
18622 2017-05-23 Tom de Vries <tom@codesourcery.com>
18623
18624 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
18625 attributes): Document rdrand effective target.
18626
18627 2017-05-23 Tom de Vries <tom@codesourcery.com>
18628
18629 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
18630 attributes): Sort alphabetically.
18631
18632 2017-05-23 Georg-Johann Lay <avr@gjlay.de>
18633
18634 * config/avr/genmultilib.awk: Use gsub instead of gensub.
18635
18636 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
18637
18638 PR target/80718
18639 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
18640 V2DF/V2DI splat into two separate patterns, one that handles
18641 registers, and the other that only handles memory. Drop support
18642 for splatting from a GPR on ISA 2.07 and then splitting the
18643 splat into direct move and splat.
18644 (vsx_splat_<mode>_reg): Likewise.
18645 (vsx_splat_<mode>_mem): Likewise.
18646
18647 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org>
18648
18649 * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
18650
18651 2017-05-22 Jakub Jelinek <jakub@redhat.com>
18652
18653 PR middle-end/80809
18654 * omp-low.c (finish_taskreg_remap): New function.
18655 (finish_taskreg_scan): If unit size of ctx->record_type
18656 is non-constant, unshare the size expression and replace
18657 decls in it with possible outer var refs.
18658
18659 PR middle-end/80809
18660 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
18661 GOVD_SHARED rather than GOVD_PRIVATE with it.
18662 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
18663 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
18664
18665 PR middle-end/80853
18666 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
18667 as last argument to build_outer_var_ref for pointer bases of array
18668 section reductions.
18669
18670 2017-05-19 Martin Sebor <msebor@redhat.com>
18671
18672 * print-tree.c (print_node): Print DECL_READ_P flag.
18673
18674 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
18675
18676 * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
18677 * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
18678 * cgraph.c: Likewise.
18679 * cgraphunit.c: Likewise.
18680 * gengtype.c: Likewise.
18681 * ipa-cp.c: Likewise.
18682 * ipa-devirt.c: Likewise.
18683 * ipa-icf.c: Likewise.
18684 * ipa-predicate.c: Likewise.
18685 * ipa-profile.c: Likewise.
18686 * ipa-prop.c: Likewise.
18687 * ipa-split.c: Likewise.
18688 * ipa.c: Likewise.
18689 * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
18690 edge_predicate_pool, dump_inline_hints,
18691 inline_summary::account_size_time, redirect_to_unreachable,
18692 edge_set_predicate, set_hint_predicate,
18693 evaluate_conditions_for_known_args, evaluate_properties_for_edge,
18694 inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
18695 inline_summary_t::remove, remap_hint_predicate_after_duplication,
18696 inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
18697 ipa_call_summary_t::remove, initialize_growth_caches,
18698 free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
18699 debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
18700 mark_modified, unmodified_parm_1, unmodified_parm,
18701 unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
18702 set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
18703 compute_bb_predicates, will_be_nonconstant_expr_predicate,
18704 will_be_nonconstant_predicate, record_modified_bb_info,
18705 get_minimal_bb, record_modified, param_change_prob,
18706 phi_result_unknown_predicate, predicate_for_phi_result,
18707 array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
18708 estimate_function_body_sizes, compute_inline_parameters,
18709 compute_inline_parameters_for_curren, pass_data_inline_parameters,
18710 estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
18711 inline_update_callee_summaries, remap_edge_change_prob,
18712 remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
18713 inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
18714 inline_analyze_function, inline_summary_t::insert,
18715 inline_generate_summary, read_ipa_call_summary, inline_read_section,
18716 inline_read_summary, write_ipa_call_summary, inline_write_summary,
18717 inline_free_summary): Move to ipa-fnsummary.h
18718 (predicate_t): Remove.
18719 * ipa-fnsummary.c: New file.
18720 * ipa-inline.h: Do not include sreal.h and ipa-predicate.h
18721 (enum inline_hints_vals, inline_hints, agg_position_info,
18722 INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
18723 inline_summaries, ipa_call_summary, ipa_call_summary_t,
18724 ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
18725 dump_inline_summary, dump_inline_hints, inline_generate_summary,
18726 inline_read_summary, inline_write_summary, inline_free_summary,
18727 inline_analyze_function, initialize_inline_failed,
18728 inline_merge_summary, inline_update_overall_summary,
18729 compute_inline_parameters): Move to ipa-fnsummary.h
18730 * ipa-fnsummary.h: New file.
18731 * ipa-inline-transform.h: Include ipa-inline.h.
18732 * ipa-inline.c: LIkewise.
18733
18734 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
18735
18736 * ipa-inline.c (edge_badness): Use inlined_time instead of
18737 inline_summaries->get.
18738
18739 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
18740
18741 * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
18742
18743 2017-05-22 Nathan Sidwell <nathan@acm.org>
18744
18745 * doc/invoke.texi (fdump-translation-unit): Delete documentation.
18746 (fdump-lang): Document 'raw' option.
18747 * dumpfile.h (TDI_tu): Delete.
18748 * dumpfile.c (dump_files): Remove translation-unit.
18749 (FIRST_AUTO_NUMBERED_DUMP): Decrement.
18750
18751 2017-05-22 Georg-Johann Lay <avr@gjlay.de>
18752
18753 * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
18754 command option from $(AWK) call.
18755 * config/avr/genmultilib.awk: Simplify and rewrite so that it
18756 generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
18757 [FORMAT]: Remove handling of variable.
18758 * config/avr/t-multilib: Regenerate.
18759
18760 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
18761
18762 * ipa-inline-analysis.c (inline_summary::reset): Do not reset
18763 self_time.
18764 (dump_inline_summary): Do not print self_time.
18765 (estimate_function_body_sizes): Do not set self_time.
18766 (compute_inline_parameters): Likewise.
18767 (inline_read_section, inline_write_summary): Do not stream self_time.
18768 * ipa-inline.h (inline_summary): Drop self_time.
18769
18770 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
18771
18772 * ipa-inline-analysis.c (account_size_time): Rename to ...
18773 (inline_summary::account_size_time): ... this one.
18774 (reset_ipa_call_summary): Turn to ...
18775 (ipa_call_summary::reset): ... this one.
18776 (reset_inline_summary): Turn to ...
18777 (inline_summary::reset): ... this one.
18778 (inline_summary_t::remove): Update.
18779 (inline_summary_t::duplicate): Update.
18780 (ipa_call_summary_t::remove): Update.
18781 (dump_inline_summary): Update.
18782 (estimate_function_body_sizes): Update.
18783 (compute_inline_parameters): Update.
18784 (estimate_node_size_and_time): Update.
18785 (inline_merge_summary): Update.
18786 (inline_update_overall_summary): Update.
18787 (inline_read_section): Update.
18788 (inline_write_summary): Update.
18789 * ipa-inline.h (inline_summary): Rename entry to size_time_table;
18790 add account_size_time and reset member functions.
18791 (ipa_call_summary): Add reset function.
18792 * ipa-predicate.h (predicate::operator &): Constify.
18793
18794 2017-05-22 Richard Biener <rguenther@suse.de>
18795
18796 * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
18797
18798 2017-05-19 Jason Merrill <jason@redhat.com>
18799
18800 * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
18801
18802 2017-05-19 Marek Polacek <polacek@redhat.com>
18803
18804 PR sanitizer/80800
18805 * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
18806 TYPE_OVERFLOW_WRAPS checks.
18807
18808 2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
18809
18810 * tree-core.h (enum omp_clause_default_kind): Add
18811 "OMP_CLAUSE_DEFAULT_PRESENT".
18812 * tree-pretty-print.c (dump_omp_clause): Handle it.
18813 * gimplify.c (enum gimplify_omp_var_data): Add
18814 "GOVD_MAP_FORCE_PRESENT".
18815 (gimplify_adjust_omp_clauses_1): Map it to
18816 "GOMP_MAP_FORCE_PRESENT".
18817 (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
18818
18819 * gimplify.c (oacc_default_clause): Clarify.
18820
18821 2017-05-19 Nathan Sidwell <nathan@acm.org>
18822
18823 LANG_HOOK_REGISTER_DUMPS
18824 * toplev.c (general_init): Call register dump lang hook.
18825 * doc/invoke.texi: Document -fdump-lang option family.
18826 * dumpfile.c (dump_files): Remove class dump here.
18827 (FIRST_AUTO_NUMBERED_DUMP): Adjust.
18828 * dumpfile.h (tree_dump_index): Remove TDI_class.
18829 * langhooks-def.h (lhd_register_dumps): Declare.
18830 (LANG_HOOKS_REGISTER_DUMPS): Define.
18831 (LANG_HOOKS_INITIALIZER): Add it.
18832 * langhooks.c (lhd_register_dumps): Define.
18833 * langhooks.h (struct lang_hooks): Add register_dumps.
18834
18835 2017-05-19 Nathan Sidwell <nathan@acm.org>
18836
18837 * context.h (context::set_passes): New.
18838 * context.c (context::context): Do not create pass manager.
18839 * toplev.c (general_init): Create pass manager here.
18840
18841 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org>
18842
18843 * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
18844 use this splitter if two add or or instructions would also work for
18845 the constant we want to generate.
18846
18847 2017-05-19 Richard Biener <rguenther@suse.de>
18848
18849 PR build/80821
18850 * genmatch.c (dt_node::gen_kids_1): Add missing scope around
18851 predicate evaluation.
18852
18853 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
18854
18855 * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
18856 add ctor.
18857 * ipa-inline.c (want_inline_small_function_p): Do not cast to
18858 unsigned.
18859
18860 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
18861
18862 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
18863 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
18864 (inline_edge_summary_vec): Turn into ...
18865 (ipa_call_summaries): ... this one.
18866 (redirect_to_unreachable, edge_set_predicate,
18867 evaluate_properties_for_edge, inline_summary_alloc,
18868 reset_ipa_call_summary, reset_inline_summary,
18869 inline_summary_t::duplicate): Update.
18870 (inline_edge_duplication_hook): Turn to ...
18871 (ipa_call_summary_t::duplicate): ... this one.
18872 (inline_edge_removal_hook): Turn to ...
18873 (ipa_call_summary_t::remove): ... this one.
18874 (dump_inline_edge_summary): Turn to ...
18875 (dump_ipa_call_summary): ... this one.
18876 (estimate_function_body_sizes): Update.
18877 (inline_update_callee_summaries): Update.
18878 (remap_edge_change_prob): Update.
18879 (remap_edge_summaries): Update.
18880 (inline_merge_summary): Update.
18881 (do_estimate_edge_time): Update.
18882 (inline_generate_summary): Update.
18883 (inline_read_section): Update.
18884 (inline_read_summary): Update.
18885 (inline_free_summary): Update.
18886 * ipa-inline.c (can_inline_edge_p): Update.
18887 (compute_inlined_call_time): Update.
18888 (want_inline_small_function_p): Update.
18889 (edge_badness): Update.
18890 (early_inliner): Update.
18891 * ipa-inline.h (inline_edge_summary): Turn to ...
18892 (ipa_call_summary): ... this one.
18893 (ipa_call_summary_t): New class.
18894 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
18895 (ipa_call_summaries): New.
18896 (inline_edge_summary): Remove.
18897 (estimate_edge_growth): Update.
18898 * ipa-profile.c (ipa_propagate_frequency_1): Update.
18899 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
18900 * ipa-split.c (execute_split_functions): Update.
18901 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
18902
18903 2017-05-19 Richard Biener <rguenther@suse.de>
18904
18905 PR middle-end/80764
18906 * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
18907
18908 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org>
18909
18910 * config/rs6000/rs6000.c (struct machine_function): Add field
18911 fpr_is_wrapped_separately.
18912 (rs6000_get_separate_components): Use 64 components. Handle the
18913 new FPR components.
18914 (rs6000_components_for_bb): Handle the FPR components.
18915 (rs6000_emit_prologue_components): Handle the FPR components.
18916 (rs6000_emit_epilogue_components): Handle the FPR components.
18917 (rs6000_set_handled_components): Handle the FPR components.
18918 (rs6000_emit_prologue): Don't output prologue code for those FPRs
18919 that are already separately shrink-wrapped.
18920 (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
18921 that are already separately shrink-wrapped.
18922
18923 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
18924
18925 PR target/80510
18926 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
18927 New predicate.
18928
18929 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
18930 (define_peephole2 for Altivec d-form load): Add peepholes to catch
18931 cases where the register allocator uses a move and an offsettable
18932 memory operation to/from a FPR register on ISA 2.06/2.07.
18933 (define_peephole2 for Altivec d-form store): Likewise.
18934
18935 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
18936
18937 PR target/80799
18938 * config/i386/mmx.md (*mov<mode>_internal): Enable
18939 alternatives 11, 12, 13 and 14 also for 32bit targets.
18940 Remove alternatives 15, 16, 17 and 18.
18941 * config/i386/sse.md (vec_concatv2di): Change
18942 alternative (!x, *y) to (x, ?!*Yn).
18943
18944 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com>
18945
18946 * dumpfile.h (enum dump_kind): Remove stray comma.
18947
18948 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
18949
18950 * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
18951 * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
18952 predicate::num_conditions
18953 (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
18954 (CHANGED): turn into predicate::changed.
18955 (agg_position_info): Move to ipa-predicate.h
18956 (add_condition, predicate::add_clause, predicate::operator &=,
18957 predicate::or_with, predicate::evaluate, predicate::probability,
18958 dump_condition, dump_clause, predicate::dump,
18959 predicate::remap_after_duplication, predicate::remap_after_inlining,
18960 predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
18961 (evaluate_conditions_for_known_args): Update.
18962 (set_cond_stmt_execution_predicate): Update.
18963 * ipa-inline.h: Include ipa-predicate.h
18964 (condition, inline_param_summary, conditions, agg_position_info,
18965 predicate): Move to ipa-predicate.h
18966 * ipa-predicate.c: New file.
18967 * ipa-predicate.h: New file.
18968
18969 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com>
18970
18971 * final.c (leaf_function_p): Check we are not in a sequence.
18972
18973 2017-05-18 Martin Liska <mliska@suse.cz>
18974
18975 * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
18976 * dumpfile.c (dump_register): Use new enum dump_kind.
18977 (get_dump_file_name): Likewise.
18978 (dump_enable_all): Likewise.
18979 (dump_switch_p_1): Likewise.
18980 (enable_rtl_dump_file): Remove usage of TDF_RTL.
18981 * dumpfile.h (enum dump_kind): New enum type.
18982 (struct dump_file_info): Create constructor and
18983 format fields and comments.
18984 * passes.c (pass_manager::register_one_dump_file):
18985 Use num dump_kind.
18986 * statistics.c (statistics_early_init): Likewise.
18987 * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
18988 TDF_TREE with TDF_SLIM.
18989 (gather_memory_references_ref): Likewise.
18990
18991 2017-05-18 Martin Liska <mliska@suse.cz>
18992
18993 * vec.h (struct vnull): Use it.
18994
18995 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
18996
18997 * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
18998 (true_predicate, false_predicate, true_predicate_p,
18999 false_predicate_p): Remove.
19000 (single_cond_predicate, not_inlined_predicate): Turn to member function
19001 in ipa-inline.h
19002 (add_condition): Update.
19003 (add_clause): Turn to...
19004 (predicate::add_clause): ... this one; update; allow passing NULL
19005 as parameter.
19006 (and_predicates): Turn to ...
19007 (predicate::operator &=): ... this one.
19008 (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
19009 (or_predicates): Turn to ...
19010 (predicate::or_with): ... this one.
19011 (evaluate_predicate): Turn to ...
19012 (predicate::evaluate): ... this one.
19013 (predicate_probability): Turn to ...
19014 (predicate::probability): ... this one.
19015 (dump_condition): Update.
19016 (dump_predicate): Turn to ...
19017 (predicate::dump): ... this one.
19018 (account_size_time): Update.
19019 (edge_set_predicate): Update.
19020 (set_hint_predicate): UPdate.
19021 (evaluate_conditions_for_known_args): Update.
19022 (evaluate_properties_for_edge): Update.
19023 (remap_predicate_after_duplication): Turn to...
19024 (predicate::remap_after_duplication): ... this one.
19025 (remap_hint_predicate_after_duplication): Update.
19026 (inline_summary_t::duplicate): UPdate.
19027 (dump_inline_edge_summary): Update.
19028 (dump_inline_summary): Update.
19029 (set_cond_stmt_execution_predicate): Update.
19030 (set_switch_stmt_execution_predicate): Update.
19031 (compute_bb_predicates): Update.
19032 (will_be_nonconstant_expr_predicate): Update.
19033 (will_be_nonconstant_predicate): Update.
19034 (phi_result_unknown_predicate): Update.
19035 (predicate_for_phi_result): Update.
19036 (array_index_predicate): Update.
19037 (estimate_function_body_sizes): Update.
19038 (estimate_node_size_and_time): Update.
19039 (estimate_ipcp_clone_size_and_time): Update.
19040 (remap_predicate): Rename to ...
19041 (predicate::remap_after_inlining): ... this one.
19042 (remap_hint_predicate): Update.
19043 (inline_merge_summary): Update.
19044 (inline_update_overall_summary): Update.
19045 (estimate_size_after_inlining): Update.
19046 (read_predicate): Rename to ...
19047 (predicate::stream_in): ... this one.
19048 (read_inline_edge_summary): Update.
19049 (write_predicate): Rename to ...
19050 (predicate::stream_out): ... this one.
19051 (write_inline_edge_summary): Update.
19052 * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
19053 (clause_t): Turn to uint32_t
19054 (predicate): Turn to class; implement constructor and operators
19055 ==, !=, &
19056 (size_time_entry): Update.
19057 (inline_summary): Update.
19058 (inline_edge_summary): Update.
19059
19060 2017-05-18 Marc Glisse <marc.glisse@inria.fr>
19061
19062 * fold-const.c (fold_binary_loc): Move transformation...
19063 * match.pd (C - X CMP X): ... here.
19064
19065 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
19066
19067 * config/sparc/sparc.c (sparc_option_override): Set function
19068 alignment for -mcpu=niagara7 to 64 to match the I$ line.
19069 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
19070 latency to 1.
19071 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
19072 latency to 2.
19073 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
19074
19075 2017-05-18 Marek Polacek <polacek@redhat.com>
19076
19077 PR sanitizer/80797
19078 * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
19079 (pass_ubsan::execute): Call gimple_assign_single_p instead of
19080 gimple_assign_load_p.
19081
19082 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
19083
19084 PR middle-end/80692
19085 * real.c (do_compare): Give decimal_do_compare preference over
19086 comparing just the signs.
19087
19088 2017-05-17 Uros Bizjak <ubizjak@gmail.com>
19089
19090 * doc/md.texi (Canonicalization of Instructions): Describe the
19091 canonical form of instructions that inherently set a condition
19092 code register.
19093
19094 2017-05-17 Peter Bergner <bergner@vnet.ibm.com>
19095
19096 PR middle-end/80775
19097 * tree-cfg.c: Move deletion of unreachable case statements to after
19098 the merging of consecutive case labels.
19099
19100 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
19101
19102 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
19103 readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
19104 restoring of callee-saved registers.
19105
19106 2017-05-17 Eric Botcazou <ebotcazou@adacore.com>
19107
19108 * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
19109 * config/visium/visium.c (single_set_and_flags): Likewise.
19110 * config/visium/visium.md (Substitutions): Likewise.
19111
19112 2017-05-17 Martin Liska <mliska@suse.cz>
19113
19114 * cfg.c: Introduce dump_flags_t type and
19115 use it instead of int type.
19116 * cfg.h: Likewise.
19117 * cfghooks.c: Likewise.
19118 * cfghooks.h (struct cfg_hooks): Likewise.
19119 * cfgrtl.c: Likewise.
19120 * cfgrtl.h: Likewise.
19121 * cgraph.c (cgraph_node::get_body): Likewise.
19122 * coretypes.h: Likewise.
19123 * domwalk.c: Likewise.
19124 * domwalk.h: Likewise.
19125 * dumpfile.c (struct dump_option_value_info): Likewise.
19126 (dump_enable_all): Likewise.
19127 (dump_switch_p_1): Likewise.
19128 (opt_info_switch_p): Likewise.
19129 * dumpfile.h (enum tree_dump_index): Likewise.
19130 (struct dump_file_info): Likewise.
19131 * genemit.c: Likewise.
19132 * generic-match-head.c: Likewise.
19133 * gengtype.c (open_base_files): Likewise.
19134 * gimple-pretty-print.c: Likewise.
19135 * gimple-pretty-print.h: Likewise.
19136 * graph.c (print_graph_cfg): Likewise.
19137 * graphite-scop-detection.c (dot_all_sese): Likewise.
19138 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
19139 * loop-unroll.c (report_unroll): Likewise.
19140 * passes.c (pass_manager::register_one_dump_file): Likewise.
19141 * print-tree.c: Likewise.
19142 * statistics.c: Likewise.
19143 * tree-cfg.c: Likewise.
19144 * tree-cfg.h: Likewise.
19145 * tree-dfa.c: Likewise.
19146 * tree-dfa.h: Likewise.
19147 * tree-dump.c (dump_function): Likewise.
19148 * tree-dump.h (struct dump_info): Likewise.
19149 * tree-pretty-print.c: Likewise.
19150 * tree-pretty-print.h: Likewise.
19151 * tree-ssa-live.c: Likewise.
19152 * tree-ssa-live.h: Likewise.
19153 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
19154 * tree-vect-loop.c: Likewise.
19155 * tree-vect-slp.c: Likewise.
19156
19157 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com>
19158 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19159
19160 PR tree-optimization/80457
19161 * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
19162 of all arguments to a statement as scalar_to_vec operations.
19163 (vectorizable_call): Adjust call to vect_model_simple_cost for
19164 new parameter.
19165 (vectorizable_conversion): Likewise.
19166 (vectorizable_assignment): Likewise.
19167 (vectorizable_shift): Likewise.
19168 (vectorizable_operation): Likewise.
19169 (vectorizable_comparison): Likewise.
19170 (vect_is_simple_cond): Record the def types for operands.
19171 (vectorizable_condition): Likewise, call vect_model_simple_cost.
19172 * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
19173 for statement argument count.
19174
19175 2017-05-16 Carl Love <cel@us.ibm.com>
19176
19177 * config/rs6000/rs6000-c: Add support for built-in functions
19178 vector unsigned long long vec_bperm (vector unsigned long long,
19179 vector unsigned char)
19180 vector signed long long vec_mule (vector signed int,
19181 vector signed int)
19182 vector unsigned long long vec_mule (vector unsigned int,
19183 vector unsigned int)
19184 vector signed long long vec_mulo (vector signed int,
19185 vector signed int)
19186 vector unsigned long long vec_mulo (vector unsigned int,
19187 vector unsigned int)
19188 vector signed char vec_sldw (vector signed char,
19189 vector signed char,
19190 const int)
19191 vector unsigned char vec_sldw (vector unsigned char,
19192 vector unsigned char,
19193 const int)
19194 vector signed short vec_sldw (vector signed short,
19195 vector signed short,
19196 const int)
19197 vector unsigned short vec_sldw (vector unsigned short,
19198 vector unsigned short,
19199 const int)
19200 vector signed int vec_sldw (vector signed int,
19201 vector signed int,
19202 const int)
19203 vector unsigned int vec_sldw (vector unsigned int,
19204 vector unsigned int,
19205 const int)
19206 vector signed long long vec_sldw (vector signed long long,
19207 vector signed long long,
19208 const int)
19209 vector unsigned long long vec_sldw (vector unsigned long long,
19210 vector unsigned long long,
19211 const int)
19212 * config/rs6000/rs6000-c: Add support for built-in functions
19213 * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
19214 * config/rs6000/altivec.h: Add defintion for vec_sldw.
19215 * doc/extend.texi: Update the built-in documentation for the
19216 new built-in functions.
19217
19218 2017-05-16 Marek Polacek <polacek@redhat.com>
19219
19220 PR sanitizer/80536
19221 PR sanitizer/80386
19222 * tree.c (save_expr): Don't fold the expression.
19223
19224 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
19225
19226 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
19227 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
19228 and (?*y,m). Update insn attributes.
19229
19230 2017-05-16 Martin Liska <mliska@suse.cz>
19231
19232 * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
19233 flags argument of print_gimple_stmt, print_gimple_expr,
19234 print_generic_stmt and print_generic_expr.
19235 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
19236 * coretypes.h: Likewise.
19237 * except.c (dump_eh_tree): Likewise.
19238 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
19239 * gimple-pretty-print.h: Likewise.
19240 * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
19241 (backprop::push_to_worklist): Likewise.
19242 (backprop::pop_from_worklist): Likewise.
19243 (backprop::process_use): Likewise.
19244 (backprop::intersect_uses): Likewise.
19245 (note_replacement): Likewise.
19246 * gimple-ssa-store-merging.c
19247 (pass_store_merging::terminate_all_aliasing_chains): Likewise.
19248 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
19249 (pass_store_merging::execute): Likewise.
19250 * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
19251 (ssa_base_cand_dump_callback): Likewise.
19252 (dump_incr_vec): Likewise.
19253 (replace_refs): Likewise.
19254 (replace_mult_candidate): Likewise.
19255 (create_add_on_incoming_edge): Likewise.
19256 (create_phi_basis): Likewise.
19257 (insert_initializers): Likewise.
19258 (all_phi_incrs_profitable): Likewise.
19259 (introduce_cast_before_cand): Likewise.
19260 (replace_one_candidate): Likewise.
19261 * gimplify.c (gimplify_expr): Likewise.
19262 * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
19263 (set_rename): Likewise.
19264 (rename_uses): Likewise.
19265 (copy_loop_phi_nodes): Likewise.
19266 (add_close_phis_to_merge_points): Likewise.
19267 (copy_loop_close_phi_args): Likewise.
19268 (copy_cond_phi_args): Likewise.
19269 (graphite_copy_stmts_from_block): Likewise.
19270 (translate_pending_phi_nodes): Likewise.
19271 * graphite-poly.c (print_pdr): Likewise.
19272 (dump_gbb_cases): Likewise.
19273 (dump_gbb_conditions): Likewise.
19274 (print_scop_params): Likewise.
19275 * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
19276 (build_cross_bb_scalars_use): Likewise.
19277 (gather_bbs::before_dom_children): Likewise.
19278 * hsa-dump.c (dump_hsa_immed): Likewise.
19279 * ipa-cp.c (print_ipcp_constant_value): Likewise.
19280 (get_replacement_map): Likewise.
19281 * ipa-inline-analysis.c (dump_condition): Likewise.
19282 (estimate_function_body_sizes): Likewise.
19283 * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
19284 (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
19285 * ipa-prop.c (ipa_dump_param): Likewise.
19286 (ipa_print_node_jump_functions_for_edge): Likewise.
19287 (ipa_modify_call_arguments): Likewise.
19288 (ipa_modify_expr): Likewise.
19289 (ipa_dump_param_adjustments): Likewise.
19290 (ipa_dump_agg_replacement_values): Likewise.
19291 (ipcp_modif_dom_walker::before_dom_children): Likewise.
19292 * ipa-pure-const.c (check_stmt): Likewise.
19293 (pass_nothrow::execute): Likewise.
19294 * ipa-split.c (execute_split_functions): Likewise.
19295 * omp-offload.c (dump_oacc_loop_part): Likewise.
19296 (dump_oacc_loop): Likewise.
19297 * trans-mem.c (tm_log_emit): Likewise.
19298 (tm_memopt_accumulate_memops): Likewise.
19299 (dump_tm_memopt_set): Likewise.
19300 (dump_tm_memopt_transform): Likewise.
19301 * tree-cfg.c (gimple_verify_flow_info): Likewise.
19302 (print_loop): Likewise.
19303 * tree-chkp-opt.c (chkp_print_addr): Likewise.
19304 (chkp_gather_checks_info): Likewise.
19305 (chkp_get_check_result): Likewise.
19306 (chkp_remove_check_if_pass): Likewise.
19307 (chkp_use_outer_bounds_if_possible): Likewise.
19308 (chkp_reduce_bounds_lifetime): Likewise.
19309 * tree-chkp.c (chkp_register_addr_bounds): Likewise.
19310 (chkp_mark_completed_bounds): Likewise.
19311 (chkp_register_incomplete_bounds): Likewise.
19312 (chkp_mark_invalid_bounds): Likewise.
19313 (chkp_maybe_copy_and_register_bounds): Likewise.
19314 (chkp_build_returned_bound): Likewise.
19315 (chkp_get_bound_for_parm): Likewise.
19316 (chkp_build_bndldx): Likewise.
19317 (chkp_get_bounds_by_definition): Likewise.
19318 (chkp_generate_extern_var_bounds): Likewise.
19319 (chkp_get_bounds_for_decl_addr): Likewise.
19320 * tree-chrec.c (chrec_apply): Likewise.
19321 * tree-data-ref.c (dump_data_reference): Likewise.
19322 (dump_subscript): Likewise.
19323 (dump_data_dependence_relation): Likewise.
19324 (analyze_overlapping_iterations): Likewise.
19325 * tree-inline.c (expand_call_inline): Likewise.
19326 (tree_function_versioning): Likewise.
19327 * tree-into-ssa.c (dump_defs_stack): Likewise.
19328 (dump_currdefs): Likewise.
19329 (dump_names_replaced_by): Likewise.
19330 (dump_update_ssa): Likewise.
19331 (update_ssa): Likewise.
19332 * tree-object-size.c (pass_object_sizes::execute): Likewise.
19333 * tree-parloops.c (build_new_reduction): Likewise.
19334 (try_create_reduction_list): Likewise.
19335 (ref_conflicts_with_region): Likewise.
19336 (oacc_entry_exit_ok_1): Likewise.
19337 (oacc_entry_exit_single_gang): Likewise.
19338 * tree-pretty-print.h: Likewise.
19339 * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
19340 (get_scalar_evolution): Likewise.
19341 (add_to_evolution): Likewise.
19342 (get_loop_exit_condition): Likewise.
19343 (analyze_evolution_in_loop): Likewise.
19344 (analyze_initial_condition): Likewise.
19345 (analyze_scalar_evolution): Likewise.
19346 (instantiate_scev): Likewise.
19347 (number_of_latch_executions): Likewise.
19348 (gather_chrec_stats): Likewise.
19349 (final_value_replacement_loop): Likewise.
19350 (scev_const_prop): Likewise.
19351 * tree-sra.c (dump_access): Likewise.
19352 (disqualify_candidate): Likewise.
19353 (create_access): Likewise.
19354 (reject): Likewise.
19355 (maybe_add_sra_candidate): Likewise.
19356 (create_access_replacement): Likewise.
19357 (analyze_access_subtree): Likewise.
19358 (analyze_all_variable_accesses): Likewise.
19359 (sra_modify_assign): Likewise.
19360 (initialize_constant_pool_replacements): Likewise.
19361 (find_param_candidates): Likewise.
19362 (decide_one_param_reduction): Likewise.
19363 (replace_removed_params_ssa_names): Likewise.
19364 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
19365 * tree-ssa-copy.c (dump_copy_of): Likewise.
19366 (copy_prop_visit_cond_stmt): Likewise.
19367 * tree-ssa-dce.c (mark_operand_necessary): Likewise.
19368 * tree-ssa-dom.c (pass_dominator::execute): Likewise.
19369 (record_equivalences_from_stmt): Likewise.
19370 * tree-ssa-dse.c (compute_trims): Likewise.
19371 (delete_dead_call): Likewise.
19372 (delete_dead_assignment): Likewise.
19373 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
19374 (forward_propagate_into_cond): Likewise.
19375 (pass_forwprop::execute): Likewise.
19376 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
19377 * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
19378 Likewise.
19379 (move_computations_worker): Likewise.
19380 (execute_sm): Likewise.
19381 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
19382 (remove_exits_and_undefined_stmts): Likewise.
19383 (remove_redundant_iv_tests): Likewise.
19384 * tree-ssa-loop-ivopts.c (dump_use): Likewise.
19385 (adjust_iv_update_pos): Likewise.
19386 * tree-ssa-math-opts.c (bswap_replace): Likewise.
19387 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
19388 (value_replacement): Likewise.
19389 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
19390 * tree-ssa-pre.c (print_pre_expr): Likewise.
19391 (get_representative_for): Likewise.
19392 (create_expression_by_pieces): Likewise.
19393 (insert_into_preds_of_block): Likewise.
19394 (eliminate_insert): Likewise.
19395 (eliminate_dom_walker::before_dom_children): Likewise.
19396 (eliminate): Likewise.
19397 (remove_dead_inserted_code): Likewise.
19398 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
19399 * tree-ssa-reassoc.c (get_rank): Likewise.
19400 (eliminate_duplicate_pair): Likewise.
19401 (eliminate_plus_minus_pair): Likewise.
19402 (eliminate_not_pairs): Likewise.
19403 (undistribute_ops_list): Likewise.
19404 (eliminate_redundant_comparison): Likewise.
19405 (update_range_test): Likewise.
19406 (optimize_range_tests_var_bound): Likewise.
19407 (optimize_vec_cond_expr): Likewise.
19408 (rewrite_expr_tree): Likewise.
19409 (rewrite_expr_tree_parallel): Likewise.
19410 (linearize_expr): Likewise.
19411 (break_up_subtract): Likewise.
19412 (linearize_expr_tree): Likewise.
19413 (attempt_builtin_powi): Likewise.
19414 (attempt_builtin_copysign): Likewise.
19415 (transform_stmt_to_copy): Likewise.
19416 (transform_stmt_to_multiply): Likewise.
19417 (dump_ops_vector): Likewise.
19418 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
19419 (print_scc): Likewise.
19420 (set_ssa_val_to): Likewise.
19421 (visit_reference_op_store): Likewise.
19422 (visit_use): Likewise.
19423 (sccvn_dom_walker::before_dom_children): Likewise.
19424 (run_scc_vn): Likewise.
19425 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
19426 Likewise.
19427 (expr_hash_elt::print): Likewise.
19428 (const_and_copies::pop_to_marker): Likewise.
19429 (const_and_copies::record_const_or_copy_raw): Likewise.
19430 * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
19431 * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
19432 (dump_predicates): Likewise.
19433 (find_uninit_use): Likewise.
19434 (warn_uninitialized_phi): Likewise.
19435 (pass_late_warn_uninitialized::execute): Likewise.
19436 * tree-ssa.c (verify_vssa): Likewise.
19437 (verify_ssa): Likewise.
19438 (maybe_optimize_var): Likewise.
19439 * tree-vrp.c (dump_value_range): Likewise.
19440 (dump_all_value_ranges): Likewise.
19441 (dump_asserts_for): Likewise.
19442 (register_edge_assert_for_2): Likewise.
19443 (vrp_visit_cond_stmt): Likewise.
19444 (vrp_visit_switch_stmt): Likewise.
19445 (vrp_visit_stmt): Likewise.
19446 (vrp_visit_phi_node): Likewise.
19447 (simplify_cond_using_ranges_1): Likewise.
19448 (fold_predicate_in): Likewise.
19449 (evrp_dom_walker::before_dom_children): Likewise.
19450 (evrp_dom_walker::push_value_range): Likewise.
19451 (evrp_dom_walker::pop_value_range): Likewise.
19452 (execute_early_vrp): Likewise.
19453
19454 2017-05-16 Richard Biener <rguenther@suse.de>
19455
19456 * dwarf2out.c (loc_list_from_tree_1): Do not create
19457 DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
19458
19459 2017-05-16 Richard Biener <rguenther@suse.de>
19460
19461 * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
19462 just generated.
19463 (note_variable_value_in_expr): If we resolved the decl ref
19464 do not push to the stack.
19465
19466 2017-05-16 Matthew Wahab <matthew.wahab@arm.com>
19467
19468 * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
19469 operations in fast-math mode.
19470 (vaddq_f16): Likewise.
19471 (vmul_f16): Likewise.
19472 (vmulq_f16): Likewise.
19473 (vsub_f16): Likewise.
19474 (vsubq_f16): Likewise.
19475 * config/arm/neon.md (add<mode>3): New.
19476 (sub<mode>3): New.
19477 (fma:<VH:mode>3): New. Also remove outdated comment.
19478 (mul<mode>3): New.
19479
19480 2017-05-16 Martin Liska <mliska@suse.cz>
19481
19482 PR ipa/79849.
19483 PR ipa/79850.
19484 * ipa-devirt.c (warn_types_mismatch): Fix typo.
19485 (odr_types_equivalent_p): Likewise.
19486
19487 2017-05-15 Sylvestre Ledru <sylvestre@debian.org>
19488
19489 * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
19490
19491 2017-05-15 Uros Bizjak <ubizjak@gmail.com>
19492
19493 PR target/80425
19494 * config/i386.i386.md (*zero_extendsidi2): Do not penalize
19495 non-interunit SSE move alternatives with '?'.
19496 (zero-extendsidi peephole2): New peephole to skip intermediate
19497 general register in SSE zero-extend sequence.
19498
19499 2017-05-15 Jeff Law <law@redhat.com>
19500
19501 * reorg.c (relax_delay_slots): Create a new variable to hold
19502 the temporary target rather than clobbering TARGET_LABEL.
19503
19504 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
19505 missing argument to extract_bit_field call.
19506 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
19507
19508 2017-05-15 Martin Liska <mliska@suse.cz>
19509
19510 PR driver/31468
19511 * gcc.c (process_command): Do not allow empty argument of -o option.
19512
19513 2017-05-15 Renlin Li <renlin.li@arm.com>
19514
19515 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
19516 * config/aarch64/aarch64.c (aarch64_expand_call): Define.
19517 * config/aarch64/constraints.md (Usf): Add long call check.
19518 * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
19519 (call_value): Likewise.
19520 (sibcall): Likewise.
19521 (sibcall_value): Likewise.
19522 (call_insn): New.
19523 (call_value_insn): New.
19524 (sibcall_insn): Update rtx pattern.
19525 (sibcall_value_insn): Likewise.
19526 (call_internal): Remove.
19527 (call_value_internal): Likewise.
19528 (sibcall_internal): Likewise.
19529 (sibcall_value_internal): Likewise.
19530 (call_reg): Likewise.
19531 (call_symbol): Likewise.
19532 (call_value_reg): Likewise.
19533 (call_value_symbol): Likewise.
19534
19535 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
19536
19537 PR target/80600
19538 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
19539
19540 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
19541
19542 * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
19543 compatible with CCGOCmode and with CCZmode.
19544
19545 2017-05-14 Martin Sebor <msebor@redhat.com>
19546
19547 PR middle-end/77671
19548 * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
19549 (gimple_fold_builtin_snprintf): Same.
19550 * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
19551 (gimple_fold_builtin_snprintf): Same.
19552 * gimple-ssa-sprintf.c (get_format_string): Correct the detection
19553 of character types.
19554 (is_call_safe): New function.
19555 (try_substitute_return_value): Call it.
19556 (try_simplify_call): New function.
19557 (pass_sprintf_length::handle_gimple_call): Call it.
19558
19559 2017-05-14 Martin Sebor <msebor@redhat.com>
19560
19561 PR middle-end/80669
19562 * builtins.c (expand_builtin_stpncpy): Simplify.
19563
19564 2017-05-14 Daniel Santos <daniel.santos@pobox.com>
19565
19566 * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
19567 * config/i386/i386.h
19568 (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
19569 (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
19570 (struct machine_function): Add new members call_ms2sysv,
19571 call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
19572 (struct machine_frame_state): New fields sp_realigned and
19573 sp_realigned_offset.
19574 * config/i386/i386.c
19575 (enum xlogue_stub): New enum.
19576 (enum xlogue_stub_sets): New enum.
19577 (class xlogue_layout): New class.
19578 (struct ix86_frame): New fields stack_realign_allocate_offset,
19579 stack_realign_offset and outlined_save_offset. Modify comments to
19580 detail stack layout when using out-of-line stubs.
19581 (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
19582 (ix86_option_override_internal): Add sorry() for TARGET_SEH and
19583 -mcall-ms2sysv-xlogues.
19584 (stub_managed_regs): New static variable.
19585 (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
19586 registers managed by out-of-line stub.
19587 (disable_call_ms2sysv_xlogues): New function.
19588 (ix86_compute_frame_layout): Modify re-alignment calculations, disable
19589 m->call_ms2sysv when appropriate and compute frame layout for
19590 out-of-line stubs.
19591 (sp_valid_at, fp_valid_at): New inline functions.
19592 (choose_basereg): New function.
19593 (choose_baseaddr): Add align parameter, use choose_basereg and modify
19594 all callers.
19595 (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
19596 Use align parameter of choose_baseaddr to generated aligned SSE movs
19597 when possible.
19598 (pro_epilogue_adjust_stack): Modify to track
19599 machine_frame_state::sp_realigned.
19600 (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
19601 (ix86_nsaved_sseregs): Likewise.
19602 (ix86_emit_save_regs): Likewise.
19603 (ix86_emit_save_regs_using_mov): Likewise.
19604 (ix86_emit_save_sse_regs_using_mov): Likewise.
19605 (get_scratch_register_on_entry): Likewise.
19606 (gen_frame_set): New function.
19607 (gen_frame_load): Likewise.
19608 (gen_frame_store): Likewise.
19609 (emit_outlined_ms2sysv_save): Likewise.
19610 (emit_outlined_ms2sysv_restore): Likewise.
19611 (ix86_expand_prologue): Modify stack re-alignment code and call
19612 emit_outlined_ms2sysv_save when appropriate.
19613 (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add
19614 parameter rtx_insn *insn, which allows the function to be used to only
19615 generate the notes.
19616 (ix86_expand_epilogue): Modify validity checks of frame and stack
19617 pointers, and call emit_outlined_ms2sysv_restore when appropriate.
19618 (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
19619 * config/i386/predicates.md
19620 (save_multiple): New predicate.
19621 (restore_multiple): Likewise.
19622 * config/i386/sse.md
19623 (save_multiple<mode>): New pattern.
19624 (save_multiple_realign<mode>): Likewise.
19625 (restore_multiple<mode>): Likewise.
19626 (restore_multiple_and_return<mode>): Likewise.
19627 (restore_multiple_leave_return<mode>): Likewise.
19628 * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
19629
19630 2017-05-14 Julia Koval <julia.koval@intel.com>
19631
19632 * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
19633 * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
19634 (__builtin_ia32_xsetbv): New builtins.
19635 * config/i386/i386.c (ix86_expand_special_args_builtin):
19636 Process new types.
19637 (ix86_expand_builtin): Special expand for new intrinsics.
19638 * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
19639 (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
19640 * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
19641
19642 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19643
19644 * cfganal.c (inverted_post_order_compute): Change argument type
19645 to vec *.
19646 * cfganal.h (inverted_post_order_compute): Adjust prototype.
19647 * df-core.c (rest_of_handle_df_initialize): Adjust.
19648 (rest_of_handle_df_finish): Likewise.
19649 (df_analyze_1): Likewise.
19650 (df_analyze): Likewise.
19651 (loop_inverted_post_order_compute): Change argument to be a vec *.
19652 (df_analyze_loop): Adjust.
19653 (df_get_n_blocks): Likewise.
19654 (df_get_postorder): Likewise.
19655 * df.h (struct df_d): Change field to be a vec.
19656 * lcm.c (compute_laterin): Adjust.
19657 (compute_available): Likewise.
19658 * lra-lives.c (lra_create_live_ranges_1): Likewise.
19659 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
19660 * tree-ssa-pre.c (compute_antic): Likewise.
19661
19662 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19663
19664 * cfganal.c (connect_infinite_loops_to_exit): Adjust.
19665 (depth_first_search::depth_first_search): Change structure init
19666 function to this constructor.
19667 (depth_first_search::add_bb): Rename function to this member.
19668 (depth_first_search::execute): Likewise.
19669 (flow_dfs_compute_reverse_finish): Adjust.
19670
19671 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19672
19673 * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
19674 (longest_simple_path): Likewise.
19675 * shrink-wrap.c (spread_components): Likewise.
19676 (disqualify_problematic_components): Likewise.
19677 (emit_common_heads_for_components): Likewise.
19678 (emit_common_tails_for_components): Likewise.
19679 (insert_prologue_epilogue_for_components): Likewise.
19680
19681 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19682
19683 * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
19684 auto_sbitmap.
19685
19686 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19687
19688 * df-core.c (df_set_blocks): Start using auto_bitmap.
19689 (df_compact_blocks): Likewise.
19690 * df-problems.c (df_rd_confluence_n): Likewise.
19691 * df-scan.c (df_insn_rescan_all): Likewise.
19692 (df_process_deferred_rescans): Likewise.
19693 (df_update_entry_block_defs): Likewise.
19694 (df_update_exit_block_uses): Likewise.
19695 (df_entry_block_bitmap_verify): Likewise.
19696 (df_exit_block_bitmap_verify): Likewise.
19697 (df_scan_verify): Likewise.
19698 * lra-constraints.c (lra_constraints): Likewise.
19699 (undo_optional_reloads): Likewise.
19700 (lra_undo_inheritance): Likewise.
19701 * lra-remat.c (calculate_gen_cands): Likewise.
19702 (do_remat): Likewise.
19703 * lra-spills.c (assign_spill_hard_regs): Likewise.
19704 (spill_pseudos): Likewise.
19705 * tree-ssa-pre.c (bitmap_set_and): Likewise.
19706 (bitmap_set_subtract_values): Likewise.
19707
19708 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19709
19710 * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
19711 management with auto_bitmap.
19712 (fix_inter_tick): Likewise.
19713 (fix_recovery_deps): Likewise.
19714 * ira.c (add_store_equivs): Likewise.
19715 (find_moveable_pseudos): Likewise.
19716 (split_live_ranges_for_shrink_wrap): Likewise.
19717 * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
19718 (rtx_reuse_manager::seen_def_p): Likewise.
19719 (rtx_reuse_manager::set_seen_def): Likewise.
19720 * print-rtl.h (class rtx_reuse_manager): Likewise.
19721
19722 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19723
19724 * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
19725 lifetime.
19726 (migrate_btr_def): Likewise.
19727 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
19728 * df-core.c (loop_post_order_compute): Likewise.
19729 (loop_inverted_post_order_compute): Likewise.
19730 * hsa-common.h: Likewise.
19731 * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
19732 * init-regs.c (initialize_uninitialized_regs): Likewise.
19733 * ipa-inline.c (resolve_noninline_speculation): Likewise.
19734 (inline_small_functions): Likewise.
19735 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
19736 * ira.c (combine_and_move_insns): Likewise.
19737 (build_insn_chain): Likewise.
19738 * loop-invariant.c (find_invariants): Likewise.
19739 * lower-subreg.c (propagate_pseudo_copies): Likewise.
19740 * predict.c (tree_predict_by_opcode): Likewise.
19741 (predict_paths_leading_to): Likewise.
19742 (predict_paths_leading_to_edge): Likewise.
19743 (estimate_loops_at_level): Likewise.
19744 (estimate_loops): Likewise.
19745 * shrink-wrap.c (try_shrink_wrapping): Likewise.
19746 (spread_components): Likewise.
19747 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
19748 * tree-loop-distribution.c (rdg_build_partitions): Likewise.
19749 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
19750 * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
19751 * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
19752 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
19753 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
19754 * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
19755 (mark_threaded_blocks): Likewise.
19756 (thread_through_all_blocks): Likewise.
19757 * tree-ssa.c (verify_ssa): Likewise.
19758 (execute_update_addresses_taken): Likewise.
19759 * tree-ssanames.c (verify_ssaname_freelists): Likewise.
19760
19761 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19762
19763 * cfganal.c (mark_dfs_back_edges): Replace manual stack with
19764 auto_vec.
19765 (post_order_compute): Likewise.
19766 (inverted_post_order_compute): Likewise.
19767 (pre_and_rev_post_order_compute_fn): Likewise.
19768
19769 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19770
19771 * genrecog.c (int_set::int_set): Explicitly construct our
19772 auto_vec base class.
19773 * vec.h (auto_vec::auto_vec): New constructor.
19774
19775 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19776
19777 * bitmap.h (class auto_bitmap): New constructor taking
19778 bitmap_obstack * argument.
19779
19780 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19781
19782 * bitmap.h (class auto_bitmap): Change type of m_bits to
19783 bitmap_head, and adjust ctor / dtor and member operators.
19784
19785 2017-05-13 Uros Bizjak <ubizjak@gmail.com>
19786
19787 * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
19788 when returned register mode doesn't match original mode.
19789
19790 2017-05-12 Jeff Law <law@redhat.com>
19791 Jakub Jelinek <jakub@redhat.com>
19792
19793 * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
19794 we look for cc setter after the compare-elim changes.
19795 * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
19796 within the vector to match what compare-elim now expects.
19797 (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
19798 (xorsi3_flags, one_cmplsi2_flags): Likewise.
19799
19800 * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
19801 after the compare-elim changes.
19802 * config/rx/rx.md (abssi2_flags): Fix order of patterns within
19803 the vector to match what compare-elim now expects.
19804 (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
19805 (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
19806 (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
19807 (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
19808 (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
19809
19810 * config/visium/visium.c (single_set_and_flags): Fix where
19811 we look for cc setter after the compare-elim changes.
19812 * config/visium/visium.md (flags_subst_logic): Fix order of patterns
19813 with the vector to match what compare-elim now expects.
19814 (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
19815 (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
19816 (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
19817 (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
19818 (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
19819 (neg<mode>2_insn_set_overflow): Likewise.
19820
19821 2017-05-12 Jim Wilson <jim.wilson@linaro.org>
19822
19823 PR middle-end/79794
19824 * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
19825 maybe_expand_insn call, set ops[0].target. If still set after call,
19826 set alt_rtl. Add extra arg to recursive calls.
19827 (extract_bit_field): Add alt_rtl argument. Pass to
19828 extract_bit_field.
19829 * expmed.h (extract_bit_field): Fix prototype.
19830 * expr.c (emit_group_load_1, copy_blkmode_from_reg)
19831 (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
19832 to extract_bit_field_calls.
19833 (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
19834 Pass alt_rtl to extract_bit_field calls.
19835 * calls.c (store_unaligned_arguments_into_psuedos)
19836 load_register_parameters): Pass extra NULL to extract_bit_field calls.
19837 * optabs.c (maybe_legitimize_operand): Clear op->target when call
19838 gen_reg_rtx.
19839 * optabs.h (struct expand_operand): Add target bitfield.
19840
19841 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
19842
19843 * compare-elim.c (try_eliminate_compare): Canonicalize
19844 operation with embedded compare to
19845 [(set (reg:CCM) (compare:CCM (operation) (immediate)))
19846 (set (reg) (operation)].
19847
19848 * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
19849
19850 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
19851
19852 PR target/80723
19853 * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
19854 cost of adding a carry flag for ADC instruction.
19855 [case MINUS]: Ignore the cost of subtracting a carry flag
19856 for SBB instruction.
19857
19858 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
19859
19860 * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
19861 and x86intrin.h
19862 * config/rs6000/bmiintrin.h: New file.
19863 * config/rs6000/bmi2intrin.h: New file.
19864 * config/rs6000/x86intrin.h: New file.
19865
19866 2017-05-12 Jeff Law <law@redhat.com>
19867
19868 * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
19869 markers.
19870
19871 2017-05-12 Peter Bergner <bergner@vnet.ibm.com>
19872
19873 PR middle-end/80707
19874 * tree-cfg.c: Remove cfg edges of unreachable case statements.
19875
19876 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
19877
19878 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
19879 early expansion of vector divide builtins.
19880 (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
19881 builtins identified as having unsigned arguments.
19882
19883 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
19884
19885 * config/rs6000/rs6000.c (gimple-fold.h): New #include.
19886 (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
19887 expansion of vector logical operations (and, andc, or, xor,
19888 nor, orc, nand).
19889
19890 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
19891
19892 * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
19893 * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
19894
19895 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
19896
19897 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
19898 early GIMPLE expansion of vector multiplies.
19899
19900 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
19901
19902 * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
19903 TARGET_HAVE_MOVT conditional.
19904 (movt splitter): Likewise.
19905
19906 2017-05-12 Richard Biener <rguenther@suse.de>
19907
19908 * tree-ssa-sccvn.h (has_VN_INFO): Declare.
19909 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
19910 Fold all stmts not inplace.
19911
19912 2017-05-12 Richard Biener <rguenther@suse.de>
19913
19914 PR tree-optimization/80713
19915 * tree-ssa-pre.c (remove_dead_inserted_code): Clear
19916 inserted_exprs bit for not removed stmts.
19917
19918 2017-05-12 Thomas Schwinge <thomas@codesourcery.com>
19919
19920 PR middle-end/69921
19921 * tree-parloops.c (create_parallel_loop): Set "oacc kernels
19922 parallelized" attribute for parallelized OpenACC kernels.
19923 * omp-offload.c (execute_oacc_device_lower): Use it.
19924
19925 * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
19926 Set "oacc kernels" attribute.
19927 * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
19928 parameter. Adjust all users.
19929 (oacc_fn_attrib_kernels_p): Remove function.
19930 * omp-offload.c (execute_oacc_device_lower): Look for "oacc
19931 kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
19932 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
19933 * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
19934 assert "oacc kernels" attribute is set.
19935
19936 2017-05-11 Carl Love <cel@us.ibm.com>
19937
19938 * config/rs6000/rs6000-c: Add support for built-in functions
19939 vector unsigned char vec_popcnt (vector signed char)
19940 vector unsigned char vec_popcnt (vector unsigned char)
19941 vector unsigned short vec_popcnt (vector signed short)
19942 vector unsigned short vec_popcnt (vector unsigned short)
19943 vector unsigned int vec_popcnt (vector signed int)
19944 vector unsigned int vec_popcnt (vector unsigned int)
19945 vector unsigned long long vec_popcnt (vector signed long long)
19946 vector unsigned long long vec_popcnt (vector unsigned long long)
19947 vector signed long long vec_slo (vector signed long long,
19948 vector signed char)
19949 vector signed long long vec_slo (vector signed long long,
19950 vector unsigned char)
19951 vector unsigned long long vec_slo (vector unsigned long long,
19952 vector signed char)
19953 vector unsigned long long vec_slo (vector unsigned long long,
19954 vector unsigned char)
19955 * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
19956 VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
19957 * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
19958 vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
19959 * doc/extend.texi: Update the built-in documentation file for the
19960 new built-in functions.
19961
19962 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
19963
19964 * attribs.h (sorted_attr_string): Move machine independent
19965 functions for target clone support from the i386 port to common
19966 code. Rename ix86_function_versions to common_function_versions.
19967 Rename make_name to make_unique_name.
19968 (common_function_versions): Likewise.
19969 (make_unique_name): Likewise.
19970 (make_dispatcher_decl): Likewise.
19971 (is_function_default_version): Likewise.
19972 * attribs.c (attr_strcmp): Likewise.
19973 (sorted_attr_string): Likewise.
19974 (common_function_versions): Likewise.
19975 (make_unique_name): Likewise.
19976 (make_dispatcher_decl): Likewise.
19977 (is_function_default_version): Likewise.
19978 * config/i386/i386.c (attr_strcmp): Likewise.
19979 (sorted_attr_string): Likewise.
19980 (ix86_function_versions): Likewise.
19981 (make_name): Likewise.
19982 (make_dispatcher_decl): Likewise.
19983 (is_function_default_version): Likewise.
19984 (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
19985
19986 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19987
19988 PR target/80695
19989 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
19990 Account for direct move costs for vec_construct of integer
19991 vectors.
19992
19993 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
19994
19995 PR target/80706
19996 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
19997 (UNSPEC_STX_ATOMIC): Ditto.
19998 (loaddi_via_sse): New insn.
19999 (storedi_via_sse): Ditto.
20000 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
20001 Update corresponding peephole2 patterns.
20002 (atomic_storedi_fpu): Ditto.
20003
20004 2017-05-11 Julia Koval <julia.koval@intel.com>
20005
20006 * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
20007 (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
20008 New intrinsics.
20009 * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
20010 (__builtin_ia32_rsqrt14ss_mask): New builtins.
20011 * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
20012
20013 2017-05-11 Nathan Sidwell <nathan@acm.org>
20014
20015 * graphite-poly.c: Include dumpfile.h.
20016
20017 * dumpfle.h (dump_function): Declare here ...
20018 * tree-dump.h (dump_function): ... not here.
20019 * dumpfile.c: #include tree-cfg.h.
20020 (dump_function): Move here from ...
20021 * tree-dump.c (dump_function): ... here.
20022 * gimplify.c: #include splay-tree.h, not tree-dump.h.
20023 * graphite-poly.c: Don't include tree-dump.h.
20024 * cgraphclones.c: Include dumpfile.h not tree-dump.h.
20025 * print-tree.c: Likewise.
20026 * stor-layout.c: Likewise.
20027 * tree-nested.c: Likewise.
20028
20029 * dumpfile.c (dump_start): Use TDF_FLAGS.
20030 (dump_enable_all): Fix TDF_KIND check thinko.
20031
20032 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
20033
20034 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20035 array entries to represent two legal parameterizations of the
20036 overloaded __builtin_cmpb function, as represented by the
20037 P6_OV_BUILTIN_CMPB constant.
20038 (altivec_resolve_overloaded_builtin): Add special case handling
20039 for the __builtin_cmpb function, as represented by the
20040 P6_OV_BUILTIN_CMPB constant.
20041 * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
20042 (BU_P6_64BIT_2): New macro.
20043 (BU_P6_OVERLOAD_2): New macro
20044 (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
20045 (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
20046 (CMPB): Add overload support to represent both 32-bit and 64-bit
20047 compare-bytes function.
20048 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
20049 support for TARGET_CMPB.
20050 * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
20051 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
20052 documentation of the __builtin_cmpb overloaded built-in function.
20053
20054 2017-05-11 Richard Biener <rguenther@suse.de>
20055
20056 PR tree-optimization/80705
20057 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
20058 bases are not vectorizable.
20059
20060 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20061
20062 * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
20063 when counting register pressure.
20064
20065 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20066
20067 * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
20068 (iv_ca_more_deps): Renamed to ...
20069 (iv_ca_compare_deps): ... this.
20070 (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
20071
20072 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20073
20074 * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
20075 to ...
20076 (determine_group_iv_costs): ... here.
20077 (find_inv_vars_cb): Record inv var if it's not recorded before.
20078
20079 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20080
20081 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
20082 (get_shiftadd_cost): Ditto.
20083
20084 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20085
20086 * tree-ssa-address.c: Include header file.
20087 (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
20088 address.
20089 (add_to_parts): Refactor.
20090 (addr_to_parts): New parameter. Update use of move_hint_to_base.
20091 (create_mem_ref): Update use of addr_to_parts. Re-associate addr
20092 in new order.
20093
20094 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20095
20096 PR tree-optimization/53090
20097 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
20098 COMP_IV_EXPR_2.
20099 (extract_cond_operands): Detect condition with IV on both sides
20100 and return COMP_IV_EXPR_2.
20101 (find_interesting_uses_cond): Add iv_use for both IVs in condition.
20102 (rewrite_use_compare): Simplify by removing call to function
20103 extract_cond_operands.
20104
20105 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20106
20107 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
20108 (extract_cond_operands): Detect condition comparing against non-
20109 invariant bound and return appropriate enum value.
20110 (find_interesting_uses_cond): Update use of extract_cond_operands.
20111 Handle its return value accordingly.
20112 (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
20113
20114 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20115
20116 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
20117 nonlinear iv_use computation in loop invariant sensitive way.
20118
20119 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20120
20121 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
20122 (find_iv_candidates): Call relate_compare_use_with_all_cands.
20123
20124 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20125
20126 * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
20127 (dump_cand): Support iv_cand.inv_exprs.
20128 (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
20129 for candidates.
20130 (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
20131 iv_cand.inv_exprs.
20132
20133 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20134
20135 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
20136 from ...
20137 * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
20138 as local function. Include necessary header files.
20139 * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
20140
20141 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20142
20143 * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
20144
20145 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20146
20147 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
20148 operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
20149 RSHIFT_EXPR and BIT_NOT_EXPR.
20150
20151 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20152
20153 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
20154 (adjust_setup_cost): New parameter supporting round up adjustment.
20155 (struct address_cost_data): Delete.
20156 (force_expr_to_var_cost): Don't bound cost with spill_cost.
20157 (split_address_cost, ptr_difference_cost): Delete.
20158 (difference_cost, compare_aff_trees, record_inv_expr): Delete.
20159 (struct ainc_cost_data): New struct.
20160 (get_address_cost_ainc): New function.
20161 (get_address_cost, get_computation_cost): Reimplement.
20162 (determine_group_iv_cost_address): Record inv_expr for all uses of
20163 a group.
20164 (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
20165 (iv_ca_has_deps): Reimplemented to ...
20166 (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps
20167 than OLD_CP.
20168 (iv_ca_extend): Call iv_ca_more_deps.
20169
20170 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20171
20172 * tree-ssa-address.c (struct mem_address): Move to header file.
20173 (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
20174 * tree-ssa-address.h (struct mem_address): Move from C file.
20175 (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
20176
20177 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20178
20179 * tree-affine.h (aff_combination_type): New interface.
20180 (aff_combination_zero_p): Remove static.
20181 (aff_combination_const_p): New interface.
20182 (aff_combination_singleton_var_p): New interfaces.
20183
20184 2017-05-11 Richard Biener <rguenther@suse.de>
20185
20186 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20187 Skip unreachable blocks and destinations.
20188 (eliminate): Move stmt removal and fixup ...
20189 (fini_eliminate): ... here. Skip inserted exprs.
20190 (pass_pre::execute): Move fini_pre after fini_eliminate.
20191 * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
20192 (tail_merge_optimize): Run cleanup_tree_cfg if requested by
20193 PRE to get rid of dead code that has invalid SSA form and
20194 split critical edges again.
20195
20196 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20197
20198 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
20199
20200 2017-05-11 Richard Biener <rguenther@suse.de>
20201
20202 * passes.c (execute_function_todo): Verify loops if they are
20203 said to be up-to-date.
20204 * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
20205 * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
20206
20207 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
20208
20209 PR target/80090
20210 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
20211 handle calling assemble_external ourself.
20212
20213 PR target/79027
20214 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
20215 modes with zero size. Enhance comment.
20216
20217 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20218
20219 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
20220 built-ins for vec_xl and vec_xst with short and char pointer
20221 arguments.
20222
20223 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
20224
20225 * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
20226 (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
20227 (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
20228 (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
20229 (_mm_maskz_min_round_ss): New intrinsics.
20230 * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
20231 (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
20232 * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
20233 (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
20234 (__builtin_ia32_minss_mask_round): New builtins.
20235 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
20236 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
20237 * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
20238 Rename to ...
20239 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
20240 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
20241 Change to ...
20242 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
20243 ... this.
20244
20245 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
20246
20247 * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
20248 (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
20249 (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
20250 (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
20251 (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
20252 (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
20253 (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
20254 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
20255 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
20256 * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
20257 (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
20258 (__builtin_ia32_mulss_mask_round): New builtins.
20259 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
20260 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
20261 * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
20262 Rename to ...
20263 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
20264 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
20265 Change to ...
20266 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
20267 ... this.
20268
20269 2017-05-10 Julia Koval <julia.koval@intel.com>
20270
20271 * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
20272 (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
20273 (_mm256_setr_m128i): New intrinsics.
20274
20275 2017-05-10 Julia Koval <julia.koval@intel.com>
20276
20277 * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
20278 (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
20279 (_mm_maskz_rcp14_ss): New intrinsics.
20280 * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
20281 (__builtin_ia32_rcp14ss_mask): New builtins.
20282 * config/i386/sse.md (srcp14<mode>_mask): New pattern.
20283
20284 2017-05-10 Peter Bergner <bergner@vnet.ibm.com>
20285
20286 PR tree-optimization/51513
20287 * tree-cfg.c (gimple_seq_unreachable_p): New function.
20288 (assert_unreachable_fallthru_edge_p): Use it.
20289 (group_case_labels_stmt): Likewise.
20290 * tree-cfg.h: Prototype it.
20291 * stmt.c: Include cfghooks.h and tree-cfg.h.
20292 (emit_case_dispatch_table) <gap_label>: New local variable.
20293 Use it to fill dispatch table gaps.
20294 Test for default_label before updating probabilities.
20295 (expand_case) <default_label>: Remove unneeded initialization.
20296 Test for unreachable default case statement and remove its edge.
20297 Set default_label accordingly.
20298 * tree-ssa-ccp.c (optimize_unreachable): Update comment.
20299
20300 2017-05-10 Carl Love <cel@us.ibm.com>
20301
20302 * config/rs6000/rs6000-c: Add support for built-in functions
20303 vector signed char vec_neg (vector signed char)
20304 vector signed short int vec_neg (vector short int)
20305 vector signed int vec_neg (vector signed int)
20306 vector signed long long vec_neg (vector signed long long)
20307 vector float vec_neg (vector float)
20308 vector double vec_neg (vector double)
20309 * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
20310 overload.
20311 * config/rs6000/altivec.h: Add define for vec_neg
20312 * doc/extend.texi: Update the built-in documentation for the
20313 new built-in functions.
20314
20315 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
20316
20317 PR tree-optimization/77644
20318 * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
20319
20320 2017-05-10 Nathan Sidwell <nathan@acm.org>
20321
20322 * dumpfile.h (TDI_lang_all): New.
20323 (TDF_KIND): New. Renumber others
20324 (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
20325 than bits.
20326 * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add
20327 lang-all.
20328 (get_dump_file_name): Adjust suffix generation.
20329 (dump_enable_all): Use TDF_KIND.
20330 * doc/invoke.texi (-fdump-lang-all): Document.
20331
20332 * dumpfile.h: Tabify.
20333
20334 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com>
20335
20336 PR target/80671
20337 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
20338 Move member access before delete.
20339
20340 2017-05-10 Alexandre Oliva <aoliva@redhat.com>
20341
20342 * tree-inline.c (expand_call_inline): Split block at stmt
20343 before the call.
20344
20345 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
20346
20347 PR target/68163
20348 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
20349 are now unused after splitting mov{sf,sd}_hardfloat.
20350 (f32_lr2): Likewise.
20351 (f32_lm): Likewise.
20352 (f32_lm2): Likewise.
20353 (f32_li): Likewise.
20354 (f32_li2): Likewise.
20355 (f32_lv): Likewise.
20356 (f32_sr): Likewise.
20357 (f32_sr2): Likewise.
20358 (f32_sm): Likewise.
20359 (f32_sm2): Likewise.
20360 (f32_si): Likewise.
20361 (f32_si2): Likewise.
20362 (f32_sv): Likewise.
20363 (f32_dm): Likewise.
20364 (f32_vsx): Likewise.
20365 (f32_av): Likewise.
20366 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
20367 For movsf, order stores so the VSX stores occur before the GPR
20368 store which encourages the register allocator to use a traditional
20369 FPR instead of a GPR. For movsd, order the stores so that the GPR
20370 store comes before the VSX stores to allow the power6 to work.
20371 This is due to the power6 not having a 32-bit integer store
20372 instruction from a FPR.
20373 (movsf_hardfloat): Likewise.
20374 (movsd_hardfloat): Likewise.
20375
20376 2017-05-09 Martin Sebor <msebor@redhat.com>
20377
20378 PR translation/80280
20379 * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
20380 added in r247778.
20381
20382 PR translation/80280
20383 * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
20384 data member added in r247778.
20385 (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
20386
20387 2017-05-09 Nathan Sidwell <nathan@acm.org>
20388
20389 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
20390
20391 * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
20392 typedefs.
20393
20394 2017-05-09 Marek Polacek <polacek@redhat.com>
20395
20396 * doc/invoke.texi: Fix typo.
20397
20398 2017-05-09 Richard Biener <rguenther@suse.de>
20399
20400 * tree-vrp.c (vrp_val_is_max): Adjust comment.
20401 (vrp_val_is_min): Likewise.
20402 (set_value_range_to_value): Likewise.
20403 (set_value_range_to_nonnegative): Likewise.
20404 (gimple_assign_nonzero_p): Likewise.
20405 (gimple_stmt_nonzero_p): Likewise.
20406 (vrp_int_const_binop): Likewise. Remove unreachable case.
20407 (adjust_range_with_scev): Adjust comments.
20408 (compare_range_with_value): Likewise.
20409 (extract_range_from_phi_node): Likewise.
20410 (test_for_singularity): Likewise.
20411
20412 2017-05-09 Richard Biener <rguenther@suse.de>
20413
20414 * tree-vrp.c (get_single_symbol): Add assert that we don't
20415 get overflowed constants as invariant part.
20416 (compare_values_warnv): Add comment before the TREE_NO_WARNING
20417 checks. Use wi::cmp instead of recursing for integer constants.
20418 (compare_values): Just ignore whether we assumed undefined
20419 overflow instead of failing the compare.
20420 (extract_range_for_var_from_comparison_expr): Add comment before the
20421 TREE_NO_WARNING sets.
20422 (test_for_singularity): Likewise.
20423 (extract_range_from_comparison): Do not disable optimization
20424 when we assumed undefined overflow.
20425 (extract_range_basic): Remove init of unused var.
20426
20427 2017-05-09 Richard Biener <rguenther@suse.de>
20428
20429 * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
20430 (extract_range_from_multiplicative_op_1): Adjust.
20431 (extract_range_from_binary_expr_1): Use int_const_binop.
20432
20433 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
20434
20435 PR target/80101
20436 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
20437 rs6000_store_data_bypass_p in seven define_bypass directives and
20438 in several comments.
20439 * config/rs6000/rs6000-protos.h: Add prototype for
20440 rs6000_store_data_bypass_p function.
20441 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
20442 function implements slightly different (rs6000-specific) semantics
20443 than store_data_bypass_p, returning false rather than aborting
20444 with assertion error when arguments do not satisfy the
20445 requirements of store data bypass.
20446 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
20447 rs6000_store_data_bypass_p.
20448
20449 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
20450
20451 * config/xtensa/xtensa-protos.h
20452 (xtensa_initial_elimination_offset): New declaration.
20453 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
20454 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
20455 macro definition, add case for FRAME_POINTER_REGNUM when
20456 FRAME_GROWS_DOWNWARD.
20457 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
20458 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
20459 xtensa_initial_elimination_offset.
20460
20461 2017-05-08 Nathan Sidwell <nathan@acm.org>
20462
20463 * doc/invoke.texi: Alphabetize -fdump options.
20464
20465 2017-05-08 Martin Sebor <msebor@redhat.com>
20466
20467 PR translation/80280
20468 * config/sol2-c.c (solaris_pragma_align): Correct quoting.
20469
20470 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
20471
20472 * target.def (compute_frame_layout): New optional target hook.
20473 * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
20474 * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
20475 * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
20476 target hook.
20477 * reload1.c (verify_initial_elim_offsets): Likewise.
20478 * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
20479 (use_simple_return_p): Call arm_compute_frame_layout if needed.
20480 (arm_get_frame_offsets): Split up into this ...
20481 (arm_compute_frame_layout): ... and this function.
20482
20483 2017-05-08 Richard Sandiford <richard.sandiford@arm.com>
20484
20485 * config/aarch64/constraints.md (Usa): New constraint.
20486 * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
20487
20488 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
20489
20490 * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
20491 with_multilib_list after it has been checked.
20492
20493 2017-05-08 Richard Biener <rguenther@suse.de>
20494
20495 * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
20496 (bitmap_set_subtract_values): Likewise.
20497
20498 2017-05-08 Richard Biener <rguenther@suse.de>
20499
20500 * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
20501 (gimple_assign_nonzero): ... this and remove strict_overflow_p
20502 argument.
20503 (gimple_stmt_nonzero_warnv_p): Rename to ...
20504 (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
20505 argument.
20506 (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
20507 (extract_range_basic): Adjust, do not disable propagation on
20508 strict overflow sensitive simplification.
20509 (vrp_visit_cond_stmt): Likewise.
20510
20511 2017-05-05 Jan Hubicka <hubicka@ucw.cz>
20512
20513 * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
20514 body size unconditionally.
20515
20516 2017-05-07 Jeff Law <law@redhat.com>
20517
20518 Revert:
20519 2017-05-06 Jeff Law <law@redhat.com>
20520 PR tree-optimization/78496
20521 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
20522 code.
20523
20524 PR tree-optimization/78496
20525 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
20526 (simplify_stmt_using_ranges): Call it.
20527 (vrp_dom_walker::before_dom_children): Extract equivalences
20528 from an ASSERT_EXPR with an equality comparison against a
20529 constant.
20530
20531 2017-05-06 Jeff Law <law@redhat.com>
20532
20533 PR tree-optimization/78496
20534 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
20535 code.
20536
20537 PR tree-optimization/78496
20538 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
20539 (simplify_stmt_using_ranges): Call it.
20540 (vrp_dom_walker::before_dom_children): Extract equivalences
20541 from an ASSERT_EXPR with an equality comparison against a
20542 constant.
20543
20544 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
20545
20546 * lra-constraints.c (lra_copy_reg_equiv): New function.
20547 (split_reg): Use it to copy equivalence information from the
20548 original register to the spill register.
20549
20550 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
20551
20552 PR rtl-optimization/75964
20553 * simplify-rtx.c (simplify_const_relational_operation): Remove
20554 invalid handling of comparisons of integer ABS.
20555
20556 2017-05-06 Uros Bizjak <ubizjak@gmail.com>
20557
20558 * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
20559 initialize to zero.
20560 (init_regs): Remove declaration.
20561 (function_arg_advance_32): Initialize error_p as boolean variable.
20562
20563 2017-05-05 Nathan Sidwell <nathan@acm.org>
20564
20565 * store-motion.c (remove_reachable_equiv_notes): Reformat long
20566 lines. Use for (;;).
20567
20568 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20569
20570 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
20571 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
20572 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
20573 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
20574 VF=2 that require versioning.
20575
20576 2017-05-05 David Malcolm <dmalcolm@redhat.com>
20577
20578 * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
20579 int.
20580
20581 2017-05-05 David Malcolm <dmalcolm@redhat.com>
20582
20583 * diagnostic.h (diagnostic_override_option_index): Convert from
20584 macro to inline function.
20585
20586 2017-05-05 David Malcolm <dmalcolm@redhat.com>
20587
20588 * diagnostic.c (last_module_changed_p): New function.
20589 (set_last_module): New function.
20590 (diagnostic_report_current_module): Convert macro usage to
20591 the above functions.
20592 * diagnostic.h (diagnostic_context::last_module): Strengthen
20593 from const line_map * to const line_map_ordinary *.
20594 (diagnostic_last_module_changed): Delete macro.
20595 (diagnostic_set_last_module): Delete macro.
20596
20597 2017-05-05 David Malcolm <dmalcolm@redhat.com>
20598
20599 * diagnostic.c (diagnostic_impl): Replace report_diagnostic
20600 with diagnostic_report_diagnostic.
20601 (diagnostic_n_impl_richloc): Likewise.
20602 * diagnostic.h (report_diagnostic): Delete macro.
20603 * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
20604 with diagnostic_report_diagnostic.
20605 * substring-locations.c (format_warning_va): Likewise.
20606
20607 2017-05-05 David Malcolm <dmalcolm@redhat.com>
20608
20609 * diagnostic.c (diagnostic_report_diagnostic): Eliminate
20610 save/restor of format_spec. Move option-printing code to...
20611 (print_option_information): ...this new function, and
20612 reimplement by simply printing to the pretty_printer,
20613 rather than appending to the format string.
20614
20615 2017-05-05 David Malcolm <dmalcolm@redhat.com>
20616
20617 * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
20618 handling logic into...
20619 (update_effective_level_from_pragmas): ...this new function.
20620
20621 2017-05-04 Andrew Waterman <andrew@sifive.com>
20622
20623 * config/riscv/riscv.opt (mstrict-align): New option.
20624 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
20625 (SLOW_UNALIGNED_ACCESS): Define.
20626 (riscv_slow_unaligned_access): Declare.
20627 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
20628 field.
20629 (riscv_slow_unaligned_access): New variable.
20630 (rocket_tune_info): Set slow_unaligned_access to true.
20631 (optimize_size_tune_info): Set slow_unaligned_access to false.
20632 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
20633 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
20634 (riscv_option_override): Set riscv_slow_unaligned_access.
20635 * doc/invoke.texi: Add -mstrict-align to RISC-V.
20636
20637 2017-05-04 Kito Cheng <kito.cheng@gmail.com>
20638
20639 * config/riscv/riscv.md: Unify indentation.
20640
20641 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
20642
20643 PR target/79038
20644 PR target/79202
20645 PR target/79203
20646 * config/rs6000/rs6000.md (u code attribute): Add FIX and
20647 UNSIGNED_FIX.
20648 (extendsi<mode>2): Add support for doing sign extension via
20649 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
20650 don't have ISA 3.0 instructions.
20651 (extendsi<mode>2 splitter): Likewise.
20652 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
20653 generate the normal insns since SImode can now go in vector
20654 registers. Disallow the special UNSPECs needed for previous
20655 machines to hide SImode being used. Add new insns
20656 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
20657 (fix_trunc<mode>si2_stfiwx): Likewise.
20658 (fix_trunc<mode>si2_internal): Likewise.
20659 (fixuns_trunc<mode>si2): Likewise.
20660 (fixuns_trunc<mode>si2_stfiwx): Likewise.
20661 (fctiw<u>z_<mode>_smallint): Likewise.
20662 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
20663 of floating point to 32-bit integer from doing a direct move to
20664 the GPR registers to do a store.
20665 (fctiwz_<mode>): Break long line.
20666
20667 2017-05-05 Bin Cheng <bin.cheng@arm.com>
20668
20669 * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
20670 * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
20671 (addr_list, addr_offset_valid_p): New.
20672 (split_address_groups): Check offset validity with above function.
20673 (gt-tree-ssa-loop-ivopts.h): Include header file.
20674
20675 2017-05-05 Nathan Sidwell <nathan@acm.org>
20676
20677 * config.gcc (arm*-*-*): Add missing 'fi'.
20678
20679 2017-05-05 Steve Ellcey <sellcey@cavium.com>
20680
20681 * doc/invoke.texi (-fopt-info): Explicitly say order of options
20682 included in -fopt-info does not matter.
20683 * doc/optinfo.texi (-fopt-info): Fix description of default
20684 behavour. Explicitly say order of options included in -fopt-info
20685 does not matter.
20686
20687 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
20688
20689 * config.gcc: Allow combinations of aprofile and rmprofile values for
20690 --with-multilib-list.
20691 * config/arm/t-multilib: New file.
20692 * config/arm/t-aprofile: Remove initialization of MULTILIB_*
20693 variables. Remove setting of ISA and floating-point ABI in
20694 MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in
20695 MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
20696 and MULTILIB_DIRNAMES respectively. Add comment to introduce all
20697 matches. Add architecture matches for marvel-pj4 and generic-armv7-a
20698 CPU options.
20699 * config/arm/t-rmprofile: Likewise except for the matches changes.
20700 * doc/install.texi (--with-multilib-list): Document the combination of
20701 aprofile and rmprofile values and warn about pitfalls in doing that.
20702
20703 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
20704
20705 * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
20706 (movdi_aarch64): Likewise.
20707
20708 2017-05-05 Jakub Jelinek <jakub@redhat.com>
20709
20710 PR tree-optimization/80632
20711 * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
20712 field.
20713 (build_arrays): Initialize it for virtual phis.
20714 (fix_phi_nodes): Use it for virtual phis.
20715
20716 PR tree-optimization/80558
20717 * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
20718 [x, y] op z into [x op, y op z] for op & or | if conditions
20719 are met.
20720
20721 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
20722 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
20723
20724 PR target/71607
20725 * config/arm/arm.md (use_literal_pool): Remove.
20726 (64-bit immediate split): No longer takes cost into consideration
20727 if arm_disable_literal_pool is enabled.
20728 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
20729 used when arm_disable_literal_pool is enabled.
20730 (arm_max_const_double_inline_cost): Remove use of
20731 arm_disable_literal_pool.
20732 (push_minipool_fix): Add assert.
20733 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
20734 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
20735 (no_literal_pool_sf_immediate): New.
20736
20737 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
20738
20739 PR tree-optimization/80613
20740 * tree-ssa-dce.c (propagate_necessity): Remove cases for
20741 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
20742
20743 2017-05-05 Richard Biener <rguenther@suse.de>
20744
20745 * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
20746
20747 2017-05-05 Georg-Johann Lay <avr@gjlay.de>
20748
20749 * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
20750 of this flag from insn conditions due to removal from r247495.
20751
20752 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
20753
20754 * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
20755 New function.
20756 (arm_early_store_addr_dep_ptr): Likewise.
20757 * config/arm/aarch-common-protos.h
20758 (arm_early_load_addr_dep_ptr): Add prototype.
20759 (arm_early_store_addr_dep_ptr): Likewise.
20760 * config/arm/cortex-a53.md: Add new bypasses.
20761
20762 2017-05-05 Jakub Jelinek <jakub@redhat.com>
20763
20764 * tree.c (next_type_uid): Change type to unsigned.
20765 (type_hash_canon): Decrement back next_type_uid if
20766 freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs
20767 also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
20768 if possible.
20769
20770 2017-05-04 Martin Sebor <msebor@redhat.com>
20771
20772 * builtins.c: Fix a trivial typo in a comment.
20773
20774 PR middle-end/79234
20775 * builtins.c (check_sizes): Adjust to handle reading past the end.
20776 Avoid printing excessive upper bound of ranges. Use %E to print
20777 tree nodes instead of converting them to %wu.
20778 (expand_builtin_memchr): New function.
20779 (compute_dest_size): Rename...
20780 (compute_objsize): ...to this.
20781 (expand_builtin_memcpy): Adjust.
20782 (expand_builtin_mempcpy): Adjust.
20783 (expand_builtin_strcat): Adjust.
20784 (expand_builtin_strcpy): Adjust.
20785 (check_strncat_sizes): Adjust.
20786 (expand_builtin_strncat): Adjust.
20787 (expand_builtin_strncpy): Adjust and simplify.
20788 (expand_builtin_memset): Adjust.
20789 (expand_builtin_bzero): Adjust.
20790 (expand_builtin_memcmp): Adjust.
20791 (expand_builtin): Handle memcmp.
20792 (maybe_emit_chk_warning): Check strncat just once.
20793
20794 2017-05-04 Martin Sebor <msebor@redhat.com>
20795
20796 PR preprocessor/79214
20797 PR middle-end/79222
20798 PR middle-end/79223
20799 * builtins.c (check_sizes): Add inlining context and issue
20800 warnings even when -Wno-system-headers is set.
20801 (check_strncat_sizes): Same.
20802 (expand_builtin_strncat): Same.
20803 (expand_builtin_memmove): New function.
20804 (expand_builtin_stpncpy): Same.
20805 (expand_builtin): Handle memmove and stpncpy.
20806
20807 2017-05-04 Bin Cheng <bin.cheng@arm.com>
20808
20809 * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
20810 which is not used any more.
20811
20812 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
20813
20814 * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
20815
20816 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
20817
20818 * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
20819 (cortexa53_tunings): Likewise.
20820 (cortexa57_tunings): Likewise.
20821 (cortexa72_tunings): Likewise.
20822 (cortexa73_tunings): Likewise.
20823
20824 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
20825
20826 * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
20827 Set loop alignment to 8.
20828
20829 2017-05-04 Martin Sebor <msebor@redhat.com>
20830
20831 PR translation/80280
20832 * builtins.c (expand_builtin_object_size): Add missing quoting to
20833 %D and like directives.
20834 * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
20835 (hsa_type_for_tree_type): Same.
20836 (verify_function_arguments): Same.
20837 * symtab.c (symbol_table::change_decl_assembler_name): Same.
20838 * varasm.c (get_section): Same.
20839 (mark_weak): Same.
20840
20841 2017-05-04 Martin Sebor <msebor@redhat.com>
20842
20843 PR translation/80280
20844 * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
20845
20846 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
20847
20848 * config/aarch64/aarch64.c (generic_addrcost_table):
20849 Change HI/TI mode setting.
20850
20851 2017-05-04 Martin Jambor <mjambor@suse.cz>
20852
20853 PR tree-optimization/80622
20854 * tree-sra.c (comes_initialized_p): New function.
20855 (build_accesses_from_assign): Only set write lazily when
20856 comes_initialized_p is false.
20857 (analyze_access_subtree): Use comes_initialized_p.
20858 (propagate_subaccesses_across_link): Assert !comes_initialized_p
20859 instead of testing for PARM_DECL.
20860
20861 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20862
20863 * config/aarch64/aarch64.md (prefetch); Adjust predicate and
20864 constraint on operand 0 to allow more general addressing modes.
20865 Adjust output template.
20866 * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
20867 New function.
20868 * config/aarch64/aarch64-protos.h
20869 (aarch64_address_valid_for_prefetch_p): Declare prototype.
20870 * config/aarch64/constraints.md (Dp): New address constraint.
20871 * config/aarch64/predicates.md (aarch64_prefetch_operand): New
20872 predicate.
20873
20874 2017-05-04 Jan Hubicka <hubicka@ucw.cz>
20875
20876 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
20877 update use of estimate_ipcp_clone_size_and_time.
20878 (estimate_local_effects): Update use of
20879 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
20880 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
20881 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
20882 Return nonspecialized time.
20883
20884 2017-05-04 Richard Biener <rguenther@suse.de>
20885
20886 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
20887 for the last VUSE which def dominates the PHI. Directly call
20888 maybe_skip_until.
20889 (get_continuation_for_phi_1): Remove.
20890
20891 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org>
20892
20893 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
20894 to explain the use of truncating division. Cap the number of
20895 iterations to the maximum given by nb_iterations_upper_bound,
20896 if defined.
20897
20898 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
20899
20900 * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
20901 * configure: Regenerate.
20902 * config.in: Regenerate.
20903 * config/i386/driver-mingw32.c: new file.
20904 * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
20905 * config.host: Link driver-mingw32.o on MinGW host.
20906 * doc/install.texi: Document new --enable-mingw-wildcard configure
20907 option.
20908
20909 2017-05-04 Marek Polacek <polacek@redhat.com>
20910
20911 PR tree-optimization/80612
20912 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
20913
20914 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
20915 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
20916
20917 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
20918 (movt splitter): Likewise.
20919 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
20920 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
20921 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
20922 block for Thumb-1 with MOVT.
20923 (thumb2_legitimate_address_p): Move code block ...
20924 (can_avoid_literal_pool_for_label_p): ... into this new function.
20925 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
20926 literal pool.
20927 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
20928 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
20929 "M-profile targets with the MOVT instruction".
20930
20931 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
20932
20933 * config/arm/arm-builtins.c (arm_init_builtins): Rename
20934 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
20935 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
20936
20937 2017-05-04 Martin Liska <mliska@suse.cz>
20938
20939 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
20940 variable cond_code.
20941
20942 2017-05-04 Richard Biener <rguenther@suse.de>
20943
20944 * tree.c (array_at_struct_end_p): Handle arrays at struct
20945 end with flexarrays more conservatively. Refactor and treat
20946 arrays of arrays or aggregates more strict. Fix
20947 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
20948 * tree.c (array_at_struct_end_p): Adjust prototype.
20949 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
20950 * gimple-fold.c (get_range_strlen): Likewise.
20951 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
20952
20953 2017-05-04 Richard Biener <rguenther@suse.de>
20954
20955 PR tree-optimization/31130
20956 * tree-vrp.c (needs_overflow_infinity): Remove as always returning
20957 false.
20958 (supports_overflow_infinity): Likewise.
20959 (is_negative_overflow_infinity): Likewise.
20960 (is_positive_overflow_infinity): Likewise.
20961 (is_overflow_infinity): Likewise.
20962 (stmt_overflow_infinity): Likewise.
20963 (overflow_infinity_range_p): Likewise.
20964 (usable_range_p): Remove as always returning true.
20965 (make_overflow_infinity): Remove.
20966 (negative_overflow_infinity): Likewise.
20967 (positive_overflow_infinity): Likewise.
20968 (avoid_overflow_infinity): Likewise.
20969 (set_value_range): Adjust accordingly.
20970 (set_value_range_to_nonnegative): Likewise, remove now unused
20971 overflow_infinity arg.
20972 (vrp_operand_equal_p): Adjust.
20973 (update_value_range): Likewise.
20974 (range_int_cst_singleton_p): Likewise.
20975 (operand_less_p): Likewise.
20976 (compare_values_warnv): Likewise.
20977 (extract_range_for_var_from_comparison_expr): Likewise.
20978 (vrp_int_const_binop): Likewise.
20979 (zero_nonzero_bits_from_vr): Likewise.
20980 (extract_range_from_multiplicative_op_1): Likewise.
20981 (extract_range_from_binary_expr_1): Likewise.
20982 (extract_range_from_unary_expr): Likewise.
20983 (extract_range_from_comparison): Likewise.
20984 (extract_range_basic): Likewise.
20985 (adjust_range_with_scev): Likewise.
20986 (compare_ranges): Likewise.
20987 (compare_range_with_value): Likewise.
20988 (dump_value_range): Likewise.
20989 (test_for_singularity): Likewise, remove strict_overflow_p parameter
20990 never used.
20991 (simplify_cond_using_ranges): Adjust.
20992
20993 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
20994
20995 * brig-builtins.def: Added a builtin for class_f64.
20996 * builtin-types.def: Added a builtin type needed by class_f64.
20997
20998 2017-05-03 Jason Merrill <jason@redhat.com>
20999
21000 * timevar.def: Add TV_CONSTEXPR.
21001
21002 2017-05-03 David Malcolm <dmalcolm@redhat.com>
21003
21004 * common.opt (fdiagnostics-parseable-fixits): Fix typo.
21005
21006 2017-05-03 Martin Jambor <mjambor@suse.cz>
21007
21008 * ipa-prop.c (ipa_update_after_lto_read): Removed.
21009 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
21010 * ipa-cp.c (ipcp_propagate_stage): Do not call
21011 ipa_update_after_lto_read.
21012 * ipa-inline.c (ipa_inline): Likewise.
21013
21014 2017-05-03 Martin Jambor <mjambor@suse.cz>
21015
21016 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY
21017 tag. Added a default constructor and a destructor.
21018 (ipa_edge_args_sum_t): New class;
21019 (ipa_edge_args_sum): Declare.
21020 (ipa_edge_args_vector): Remove declaration.
21021 (IPA_EDGE_REF): Use ipa_edge_args_sum.
21022 (ipa_free_edge_args_substructures): Remove declaration.
21023 (ipa_check_create_edge_args): Use ipa_edge_args_sum.
21024 (ipa_edge_args_info_available_for_edge_p): Likewise.
21025 * ipa-prop.c (ipa_edge_args_vector): Removed.
21026 (edge_removal_hook_holder): Likewise.
21027 (edge_duplication_hook_holder): Likewise.
21028 (ipa_edge_args_sum): New variable.
21029 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
21030 ipa_edge_args_vector.
21031 (ipa_free_edge_args_substructures): Likewise.
21032 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
21033 ipa_edge_args_vector.
21034 (ipa_edge_removal_hook): Turned into method
21035 ipa_edge_args_sum_t::remove.
21036 (ipa_edge_duplication_hook): Turned into method
21037 ipa_edge_args_sum_t::duplicate.
21038 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
21039 registering edge hooks.
21040 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
21041 * ipa-inline-analysis.c (estimate_function_body_sizes): Test
21042 ipa_edge_args_sum instead of ipa_edge_args_vector.
21043 * ipa-profile.c (ipa_profile): Likewise.
21044
21045 2017-05-03 Martin Jambor <mjambor@suse.cz>
21046
21047 * symbol-summary.h (function_summary): New method exists.
21048 (function_summary::symtab_removal): Deallocate through release.
21049 (call_summary): New class.
21050 (gt_ggc_mx): New overload.
21051 (gt_pch_nx): Likewise.
21052 (gt_pch_nx): Likewise.
21053
21054 2017-05-03 Jeff Law <law@redhat.com>
21055
21056 PR tree-optimization/78496
21057 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
21058 from simplify_cond_using_ranges. Split off code to walk
21059 backwards through casts into ...
21060 (simplify_cond_using_ranges_2): New function.
21061 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
21062 (execute_vrp): After identifying jump threads, call
21063 simplify_cond_using_ranges_2.
21064
21065 2017-05-03 Jan Hubicka <hubicka@ucw.cz>
21066
21067 PR bootstrap/80609
21068 * ipa-inline.h (inline_summary): Add ctor.
21069 (create_ggc): Do not use ggc_cleared_alloc.
21070
21071 2017-05-03 Jeff Downs <heydowns@somuchpressure.net>
21072 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21073
21074 * gcc.c (handle_braces): Support escaping in switch matching
21075 text.
21076 * doc/invoke.texi (Spec Files): Document it.
21077 Remove superfluous @code markup in items.
21078
21079 2017-05-03 David Malcolm <dmalcolm@redhat.com>
21080
21081 * diagnostic-show-locus.c (struct column_range): New struct.
21082 (get_affected_columns): New function.
21083 (get_printed_columns): New function.
21084 (struct correction): New struct.
21085 (correction::ensure_capacity): New function.
21086 (correction::ensure_terminated): New function.
21087 (struct line_corrections): New struct.
21088 (line_corrections::~line_corrections): New dtor.
21089 (line_corrections::add_hint): New function.
21090 (layout::print_trailing_fixits): Reimplement in terms of the new
21091 classes.
21092 (selftest::test_overlapped_fixit_printing): New function.
21093 (selftest::diagnostic_show_locus_c_tests): Call it.
21094
21095 2017-05-03 Nathan Sidwell <nathan@acm.org>
21096
21097 Canonicalize canonical type hashing
21098 * tree.h (type_hash_canon_hash): Declare.
21099 * tree.c (type_hash_list, attribute_hash_list): Move into
21100 type_hash_canon_hash.
21101 (build_type_attribute_qual_variant): Break out hash code calc into
21102 type_hash_canon_hash.
21103 (type_hash_canon_hash): New. Generic type hash computation.
21104 (build_range_type_1, build_array_type_1, build_function_type,
21105 build_method_type_directly, build_offset_type, build_complex_type,
21106 make_vector_type): Call it.
21107
21108 2017-05-03 Richard Biener <rguenther@suse.de>
21109
21110 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
21111 When all DRs have unknown misaligned do not always peel
21112 when there is a store but apply the same costing model as if
21113 there were only loads.
21114
21115 2017-05-03 Richard Biener <rguenther@suse.de>
21116
21117 Revert
21118 PR tree-optimization/80492
21119 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
21120 compare_base_decls returning dont-know properly.
21121
21122 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
21123
21124 * config/arm/iterators.md (CCSI): New mode iterator.
21125 (arch): New mode attribute.
21126 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
21127 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
21128 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI
21129 code iterator for success result mode.
21130 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
21131 the corresponding new insn generators.
21132
21133 2017-05-03 Bin Cheng <bin.cheng@arm.com>
21134
21135 Revert r247509
21136 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21137 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
21138
21139 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org>
21140
21141 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
21142 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
21143 (DDR_A): Wrap DDR argument in brackets.
21144 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
21145 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
21146 (DDR_REVERSED_P): Likewise.
21147
21148 2017-05-03 Jakub Jelinek <jakub@redhat.com>
21149
21150 PR tree-optimization/79472
21151 * tree-switch-conversion.c (struct switch_conv_info): Add
21152 contiguous_range and default_case_nonstandard fields.
21153 (collect_switch_conv_info): Compute contiguous_range and
21154 default_case_nonstandard fields, don't clear final_bb if
21155 contiguous_range and only the default case doesn't have the required
21156 structure.
21157 (check_all_empty_except_final): Set default_case_nonstandard instead
21158 of failing if contiguous_range and the default case doesn't have empty
21159 block.
21160 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
21161 and only the default case doesn't have the required constants. Skip
21162 virtual phis.
21163 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW
21164 if default_case_nonstandard.
21165 (build_constructors): Build constant 1 just once. Assert that default
21166 values aren't inserted in between cases if contiguous_range. Skip
21167 virtual phis.
21168 (build_arrays): Skip virtual phis.
21169 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
21170 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
21171 Handle virtual phis.
21172 (gen_inbound_check): Handle default_case_nonstandard case.
21173 (process_switch): Adjust check_final_bb caller. Call
21174 gather_default_values with the first non-default case instead of
21175 default case if default_case_nonstandard.
21176
21177 2017-05-02 Nathan Sidwell <nathan@acm.org>
21178
21179 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
21180 check. Fix formatting.
21181
21182 2017-05-02 Jan Hubicka <hubicka@ucw.cz>
21183
21184 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
21185 errors when comparing specialized and unspecialized times.
21186
21187 2017-05-02 David Malcolm <dmalcolm@redhat.com>
21188
21189 * diagnostic-show-locus.c
21190 (layout::should_print_annotation_line_p): Make private.
21191 (layout::print_annotation_line): Make private.
21192 (layout::annotation_line_showed_range_p): Make private.
21193 (layout::show_ruler): Make private.
21194 (layout::print_source_line): Make private. Pass in line and
21195 line_width, rather than calling location_get_source_line. Drop
21196 returned value.
21197 (layout::print_leading_fixits): New method.
21198 (layout::print_any_fixits): Rename to...
21199 (layout::print_trailing_fixits): ...this, and make private.
21200 Don't print newline fixits.
21201 (diagnostic_show_locus): Move logic for printing one row into...
21202 (layout::print_line): ...this new function. Move the
21203 location_get_source_line call and error-handling from
21204 print_source_line to here. Call print_leading_fixits, and rename
21205 print_any_fixits to print_trailing_fixits.
21206 (selftest::test_fixit_insert_containing_newline): Update now that
21207 newlines are partially supported.
21208 (selftest::test_fixit_insert_containing_newline_2): New test.
21209 (selftest::test_fixit_replace_containing_newline): Update comments.
21210 (selftest::diagnostic_show_locus_c_tests): Call the new test.
21211 * edit-context.c (class added_line): New class.
21212 (class edited_line): Describe newline handling in comment.
21213 (edited_line::actually_edited_p): New method.
21214 (edited_line::print_content): Delete redundant decl.
21215 (edited_line::m_predecessors): New field.
21216 (edited_file::print_content): Call edited_line::print_content.
21217 (edited_file::print_diff): Update to support newlines.
21218 (edited_file::print_diff_hunk): Likewise.
21219 (edited_file::print_run_of_changed_lines): New function.
21220 (edited_file::print_diff_line): Convert to...
21221 (print_diff_line): ...this.
21222 (edited_file::get_effective_line_count): New function.
21223 (edited_line::edited_line): Initialize new field m_predecessors.
21224 (edited_line::~edited_line): Clean up m_predecessors.
21225 (edited_line::apply_fixit): Handle newlines.
21226 (edited_line::get_effective_line_count): New function.
21227 (edited_line::print_content): New function.
21228 (edited_line::print_diff_lines): New function.
21229 (selftest::test_applying_fixits_insert_containing_newline): New
21230 test.
21231 (selftest::test_applying_fixits_replace_containing_newline): New
21232 test.
21233 (selftest::insert_line): New function.
21234 (selftest::test_applying_fixits_multiple_lines): Add example of
21235 inserting a line.
21236 (selftest::edit_context_c_tests): Call the new tests.
21237
21238 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21239
21240 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
21241 parameter cand. Update dump information.
21242 (get_computation_cost): Update uses.
21243
21244 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21245
21246 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
21247 (get_computation_aff): Reorder parameters. Use get_computation_aff_1.
21248 (get_computation_at, rewrite_use_address): Update use of
21249 get_computation_aff.
21250
21251 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21252
21253 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
21254 (get_computation): Delete.
21255 (get_computation_cost): Implement like get_computation_cost_at.
21256 Use get_computation_at.
21257 (get_computation_cost_at): Delete.
21258 (rewrite_use_nonlinear_expr): Use get_computation_at.
21259 (rewrite_use_compare, remove_unused_ivs): Ditto.
21260
21261 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21262
21263 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
21264
21265 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21266
21267 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
21268 (ivopts_global_cost_for_size): Rename parameter and update uses.
21269 (iv_ca_recount_cost): Update uses.
21270 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
21271 candidates seperately in n_invs and n_cands.
21272 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
21273
21274 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21275
21276 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
21277 (find_inv_vars_cb): New.
21278 (find_depends): Renamed to ...
21279 (find_inv_vars): ... this.
21280 (add_candidate_1, force_var_cost): Call find_inv_vars.
21281 (split_address_cost, determine_group_iv_cost_cond): Ditto.
21282
21283 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21284
21285 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
21286 inv_vars. Add inv_exprs.
21287 (struct iv_cand): Rename depends_on to inv_vars.
21288 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
21289 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around.
21290 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
21291 (dump_cand): Dump inv_vars.
21292 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
21293 (record_invariant, find_depends, add_candidate_1): Ditto.
21294 (set_group_iv_cost, force_var_cost): Ditto.
21295 (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
21296 (get_computation_cost_at, get_computation_cost): Ditto.
21297 (determine_group_iv_cost_generic): Ditto.
21298 (determine_group_iv_cost_address): Ditto.
21299 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
21300 (determine_group_iv_costs): Ditto.
21301 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
21302 (iv_ca_set_remove_invariants): Renamed to ...
21303 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs.
21304 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
21305 (iv_ca_set_add_invariants): Renamed to ...
21306 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs.
21307 (iv_ca_set_cp): Use iv_ca_set_add_invs.
21308 (iv_ca_has_deps): Support inv_vars and inv_exprs.
21309 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
21310 (create_new_ivs): Remove useless dump.
21311
21312 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21313
21314 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
21315 iv_cand code.
21316 (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
21317 (iv_ca_set_no_cp, create_new_iv): Ditto.
21318
21319 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21320
21321 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
21322
21323 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
21324
21325 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
21326 function tree_check2.
21327
21328 2017-05-02 Martin Liska <mliska@suse.cz>
21329
21330 * doc/gcov.texi: Add missing preposition.
21331 * gcov.c (function_info::function_info): Properly fill up
21332 all member variables.
21333
21334 2017-05-02 Tamar Christina <tamar.christina@arm.com>
21335
21336 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
21337
21338 2017-05-02 Tamar Christina <tamar.christina@arm.com>
21339
21340 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
21341
21342 2017-05-02 Martin Liska <mliska@suse.cz>
21343
21344 PR lto/77954.
21345 * lto-streamer-in.c (lto_read_tree_1): Remove
21346 LTO_STREAMER_DEBUG.
21347 * lto-streamer.c (struct tree_hash_entry): Likewise.
21348 (struct tree_entry_hasher): Likewise.
21349 (tree_entry_hasher::hash): Likewise.
21350 (tree_entry_hasher::equal): Likewise.
21351 (lto_streamer_init): Likewise.
21352 (lto_orig_address_map): Likewise.
21353 (lto_orig_address_get): Likewise.
21354 (lto_orig_address_remove): Likewise.
21355 * lto-streamer.h: Likewise.
21356 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
21357 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
21358
21359 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com>
21360
21361 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
21362 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
21363 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
21364 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
21365 (mm_maskz_sub_round_ss, _mm_mask_add_sd)
21366 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
21367 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
21368 (mm_maskz_sub_ss): New intrinsics.
21369 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21370 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
21371 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
21372 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
21373 (__builtin_ia32_subss_mask_round): New builtins.
21374 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21375 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
21376 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
21377 Renamed to ...
21378 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
21379 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
21380 Changed to ...
21381 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
21382 ... this.
21383
21384 2017-05-02 Martin Jambor <mjambor@suse.cz>
21385
21386 PR tree-optimization/78687
21387 * tree-sra.c (access): New field parent.
21388 (process_subtree_disqualification): New function.
21389 (disqualify_candidate): Call it.
21390 (build_accesses_from_assign): Reset write flag if creating an
21391 assighnment link.
21392 (build_access_subtree): Fill in parent field and also prpagate
21393 down grp_write flag.
21394 (create_artificial_child_access): New parameter set_grp_write, set
21395 grp_write to its value.
21396 (propagate_subaccesses_across_link): Also propagate grp_write flag
21397 values.
21398 (propagate_all_subaccesses): Push the closest parent back to work
21399 queue if add_access_to_work_queue returned true.
21400
21401 2017-05-02 Richard Biener <rguenther@suse.de>
21402
21403 * common.opt (fstrict-overflow): Alias negative to fwrapv.
21404 * doc/invoke.texi (fstrict-overflow): Remove all traces of
21405 -fstrict-overflow documentation.
21406 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
21407 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
21408 flag_strict_overflow.
21409 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
21410 * lto-opts.c (lto_write_options): Do not stream it.
21411 * lto-wrapper.c (merge_and_complain): Do not handle it.
21412 * opts.c (default_options_table): Do not set -fstrict-overflow.
21413 (finish_options): Likewise do not clear it when sanitizing.
21414 * simplify-rtx.c (simplify_const_relational_operation): Do not
21415 test flag_strict_overflow.
21416
21417 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
21418
21419 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
21420 using enabled attribute.
21421 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
21422 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
21423 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
21424 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
21425 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
21426 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
21427 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
21428 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
21429 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
21430 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
21431
21432 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
21433
21434 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
21435
21436 2017-05-02 Richard Biener <rguenther@suse.de>
21437
21438 PR tree-optimization/80591
21439 Revert
21440 2017-04-10 Richard Biener <rguenther@suse.de>
21441
21442 * tree-ssa-structalias.c (find_func_aliases): Properly handle
21443 asm inputs.
21444
21445 2017-05-02 Richard Biener <rguenther@suse.de>
21446
21447 PR tree-optimization/80549
21448 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
21449 (cleanup_tree_cfg_noloop): Create forwarders to known loop
21450 headers if they do not have a preheader.
21451
21452 2017-05-02 Martin Liska <mliska@suse.cz>
21453
21454 PR other/80589
21455 * common.opt: Fix typo.
21456 * doc/invoke.texi: Likewise.
21457
21458 2017-05-01 Jan Beulich <jbeulich@suse.com>
21459
21460 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
21461 swapping, add (x,x,m,x,n) alternative.
21462
21463 2017-05-01 Nathan Sidwell <nathan@acm.org>
21464
21465 * calls.c (combine_pending_stack_adjustment_and_call): Remove
21466 unnecessary unadjusted_alignment check.
21467
21468 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
21469
21470 PR c++/80038
21471 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
21472 operations here.
21473 * gimplify.c (gimplify_cilk_detach): New function.
21474 (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
21475 * tree-core.h: Document EXPR_CILK_SPAWN.
21476 * tree.h (EXPR_CILK_SPAWN): Define.
21477
21478 2017-05-01 David Malcolm <dmalcolm@redhat.com>
21479
21480 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
21481 to use new fixit_hint representation, using the "replace" logic.
21482 (get_line_span_for_fixit_hint): Likewise.
21483 (layout::print_any_fixits): Likewise.
21484 (selftest::test_one_liner_many_fixits): Rename to...
21485 (selftest::test_one_liner_many_fixits_1): ...this, and update
21486 comment and expected output to reflect that the multiple fix-it
21487 hints are now consolidated into one insertion.
21488 (selftest::test_one_liner_many_fixits_2): New test.
21489 (selftest::test_diagnostic_show_locus_one_liner): Update for
21490 above.
21491 (selftest::test_fixit_consolidation): Update for fix-it API
21492 change.
21493 * diagnostic.c (print_parseable_fixits): Likewise.
21494 * edit-context.c (edited_line::m_line_events): Convert from
21495 auto_vec <line_event *> to auto_vec <line_event>.
21496 (class line_event): Convert from abstract base class to a concrete
21497 class, taking over the role of replace_event.
21498 (class insert_event): Delete.
21499 (class replace_event): Rename to class line_event. Convert to
21500 half-open range.
21501 (edit_context::add_fixits): Reimplement.
21502 (edit_context::apply_insert): Delete.
21503 (edit_context::apply_replace): Rename to...
21504 (edit_context::apply_fixit): ...this. Convert to half-open range.
21505 (edited_file::apply_insert): Delete.
21506 (edited_file::apply_replace): Rename to...
21507 (edited_file::apply_fixit): ...this.
21508 (edited_line::~edited_line): Drop deletion of events.
21509 (edited_line::apply_insert): Delete.
21510 (edited_line::apply_replace): Rename to...
21511 (edited_line::apply_fixit): ...this. Convert to half-open range.
21512 Update for change to type of m_line_events.
21513 * edit-context.h (edit_context::apply_insert): Delete.
21514 (edit_context::apply_replace): Rename to...
21515 (edit_context::apply_fixit): ...this.
21516
21517 2017-05-01 Martin Sebor <msebor@redhat.com>
21518
21519 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
21520 known.
21521
21522 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
21523
21524 PR target/68491
21525 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
21526 __get_cpuid_max returns 0.
21527 (__get_cpuid_count): Ditto.
21528
21529 2017-05-01 Eric Botcazou <ebotcazou@adacore.com>
21530
21531 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
21532 replacement expression is another instance of one of its arguments.
21533
21534 2017-05-01 Jakub Jelinek <jakub@redhat.com>
21535
21536 PR target/79430
21537 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
21538 check for stack push/pop autoinc.
21539 * config/i386/i386.c (ix86_agi_dependent): Return false
21540 if the only reason why modified_in_p returned true is that
21541 addr is SP based and set_insn is a push or pop.
21542
21543 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
21544
21545 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
21546 overflow check.
21547
21548 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
21549
21550 PR ipa/79224
21551 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
21552 (account_size_time): Use two predicates - exec_pred and
21553 nonconst_pred_ptr.
21554 (evaluate_conditions_for_known_args): Compute both clause and
21555 nonspec_clause.
21556 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
21557 (inline_summary_t::duplicate): Update.
21558 (estimate_function_body_sizes): Caluculate exec and nonconst predicates
21559 separately.
21560 (compute_inline_parameters): Likewise.
21561 (estimate_edge_size_and_time): Update caluclation of time.
21562 (estimate_node_size_and_time): Compute both time and nonspecialized
21563 time.
21564 (estimate_ipcp_clone_size_and_time): Update.
21565 (inline_merge_summary): Update.
21566 (do_estimate_edge_time): Update.
21567 (do_estimate_edge_size): Update.
21568 (do_estimate_edge_hints): Update.
21569 (inline_read_section, inline_write_summary): Stream both new predicates.
21570 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
21571 as argument.
21572 (compute_inlined_call_time): Cleanup.
21573 (big_speedup_p): Update.
21574 (edge_badness): Update.
21575 * ipa-inline.h (INLINE_TIME_SCALE): Remove.
21576 (size_time_entry): Replace predicate by exec_predicate and
21577 nonconst_predicate.
21578 (edge_growth_cache_entry): Cache both time nad nonspecialized time.
21579 (estimate_edge_time): Return also nonspec_time.
21580 (reset_edge_growth_cache): Update.
21581
21582 2017-04-29 Jakub Jelinek <jakub@redhat.com>
21583
21584 PR rtl-optimization/80491
21585 * ifcvt.c (noce_process_if_block): When looking for x setter
21586 with missing else_bb, don't check only the insn right before
21587 cond_earliest, but look for the last insn that x is modified in
21588 within the same bb.
21589
21590 PR rtl-optimization/80491
21591 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
21592
21593 2017-04-29 Marc Glisse <marc.glisse@inria.fr>
21594
21595 PR tree-optimization/80487
21596 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
21597
21598 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21599
21600 PR tree-optimization/79697
21601 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
21602 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
21603 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
21604 BUILT_IN_STRNDUP.
21605 * gimple-fold.c (gimple_fold_builtin_realloc): New function.
21606 (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
21607
21608 2017-04-28 Martin Sebor <msebor@redhat.com>
21609
21610 PR tree-optimization/80523
21611 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
21612 (init_target_to_host_charmap, target_to_host, target_strtol10): New
21613 functions.
21614 (maybe_warn, format_directive, parse_directive): Use new functions.
21615 (pass_sprintf_length::execute): Call init_target_to_host_charmap.
21616
21617 2017-04-28 Marc Glisse <marc.glisse@inria.fr>
21618
21619 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
21620
21621 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
21622
21623 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
21624 target_header_dir): Set correctly.
21625 * configure: Regenerated.
21626 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
21627 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
21628 instead of SYSTEM_HEADER_DIR.
21629
21630 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
21631
21632 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
21633 (estimate_local_effects): Likewise.
21634 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
21635 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
21636 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
21637 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
21638 do_estimate_edge_time, estimate_edge_time): Likewise.
21639 * ipa-inline-analysis.c (estimate_node_size_and_time,
21640 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
21641 (estimate_time_after_inlining): Remove.
21642
21643 2017-04-28 Martin Liska <mliska@suse.cz>
21644
21645 * doc/gcov.texi: Enhance documentation of gcov.
21646
21647 2017-04-28 Martin Liska <mliska@suse.cz>
21648
21649 * doc/gcov.texi: Sort options in alphabetic order.
21650 * doc/gcov-dump.texi: Likewise.
21651 * doc/gcov-tool.texi: Likewise.
21652 * gcov.c (print_usage): Likewise.
21653 * gcov-dump.c (print_usage): Likewise.
21654 * gcov-tool.c (print_merge_usage_message): Likewise.
21655 (print_rewrite_usage_message): Likewise.
21656 (print_overlap_usage_message): Likewise.
21657
21658 2017-04-28 Martin Liska <mliska@suse.cz>
21659
21660 PR gcov-profile/53915
21661 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
21662
21663 2017-04-28 Martin Liska <mliska@suse.cz>
21664
21665 PR gcov-profile/79891
21666 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
21667 is marked by compiler as living on a line.
21668 (get_cycles_count): Remove usage of the union.
21669 (output_intermediate_file): Likewise.
21670 (find_source): Fix GNU coding style.
21671 (accumulate_line_counts): Remove old non-all block mode.
21672 (output_lines): Remove usage of the union.
21673 * profile.c (output_location): Include all BBs, even if
21674 belonging to a same line (and file) as a previous BB.
21675
21676 2017-04-28 Martin Liska <mliska@suse.cz>
21677
21678 * gcov.c (process_args): Handle new argument 'w'.
21679 (read_graph_file): Assign ID to BBs.
21680 (output_branch_count): Display BB # if verbose flag is set.
21681 (output_lines): Likewise for arcs.
21682 (print_usage): Add '--verbose' option help.
21683 * doc/gcov.texi: Document --verbose (-w) option.
21684
21685 2017-04-28 Martin Liska <mliska@suse.cz>
21686
21687 * gcov.c (struct block_location_info): New struct.
21688 (process_file): Fill up the new structure.
21689 (read_graph_file): Replace usage of encoding by the newly added
21690 struct.
21691 (add_line_counts): Likewise.
21692 (accumulate_line_counts): Remove usage of the union.
21693 (function_info::function_info): New function.
21694 (function_info::~function_info): Likewise.
21695 (process_file): Call delete instead of release_function.
21696 (release_function): Release the function.
21697 (release_structures): Call delete instead of release_function.
21698 (solve_flow_graph): Replace usage of num_blocks.
21699 (find_exception_blocks): Likewise.
21700 (output_lines): Fix GNU coding style.
21701
21702 2017-04-28 Martin Liska <mliska@suse.cz>
21703
21704 PR driver/56469
21705 * coverage.c (coverage_remove_note_file): New function.
21706 * coverage.h: Declare the function.
21707 * toplev.c (finalize): Clean if an error has been seen.
21708
21709 2017-04-28 Martin Liska <mliska@suse.cz>
21710
21711 PR gcov-profile/80031
21712 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
21713 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
21714 * gcov.c (read_graph_file): Read just number of blocks.
21715 * profile.c (branch_prob): Do not stream 0 flags per a basic
21716 block.
21717
21718 2017-04-28 Martin Liska <mliska@suse.cz>
21719
21720 * gcov-dump.c (tag_*): Add new argument to declarations.
21721 (dump_gcov_file): Likewise.
21722 (tag_blocks): Add and use new argument depth.
21723 (tag_arcs): Likewise.
21724 (tag_lines): Likewise.
21725 (tag_counters): Likewise.
21726 (tag_summary): Likewise.
21727 (dump_working_sets): Use depth to do a proper indentation.
21728
21729 2017-04-28 Jakub Jelinek <jakub@redhat.com>
21730
21731 PR bootstrap/80531
21732 * cgraph.h (symtab_node::debug_symtab): No longer inline.
21733 * symtab.c (symtab_node::debug_symtab): Move definition here.
21734
21735 2017-04-28 Richard Biener <rguenther@suse.de>
21736
21737 * lto-streamer.h (LTO_major_version): Bump to 7.
21738
21739 2017-04-28 Richard Biener <rguenther@suse.de>
21740
21741 * tree-vrp.c (assert_info): New struct.
21742 (add_assert_info): New helper.
21743 (register_edge_assert_for_2): Refactor to add asserts to a vector
21744 of assert_info.
21745 (register_edge_assert_for_1): Likewise.
21746 (register_edge_assert_for): Likewise.
21747 (finish_register_edge_assert_for): New helper actually registering
21748 asserts where live on edge.
21749 (find_conditional_asserts): Adjust.
21750 (find_switch_asserts): Likewise.
21751 (evrp_dom_walker::try_find_new_range): Generalize.
21752 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
21753
21754 2017-04-27 Marek Polacek <polacek@redhat.com>
21755
21756 PR sanitizer/80349
21757 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
21758 arg10 and arg11 to itype.
21759
21760 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
21761
21762 * doc/extend.texi (Object Size Checking): Improve grammar.
21763
21764 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
21765
21766 PR target/80530
21767 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
21768 that the logic for permitting reciprocal estimates matches that
21769 in use_rsqrt_p.
21770
21771 2017-04-27 Jakub Jelinek <jakub@redhat.com>
21772
21773 PR c++/80534
21774 * tree.c (type_cache_hasher::equal): Only compare
21775 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
21776 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
21777 non-aggregate element types.
21778 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
21779 about the flag on ARRAY_TYPEs in the comment, formatting fix.
21780
21781 2017-04-27 Richard Biener <rguenther@suse.de>
21782
21783 PR middle-end/80533
21784 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
21785 stripping ARRAY_REFs from MEM_EXPR make sure we're not
21786 keeping a reference to a trailing array.
21787
21788 2017-04-27 Richard Biener <rguenther@suse.de>
21789
21790 PR middle-end/80539
21791 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
21792 being in loop-closed SSA form conservatively.
21793 (chrec_fold_multiply_poly_poly): Likewise.
21794
21795 2017-04-27 Tamar Christina <tamar.christina@arm.com>
21796
21797 PR middle-end/79665
21798 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
21799 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
21800
21801 2017-04-27 Jakub Jelinek <jakub@redhat.com>
21802
21803 PR target/77728
21804 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
21805 (aarch64_function_arg_alignment): Return unsigned int again, but still
21806 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
21807 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
21808 Don't emit -Wpsabi note.
21809 (aarch64_function_arg_boundary): Likewise.
21810 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
21811 caller.
21812
21813 2017-04-26 Nathan Sidwell <nathan@acm.org>
21814
21815 * tree.h (crc32_unsigned_n): Declare.
21816 (crc32_unsigned, crc32_unsigned): Make inline.
21817 * tree.c (crc32_unsigned_bits): Replace with ...
21818 (crc32_unsigned_n): ... this.
21819 (crc32_unsigned, crc32_byte): Remove.
21820 (crc32_string): Remove unnecessary braces.
21821
21822 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
21823
21824 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
21825 * ipa-inline-analysis.c (MAX_TIME): Remove.
21826 (account_size_time): Use sreal for time.
21827 (dump_inline_summary): Update.
21828 (estimate_function_body_sizes): Update.
21829 (estimate_edge_size_and_time): Update.
21830 (estimate_calls_size_and_time): Update.
21831 (estimate_node_size_and_time): Update.
21832 (inline_merge_summary): Update.
21833 (inline_update_overall_summary): Update.
21834 (estimate_time_after_inlining): Update.
21835 (inline_read_section): Update.
21836 (inline_write_summary): Update.
21837 * ipa-inline.c (compute_uninlined_call_time): Update.
21838 (compute_inlined_call_time): Update.
21839 (recursive_inlining): Update.
21840 (inline_small_functions): Update.
21841 (dump_overall_stats): Update.
21842 * ipa-inline.h: Include sreal.h.
21843 (size_time_entry): Turn time to sreal.
21844 (inline_summary): Turn self_time nad time to sreal.
21845
21846 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
21847
21848 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
21849 data-streamer.h
21850 (sreal::stream_out, sreal::stream_in): New.
21851 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
21852
21853 2017-04-25 Jakub Jelinek <jakub@redhat.com>
21854
21855 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
21856 environment.
21857
21858 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
21859
21860 PR target/70799
21861 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
21862 Handle ASHIFTRT.
21863 (dimode_scalar_chain::compute_convert_gain): Ditto.
21864 (dimode_scalar_chain::make_vector_copies): Ditto.
21865 (dimode_scalar_chain::convert_reg): Ditto.
21866 (dimode_scalar_chain::convert_insn): Ditto.
21867 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
21868 (VI248_AVX512BW_1): New mode iterator.
21869 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
21870 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
21871 mode iterator.
21872
21873 2017-04-25 Martin Sebor <msebor@redhat.com>
21874
21875 PR tree-optimization/80497
21876 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
21877 constants are representable in HOST_WIDE_INT.
21878 (parse_directive): Ditto.
21879
21880 2017-04-25 Martin Sebor <msebor@redhat.com>
21881
21882 PR bootstrap/80486
21883 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
21884 (new_zero_array): Adjust signature.
21885 (dom_info::dom_init): Used unsigned rather that size_t.
21886 (dom_info::dom_info): Same.
21887
21888 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21889 Jakub Jelinek <jakub@redhat.com>
21890
21891 PR target/77728
21892 * config/arm/arm.c: Include gimple.h.
21893 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
21894 returns negative, increment ncrn only if it returned positive.
21895 (arm_needs_doubleword_align): Return int instead of bool,
21896 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
21897 members, but if there is any such non-FIELD_DECL
21898 > PARM_BOUNDARY aligned decl, return -1 instead of false.
21899 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
21900 returns negative, increment nregs only if it returned positive.
21901 (arm_setup_incoming_varargs): Likewise.
21902 (arm_function_arg_boundary): Emit -Wpsabi note if
21903 arm_needs_doubleword_align returns negative, return
21904 DOUBLEWORD_ALIGNMENT only if it returned positive.
21905
21906 2017-04-25 Marek Polacek <polacek@redhat.com>
21907
21908 PR sanitizer/80349
21909 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
21910 first argument to type.
21911
21912 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
21913
21914 PR target/80482
21915 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
21916 type checks to test for compatibility instead of equality.
21917
21918 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21919 Jakub Jelinek <jakub@redhat.com>
21920
21921 PR target/77728
21922 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
21923 type.
21924 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
21925 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
21926 the alignment computation, but return their maximum in warn_alignment.
21927 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
21928 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
21929 is smaller.
21930 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
21931 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
21932 caller.
21933
21934 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21935
21936 * config/arc/simdext.md (dmpyh): Fix typo.
21937
21938 2017-04-25 Richard Biener <rguenther@suse.de>
21939
21940 PR tree-optimization/80492
21941 * alias.c (compare_base_decls): Handle registers with asm
21942 specification conservatively.
21943 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
21944 compare_base_decls returning dont-know properly.
21945
21946 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21947
21948 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
21949 (legitimate_offset_address_p): New function.
21950 (arc_legitimate_address_p): Use above function.
21951
21952 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21953
21954 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
21955
21956 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21957
21958 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
21959 ACCH registers whenever they are available.
21960
21961 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21962
21963 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
21964 double regs fix when not used.
21965
21966 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21967
21968 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
21969 core registers.
21970 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
21971 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
21972
21973 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21974
21975 * config/arc/arc.c (arc_output_addsi): Check for h-register class
21976 when emitting short ADD instructions.
21977
21978 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21979
21980 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
21981 constraint.
21982 (cmpsi_cc_c_insn): Likewise.
21983 (cbranchsi4_scratch): Compute proper instruction length using
21984 compact_hreg_operand.
21985 * config/arc/predicates.md (compact_hreg_operand): New predicate.
21986
21987 2017-04-25 Richard Biener <rguenther@suse.de>
21988
21989 PR middle-end/80509
21990 * passes.c (pass_manager::pass_manager): Initialize
21991 m_name_to_pass_map.
21992
21993 2017-04-25 Richard Biener <rguenther@suse.de>
21994
21995 PR tree-optimization/79201
21996 * tree-ssa-sink.c (statement_sink_location): Handle calls.
21997
21998 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21999
22000 PR target/80464
22001 * config/s390/vector.md: Split MEM->GPR vector moves for
22002 non-s_operand addresses.
22003
22004 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22005
22006 PR target/79895
22007 * config/s390/predicates.md (reload_const_wide_int_operand): New
22008 predicate.
22009 * config/s390/s390.md ("movti"): Remove d/P alternative.
22010 ("movti_bigconst"): New pattern definition.
22011
22012 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
22013
22014 PR target/80080
22015 * s390-protos.h (s390_expand_cs_hqi): Removed.
22016 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
22017 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
22018 modes as well as CCZ1mode and CCZmode.
22019 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
22020 signature of s390_emit_compare_and_swap.
22021 (s390_expand_cs_hqi): Likewise, make static.
22022 (s390_expand_cs_tdsi): Generate an explicit compare before trying
22023 compare-and-swap, in some cases.
22024 (s390_expand_cs): Wrapper function.
22025 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
22026 atomic_exchange.
22027 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
22028 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
22029 patterns for small and large integers. Forbid symref memory operands.
22030 Move expander to s390.c. Require cc register.
22031 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
22032 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
22033 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
22034 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
22035 symref memory operands. Remove CC mode and call s390_match_ccmode
22036 instead.
22037 ("atomic_exchange<mode>"): Allow and implement all integer modes.
22038
22039 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
22040
22041 * config/s390/s390.md (define_peephole2): New peephole to help
22042 combining the load-and-test pattern with volatile memory.
22043
22044 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
22045
22046 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
22047 with CCZmode for TARGET_Z196.
22048
22049 2017-04-25 Jakub Jelinek <jakub@redhat.com>
22050
22051 PR rtl-optimization/80501
22052 * combine.c (make_compound_operation_int): Set subreg_code to SET
22053 even for AND with mask of the sign bit of mode.
22054
22055 PR rtl-optimization/80500
22056 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
22057 sum's initial value.
22058
22059 2017-04-25 Julian Brown <julian@codesourcery.com>
22060 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
22061
22062 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
22063
22064 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
22065
22066 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
22067
22068 2017-04-25 Julian Brown <julian@codesourcery.com>
22069 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
22070
22071 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
22072 (thunderx2t99_sha): New Reservation.
22073
22074 2017-04-25 Julian Brown <julian@codesourcery.com>
22075 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
22076
22077 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
22078 type for 1-element load.
22079
22080 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
22081
22082 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
22083
22084 2017-04-24 Martin Jambor <mjambor@suse.cz>
22085
22086 PR tree-optimization/80293
22087 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
22088 char arrays not totally scalarizable if it is false.
22089 (analyze_all_variable_accesses): Pass correct value in the new
22090 parameter. Add a statistics counter.
22091
22092 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
22093
22094 PR middle-end/79931
22095 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
22096
22097 2017-04-24 Richard Biener <rguenther@suse.de>
22098
22099 PR tree-optimization/80494
22100 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
22101 out for complex types.
22102
22103 2017-04-24 Richard Biener <rguenther@suse.de>
22104
22105 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
22106 * tree-ssa-sccvn.c (print_scc): Print SCC size.
22107 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
22108 (DFS): Adjust and never fail.
22109 (sccvn_dom_walker::fail): Remove.
22110 (sccvn_dom_walker::before_dom_children): Adjust.
22111 (run_scc_vn): Likewise and never fail.
22112 * tree-ssa-pre.c (pass_pre::execute): Adjust.
22113 (pass_fre::execute): Likewise.
22114
22115 2017-04-24 Richard Biener <rguenther@suse.de>
22116
22117 PR tree-optimization/79725
22118 * tree-ssa-sink.c (statement_sink_location): Return whether
22119 failure reason was zero uses. Move that check later.
22120 (sink_code_in_bb): Deal with zero uses by removing the stmt
22121 if possible.
22122
22123 2017-04-24 Richard Biener <rguenther@suse.de>
22124
22125 PR c++/2972
22126 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
22127 pointer-based references.
22128
22129 2017-04-24 Richard Biener <rguenther@suse.de>
22130
22131 PR bootstrap/79814
22132 * pass_manager.h (pass_manager::operator new): Remove.
22133 (pass_manager::operator delete): Likewise.
22134 * passes.c (pass_manager::operator new): Remove.
22135 (pass_manager::operator delete): Likewise.
22136 (pass_manager::pass_manager): Zero individual pass members.
22137
22138 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
22139
22140 PR target/70799
22141 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
22142 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
22143 Check "XEXP (src, 1)" operand here.
22144 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
22145 Check "XEXP (src, 1)" operand here.
22146 (dimode_scalar_chain::make_vector_copies): Detect count register
22147 of a shift instruction. Zero extend count register from QImode
22148 to DImode to satisfy vector shift pattern count operand predicate.
22149 Substitute vector shift count operand with a DImode copy.
22150 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
22151 vector register.
22152
22153 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
22154
22155 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
22156 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
22157 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
22158 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
22159 (UNSPEC_NOREX_MEM): Remove definition.
22160
22161 2017-04-21 Richard Biener <rguenther@suse.de>
22162
22163 PR tree-optimization/79547
22164 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22165 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
22166 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
22167 without any constraints.
22168
22169 2017-04-21 Richard Biener <rguenther@suse.de>
22170
22171 PR tree-optimization/78847
22172 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
22173
22174 2017-04-21 Richard Biener <rguenther@suse.de>
22175
22176 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
22177 (build_distinct_type_copy): Likewise.
22178 (build_variant_type_copy): Likewise.
22179 * tree.c (build_qualified_type): Pass down mem-stat info.
22180 (build_distinct_type_copy): Likewise.
22181 (build_variant_type_copy): Likewise.
22182
22183 2017-04-21 Richard Biener <rguenther@suse.de>
22184
22185 PR tree-optimization/80237
22186 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
22187 defaulted to NULL.
22188 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
22189 for a simplified result.
22190
22191 2016-04-21 Richard Biener <rguenther@suse.de>
22192
22193 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
22194 sth as strict as a simple_iv but a chrec without symbols and an
22195 operand defined in the loop we are peeling (and not some subloop).
22196 (propagate_constants_for_unrolling): Propagate all constants.
22197
22198 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
22199
22200 PR target/79804
22201 * config/i386/i386.c (print_reg): Remove assert for disalowed
22202 regno values, call output_operand_lossage instead.
22203
22204 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
22205
22206 PR target/78090
22207 * config/i386/constraints.md (Yc): New register constraint.
22208 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
22209 Use Yc constraint for alternative 2 of operand 0. Remove
22210 preferred_for_speed attribute.
22211
22212 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
22213
22214 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
22215 lastprivate clauses in SIMT case.
22216
22217 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
22218
22219 * doc/invoke.texi (-Wextra-semi): Document new warning option.
22220
22221 2017-04-20 Richard Biener <rguenther@suse.de>
22222
22223 PR tree-optimization/57796
22224 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
22225 as N scalar stores.
22226 (vect_model_load_cost): Cost gathers as N scalar loads.
22227
22228 2017-04-20 Richard Biener <rguenther@suse.de>
22229
22230 * ggc-page.c (ggc_allocated_p): Rename to ...
22231 (safe_lookup_page_table_entry): ... this and return the lookup
22232 result.
22233 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
22234
22235 2017-04-20 Richard Biener <rguenther@suse.de>
22236
22237 PR tree-optimization/80453
22238 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
22239 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
22240 from the conditions.
22241 (vn_phi_eq): Pass them down.
22242 (vn_phi_lookup): Record them.
22243 (vn_phi_insert): Likewise.
22244
22245 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
22246
22247 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
22248 uninitialized variable warning to avoid buffer overrun.
22249
22250 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
22251
22252 PR other/71250
22253 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
22254 is suppressed for '{ 0 }' in C.
22255
22256 2017-04-20 Jakub Jelinek <jakub@redhat.com>
22257
22258 * BASE-VER: Set to 8.0.0.
22259
22260 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
22261
22262 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
22263 priority .init_array and .fini_array section with SECTION_NOTYPE
22264 flag.
22265
22266 2017-04-20 Jakub Jelinek <jakub@redhat.com>
22267
22268 PR middle-end/80423
22269 * tree.h (build_array_type): Add typeless_storage default argument.
22270 * tree.c (type_cache_hasher::equal): Also compare
22271 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
22272 (build_array_type): Add typeless_storage argument, set
22273 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
22274 recursive call.
22275 (build_nonshared_array_type): Adjust build_array_type_1 caller.
22276 (build_array_type): Likewise. Add typeless_storage argument.
22277
22278 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
22279 Jakub Jelinek <jakub@redhat.com>
22280
22281 PR tree-optimization/80426
22282 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
22283 operation on symbolic operands, also compute the overflow for the
22284 invariant part when the operation degenerates into a negation.
22285
22286 2017-04-19 Jakub Jelinek <jakub@redhat.com>
22287
22288 PR debug/80461
22289 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
22290 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
22291
22292 PR debug/80436
22293 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
22294
22295 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
22296
22297 PR target/80462
22298 * config/avr/avr.c (tree.h): Include it.
22299 (cgraph.h): Include it.
22300 (avr_encode_section_info): Don't warn for uninitialized progmem
22301 variable if it's just an alias.
22302
22303 2017-04-19 Richard Biener <rguenther@suse.de>
22304
22305 PR ipa/65972
22306 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
22307 when needed by AutoPGO.
22308
22309 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
22310
22311 PR lto/50345
22312 * doc/lto.texi: Remove an extra 'that'.
22313
22314 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
22315
22316 PR rtl-optimization/80429
22317 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
22318 are only used in debug insns.
22319
22320 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
22321 Vladimir Makarov <vmakarov@redhat.com>
22322
22323 * config/sparc/predicates.md (input_operand): Add comment. Return
22324 true for any memory operand when LRA is in progress.
22325 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
22326
22327 2017-04-18 Jeff Law <law@redhat.com>
22328
22329 PR target/74563
22330 * mips.md ({return,simple_return}_internal): Do not overwrite
22331 operands[0].
22332
22333 2017-04-18 Jakub Jelinek <jakub@redhat.com>
22334
22335 PR tree-optimization/80443
22336 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
22337 instead of adding 1, subtract -1 and similarly instead of subtracting
22338 1 add -1.
22339
22340 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
22341
22342 PR rtl-optimization/80357
22343 * haifa-sched.c (tmp_bitmap): New variable.
22344 (model_recompute): Handle duplicate use records.
22345 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
22346 (free_global_sched_pressure_data): Free it.
22347
22348 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
22349
22350 Revert:
22351 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
22352 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
22353 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
22354 instead of SYSTEM_HEADER_DIR.
22355
22356 2017-04-18 Jeff Law <law@redhat.com>
22357
22358 PR middle-end/80422
22359 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
22360 predecessors after walking up the insn chain.
22361
22362 2017-04-18 Jakub Jelinek <jakub@redhat.com>
22363
22364 PR debug/80263
22365 * dwarf2out.c (modified_type_die): Try harder not to emit internal
22366 sizetype type into debug info.
22367
22368 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
22369
22370 PR target/80099
22371 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
22372 unneeded test for TARGET_UPPER_REGS_SF.
22373 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
22374
22375 2017-04-18 Jakub Jelinek <jakub@redhat.com>
22376
22377 PR sanitizer/80444
22378 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
22379 instead of gsi_after_labels.
22380
22381 2017-04-18 Jeff Law <law@redhat.com>
22382
22383 * regcprop.c (maybe_mode_change): Avoid creating copies of the
22384 stack pointer.
22385
22386 Revert:
22387 2017-04-13 Jeff Law <law@redhat.com>
22388 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
22389 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
22390
22391 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
22392
22393 PR target/79453
22394 * config/avr/avr.c (intl.h): Include it.
22395 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
22396
22397 2017-04-18 Martin Liska <mliska@suse.cz>
22398
22399 PR gcov-profile/78783
22400 * gcov-tool.c (gcov_output_files): Validate that destination
22401 file is either removed by the tool or by a user.
22402
22403 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
22404 Guy Benyei <guybe@mellanox.com>
22405
22406 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
22407 block, and do not negate it, the stored id is already negative.
22408
22409 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
22410
22411 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
22412
22413 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
22414
22415 PR target/80098
22416 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
22417 masks of options that should be turned off if the VSX vector
22418 options are turned off.
22419 (OTHER_P8_VECTOR_MASKS): Likewise.
22420 (OTHER_VSX_VECTOR_MASKS): Likewise.
22421 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
22422 rs6000_disable_incompatible_switches to validate no type switches
22423 like -mvsx.
22424 (rs6000_incompatible_switch): New function to disallow turning on
22425 other vector options if -mno-vsx, -mno-power8-vector, or
22426 -mno-power9-vector are specified.
22427
22428 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
22429
22430 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
22431
22432 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
22433
22434 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
22435 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
22436 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
22437 (ARG_POINTER_CFA_OFFSET): Likewise.
22438
22439 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
22440
22441 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
22442 conditions to take advantage of various optimizations.
22443
22444 2017-04-13 Jeff Law <law@redhat.com>
22445
22446 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
22447 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
22448 (zero_extendsidi2_dext): Likewise.
22449
22450 2017-04-13 Jakub Jelinek <jakub@redhat.com>
22451
22452 PR sanitizer/80403
22453 * fold-const.c (fold_ternary_loc): Revert
22454 use op0 instead of fold_convert_loc (loc, type, arg0) part of
22455 2017-04-12 change.
22456
22457 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
22458
22459 PR rtl-optimization/80343
22460 * lra-remat.c (update_scratch_ops): Assign original hard reg to
22461 new scratch pseudo.
22462
22463 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
22464
22465 PR sanitizer/80414
22466 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
22467 to ubsan_encode_value.
22468
22469 2017-04-13 Jeff Law <law@redhat.com>
22470
22471 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
22472 appearing in DEBUG_INSNs.
22473
22474 2017-04-13 Martin Liska <mliska@suse.cz>
22475
22476 PR gcov-profile/80413
22477 * gcov-io.c (gcov_write_string): Copy to buffer just when
22478 allocated size is greater than zero.
22479
22480 2017-04-13 Jakub Jelinek <jakub@redhat.com>
22481
22482 PR debug/80321
22483 * dwarf2out.c (decls_for_scope): Ignore declarations of
22484 current_function_decl in BLOCK_NONLOCALIZED_VARS.
22485
22486 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
22487
22488 PR lto/69953
22489 * ipa-visibility.c (non_local_p): Fix typos.
22490 (localize_node): When localizing symbol in same comdat group,
22491 dissolve the group only when we know external symbols are going
22492 to be privatized.
22493 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
22494
22495 2017-04-12 Jakub Jelinek <jakub@redhat.com>
22496
22497 PR tree-optimization/79390
22498 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
22499 order does not result in usable sequence, retry with reversed operand
22500 order.
22501
22502 PR sanitizer/80403
22503 PR sanitizer/80404
22504 PR sanitizer/80405
22505 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
22506 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
22507 op0 instead of fold_convert_loc (loc, type, arg0).
22508
22509 2017-04-12 Jeff Law <law@redhat.com>
22510
22511 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
22512 has a delay slot in the generated code.
22513
22514 * config/cris/cris.md (cris_preferred_reload_class): Return
22515 GENNONACR_REGS rather than GENERAL_REGS.
22516
22517 2017-04-12 Jakub Jelinek <jakub@redhat.com>
22518
22519 PR c/80163
22520 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
22521 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
22522 signedness of the result type.
22523
22524 2017-04-12 Richard Biener <rguenther@suse.de>
22525 Jeff Law <law@redhat.com>
22526
22527 PR tree-optimization/80359
22528 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
22529 trim stores to TARGET_MEM_REFs.
22530
22531 2017-04-12 Richard Biener <rguenther@suse.de>
22532
22533 PR tree-optimization/79390
22534 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
22535 threading case even more.
22536
22537 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
22538
22539 PR target/80382
22540 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
22541 for quad_address_p for TImode, instead of just not indexed_address.
22542
22543 2017-04-12 Richard Biener <rguenther@suse.de>
22544 Bernd Edlinger <bernd.edlinger@hotmail.de>
22545
22546 PR middle-end/79671
22547 * alias.c (component_uses_parent_alias_set_from): Handle
22548 TYPE_TYPELESS_STORAGE.
22549 (get_alias_set): Likewise.
22550 * tree-core.h (tree_type_common): Add typeless_storage flag.
22551 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
22552 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
22553 for types containing members with TYPE_TYPELESS_STORAGE.
22554 (place_field): Likewise.
22555 (layout_type): Likewise for ARRAY_TYPE.
22556 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
22557 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
22558 TYPE_TYPELESS_STORAGE.
22559 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
22560
22561 2017-04-12 Jakub Jelinek <jakub@redhat.com>
22562
22563 PR sanitizer/80349
22564 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
22565 first argument to type.
22566
22567 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22568
22569 PR target/80376
22570 PR target/80315
22571 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
22572 CONST0_RTX (mode) rather than const0_rtx where appropriate.
22573 (rs6000_expand_binop_builtin): Likewise.
22574 (rs6000_expand_ternop_builtin): Likewise; also add missing
22575 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
22576 vshasigma built-ins.
22577 * doc/extend.texi: Document that vec_xxpermdi's third argument
22578 must be a constant.
22579
22580 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
22581
22582 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
22583 Use shift_const cost parameter when calculating gain of STV shifts.
22584
22585 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
22586
22587 PR rtl-optimization/70478
22588 * lra-constraints.c (process_alt_operands): Check memory for
22589 disfavoring memory insn operand.
22590
22591 2017-04-11 Jakub Jelinek <jakub@redhat.com>
22592
22593 PR middle-end/80100
22594 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
22595 left shift in unsigned HOST_WIDE_INT type.
22596
22597 PR rtl-optimization/80385
22598 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
22599 (not (neg X)) into (plus X -1) for complex or non-integral modes.
22600
22601 PR libgomp/80394
22602 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
22603 if they have any depend clauses.
22604
22605 2017-04-11 Martin Liska <mliska@suse.cz>
22606
22607 PR ipa/80212
22608 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
22609 * ipa-split.c (split_function): Create a local comdat symbol
22610 if caller is in a comdat group.
22611
22612 2017-04-11 Martin Liska <mliska@suse.cz>
22613
22614 PR ipa/80212
22615 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
22616 flags.
22617
22618 2017-04-11 Martin Sebor <msebor@redhat.com>
22619
22620 PR middle-end/80364
22621 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
22622 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
22623 for INTEGER_TYPE.
22624 (directive::set_width, directive::set_precision, format_character):
22625 Adjust.
22626 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
22627 INTEGER_TYPE.
22628
22629 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
22630
22631 PR target/80389
22632 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
22633 conflict, set target->arch_name instead of target->cpu_name.
22634
22635 2017-04-11 Richard Biener <rguenther@suse.de>
22636
22637 PR tree-optimization/80374
22638 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
22639 build_zero_cst, remove fold_convertible_p check again.
22640
22641 2017-04-11 Martin Liska <mliska@suse.cz>
22642
22643 PR sanitizer/70878
22644 * ubsan.c (instrument_object_size): Do not instrument register
22645 variables.
22646
22647 2017-04-11 Jakub Jelinek <jakub@redhat.com>
22648
22649 PR target/80381
22650 * config/i386/i386-builtin-types.def
22651 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
22652 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
22653 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
22654 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
22655 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
22656 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
22657 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
22658 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
22659 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
22660 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
22661 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
22662 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
22663 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
22664 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
22665 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
22666 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
22667 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
22668 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
22669 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
22670 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
22671 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
22672 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
22673 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
22674 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
22675 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
22676 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
22677 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
22678 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
22679 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
22680 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
22681 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
22682 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
22683 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
22684 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
22685 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
22686 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
22687 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
22688 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
22689 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
22690 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
22691 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
22692 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
22693 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
22694 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
22695 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
22696 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
22697 aliases.
22698 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
22699 flag to second_arg_count, handle 4 argument function type _COUNT
22700 aliases, handle second_arg_count on second argument rather than last.
22701
22702 2017-04-10 Jeff Law <law@redhat.com>
22703
22704 PR tree-optimization/80374
22705 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
22706 record anything if we can not convert integer_zero_node to the
22707 desired type.
22708
22709 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
22710
22711 PR target/80108
22712 * config/rs6000/rs6000.c (rs6000_option_override_internal):
22713 Enhance special handling given to the TARGET_P9_MINMAX option in
22714 relation to certain other options.
22715
22716 2017-04-10 Bin Cheng <bin.cheng@arm.com>
22717
22718 PR tree-optimization/80153
22719 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
22720 remove POINTER_PLUS_EXPR's base part directly, rather than through
22721 aff_tree.
22722
22723 2017-04-10 Richard Biener <rguenther@suse.de>
22724 Bin Cheng <bin.cheng@arm.com>
22725
22726 PR tree-optimization/80153
22727 * tree-affine.c (aff_combination_to_tree): Get base pointer from
22728 the first element of pointer type aff_tree. Build result expr in
22729 aff_tree's type.
22730 (add_elt_to_tree): Convert to type unconditionally. Remove other
22731 fold_convert calls.
22732 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
22733 (rewrite_use_nonlinear_expr): Check invariant using iv information.
22734
22735 2017-04-10 Richard Biener <rguenther@suse.de>
22736
22737 * tree-ssa-structalias.c (find_func_aliases): Properly handle
22738 asm inputs.
22739
22740 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
22741
22742 PR rtl-optimization/70478
22743 * lra-constraints.c (curr_small_class_check): New.
22744 (update_and_check_small_class_inputs): New.
22745 (process_alt_operands): Update curr_small_class_check. Disfavor
22746 alternative insn memory operands. Check available regs for small
22747 class operands.
22748
22749 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
22750
22751 PR target/80057
22752 * config/mips/mips.opt (-mvirt): Update description.
22753 * doc/invoke.texi (-mvirt): Likewise.
22754
22755 2017-04-10 Richard Biener <rguenther@suse.de>
22756
22757 PR middle-end/80362
22758 * fold-const.c (fold_binary_loc): Look at unstripped ops when
22759 looking for NEGATE_EXPR in -A / -B to A / B folding.
22760
22761 2017-04-10 Martin Liska <mliska@suse.cz>
22762
22763 PR gcov-profile/80224
22764 * gcov.c (print_usage): Fix usage string.
22765 (get_gcov_intermediate_filename): Remove.
22766 (output_gcov_file): Use both for normal and intermediate format.
22767 (generate_results): Do not initialize special file for
22768 intermediate format.
22769
22770 2017-04-10 Richard Biener <rguenther@suse.de>
22771
22772 PR tree-optimization/80304
22773 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
22774 for safelen.
22775
22776 2017-04-10 Nathan Sidwell <nathan@acm.org>
22777
22778 PR target/79905
22779 * config/rs6000/rs6000.c (rs6000_vector_type): New.
22780 (rs6000_init_builtins): Use it.
22781
22782 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22783
22784 * config/arm/arm.md (<mrc>): Add mode to SET source.
22785 (<mrrc>): Likewise.
22786
22787 2017-04-10 Richard Biener <rguenther@suse.de>
22788
22789 PR middle-end/80344
22790 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
22791
22792 2017-04-10 Jakub Jelinek <jakub@redhat.com>
22793
22794 PR target/80324
22795 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
22796 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
22797 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
22798 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
22799 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
22800 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
22801 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
22802 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
22803 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
22804 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
22805 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
22806 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
22807 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
22808 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
22809 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
22810 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
22811 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
22812 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
22813 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
22814 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
22815 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
22816 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
22817 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
22818
22819 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
22820
22821 PR rtl-optimization/70478
22822 * lra-constraints.c: Reverse the last patch.
22823
22824 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
22825
22826 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
22827 Add comment for WCHAR_T.
22828
22829 2017-04-08 Martin Liska <mliska@suse.cz>
22830
22831 Revert:
22832 2017-04-07 Martin Liska <mliska@suse.cz>
22833
22834 PR ipa/80212
22835 * ipa-split.c (split_function): Add function part to a same comdat
22836 group.
22837
22838 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
22839
22840 PR target/80358
22841 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
22842
22843 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
22844
22845 * rs6000/rs6000.c (vec_load_pendulum): Rename...
22846 (vec_pairing): ...to this.
22847 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
22848 (rs6000_sched_init): Adjust for name change.
22849 (struct rs6000_sched_context): Likewise.
22850 (rs6000_init_sched_context): Likewise.
22851 (rs6000_set_sched_context): Likewise.
22852
22853 2017-04-07 Jakub Jelinek <jakub@redhat.com>
22854
22855 PR target/80322
22856 PR target/80323
22857 PR target/80325
22858 PR target/80326
22859 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
22860 intrinsics.
22861 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
22862 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
22863 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
22864
22865 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
22866
22867 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
22868
22869 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
22870
22871 PR rtl-optimization/70703
22872 * ira-color.c (update_conflict_hard_regno_costs): Use
22873 int64_t instead of HOST_WIDE_INT.
22874
22875 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
22876
22877 PR rtl-optimization/70478
22878 * lra-constraints.c (process_alt_operands): Disfavor alternative
22879 insn memory operands.
22880
22881 2017-04-07 Jeff Law <law@redhat.com>
22882
22883 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
22884 CALL and NOTE_INSN_CALL_ARG_LOCATION.
22885
22886 2017-04-07 Martin Liska <mliska@suse.cz>
22887
22888 PR target/79889
22889 * config/aarch64/aarch64.c (aarch64_process_target_attr):
22890 Show error message instead of an ICE.
22891
22892 2017-04-07 Martin Liska <mliska@suse.cz>
22893
22894 PR ipa/80212
22895 * ipa-split.c (split_function): Add function part to a same comdat
22896 group.
22897
22898 2017-04-07 Richard Biener <rguenther@suse.de>
22899
22900 PR middle-end/80341
22901 * tree.c (get_unwidened): Also handle ! for_type case for
22902 INTEGER_CSTs.
22903 * convert.c (do_narrow): Split out from ...
22904 (convert_to_integer_1): ... here. Do not pass final truncation
22905 type to get_unwidened for TRUNC_DIV_EXPR.
22906
22907 2017-04-07 Richard Biener <rguenther@suse.de>
22908
22909 * tree-affine.c (wide_int_ext_for_comb): Take type rather
22910 than aff_tree.
22911 (aff_combination_const): Adjust.
22912 (aff_combination_scale): Likewise.
22913 (aff_combination_add_elt): Likewise.
22914 (aff_combination_add_cst): Likewise.
22915 (aff_combination_convert): Likewise.
22916 (add_elt_to_tree): Likewise. Remove unused argument.
22917 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
22918
22919 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
22920
22921 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
22922 definition.
22923 * config/arm/arm.c (arm_default_short_enums): Use
22924 ARM_DEFAULT_SHORT_ENUMS.
22925 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
22926
22927 2017-04-06 Jakub Jelinek <jakub@redhat.com>
22928
22929 PR debug/80234
22930 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
22931 members with redundant out-of-class redeclaration.
22932
22933 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
22934
22935 PR target/80286
22936 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
22937 * config/i386/i386.md (*zero_extendsidi2):
22938 Add (?*x,*x) and (?*v,*v) alternatives.
22939
22940 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
22941
22942 PR target/79733
22943 * config/i386/i386.c (ix86_expand_builtin)
22944 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
22945 mode from insn data. Convert operands to insn operand mode.
22946 Copy operands that don't satisfy insn predicate to a register.
22947
22948 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
22949
22950 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
22951 Update comments.
22952
22953 2017-04-06 Richard Biener <rguenther@suse.de>
22954
22955 PR tree-optimization/80334
22956 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
22957 preserve alignment of accesses.
22958
22959 2017-04-06 Richard Biener <rguenther@suse.de>
22960
22961 PR tree-optimization/80262
22962 * tree-sra.c (build_ref_for_offset): Preserve address-space
22963 information.
22964 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
22965 Drop useless address-space information on MEM_REF offsets.
22966
22967 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
22968
22969 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
22970
22971 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
22972
22973 PR rtl-optimization/70703
22974 * ira-color.c (update_conflict_hard_regno_costs): Use
22975 HOST_WIDE_INT instead of long.
22976
22977 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
22978
22979 PR target/80298
22980 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
22981 not defined for x86_64 target. Add -mmmx target option when __SSE2__
22982 is not defined.
22983 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
22984 for x86_64 target. Handle -m3dnowa option.
22985
22986 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
22987
22988 PR rtl-optimization/70703
22989 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
22990 (update_conflict_hard_regno_costs): Use long instead of unsigned
22991 arithmetic for cost calculation.
22992
22993 2017-04-05 Jakub Jelinek <jakub@redhat.com>
22994 Bernd Edlinger <bernd.edlinger@hotmail.de>
22995
22996 PR sanitizer/80308
22997 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
22998 for big endian.
22999
23000 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
23001
23002 PR target/78002
23003 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
23004 ptr_mode with Pmode throughout.
23005 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
23006 into probe_stack_range and use DImode.
23007
23008 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
23009
23010 PR target/79890
23011 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
23012 call_eh_return is true.
23013
23014 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23015
23016 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
23017 Initialize last_match_fntype_index.
23018
23019 2017-04-05 Jakub Jelinek <jakub@redhat.com>
23020
23021 PR target/80310
23022 * tree-nvr.c: Include internal-fn.h.
23023 (pass_return_slot::execute): Ignore internal calls without
23024 direct optab.
23025
23026 2017-04-04 Jakub Jelinek <jakub@redhat.com>
23027 Richard Biener <rguenther@suse.de>
23028
23029 PR c++/80297
23030 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
23031 captures used multiple times, except for the last use.
23032 * generic-match-head.c: Include gimplify.h.
23033
23034 2017-04-04 Jakub Jelinek <jakub@redhat.com>
23035
23036 PR tree-optimization/79390
23037 * target.h (struct noce_if_info): Declare.
23038 * targhooks.h (default_noce_conversion_profitable_p): Declare.
23039 * target.def (noce_conversion_profitable_p): New target hook.
23040 * ifcvt.h (struct noce_if_info): New type, moved from ...
23041 * ifcvt.c (struct noce_if_info): ... here.
23042 (noce_conversion_profitable_p): Renamed to ...
23043 (default_noce_conversion_profitable_p): ... this. No longer
23044 static nor inline.
23045 (noce_try_store_flag_constants, noce_try_addcc,
23046 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
23047 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
23048 instead of noce_conversion_profitable_p.
23049 * config/i386/i386.c: Include ifcvt.h.
23050 (ix86_option_override_internal): Don't override
23051 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
23052 (ix86_noce_conversion_profitable_p): New function.
23053 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
23054 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
23055 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
23056 * doc/tm.texi: Regenerated.
23057
23058 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23059
23060 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
23061 correction.
23062
23063 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
23064
23065 PR target/80307
23066 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
23067 instructions for small multiply cores.
23068
23069 2017-04-04 Jeff Law <law@redhat.com>
23070
23071 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
23072 added member.
23073 (mips_expand_vec_perm_const): Initialize elements in orig_perm
23074 that are not set by the loop over the elements.
23075
23076 2017-04-04 Jakub Jelinek <jakub@redhat.com>
23077
23078 PR target/80286
23079 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
23080 int mode, convert_modes it to mode as unsigned, otherwise use
23081 lowpart_subreg to mode rather than SImode.
23082 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
23083 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
23084 Use DImode instead of SImode for the shift count operand.
23085 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
23086 Likewise.
23087
23088 2017-04-04 Richard Biener <rguenther@suse.de>
23089
23090 PR middle-end/80281
23091 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
23092 arithmetic done for the negate or the plus. Simplify.
23093 (A - (-B) -> A + B): Likewise.
23094 * fold-const.c (split_tree): Make sure to not negate pointers.
23095
23096 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
23097
23098 PR rtl-optimization/60818
23099 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
23100 a compare of comparisons with the thing compared if this results
23101 in a different machine mode.
23102
23103 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
23104
23105 * alias.c (base_alias_check): Fix typo in comment.
23106 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
23107 * cgraphunit.c (symbol_table::compile): Likewise.
23108 * collect2.c (maybe_run_lto_and_relink): Likewise.
23109 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
23110 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
23111 * config/avr/avr.c (avr_map_op_t): Likewise.
23112 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
23113 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
23114 * config/epiphany/epiphany.md (movcc): Likewise.
23115 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
23116 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
23117 Likewise.
23118 * config/mips/mips.c (mips_save_restore_reg): Likewise.
23119 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
23120 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
23121 * config/sh/sh.c (sh_rtx_costs): Likewise.
23122 * fold-const.c (fold_truth_andor): Likewise.
23123 * genautomata.c (collapse_flag): Likewise.
23124 * gengtype.h (struct type::u::s): Likewise.
23125 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
23126 * input.c (FORMAT_AMOUNT): Likewise.
23127 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
23128 (known_aggs_to_agg_replacement_list): Likewise.
23129 * ipa-inline-analysis.c: Likewise.
23130 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
23131 * ipa-polymorphic-call.c
23132 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
23133 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
23134 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
23135 Likewise.
23136 * modulo-sched.c (apply_reg_moves): Likewise.
23137 * omp-expand.c (build_omp_regions_1): Likewise.
23138 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
23139 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
23140 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
23141 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
23142 * value-prof.c: Likewise.
23143 * var-tracking.c (val_reset): Likewise.
23144
23145 2017-04-03 Richard Biener <rguenther@suse.de>
23146
23147 PR tree-optimization/80275
23148 * fold-const.c (split_address_to_core_and_offset): Handle
23149 POINTER_PLUS_EXPR.
23150
23151 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
23152
23153 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
23154 descriptors is at least equal to that of functions.
23155
23156 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
23157
23158 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
23159
23160 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
23161
23162 PR target/80250
23163 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
23164 (mov<IMOD4:mode>): New expander.
23165 (*mov<IMOD4:mode>_internal): New insn and split pattern.
23166
23167 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
23168
23169 PR rtl-optimization/79405
23170 * fwprop.c (propagations_left): New variable.
23171 (forward_propagate_into): Decrement it.
23172 (fwprop_init): Initialize it.
23173 (fw_prop): If the variable has reached zero, stop propagating.
23174 (fwprop_addr): Ditto.
23175
23176 2017-03-31 Jakub Jelinek <jakub@redhat.com>
23177
23178 PR debug/79255
23179 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
23180 a FUNCTION_DECL, pass it as decl instead of origin to
23181 process_scope_var.
23182
23183 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
23184
23185 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
23186 string.
23187
23188 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
23189
23190 PR target/80107
23191 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
23192 TARGET_VSX_SMALL_INTEGER.
23193
23194 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23195
23196 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
23197 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
23198
23199 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
23200
23201 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
23202 extraction from odd-numbered MSA register.
23203
23204 2017-03-31 Jakub Jelinek <jakub@redhat.com>
23205
23206 PR middle-end/80173
23207 * expmed.c (store_bit_field_1): Don't attempt to create
23208 a word subreg out of hard registers wider than word if they
23209 have HARD_REGNO_NREGS of 1 for their mode.
23210
23211 PR middle-end/80163
23212 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
23213 conversions to integer types wider than word and pointer.
23214
23215 PR debug/80025
23216 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
23217 (rtx_equal_for_cselib_p): Pass 0 to it.
23218 * cselib.c (cselib_hasher::equal): Likewise.
23219 (rtx_equal_for_cselib_1): Add depth argument. If depth
23220 is 128, don't look up VALUE locs and punt. Increment
23221 depth in recursive calls when walking VALUE locs.
23222
23223 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
23224
23225 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
23226 (make_gcov_file_name): Use the canonical path name for generating
23227 the MD5 value.
23228 (read_line): Fix handling of files with ascii null bytes.
23229
23230 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
23231
23232 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
23233 to initialise a vector register instead
23234 of using a const_int.
23235
23236 2017-03-30 Jakub Jelinek <jakub@redhat.com>
23237
23238 PR translation/80189
23239 * gimplify.c (omp_default_clause): Use %qs instead of %s in
23240 diagnostic messages.
23241
23242 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
23243
23244 PR target/80246
23245 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
23246 (dfp_diex_<mode>): Update mode of operand 1.
23247 * doc/extend.texi (dxex, dxexq): Document change to return type.
23248 (diex, diexq): Document change to argument type.
23249
23250 2017-03-30 Martin Jambor <mjambor@suse.cz>
23251
23252 PR ipa/77333
23253 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
23254 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
23255 it reflects the signature changes performed at the callee side.
23256 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
23257 to cgraph_build_function_type_skip_args.
23258 (build_function_decl_skip_args): Adjust call to the above function.
23259
23260 2017-03-30 Jakub Jelinek <jakub@redhat.com>
23261
23262 PR target/80206
23263 * config/i386/sse.md
23264 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
23265 register as dest whenever it is a MEM not rtx_equal_p to the
23266 corresponding dup operand, and when forcing into reg move the
23267 reg into the memory afterwards.
23268 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
23269 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
23270 for the force_reg mode.
23271 (avx512vl_vextractf128<mode>): Use register as dest either
23272 always when a MEM, or when it is a MEM not rtx_equal_p to the
23273 corresponding dup operand, or even not when it is a CONST_VECTOR
23274 depending on the mode and lo vs. hi.
23275 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
23276 parens.
23277 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
23278 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
23279 Likewise. Require that operands[2] is even.
23280 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
23281 Remove extraneous parens. Require that operands[2] is a multiple
23282 of 4.
23283 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
23284 operands[0] is a MEM if <mask_applied>, the predicates/constraints
23285 disallow memory then.
23286
23287 2017-03-30 Richard Biener <rguenther@suse.de>
23288
23289 PR tree-optimization/77498
23290 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
23291 to non-constants over backedges.
23292
23293 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
23294
23295 PR rtl-optimization/80233
23296 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
23297 as last_combined_insn. Do not test for BARRIER_P separately.
23298
23299 2017-03-29 Andreas Schwab <schwab@suse.de>
23300
23301 PR ada/80146
23302 * calls.c (prepare_call_address): Convert funexp to Pmode before
23303 copying to temp reg.
23304
23305 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23306
23307 PR tree-optimization/80158
23308 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
23309 Handle possible future case of more than one alternate
23310 interpretation.
23311 (replace_rhs_if_not_dup): Likewise.
23312 (replace_one_candidate): Likewise.
23313
23314 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
23315
23316 PR rtl-optimization/80193
23317 * ira.c (ira): Do not check allocation for LRA.
23318
23319 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
23320
23321 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
23322 (nvptx_output_simt_exit): Declare.
23323 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
23324 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
23325 (init_softstack_frame): Move initialization of crtl->is_leaf to...
23326 (nvptx_declare_function_name): ...here. Emit declaration of local
23327 memory space buffer for omp_simt_enter insn.
23328 (nvptx_output_unisimt_switch): New.
23329 (nvptx_output_softstack_switch): New.
23330 (nvptx_output_simt_enter): New.
23331 (nvptx_output_simt_exit): New.
23332 * config/nvptx/nvptx.h (struct machine_function): New fields
23333 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
23334 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
23335 (UNSPECV_SIMT_EXIT): Ditto.
23336 (omp_simt_enter_insn): New insn.
23337 (omp_simt_enter): New expansion.
23338 (omp_simt_exit): New insn.
23339 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
23340
23341 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
23342 (expand_GOMP_SIMT_ENTER_ALLOC): New.
23343 (expand_GOMP_SIMT_EXIT): New.
23344 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
23345 (GOMP_SIMT_ENTER_ALLOC): Ditto.
23346 (GOMP_SIMT_EXIT): Ditto.
23347 * target-insns.def (omp_simt_enter): New insn.
23348 (omp_simt_exit): Ditto.
23349 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
23350 simt_dlist.
23351 (lower_rec_simd_input_clauses): Implement SIMT privatization.
23352 (lower_rec_input_clauses): Likewise.
23353 (lower_lastprivate_clauses): Handle SIMT privatization.
23354
23355 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
23356 (ompdevlow_adjust_simt_enter): New.
23357 (find_simtpriv_var_op): New.
23358 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
23359 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
23360
23361 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
23362 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
23363 (copy_decl_for_dup_finish): Ditto.
23364
23365 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
23366
23367 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
23368
23369 PR target/53383
23370 * config/i386/i386.c (ix86_option_override_internal): Always
23371 allow -mpreferred-stack-boundary=3 for 64-bit targets.
23372
23373 2017-03-28 Bin Cheng <bin.cheng@arm.com>
23374
23375 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
23376
23377 2017-03-28 Bin Cheng <bin.cheng@arm.com>
23378
23379 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
23380 mark new edge's irreducible flag accordign to it.
23381 (vect_do_peeling): Check loop preheader edge's irreducible flag
23382 and pass it to function slpeel_add_loop_guard.
23383
23384 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
23385
23386 PR tree-optimization/80218
23387 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
23388 Update block frequencies and counts.
23389
23390 2017-03-28 Richard Biener <rguenther@suse.de>
23391
23392 PR tree-optimization/78644
23393 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
23394 of a simplification result we may not use it at all.
23395
23396 2017-03-28 Richard Biener <rguenther@suse.de>
23397
23398 PR ipa/80205
23399 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
23400 without arguments, generate default definition of a SSA name.
23401
23402 2017-03-28 Richard Biener <rguenther@suse.de>
23403
23404 PR middle-end/80222
23405 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
23406 TYPE_REF_CAN_ALIAS_ALL references.
23407 * fold-const.c (fold_indirect_ref_1): Likewise.
23408
23409 2017-03-28 Martin Liska <mliska@suse.cz>
23410
23411 PR ipa/80104
23412 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
23413 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
23414
23415 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
23416 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
23417
23418 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
23419 (EXTRA_SPECS): Define.
23420 (SUBTARGET_EXTRA_SPECS): Likewise.
23421 (SUBTARGET_CPP_SPEC): Likewise.
23422 * config/arc/elf.h (EXTRA_SPECS): Renamed to
23423 SUBTARGET_EXTRA_SPECS.
23424 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
23425
23426 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
23427
23428 * config/arc/simdext.md (vst64_insn): Update pattern.
23429 (vld32wh_insn): Likewise.
23430 (vld32wl_insn): Likewise.
23431 (vld64_insn): Likewise.
23432 (vld32_insn): Likewise.
23433
23434 2017-03-28 Marek Polacek <polacek@redhat.com>
23435
23436 PR sanitizer/80067
23437 * fold-const.c (fold_comparison): Use protected_set_expr_location
23438 instead of SET_EXPR_LOCATION.
23439
23440 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
23441
23442 * tree.c (add_expr): Avoid name lookup warning.
23443
23444 2017-03-27 Jeff Law <law@redhat.com>
23445
23446 PR tree-optimization/80216
23447 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
23448 function name. Limit recursion depth.
23449 (record_temporary_equivalences): Corresponding changes.
23450
23451 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
23452
23453 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
23454 covered first.
23455
23456 2017-03-27 Jakub Jelinek <jakub@redhat.com>
23457
23458 PR target/80102
23459 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
23460 notes.
23461 * cfgcleanup.c (reg_note_cfa_p): New array.
23462 (insns_have_identical_cfa_notes): New function.
23463 (old_insns_match_p): Don't cross-jump in between /f
23464 and non-/f instructions. If both i1 and i2 are frame related,
23465 verify all CFA notes, their order and content.
23466
23467 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
23468
23469 PR target/78543
23470 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
23471 HImode and SImode with zero extend to DImode to one insn.
23472 (bswap<mode>2_extenddi): Likewise.
23473 (bswapsi2_extenddi): Likewise.
23474 (bswaphi2_extendsi): Likewise.
23475 (bswaphi2): Combine bswap HImode and SImode into one insn.
23476 Separate memory insns from swapping register.
23477 (bswapsi2): Likewise.
23478 (bswap<mode>2): Likewise.
23479 (bswaphi2_internal): Delete, no longer used.
23480 (bswapsi2_internal): Likewise.
23481 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
23482 store, and gpr<-gpr swap insns.
23483 (bswap<mode>2_store): Likewise.
23484 (bswaphi2_reg): Register only splitter, combine with the splitter.
23485 (bswaphi2 splitter): Likewise.
23486 (bswapsi2_reg): Likewise.
23487 (bswapsi2 splitter): Likewise.
23488 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
23489 the insns into load, store, and register/register insns.
23490 (bswapdi2_ldbrx): Likewise.
23491 (bswapdi2_load): Likewise.
23492 (bswapdi2_store): Likewise.
23493 (bswapdi2_reg): Likewise.
23494
23495 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
23496
23497 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
23498 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
23499
23500 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
23501
23502 PR target/80103
23503 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
23504 add comments.
23505 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
23506 special handling for target option conflicts between dform
23507 options (-mpower9-dform, -mpower9-dform-vector,
23508 -mpower9-dform-scalar) and -mno-direct-move.
23509
23510 2017-03-27 Richard Biener <rguenther@suse.de>
23511
23512 PR tree-optimization/80181
23513 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
23514
23515 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
23516
23517 * config/arc/predicates.md (move_double_src_operand): Replace the
23518 call to move_double_src_operand with a call to address_operand.
23519
23520 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
23521
23522 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
23523 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
23524 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
23525
23526 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
23527
23528 * config/arc/predicates.md (long_immediate_loadstore_operand):
23529 Consider scaled addresses cases.
23530
23531 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
23532
23533 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
23534 restored when in interrupt.
23535 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
23536 doesn't have delay slot.
23537
23538 2017-03-27 Richard Biener <rguenther@suse.de>
23539
23540 PR ipa/79776
23541 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
23542 inlined thunk clones.
23543
23544 2017-03-27 Jakub Jelinek <jakub@redhat.com>
23545
23546 PR sanitizer/80168
23547 * asan.c (instrument_derefs): Copy over last operand from
23548 original COMPONENT_REF to the new COMPONENT_REF with
23549 DECL_BIT_FIELD_REPRESENTATIVE.
23550 * ubsan.c (instrument_object_size): Likewise.
23551
23552 2017-03-27 Richard Biener <rguenther@suse.de>
23553
23554 PR tree-optimization/80170
23555 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
23556 sure DR/SCEV didnt fold in constants we do not see when looking
23557 at the reference base alignment.
23558
23559 2017-03-27 Richard Biener <rguenther@suse.de>
23560
23561 PR middle-end/80171
23562 * gimple-fold.c (fold_ctor_reference): Properly guard against
23563 NULL return value from canonicalize_constructor_val.
23564
23565 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
23566
23567 PR target/80180
23568 * config/i386/i386.c (ix86_expand_builtin)
23569 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
23570 flags reg setting and flags reg using instructions.
23571 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
23572 clobbering instructions to zero extend op2.
23573
23574 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
23575
23576 * doc/install.texi (Configuration) <--with-aix-soname>:
23577 Update link to AIX ld.
23578
23579 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
23580
23581 PR rtl-optimization/80160
23582 PR rtl-optimization/80159
23583 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
23584 reg_alternate_class into account.
23585
23586 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
23587
23588 PR target/80148
23589 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
23590 to consider in curr_insn_transform.
23591
23592 2017-03-24 Jakub Jelinek <jakub@redhat.com>
23593
23594 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
23595 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
23596 and emit_mode_inner.
23597
23598 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23599
23600 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
23601 argument to the overloaded builtin variants. Use the new flag to
23602 deprecate certain builtin variants.
23603 * config/s390/s390-builtin-types.def: Add new builtin types.
23604 * config/s390/s390-builtins.h: Support new flags field for
23605 overloaded builtins.
23606 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
23607 (s390_macro_to_expand): Enable vector float data type.
23608 (s390_cpu_cpp_builtins_internal): Indicate support of the new
23609 builtins by incrementing the __VEC__ version number.
23610 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
23611 vec_xst.
23612 (s390_resolve_overloaded_builtin): Emit error messages depending
23613 on the builtin flags.
23614 * config/s390/s390.c (s390_expand_builtin): Support additional
23615 flags argument. Change error message to match the messages
23616 emitted in s390-c.c.
23617 * config/s390/s390.md: New UNSPEC_* constants.
23618 (op_type): Add new instruction types.
23619 * config/s390/vecintrin.h: Add new builtins and test data class
23620 constants.
23621 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
23622 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
23623 (VEC_INEXACT, VEC_NOINEXACT): New constants.
23624 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
23625 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
23626 ("vec_mergel<mode>"): V_HW -> VEC_HW.
23627
23628 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
23629 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
23630 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
23631 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
23632
23633 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
23634 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
23635 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
23636 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
23637
23638 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
23639 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
23640 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
23641 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
23642 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
23643 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
23644 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
23645
23646 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
23647 ("vec_scatter_element<V_HW_4:mode>_DI")
23648 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
23649 ("vec_fpint<mode>", "vflls")
23650 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
23651 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
23652 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
23653 ("*vec_cmphe<mode>_cc"): ... these.
23654
23655 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
23656 mode constant instead of magic value.
23657
23658 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23659
23660 * config/s390/s390.c (s390_expand_vec_compare): Support other
23661 vector floating point modes than just V2DF.
23662 (s390_expand_vcond): Likewise.
23663 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
23664 (s390_cannot_change_mode_class): Prevent mode changes between TF
23665 and V1TF in vector registers.
23666 * config/s390/s390.md (DF, SF): New mode attributes.
23667 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
23668 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
23669 SFmode support for VRs.
23670 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
23671 vector fp modes.
23672 (VFT, VF_HW): New mode iterators.
23673 (vw, sdx): New mode attributes.
23674 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
23675 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
23676 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
23677 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
23678 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
23679 also the new vector floating point modes. Renaming to ...
23680
23681 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
23682 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
23683 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
23684 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
23685 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
23686 ("vec_unordered<mode>"): ... these.
23687
23688 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
23689 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
23690 ("*vec_extendv2df"): New insn definitions.
23691
23692 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23693
23694 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
23695 ("mulditi3_2", "*muldi3_sign"): New patterns.
23696 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
23697 rename the pattern definition.
23698
23699 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23700
23701 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
23702 expander.
23703 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
23704
23705 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23706
23707 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
23708 instruction if possible.
23709 * config/s390/vector.md (vec_halfnumelts): New mode
23710 attribute.
23711 ("*vec_vllezlf<mode>"): New pattern.
23712
23713 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23714
23715 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
23716 ("popcountv4si2", "popcountv2di2"): Rename to ...
23717 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
23718 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
23719 condition.
23720 ("popcount<mode>2_vxe"): New pattern.
23721
23722 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23723
23724 * common/config/s390/s390-common.c (processor_flags_table): Add
23725 arch12.
23726 * config.gcc: Add arch12.
23727 * config/s390/driver-native.c (s390_host_detect_local_cpu):
23728 Default to arch12 for unknown CPU model numbers.
23729 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
23730 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
23731 PROCESSOR_max sanity check.
23732 * config/s390/s390-opts.h (enum processor_type): Add
23733 PROCESSOR_ARCH12.
23734 * config/s390/s390.c (processor_table): Add arch12.
23735 (s390_expand_builtin): Add check for B_VXE flag.
23736 (s390_issue_rate): Add PROCESSOR_ARCH12.
23737 (s390_get_sched_attrmask): Likewise.
23738 (s390_get_unit_mask): Likewise.
23739 (s390_sched_score): Enable z13 scheduling for arch12.
23740 (s390_sched_reorder): Likewise.
23741 (s390_sched_variable_issue): Likewise.
23742 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
23743 PF_VXE.
23744 (s390_tune_attr): Use z13 scheduling also for arch12.
23745 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
23746 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
23747 (TARGET_VXE_P): New macros.
23748 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
23749 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
23750 * config/s390/s390.opt: Add arch12 as processor_type.
23751
23752 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23753
23754 * config/s390/s390.md
23755 ("fixuns_truncdddi2", "fixuns_trunctddi2")
23756 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
23757 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
23758
23759 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
23760 Rename expanders to ...
23761
23762 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
23763 ("fixuns_truncdddi2_emu"): ... these.
23764
23765 ("fixuns_trunc<mode>si2_emu"): New expander.
23766
23767 ("*fixuns_truncdfdi2_z13"): Rename to ...
23768 ("*fixuns_truncdfdi2_vx"): ... this.
23769
23770 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23771
23772 * config/s390/2964.md: Remove the single element vector compare
23773 instructions which are no longer used.
23774 * config/s390/s390.c (s390_select_ccmode): Remove handling of
23775 vector CCmodes.
23776 (s390_canonicalize_comparison): Remove handling of DFmode
23777 compares.
23778 (s390_expand_vec_compare_scalar): Remove function.
23779 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
23780 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
23781 pattern.
23782 ("*cmp<mode>_ccs"): Add wfcdb instruction.
23783
23784 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23785
23786 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
23787 FP zero.
23788 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
23789 will anyway by matched by mov<mode>_64dfp.
23790
23791 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23792
23793 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
23794 vlef/vstef. Add missing operand to vleif.
23795
23796 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23797
23798 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
23799 pair for all vector types with 64 bit elements.
23800 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
23801 * config/s390/vector.md (V_HW_64): ... here.
23802 (V_128_NOSINGLE): New mode iterator.
23803 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
23804 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
23805 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
23806 ("*vec_load_pairv2di"): Change to ...
23807 ("*vec_load_pair<mode>"): ... this one.
23808
23809 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23810
23811 * config/s390/constraints.md: Add comments.
23812 (jKK): Reject element sizes > 8 bytes.
23813 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
23814 s_operands.
23815 * config/s390/s390.md: Add the s_operand checks formerly in
23816 s390_split_ok_p to various splitters where they are still
23817 required.
23818 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
23819 for 128 bit vectors. Plus two splitters.
23820
23821 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23822
23823 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
23824 the file.
23825
23826 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23827
23828 PR target/79893
23829 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
23830 error if the boundary argument is not constant.
23831
23832 2017-03-24 Jakub Jelinek <jakub@redhat.com>
23833
23834 PR rtl-optimization/80112
23835 * loop-doloop.c (doloop_condition_get): Don't check condition
23836 if cmp isn't SET with IF_THEN_ELSE src.
23837
23838 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23839
23840 PR tree-optimization/80158
23841 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
23842 replacing a candidate statement, also replace it for the
23843 candidate's alternate interpretation.
23844 (replace_rhs_if_not_dup): Likewise.
23845 (replace_one_candidate): Likewise.
23846
23847 2017-03-24 Richard Biener <rguenther@suse.de>
23848
23849 PR tree-optimization/80167
23850 * graphite-isl-ast-to-gimple.c
23851 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
23852 properly.
23853 (translate_isl_ast_to_gimple::get_rename): Likewise.
23854
23855 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
23856
23857 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
23858 handling of certain combinations of target options, including the
23859 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
23860 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
23861
23862 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23863
23864 PR target/71436
23865 * config/arm/arm.md (*load_multiple): Add reload_completed to
23866 matching condition.
23867
23868 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23869 Richard Biener <rguenth@suse.de>
23870
23871 PR tree-optimization/79908
23872 PR tree-optimization/80136
23873 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
23874 been cast away, gimplify_and_add suffices.
23875
23876 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
23877
23878 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
23879
23880 2017-03-23 Richard Biener <rguenther@suse.de>
23881
23882 PR tree-optimization/80032
23883 * gimplify.c (gimple_push_cleanup): Forced unconditional
23884 cleanups still have to go to the conditional_cleanups
23885 sequence.
23886
23887 2017-03-22 Jakub Jelinek <jakub@redhat.com>
23888
23889 PR tree-optimization/80072
23890 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
23891 to unsigned int.
23892 (next_operand_entry_id): Change type to unsigned int.
23893 (sort_by_operand_rank): Make sure to return the right return value
23894 even if unsigned fields are bigger than INT_MAX.
23895 (struct oecount): Change cnt and id type to unsigned int.
23896 (oecount_hasher::equal): Formatting fix.
23897 (oecount_cmp): Make sure to return the right return value
23898 even if unsigned fields are bigger than INT_MAX.
23899 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
23900
23901 PR c++/80129
23902 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
23903 TREE_READONLY on result if writing it more than once.
23904
23905 PR sanitizer/80110
23906 * doc/invoke.texi (-fsanitize=thread): Document that with
23907 -fnon-call-exceptions atomics are not able to throw
23908 exceptions.
23909
23910 PR sanitizer/80110
23911 * tsan.c: Include tree-eh.h.
23912 (instrument_builtin_call): Call maybe_clean_eh_stmt or
23913 maybe_clean_or_replace_eh_stmt where needed.
23914 (instrument_memory_accesses): Add cfg_changed argument.
23915 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
23916 if it returned true.
23917 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
23918
23919 PR rtl-optimization/63191
23920 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
23921 wrapper function, moved the whole old content into ...
23922 (ix86_delegitimize_address_1): ... this. New inline function.
23923 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
23924 true as last argument instead of ix86_delegitimize_address.
23925
23926 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
23927
23928 * config/aarch64/aarch64.c (generic_branch_cost): Copy
23929 cortexa57_branch_cost.
23930
23931 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
23932
23933 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
23934
23935 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
23936
23937 PR target/80123
23938 * doc/md.texi (Constraints): Document wA constraint.
23939 * config/rs6000/constraints.md (wA): New.
23940 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
23941 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
23942 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
23943 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
23944
23945 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
23946
23947 PR c++/80029
23948 * gimplify.c (is_oacc_declared): New function.
23949 (oacc_default_clause): Use it to set default flags for acc declared
23950 variables inside parallel regions.
23951 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
23952 declared variables.
23953 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
23954 declare attribute to any decl as necessary.
23955
23956 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
23957
23958 PR target/80082
23959 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
23960 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
23961 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
23962 (arm_arch_lpae): This.
23963 * config/arm/arm.c (arm_arch7ve): Rename into ...
23964 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
23965 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
23966 arm_arch_lpae.
23967
23968 2017-03-22 Martin Liska <mliska@suse.cz>
23969
23970 PR target/79906
23971 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
23972 error message instead of an ICE.
23973
23974 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23975
23976 * doc/extend.texi (6.11 Additional Floating Types): Revise.
23977
23978 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
23979
23980 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
23981 comments.
23982 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
23983 comments.
23984
23985 2017-03-21 Martin Sebor <msebor@redhat.com>
23986
23987 * doc/extend.texi: Use "cannot" instead of "can't."
23988 * doc/hostconfig.texi: Same.
23989 * doc/install.texi: Same.
23990 * doc/invoke.texi: Same.
23991 * doc/loop.texi: Same.
23992 * doc/md.texi: Same.
23993 * doc/objc.texi: Same.
23994 * doc/rtl.texi: Same.
23995 * doc/tm.texi: Same.
23996 * doc/tm.texi.in: Same.
23997 * doc/trouble.texi: Same.
23998
23999 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
24000
24001 PR debug/63238
24002 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
24003 (collect_checksum_attributes): Set it.
24004 (die_checksum_ordered): Use it.
24005
24006 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24007
24008 PR tree-optimization/79908
24009 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
24010 change: For a VA_ARG whose LHS has been cast away, use
24011 force_gimple_operand to construct the side effects.
24012
24013 2017-03-21 David Malcolm <dmalcolm@redhat.com>
24014
24015 PR translation/80001
24016 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
24017 more amenable to translation.
24018 (oacc_loop_auto_partitions): Likewise.
24019
24020 2017-03-21 Marek Polacek <polacek@redhat.com>
24021 Martin Sebor <msebor@redhat.com>
24022
24023 PR tree-optimization/80109
24024 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
24025 on INTEGRAL_TYPE_P.
24026
24027 2017-03-21 Jakub Jelinek <jakub@redhat.com>
24028 Segher Boessenkool <segher@kernel.crashing.org>
24029
24030 PR target/80125
24031 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
24032 check reg_used_between_p between insn and one of succ or succ2
24033 depending on if succ is artificial insn not inserted into insn
24034 stream.
24035
24036 2017-03-21 Martin Liska <mliska@suse.cz>
24037
24038 PR gcov-profile/80081
24039 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
24040 * doc/gcc.texi: Include gcov-dump stuff.
24041 * doc/gcov-dump.texi: New file.
24042
24043 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
24044
24045 PR rtl-optimization/79150
24046 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
24047 conditional jump, if the jump is the last insn of the loop.
24048
24049 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24050 Richard Biener <rguenth@suse.de>
24051
24052 PR tree-optimization/79908
24053 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
24054 been cast away, use force_gimple_operand to construct the side
24055 effects.
24056
24057 2017-03-21 Martin Liska <mliska@suse.cz>
24058
24059 PR libfortran/79956
24060 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
24061 to NULL.
24062
24063 2017-03-21 Brad Spengler <spender@grsecurity.net>
24064
24065 PR plugins/80094
24066 * plugin.c (htab_hash_plugin): New function.
24067 (add_new_plugin): Use it and adjust.
24068 (parse_plugin_arg_opt): Adjust.
24069 (init_one_plugin): Likewise.
24070
24071 2017-03-21 Richard Biener <rguenther@suse.de>
24072
24073 PR tree-optimization/80032
24074 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
24075 if set force the cleanup to happen unconditionally.
24076 (gimplify_target_expr): Push inserted clobbers with force_uncond
24077 to avoid them being removed by control-dependent DCE.
24078
24079 2017-03-21 Richard Biener <rguenther@suse.de>
24080
24081 PR tree-optimization/80122
24082 * tree-inline.c (copy_bb): Do not expans va-arg packs or
24083 va_arg_pack_len when the inlined call stmt requires pack
24084 expansion itself.
24085 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
24086
24087 2017-03-21 Jakub Jelinek <jakub@redhat.com>
24088
24089 PR sanitizer/78158
24090 * tsan.c (instrument_builtin_call): If the memory model argument
24091 is not a constant, assume it is valid.
24092
24093 PR c/67338
24094 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
24095 avoid UB.
24096
24097 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
24098
24099 PR rtl-optimization/79910
24100 * combine.c (can_combine_p): Do not allow combining an I0 or I1
24101 if its dest is used by an insn before I2 (other than the combined
24102 insns themselves, which are properly handled already).
24103
24104 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
24105
24106 Revert:
24107 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
24108
24109 * combine.c (record_used_regs): New static function.
24110 (try_combine): Handle situations where there is an additional
24111 instruction between I2 and I3 which needs to have a LOG_LINK
24112 updated.
24113
24114 Revert:
24115 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
24116
24117 * combine.c (try_combine): Delete redundant i1 test. Call
24118 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
24119
24120 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
24121
24122 PR target/80083
24123 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
24124 alternatives 13/14.
24125
24126 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24127
24128 PR tree-optimization/80054
24129 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
24130 the optimization if a PHI or any of its arguments is not dominated
24131 by the candidate's basis. Use gphi* rather than gimple* as
24132 appropriate.
24133 (replace_profitable_candidates): Clean up a gimple* variable that
24134 should be a gphi* variable.
24135
24136 2017-03-20 Martin Sebor <msebor@redhat.com>
24137
24138 PR c++/52477
24139 * doc/extend.texi (attribute constructor): Document present limitation.
24140
24141 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
24142
24143 PR target/79963
24144 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
24145 __POWER9_VECTOR__ #ifdef control, change template definition to
24146 use Power9-specific built-in function.
24147 (vec_any_eq): Likewise.
24148 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
24149 to control outcomes from this test.
24150 (vector_ae_<mode>p): For VEC_F modes, likewise.
24151
24152 2017-03-20 Ian Lance Taylor <iant@google.com>
24153
24154 * config/i386/i386.c (ix86_function_regparm): Save an extra
24155 register for -fsplit-stack with DECL_STATIC_CHAIN.
24156
24157 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
24158
24159 PR target/79912
24160 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
24161 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
24162
24163 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
24164
24165 * config/riscv/riscv.c (riscv_print_operand): Use "fence
24166 iorw,ow".
24167 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
24168 iorw,iorw".
24169
24170 2017-03-20 Marek Polacek <polacek@redhat.com>
24171
24172 PR sanitizer/80063
24173 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
24174
24175 2017-03-20 Richard Biener <rguenther@suse.de>
24176
24177 PR tree-optimization/80113
24178 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
24179 allocate extra SSA name for PHI def.
24180 (add_close_phis_to_outer_loops): Likewise.
24181 (add_close_phis_to_merge_points): Likewise.
24182 (copy_loop_close_phi_args): Likewise.
24183 (copy_cond_phi_nodes): Likewise.
24184
24185 2017-03-20 Martin Liska <mliska@suse.cz>
24186
24187 PR middle-end/79753
24188 * tree-chkp.c (chkp_build_returned_bound): Do not build
24189 returned bounds for a LHS that's not a BOUNDED_P type.
24190
24191 2017-03-20 Martin Liska <mliska@suse.cz>
24192
24193 PR target/79769
24194 PR target/79770
24195 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
24196 COMPLEX_CST and VECTOR_CST.
24197
24198 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24199
24200 PR target/78857
24201 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
24202 target operand. A new splitter adds the clobber statement in case
24203 the target operand is dead anyway.
24204
24205 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
24206
24207 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
24208 to age-old versions of binutils and glibc.
24209
24210 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
24211
24212 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
24213
24214 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
24215
24216 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
24217
24218 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
24219
24220 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
24221 requirement for binutils 2.13.
24222
24223 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
24224
24225 * combine.c (try_combine): Delete redundant i1 test. Call
24226 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
24227
24228 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
24229
24230 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
24231 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
24232 contents.
24233 <riscv64-*-elf>: Re-arrange section
24234 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
24235 <riscv32-*-linux>: Likewise.
24236 <riscv64-*-elf>: Likewise
24237 <riscv64-*-linux>: Likewise.
24238
24239 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
24240
24241 PR target/80052
24242 * aarch64.opt(verbose-cost-dump): Fix typo.
24243
24244 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
24245
24246 PR target/79951
24247 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
24248 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
24249
24250 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
24251
24252 * reload.c (find_reloads): When reloading a nonoffsettable address,
24253 use RELOAD_OTHER for it and its address reloads.
24254
24255 PR rtl-optimization/79910
24256 * combine.c (record_used_regs): New static function.
24257 (try_combine): Handle situations where there is an additional
24258 instruction between I2 and I3 which needs to have a LOG_LINK
24259 updated.
24260
24261 2017-03-17 Jeff Law <law@redhat.com>
24262
24263 PR tree-optimization/71437
24264 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
24265 conditional in the hash table first.
24266 (vrp_dom_walker::before_dom_children): Extract condition from
24267 ASSERT_EXPR. Record condition, its inverion and any implied
24268 conditions as well.
24269
24270 2017-03-17 Marek Polacek <polacek@redhat.com>
24271 Markus Trippelsdorf <markus@trippelsdorf.de>
24272
24273 PR tree-optimization/80079
24274 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
24275 m_stores_head.
24276
24277 2017-03-17 Richard Biener <rguenther@suse.de>
24278
24279 PR middle-end/80075
24280 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
24281 Properly verify the LHS before the RHS possibly claims to be
24282 handled.
24283 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
24284 do not throw.
24285
24286 2017-03-17 Martin Jambor <mjambor@suse.cz>
24287
24288 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
24289 (List of -O2 options): Likewise.
24290 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
24291 (-fipa-vrp) New.
24292
24293 2017-03-17 Tom de Vries <tom@codesourcery.com>
24294
24295 * gcov-dump.c (print_usage): Print bug_report_url.
24296
24297 2017-03-17 Richard Biener <rguenther@suse.de>
24298
24299 PR middle-end/80050
24300 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
24301 (parser::peek): Likewise.
24302
24303 2017-03-17 Richard Biener <rguenther@suse.de>
24304
24305 PR tree-optimization/80048
24306 * sese.c (free_sese_info): Properly release rename_map and
24307 copied_bb_map elements.
24308
24309 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
24310
24311 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
24312 Add linked-list forward and backlinks. Insert on
24313 construction, remove on destruction.
24314 (class pass_store_merging): Add m_stores_head field.
24315 (pass_store_merging::terminate_and_process_all_chains):
24316 Iterate over m_stores_head list.
24317 (pass_store_merging::terminate_all_aliasing_chains):
24318 Likewise.
24319 (pass_store_merging::execute): Check for debug stmts first.
24320 Push new chains onto the m_stores_head stack.
24321
24322 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
24323
24324 PR target/71294
24325 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
24326 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
24327 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
24328
24329 2017-03-16 Jeff Law <law@redhat.com>
24330
24331 PR tree-optimization/71437
24332 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
24333 member function. Implementation moved into after_dom_children
24334 member function and into the threader's thread_outgoing_edges
24335 function.
24336 (dom_opt_dom_walker::after_dom_children): Simplify by moving
24337 some code into new thread_outgoing_edges.
24338 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
24339 definition. Simplify marker handling (do it here). Assume we always
24340 have the available expression and the const/copies tables.
24341 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
24342 and tree-vrp.c
24343 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
24344 * tree-vrp.c (equiv_stack): No longer file scoped.
24345 (vrp_dom_walker): New class.
24346 (vrp_dom_walker::before_dom_children): New member function.
24347 (vrp_dom_walker::after_dom_children): Likewise.
24348 (identify_jump_threads): Setup domwalker. Use it rather than
24349 walking edges in a random order by hand. Simplify setup/finalization.
24350 (finalize_jump_threads): Remove.
24351 (vrp_finalize): Do not call identify_jump_threads here.
24352 (execute_vrp): Do it here instead and call thread_through_all_blocks
24353 here too.
24354
24355 PR tree-optimization/71437
24356 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
24357 callers changed.
24358 (simplify_stmt_for_jump_threading): Add basic_block argument. All
24359 callers changed.
24360 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
24361 (dom_opt_dom_walker::thread_across_edge): Remove
24362 handle_dominating_asserts argument. All callers changed.
24363 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
24364 changes. Remove calls to lhs_of_dominating_assert. Other
24365 uses of handle_dominating_asserts turn into unconditional code
24366 (simplify_control_stmt_condition_1): Likewise.
24367 (simplify_control_stmt_condition): Likewise.
24368 (thread_through_normal_block, thread_across_edge): Likewise.
24369 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
24370 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
24371 object if it is not an SSA_NAME.
24372 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
24373 before calling into the VRP specific simplifiers.
24374 (identify_jump_threads): Remove handle_dominating_asserts
24375 argument.
24376
24377 2017-03-16 Jakub Jelinek <jakub@redhat.com>
24378
24379 PR fortran/79886
24380 * tree-diagnostic.c (default_tree_printer): No longer static.
24381 * tree-diagnostic.h (default_tree_printer): New prototype.
24382
24383 2017-03-16 Tamar Christina <tamar.christina@arm.com>
24384
24385 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
24386 Change ins into fmov.
24387
24388 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24389
24390 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
24391 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
24392 Use h_con constraint for operand 1.
24393 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
24394 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
24395
24396 2017-03-15 Jeff Law <law@redhat.com>
24397
24398 PR tree-optimization/71437
24399 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
24400 (record_temporary_equivalences): Use it.
24401
24402 PR tree-optimization/71437
24403 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
24404 tree-ssa-scopedtables.
24405 (lookup_avail_expr, build_and_record_new_cond): Likewise.
24406 (record_conditions, record_cond, vuse_eq): Likewise.
24407 (record_edge_info): Adjust to API tweak of record_conditions.
24408 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
24409 (record_temporary_equivalences, optimize_stmt): Likewise.
24410 (eliminate_redundant_computations): Likewise.
24411 (record_equivalences_from_stmt): Likewise.
24412 * tree-ssa-scopedtables.c: Include options.h and params.h.
24413 (vuse_eq): New function, moved from tree-ssa-dom.c
24414 (build_and_record_new_cond): Likewise.
24415 (record_conditions): Likewise. Accept vector of conditions rather
24416 than edge_equivalence structure for first argument.
24417 for the first argument.
24418 (avail_exprs_stack::lookup_avail_expr): New member function, moved
24419 from tree-ssa-dom.c.
24420 (avail_exprs_stack::record_cond): Likewise.
24421 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
24422 from tree-ssa-dom.c.
24423 (avail_exprs_stack): Add new member functions lookup_avail_expr
24424 and record_cond.
24425 (record_conditions): Declare.
24426
24427 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
24428
24429 PR target/80017
24430 * lra-constraints.c (process_alt_operands): Increase reject for
24431 reloading an input/output operand.
24432
24433 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
24434
24435 PR target/79038
24436 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
24437 insns to convert from signed/unsigned char/short to IEEE 128-bit
24438 floating point.
24439 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
24440
24441 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
24442
24443 PR target/80019
24444 * config/i386/i386.c (ix86_vector_duplicate_value): Create
24445 subreg of inner mode for values already in registers.
24446
24447 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
24448
24449 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
24450 iteration reg is used after the loop.
24451
24452 2017-03-14 Martin Sebor <msebor@redhat.com>
24453
24454 PR tree-optimization/79800
24455 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
24456 precision in negative-positive range.
24457 (format_floating): Call non-const overload with adjusted precision.
24458
24459 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
24460
24461 PR target/79947
24462 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
24463 -mpowerpc-gfxopt.
24464
24465 2017-03-14 Martin Sebor <msebor@redhat.com>
24466
24467 PR middle-end/80020
24468 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
24469 * builtins.def (aligned_alloc): Use it.
24470
24471 PR c/79936
24472 * Makefile.in (GTFILES): Add calls.c.
24473 * calls.c: Include "gt-calls.h".
24474
24475 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
24476
24477 PR rtl-optimization/79728
24478 * regs.h (struct target_regs): New field
24479 x_contains_allocatable_regs_of_mode.
24480 (contains_allocatable_regs_of_mode): New macro.
24481 * reginfo.c (init_reg_sets_1): Initialize it, and change
24482 contains_reg_of_mode so it includes global regs as well.
24483 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
24484 rather than contains_regs_of_mode.
24485
24486 2017-03-14 Martin Liska <mliska@suse.cz>
24487
24488 * doc/invoke.texi: Document options that can't be combined with
24489 -fcheck-pointer-bounds.
24490
24491 2017-03-14 Martin Liska <mliska@suse.cz>
24492
24493 PR middle-end/79831
24494 * doc/invoke.texi (-Wchkp): Document the option.
24495
24496 2017-03-14 Martin Liska <mliska@suse.cz>
24497
24498 * Makefile.in: Install gcov-dump.
24499
24500 2017-03-14 Martin Liska <mliska@suse.cz>
24501
24502 * multiple_target.c (expand_target_clones): Bail out for
24503 an invalid attribute.
24504
24505 2017-03-14 Richard Biener <rguenther@suse.de>
24506
24507 * alias.c (struct alias_set_entry): Pack properly.
24508 * cfgloop.h (struct loop): Likewise.
24509 * cse.c (struct set): Likewise.
24510 * ipa-utils.c (struct searchc_env): Likewise.
24511 * loop-invariant.c (struct invariant): Likewise.
24512 * lra-remat.c (struct cand): Likewise.
24513 * recog.c (struct change_t): Likewise.
24514 * rtl.h (struct address_info): Likewise.
24515 * symbol-summary.h (function_summary): Likewise.
24516 * tree-loop-distribution.c (struct partition): Likewise.
24517 * tree-object-size.c (struct object_size_info): Likewise.
24518 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
24519 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
24520 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
24521 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
24522 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
24523 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
24524 (struct _stmt_vec_info): Likewise.
24525
24526 2017-03-14 Martin Liska <mliska@suse.cz>
24527
24528 PR target/79892
24529 * multiple_target.c (create_dispatcher_calls): Check that
24530 a target can create a function dispatcher.
24531
24532 2017-03-14 Martin Liska <mliska@suse.cz>
24533
24534 PR lto/66295
24535 * multiple_target.c (expand_target_clones): Drop local.local
24536 flag for default implementation.
24537
24538 2017-03-14 Richard Biener <rguenther@suse.de>
24539
24540 PR tree-optimization/80030
24541 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
24542
24543 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
24544
24545 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
24546 gcc_fallthrough() instead of __attribute__((fallthrough));
24547
24548 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
24549
24550 * doc/gcc.texi: Remove "up" link to (DIR).
24551 * doc/gccint.texi: Ditto.
24552
24553 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
24554
24555 * doc/install.texi (Specific) <avr>: Remove reference to
24556 binutils 2.13.
24557
24558 2017-03-13 Jeff Law <law@redhat.com>
24559
24560 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
24561 attribute rather than comments.
24562
24563 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
24564 match_scratch operand is highest.
24565
24566 2017-03-13 Martin Liska <mliska@suse.cz>
24567
24568 PR middle-end/78339
24569 * ipa-pure-const.c (warn_function_noreturn): If the declarations
24570 is a CHKP clone, use original declaration.
24571
24572 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
24573
24574 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
24575 (arc_conditional_register_usage): Use a different allocation order
24576 when optimizing for size.
24577 * common/config/arc/arc-common.c (arc_option_optimization_table):
24578 Section anchors default on when optimizing for size.
24579
24580 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
24581
24582 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
24583
24584 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
24585
24586 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
24587 * config/arc/arc.md (cpu_facility): Add cd variant.
24588 (*movqi_insn): Add code density variant.
24589 (*movhi_insn): Likewise.
24590 (*movqi_insn): Likewise.
24591 (*addsi3_mixed): Likewise.
24592 (subsi3_insn): Likewise.
24593
24594 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
24595
24596 * config/arc/arc.md (movsi_cond_exec): Update constraint.
24597
24598 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
24599
24600 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
24601 expressions with MINUS and UNARY ops.
24602
24603 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24604
24605 PR target/79911
24606 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
24607 Rename to...
24608 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
24609 between vec_select and vector argument.
24610 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
24611 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
24612 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
24613 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
24614 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
24615 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
24616
24617 2017-03-13 Richard Biener <rguenther@suse.de>
24618
24619 PR other/79991
24620 * params.def (vect-max-peeling-for-alignment): Fix typo.
24621
24622 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
24623
24624 * doc/install.texi (Specific) <mips-*-*>: Remove description of
24625 issue that only occurred with binutils below 2.18.
24626
24627 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
24628
24629 * doc/install.texi (Specific) <cris-axis-elf>: No longer
24630 refer to binutils 2.11/2.12 minimum.
24631
24632 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
24633
24634 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
24635 ftp.kernel.org and simplify binutils requirement.
24636
24637 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
24638
24639 * doc/invoke.texi (Warning Options): Fix spelling of link-time
24640 optimization.
24641 (Optimize Options): Ditto. Also remove redundancy.
24642
24643 2017-03-10 David Malcolm <dmalcolm@redhat.com>
24644
24645 PR translation/79848
24646 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
24647 "%qs".
24648 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
24649 to G_ to avoid double translation.
24650
24651 2017-03-10 David Malcolm <dmalcolm@redhat.com>
24652
24653 PR translation/79923
24654 * auto-profile.c (get_combined_location): Convert leading
24655 character of diagnostics to lower case and remove trailing period.
24656 (read_profile): Likewise for various diagnostics.
24657 * config/arm/arm.c (arm_option_override): Remove trailing period
24658 from various diagnostics.
24659 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
24660 (msp430_expand_delay_cycles): Likewise.
24661
24662 2017-03-10 David Malcolm <dmalcolm@redhat.com>
24663
24664 PR target/79925
24665 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
24666 full command-line argument, rather than just "str".
24667 (aarch64_validate_march): Likewise.
24668 (aarch64_validate_mtune): Likewise.
24669
24670 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
24671
24672 PR rtl-optimization/78911
24673 * lra-assigns.c (must_not_spill_p): New function.
24674 (spill_for): Use it.
24675
24676 2017-03-10 Jakub Jelinek <jakub@redhat.com>
24677
24678 PR tree-optimization/79981
24679 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
24680 ATOMIC_COMPARE_EXCHANGE ifn result.
24681 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
24682 IFN_ATOMIC_COMPARE_EXCHANGE.
24683
24684 2017-03-10 David Malcolm <dmalcolm@redhat.com>
24685
24686 PR driver/79875
24687 * opts.c (parse_sanitizer_options): Add missing question mark to
24688 "did you mean" message.
24689
24690 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24691
24692 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
24693 built-in.
24694 (VMULEUH_UNS): Likewise.
24695 (VMULOUB_UNS): Likewise.
24696 (VMULOUH_UNS): Likewise.
24697 * config/rs6000/rs6000.c (builtin_function_type): Remove
24698 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
24699
24700 2017-03-10 David Malcolm <dmalcolm@redhat.com>
24701
24702 PR bootstrap/79952
24703 * read-rtl-function.c (function_reader::read_rtx_operand): Update
24704 x with result of extra_parsing_for_operand_code_0.
24705 (function_reader::extra_parsing_for_operand_code_0): Convert
24706 return type from void to rtx, returning x. When reading
24707 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
24708 larger size containing struct block_symbol.
24709
24710 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
24711
24712 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
24713 -mfloat128-hardware without -m64.
24714
24715 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
24716
24717 PR target/79941
24718 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
24719 entries to the case statement that marks unsigned arguments to
24720 overloaded functions.
24721
24722 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
24723
24724 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
24725 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
24726
24727 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
24728
24729 PR target/79907
24730 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
24731 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
24732
24733 2017-03-10 Martin Liska <mliska@suse.cz>
24734
24735 PR target/65705
24736 PR target/69804
24737 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
24738 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
24739 FIELD != NULL.
24740
24741 2017-03-10 Olivier Hainque <hainque@adacore.com>
24742
24743 * tree-switch-conversion (array_value_type): Start by resetting
24744 candidate type to it's main variant.
24745
24746 2017-03-10 Jakub Jelinek <jakub@redhat.com>
24747
24748 PR rtl-optimization/79909
24749 * combine.c (try_combine): Use simplify_replace_rtx on individual
24750 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
24751 of the whole CALL_INSN_FUNCTION_USAGE.
24752
24753 PR tree-optimization/79972
24754 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
24755 get_range_info on SSA_NAMEs. Formatting fixes.
24756
24757 2017-03-10 Richard Biener <rguenther@suse.de>
24758 Jakub Jelinek <jakub@redhat.com>
24759
24760 PR tree-optimization/77975
24761 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
24762 edge to be constant.
24763 (get_val_for): For constant x return it. Formatting fix.
24764 (loop_niter_by_eval): Avoid pointless looping if the next iteration
24765 would use the same bases as the current one.
24766
24767 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24768
24769 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
24770 instead of vec_select for V1TImode.
24771 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
24772 longer needed.
24773 (VSX_LE_128): Add V1TI to this mode iterator.
24774 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
24775 (*vsx_le_perm_store_<mode>): Likewise.
24776 (pre-reload splitter for VSX stores): Likewise.
24777 (post-reload splitter for VSX stores): Likewise.
24778 (*vsx_xxpermdi2_le_<mode>): Likewise.
24779 (*vsx_lxvd2x2_le_<mode>): Likewise.
24780 (*vsx_stxvd2x2_le_<mode>): Likewise.
24781
24782 2017-03-09 Michael Eager <eager@eagercon.com>
24783
24784 Correct failures with --enable-checking=yes,rtl.
24785
24786 * config/microblaze/microblaze.c (microblaze_expand_shift):
24787 Replace GET_CODE test with CONST_INT_P and INTVAL test with
24788 test for const0_rtx.
24789 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
24790 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
24791
24792 2017-03-09 Richard Biener <rguenther@suse.de>
24793
24794 PR tree-optimization/79977
24795 * graphite-scop-detection.c (scop_detection::merge_sese):
24796 Handle the case of extra exits to blocks dominating the entry.
24797
24798 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
24799
24800 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
24801 Document rdynamic.
24802
24803 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
24804
24805 PR rtl-optimization/79949
24806 * lra-constraints.c (process_alt_operands): Check memory when
24807 trying to predict a cycle. Print about the overall increase.
24808
24809 2017-03-09 Richard Biener <rguenther@suse.de>
24810
24811 PR middle-end/79971
24812 * gimple-expr.c (useless_type_conversion_p): Preserve
24813 TYPE_SATURATING for fixed-point types.
24814
24815 2017-03-09 Richard Biener <rguenther@suse.de>
24816
24817 PR ipa/79970
24818 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
24819 alignment of BLKmode params.
24820
24821 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24822
24823 PR target/79913
24824 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
24825 (VALL_NO_V2Q): Likewise.
24826 (VDQF_DF): Delete.
24827 * config/aarch64/aarch64-simd.md
24828 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
24829 iterator.
24830 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
24831 VALL_NO_V2Q mode iterator.
24832 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
24833
24834 2017-03-09 Martin Liska <mliska@suse.cz>
24835
24836 PR tree-optimization/79631
24837 * tree-chkp-opt.c (chkp_is_constant_addr): Call
24838 tree_int_cst_sign_bit just for INTEGER constants.
24839
24840 2017-03-09 Martin Liska <mliska@suse.cz>
24841
24842 PR target/65705
24843 PR target/69804
24844 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
24845 sanitizers.
24846
24847 2017-03-09 Marek Polacek <polacek@redhat.com>
24848
24849 PR c++/79672
24850 * tree.c (inchash::add_expr): Handle TREE_VEC.
24851
24852 2017-03-09 Martin Liska <mliska@suse.cz>
24853
24854 PR ipa/79764
24855 (chkp_narrow_size_and_offset): New function.
24856 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
24857 (void chkp_parse_bit_field_ref): New function.
24858 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
24859 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
24860
24861 2017-03-09 Martin Liska <mliska@suse.cz>
24862
24863 PR ipa/79761
24864 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
24865 (chkp_find_bounds_1): Remove gcc_unreachable.
24866
24867 2017-03-09 Jakub Jelinek <jakub@redhat.com>
24868
24869 PR sanitizer/79944
24870 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
24871 BUILT_IN_SYNC*, determine the access type from the size suffix and
24872 always build a MEM_REF with that type. Handle forgotten
24873 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
24874
24875 PR target/79932
24876 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
24877 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
24878 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
24879 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
24880 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
24881 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
24882 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
24883 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
24884 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
24885 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
24886 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
24887 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
24888 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
24889 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
24890 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
24891 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
24892 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
24893 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
24894 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
24895 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
24896 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
24897 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
24898 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
24899 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
24900 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
24901 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
24902 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
24903 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
24904 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
24905 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
24906 definitions outside of __OPTIMIZE__ guarded section.
24907
24908 PR target/79932
24909 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
24910 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
24911 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
24912 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
24913 guarded section.
24914
24915 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24916
24917 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
24918 ("vfenez<mode>"): Add missing constraints.
24919
24920 2017-03-08 Martin Sebor <msebor@redhat.com>
24921
24922 PR target/79928
24923 * config/nds32/nds32.c (nds32_option_override):
24924 Fix misspelled diagnostic.
24925
24926 2017-03-08 Jakub Jelinek <jakub@redhat.com>
24927
24928 PR c/79940
24929 * gimplify.c (gimplify_omp_for): Replace index var in outer
24930 taskloop statement with an artificial variable and add
24931 OMP_CLAUSE_PRIVATE clause for it.
24932
24933 2017-03-08 Richard Biener <rguenther@suse.de>
24934
24935 PR tree-optimization/79955
24936 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
24937 for accesses that are completely outside of the variable.
24938
24939 2017-03-08 Andrew Haley <aph@redhat.com>
24940
24941 PR tree-optimization/79943
24942 * tree-ssa-loop-split.c (compute_new_first_bound): When
24943 calculating the new upper bound, (END-BEG) should be added, not
24944 subtracted.
24945
24946 2017-03-08 Jakub Jelinek <jakub@redhat.com>
24947
24948 * config/avr/avr.md (setmemhi): Make sure match_dup
24949 operand number comes before match_scratch.
24950
24951 2017-03-08 Richard Biener <rguenther@suse.de>
24952
24953 PR tree-optimization/79920
24954 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
24955 with ncopies == 1 to ...
24956 (vect_transform_slp_perm_load): ... here. Properly compute
24957 all element loads by iterating VF times over the group. Do
24958 not handle ncopies (computed in a broken way) in
24959 vect_create_mask_and_perm.
24960
24961 2017-03-08 Jakub Jelinek <jakub@redhat.com>
24962
24963 PR sanitizer/79904
24964 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
24965 is a uniform vector, use uniform_vector_p return value instead of
24966 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
24967
24968 2017-03-07 Marek Polacek <polacek@redhat.com>
24969
24970 PR middle-end/79809
24971 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
24972 (alloca_call_type): Likewise.
24973
24974 2017-03-07 Martin Liska <mliska@suse.cz>
24975
24976 * gcov.c (process_args): Put comment to correct location.
24977
24978 2017-03-07 Martin Liska <mliska@suse.cz>
24979
24980 PR middle-end/68270
24981 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
24982 Use array_at_struct_end_p instead of DECL_CHAIN (field).
24983 (chkp_narrow_bounds_for_field): Likewise.
24984 (chkp_parse_array_and_component_ref): Pass one more argument to
24985 call.
24986
24987 2017-03-07 Richard Biener <rguenther@suse.de>
24988
24989 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
24990 preheaders.
24991
24992 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
24993
24994 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
24995 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
24996
24997 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24998
24999 PR c/79855
25000 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
25001 to end of description.
25002 (PARAM_MAX_STORES_TO_MERGE): Likewise.
25003
25004 2017-03-07 Jakub Jelinek <jakub@redhat.com>
25005
25006 PR rtl-optimization/79901
25007 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
25008 ...
25009 (*avx512f_<code><mode>3<mask_name>): ... this.
25010 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
25011 iterator instead of VI8_AVX2_AVX512BW.
25012
25013 PR rtl-optimization/79901
25014 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
25015 min/max expander, expand it using expand_vec_cond_expr.
25016
25017 PR sanitizer/79897
25018 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
25019 temporary.
25020
25021 2017-03-06 Jakub Jelinek <jakub@redhat.com>
25022
25023 PR c++/79821
25024 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
25025 to void * for PCH reasons.
25026 * dwarf2out.c (output_loc_operands, output_die): Cast
25027 v.val_vec.array to unsigned char *.
25028
25029 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
25030
25031 PR target/77850
25032 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
25033 vector types.
25034
25035 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
25036
25037 PR rtl-optimization/79571
25038 * lra-constraints.c (process_alt_operands): Calculate static
25039 reject and subtract it from overall when only addresses will be
25040 reloaded.
25041
25042 2017-03-06 Julia Koval <julia.koval@intel.com>
25043
25044 PR target/79793
25045 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
25046 incoming stack boundary to 128 for 64-bit targets.
25047
25048 2017-03-06 Richard Biener <rguenther@suse.de>
25049
25050 PR tree-optimization/79894
25051 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
25052 to NULL after folding it.
25053
25054 2017-03-06 Richard Biener <rguenther@suse.de>
25055
25056 PR tree-optimization/79824
25057 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
25058 check disabling peeling for gaps.
25059
25060 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
25061
25062 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
25063 attributes): Document gettimeofday.
25064
25065 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
25066
25067 * config/s390/s390.c (s390_option_override_internal): Set
25068 PARAM_MIN_VECT_LOOP_BOUND
25069
25070 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
25071
25072 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
25073 * config/s390/s390.md: Likewise.
25074
25075 2017-03-06 Jakub Jelinek <jakub@redhat.com>
25076
25077 PR target/79812
25078 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
25079 (<avx2_avx512>_perm<mode>): Rename to ...
25080 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
25081 of VI8F_256_512.
25082 (<avx512>_perm<mode>_mask): Rename to ...
25083 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
25084 of VI8F_256_512.
25085 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
25086 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
25087 instead of VI8F_256_512.
25088 (avx512f_perm<mode>): New define_expand.
25089 (avx512f_perm<mode>_mask): Likewise.
25090 (avx512f_perm<mode>_1<mask_name>): New define_insn.
25091 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
25092
25093 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
25094
25095 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
25096 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
25097 if_then_else.
25098 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
25099
25100 2017-03-06 Martin Liska <mliska@suse.cz>
25101
25102 PR sanitize/79783
25103 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
25104 when having a SSA NAME w/o VAR_DECL assigned to it.
25105
25106 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
25107
25108 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
25109 msa_dpsub_<su>_d): Fix MODE for vec_select.
25110
25111 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
25112
25113 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
25114 argument.
25115 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
25116
25117 2017-03-06 Richard Biener <rguenther@suse.de>
25118
25119 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
25120 * plugin.c (register_plugin_info): Likewise.
25121 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
25122
25123 2017-03-05 Jakub Jelinek <jakub@redhat.com>
25124
25125 * config/i386/sse.md (sse_storehps, sse_storelps,
25126 avx_<castmode><avxsizesuffix>_<castmode>,
25127 avx512f_<castmode><avxsizesuffix>_<castmode>,
25128 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
25129 in condition that at least one operand is not a MEM.
25130
25131 2017-03-03 Jakub Jelinek <jakub@redhat.com>
25132
25133 PR middle-end/79805
25134 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
25135 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
25136 ECF_NOTHROW.
25137 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
25138 gimple_call_nothrow_p flag based on whether original builtin can throw.
25139 If it can, emit following stmts on the fallthrough edge.
25140 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
25141 don't create new bb if inserting just debug stmts on the edge, try to
25142 insert them on the fallthru bb or just reset debug stmts.
25143
25144 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
25145
25146 PR target/43763
25147 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
25148 restore recog_data (including the operand rtxes inside it) around
25149 the call to get_insn_template.
25150
25151 2017-03-03 Martin Sebor <msebor@redhat.com>
25152
25153 PR tree-optimization/79699
25154 * context.c (context::~context): Free MPFR caches to avoid
25155 a memory leak on program exit.
25156
25157 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25158
25159 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
25160 Use wide_int::ulow () instead of .elt (0).
25161
25162 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
25163
25164 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
25165 (*pushxf): Limit oF constraint to 32bit targets and add oC
25166 constraint for 64bit targets.
25167 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
25168 (*pushdf): Change rmF constraint to rmC.
25169
25170 2017-03-03 Martin Liska <mliska@suse.cz>
25171
25172 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
25173 Remove unused variable.
25174
25175 2017-03-03 Jakub Jelinek <jakub@redhat.com>
25176
25177 PR target/79807
25178 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
25179 is a memory operand, increase num_memory.
25180 (ix86_expand_args_builtin): Likewise.
25181
25182 2017-03-03 Jan Hubicka <jh@suse.cz>
25183
25184 PR lto/79760
25185 * ipa-devirt.c (maybe_record_node): Properly handle
25186 __cxa_pure_virtual visibility.
25187
25188 2017-03-03 Martin Liska <mliska@suse.cz>
25189
25190 PR tree-optimization/79803
25191 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
25192 assert.
25193 (pass_loop_prefetch::execute): Disabled optimization if an
25194 assumption about L1 cache size is not met.
25195
25196 2017-03-03 Martin Liska <mliska@suse.cz>
25197
25198 PR rtl-optimization/79574
25199 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
25200 (hash_scan_set): Likewise.
25201 (dump_hash_table): Likewise.
25202 (hoist_code): Likewise.
25203
25204 2017-03-03 Richard Biener <rguenther@suse.de>
25205
25206 * fixed-value.c (fixed_from_string): Restore use of elt (1)
25207 in place of uhigh ().
25208 (fixed_convert_from_real): Likewise.
25209
25210 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
25211
25212 PR target/79514
25213 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
25214
25215 2017-03-03 Richard Biener <rguenther@suse.de>
25216
25217 PR middle-end/79818
25218 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
25219 TYPE_OVERFLOW_UNDEFINED check.
25220
25221 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25222
25223 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
25224 numbers.
25225 (vector_ae_<mode>_p): Likewise.
25226 (vector_nez_<mode>_p): Likewise.
25227 (vector_ne_v2di_p): Likewise.
25228 (vector_ae_v2di_p): Likewise.
25229 (vector_ne_<mode>_p): Likewise.
25230 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
25231 numbers.
25232 (vsx_tsqrt<mode>2_fe): Likewise.
25233
25234 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
25235
25236 PR target/79514
25237 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
25238
25239 2017-03-02 Jakub Jelinek <jakub@redhat.com>
25240
25241 PR rtl-optimization/79780
25242 * cprop.c (one_cprop_pass): When second and further conditional trap
25243 in a single basic block is turned into an unconditional trap, turn it
25244 into a deleted note to avoid RTL verification failures.
25245
25246 2017-03-02 Richard Biener <rguenther@suse.de>
25247
25248 * fold-const.c (const_binop): Use ulow () instead of elt (0).
25249
25250 2017-03-02 Richard Biener <rguenther@suse.de>
25251
25252 PR tree-optimization/79345
25253 PR c++/42000
25254 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
25255 param and abort the walk, returning -1 if it is hit.
25256 (walk_aliased_vdefs): Take a limit param and pass it on.
25257 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
25258 defaulting to 0 and return a signed int.
25259 * tree-ssa-uninit.c (struct check_defs_data): New struct.
25260 (check_defs): New helper.
25261 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
25262 about uninitialized memory.
25263 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
25264 bogus uninitialized warning.
25265 (fixed_convert_from_real): Likewise.
25266
25267 2017-03-02 Bin Cheng <bin.cheng@arm.com>
25268
25269 PR tree-optimization/66768
25270 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
25271 iv_use if base object can't be determined.
25272
25273 2017-03-02 Jakub Jelinek <jakub@redhat.com>
25274
25275 PR tree-optimization/79345
25276 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
25277 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
25278 (get_pattern_stats): Initialize it.
25279 * genemit.c (gen_expand): Verify match_scratch numbers come after
25280 match_operand/match_dup numbers.
25281 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
25282 match_scratch numbers.
25283 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
25284 Likewise.
25285 * config/s390/s390.md (trunctdsd2): Likewise.
25286
25287 2017-03-02 Richard Biener <rguenther@suse.de>
25288
25289 * wide-int.h (wide_int_storage::operator=): Implement in terms
25290 of wi::copy.
25291
25292 2017-03-02 Richard Biener <rguenther@suse.de>
25293
25294 PR tree-optimization/79777
25295 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
25296 the to insert expression to sth existing.
25297
25298 2017-03-01 Martin Sebor <msebor@redhat.com>
25299
25300 PR middle-end/79692
25301 * gimple-ssa-sprintf.c
25302 (directive::known_width_and_precision): New function.
25303 (format_integer): Use it.
25304 (get_mpfr_format_length): Consider the full range of precision
25305 when computing %g output with the # flag. Set the likely byte
25306 count to 3 rather than 1 when precision is indeterminate.
25307 (format_floating): Correct the lower bound of precision.
25308
25309 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25310
25311 * doc/invoke.texi: Document default code model for 64-bit Linux.
25312
25313 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
25314
25315 PR target/79752
25316 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
25317 udiv rather than div since input pattern is unsigned.
25318
25319 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
25320
25321 * config/i386/i386.c (print_reg): Warn for values of
25322 unsupported size in integer register.
25323
25324 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
25325
25326 PR target/79439
25327 * config/rs6000/predicates.md (current_file_function_operand): Do
25328 not allow self calls to be local if the function is replaceable.
25329
25330 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
25331
25332 PR target/79395
25333 * config/rs6000/altivec.h (vec_ctz and others): Change the
25334 preprocessor macro that controls conditional compilation from
25335 _ARCH_PWR9 to __POWER9_VECTOR__.
25336 (vec_all_ne): Change parameterization of __altivec_scalar_pred
25337 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
25338 control (instead of _ARCH_PWR9 control) so that template
25339 definition uses power9-specific function.
25340 (vec_any_eq): Likewise.
25341 (vec_all_ne): Change macro definition to use a power9-specific
25342 expansion under #ifdef __POWER9_VECTOR__ control (instead of
25343 _ARCH_PWR9 control).
25344 (vec_any_eq) Likewise.
25345 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
25346 expansion for CMPNEF to remove support for xvcmpnesp instruction.
25347 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
25348 support for xvcmpnedp instruction.
25349 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
25350 macro expansion so that Power9 implementation of vec_all_ne does
25351 not use the AltiVec predicate framework.
25352 (VCMPNEH_P): Likewise.
25353 (VCMPNEW_P): Likewise.
25354 (VCMPNED_P): Likewise.
25355 (VCMPNEFP_P): Likewise.
25356 (VCMPNEDP_P): Likewise.
25357 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
25358 implementation of vec_any_eq to not use AltiVec predicate
25359 framework.
25360 (VCMPAEH_P): Likewise.
25361 (VCMPAEW_P): Likewise.
25362 (VCMPAED_P): Likewise.
25363 (VCMPAEFP_P): Likewise.
25364 (VCMPAEDP_P): Likewise.
25365 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
25366 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
25367 not use the AltiVec predicate framework.
25368 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
25369 of vec_any_eq to not use AltiVec predicate framework.
25370 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
25371 support for predefined __POWER9_VECTOR__ macro to indicate that
25372 Power9 instruction selection is enabled.
25373 (altivec_overloaded_builtins): Remove extraneous
25374 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
25375 function argument types RS6000_BTI_bool_V16QI and
25376 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
25377 entry for overloaded function argument types RS6000_BTI_bool_V4SI
25378 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
25379 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
25380 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
25381 Power9 for implementations of vec_cmpne. Change the signature for
25382 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
25383 (representing vec_all_ne) to remove the previously described first
25384 argument of type RS6000_BTI_INTSI, as this was an artifact of
25385 reliance on the AltiVec predicate framework, which is no longer
25386 used in the implementation of these functions. Add
25387 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
25388 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
25389 since, unlike the AltiVec predicate framework implementation, we
25390 do not share function descriptors between vec_alle and vec_anyeq.
25391 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
25392 set of modes that receive special treatment even when
25393 TARGET_P9_VECTOR is true. The special treatment emits code that
25394 does not depend on Power9 instructions.
25395 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
25396 define_expand to not rely on AltiVec predicate framework.
25397 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
25398 function.
25399 (vector_ne_v2di_p): Change this define_expand to not rely on
25400 AltiVec predicate framework.
25401 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
25402 function.
25403 (vector_ne_<mode>_p): Change this define_expand to not rely on
25404 AltiVec predicate framework.
25405 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
25406 function.
25407 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
25408 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
25409 define_insn pattern.
25410 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
25411 define_insn pattern because the xvcmpne<VSs>. instruction is not
25412 supported.
25413 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
25414 instruction is not supported.
25415
25416 2017-03-01 Jakub Jelinek <jakub@redhat.com>
25417
25418 * config/nvptx/nvptx.c: Include intl.h.
25419
25420 2017-03-01 Martin Jambor <mjambor@suse.cz>
25421
25422 PR lto/78140
25423 * ipa-prop.h (ipa_bits): Removed field known.
25424 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
25425 to pointers. Adjusted their comments to warn about their sharing.
25426 (ipcp_transformation_summary): Change bits to a vector of pointers.
25427 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
25428 (ipa_get_ipa_bits_for_value): Declare.
25429 * tree-vrp.h (value_range): Mark as GTY((for_user)).
25430 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
25431 (ipa_bits_hash_table): Likewise.
25432 (ipa_vr_ggc_hash_traits): Likewise.
25433 (ipa_vr_hash_table): Likewise.
25434 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
25435 being pointers and vr_known being removed.
25436 (ipa_set_jf_unknown): Likewise.
25437 (ipa_get_ipa_bits_for_value): New function.
25438 (ipa_set_jfunc_bits): Likewise.
25439 (ipa_get_value_range): New overloaded functions.
25440 (ipa_set_jfunc_vr): Likewise.
25441 (ipa_compute_jump_functions_for_edge): Use the above functions to
25442 construct bits and vr parts of jump functions.
25443 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
25444 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
25445 exist.
25446 (ipcp_grow_transformations_if_necessary): Also allocate
25447 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
25448 exist.
25449 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
25450 them. Fix too long lines.
25451 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
25452 vr_known being removed.
25453 (ipa_read_jump_function): Use new setter functions to construct bits
25454 and vr parts of jump functions or set them to NULL.
25455 (write_ipcp_transformation_info): Adjust for bits being pointers.
25456 (read_ipcp_transformation_info): Likewise.
25457 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
25458 space.
25459 Include gt-ipa-prop.h.
25460 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
25461 being pointers.
25462 (ipcp_store_bits_results): Likewise.
25463 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
25464 Do not write to existing jump functions but use a temporary instead.
25465
25466 2017-03-01 Jakub Jelinek <jakub@redhat.com>
25467
25468 PR c++/79681
25469 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
25470 attempt to use its first operand as BIT_FIELD_REF base.
25471
25472 2017-03-01 Richard Biener <rguenther@suse.de>
25473
25474 PR middle-end/79721
25475 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
25476 interpolating formula in wrapping arithmetic.
25477 (chrec_apply): Convert chrec_evaluate return value to wanted type.
25478
25479 2017-03-01 Jakub Jelinek <jakub@redhat.com>
25480
25481 PR tree-optimization/79734
25482 * tree-vect-generic.c (expand_vector_condition): Optimize
25483 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
25484 Handle VEC_COND_EXPR where comparison has different inner width from
25485 type's inner width.
25486
25487 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
25488
25489 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
25490 markup, and similar issues. Remove @opindex entries for things
25491 that aren't options. Add missing -mmpy-option entries.
25492
25493 2017-02-28 Jakub Jelinek <jakub@redhat.com>
25494
25495 PR tree-optimization/79737
25496 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
25497 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
25498 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
25499 instead of byte_size. Formatting fix.
25500 (shift_bytes_in_array_right): Formatting fix.
25501
25502 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
25503
25504 PR target/79749
25505 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
25506 condition on optimize for the leaf function test.
25507
25508 2017-02-28 Martin Liska <mliska@suse.cz>
25509
25510 PR lto/79625
25511 * read-rtl-function.c (function_reader::handle_unknown_directive):
25512 Bail out when one uses -flto.
25513
25514 2017-02-28 Martin Liska <mliska@suse.cz>
25515
25516 * common.opt: Replace space with tabular for options of <number>
25517 type.
25518 * config/i386/i386.opt: Show <number> value for
25519 -mlarge-data-threshold.
25520 * opts.c (print_filtered_help): Do not display number in hexadecimal
25521 format.
25522
25523 2017-02-28 Martin Liska <mliska@suse.cz>
25524
25525 * common.opt: Fix --help=option -Q for options which are of
25526 an enum type.
25527
25528 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
25529
25530 * config/i386/i386.c (print_reg): Error out for values
25531 of 8-bit size in invalid integer register.
25532
25533 2017-02-28 Martin Sebor <msebor@redhat.com>
25534
25535 PR tree-optimization/79691
25536 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
25537
25538 2017-02-28 Jakub Jelinek <jakub@redhat.com>
25539
25540 PR target/79729
25541 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
25542 gcc_unreachable with output_operand_lossage.
25543
25544 2017-02-28 Richard Biener <rguenther@suse.de>
25545
25546 PR tree-optimization/79740
25547 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
25548 inserts.
25549 (visit_nary_op): Insert the nary into the hashtable if we
25550 pattern-matched sth.
25551 * tree-ssa-pre.c (eliminate_insert): Robustify.
25552
25553 2017-02-28 Richard Biener <rguenther@suse.de>
25554
25555 PR middle-end/79731
25556 * fold-const.c (decode_field_reference): Reject out-of-bound
25557 accesses.
25558
25559 2017-02-28 Jakub Jelinek <jakub@redhat.com>
25560
25561 * config/i386/i386.c: Include intl.h.
25562 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
25563 instead of just cond ? "..." : "...".
25564 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
25565 * coverage.c (read_counts_file): Likewise.
25566 * omp-offload.c: Include intl.h.
25567 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
25568 of just cond ? "..." : "...".
25569 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
25570 of just cond ? "..." : "...".
25571
25572 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
25573
25574 PR target/79742
25575 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
25576 entry, if present.
25577 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
25578 'tune for' CPU name.
25579 * config/arm/arm-cpu-data.h: Regenerated.
25580
25581 2017-02-28 Richard Biener <rguenther@suse.de>
25582
25583 PR tree-optimization/79732
25584 * tree-inline.c (expand_call_inline): Do not shadow var.
25585
25586 2017-02-28 Richard Biener <rguenther@suse.de>
25587
25588 PR tree-optimization/79723
25589 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
25590 address-space properly.
25591
25592 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
25593
25594 * doc/optinfo.texi (Optimization groups): Fix option used for
25595 OPTGROUP_ALL.
25596 * doc/invoke.texi (-fopt-info): Document "omp".
25597 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
25598 (OPTGROUP_ALL): Add OPTGROUP_OMP.
25599 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
25600 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
25601 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
25602
25603 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
25604 all users.
25605 * dumpfile.c (optgroup_options): Instead of "openmp", associate
25606 OPTGROUP_OMP with "omp".
25607
25608 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
25609
25610 PR target/79544
25611 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
25612 for arithmetic shift of unsigned V2DI.
25613
25614 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
25615
25616 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
25617 arc/linux.h headers.
25618 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
25619 (LINK_SPEC): Likewise.
25620 (ARC_TLS_EXTRA_START_SPEC): Likewise.
25621 (EXTRA_SPECS): Likewise.
25622 (STARTFILE_SPEC): Likewise.
25623 (ENDFILE_SPEC): Likewise.
25624 (LIB_SPEC): Likewise.
25625 (TARGET_SDATA_DEFAULT): Likewise.
25626 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
25627 (MULTILIB_DEFAULTS): Likewise.
25628 (DWARF2_UNWIND_INFO): Likewise.
25629 * config/arc/big.h: New file.
25630 * config/arc/elf.h: Likewise.
25631 * config/arc/linux.h: Likewise.
25632 * config/arc/t-uClibc: Remove.
25633
25634 2017-02-27 Bin Cheng <bin.cheng@arm.com>
25635
25636 PR tree-optimization/77536
25637 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
25638 (tree_transform_and_unroll_loop): Use above function to compute the
25639 estimated niter of unrolled loop and use it when scaling profile.
25640 Also use count info rather than frequency if it's non-zero.
25641 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
25642 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
25643 (vect_transform_loop): Call above function.
25644
25645 2017-02-27 Richard Biener <rguenther@suse.de>
25646
25647 PR tree-optimization/45397
25648 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
25649 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
25650 (visit_nary_op): Add pattern matching for CSEing sign-changed
25651 or truncated operations with wider ones.
25652
25653 2017-02-27 Richard Biener <rguenther@suse.de>
25654
25655 PR tree-optimization/79690
25656 * tree-vect-stmts.c (vectorizable_store): Use vector type
25657 built from the DR with address-space.
25658
25659 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
25660
25661 * doc/invoke.texi (Optimize Options): Refine the description
25662 of asan-use-after-return.
25663
25664 2017-02-25 Alan Modra <amodra@gmail.com>
25665
25666 PR rtl-optimization/79584
25667 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
25668 base, not ad->base_term, the reg within base. Remove assertion
25669 that ad->base == ad->base_term. Replace gen_int_mode using
25670 bogus mode with const0_rtx.
25671
25672 2017-02-25 Jakub Jelinek <jakub@redhat.com>
25673
25674 PR middle-end/79396
25675 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
25676 FMA_EXPR like tcc_binary or tcc_unary.
25677
25678 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
25679
25680 PR debug/77589
25681 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
25682 bitfield.
25683 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
25684 (output_loc_operands): Handle DW_OP_call_ref and
25685 DW_OP_GNU_variable_value.
25686 (struct variable_value_struct): New type.
25687 (struct variable_value_hasher): Likewise.
25688 (variable_value_hash): New variable.
25689 (string_types): Remove.
25690 (copy_loc_descr): New function.
25691 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
25692 (prepend_loc_descr_to_each): New function.
25693 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
25694 instead of add_loc_descr_to_each if the first argument is single
25695 location list and the second has multiple.
25696 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
25697 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
25698 when looking for variable value which doesn't have other location info.
25699 (loc_list_from_tree): Formatting fix.
25700 (gen_array_type_die): Simplify DW_AT_string_length handling.
25701 (adjust_string_types): Remove.
25702 (gen_subprogram_die): Don't call adjust_string_types nor test/set
25703 string_types. Call resolve_variable_values.
25704 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
25705 (resolve_addr_in_expr): Likewise. Add A argument.
25706 (copy_deref_exprloc): Remove deref argument. Adjust for the
25707 original expression being DW_OP_GNU_variable_value with optionally
25708 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
25709 optionally after it.
25710 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
25711 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
25712 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
25713 (variable_value_hasher::hash, variable_value_hasher::equal): New
25714 methods.
25715 (resolve_variable_value_in_expr, resolve_variable_value,
25716 resolve_variable_values, note_variable_value_in_expr,
25717 note_variable_value): New functions.
25718 (dwarf2out_early_finish): Call note_variable_value on all toplevel
25719 DIEs.
25720
25721 2017-02-24 Jakub Jelinek <jakub@redhat.com>
25722
25723 PR c/79677
25724 * opts.h (handle_generated_option): Add GENERATED_P argument.
25725 * opts-common.c (handle_option): Adjust function comment.
25726 (handle_generated_option): Add GENERATED_P argument, pass it to
25727 handle_option.
25728 (control_warning_option): Pass false to handle_generated_option
25729 GENERATED_P.
25730 * opts.c (maybe_default_option): Pass true to handle_generated_option
25731 GENERATED_P.
25732 * optc-gen.awk: Likewise.
25733
25734 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
25735
25736 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
25737 a REG, look at the REG it is a SUBREG of.
25738 (splitter for cmpeqsi_t): Ditto.
25739
25740 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
25741
25742 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
25743 the special USEs with the pattern of the insn, not the insn itself.
25744
25745 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
25746
25747 PR target/79473
25748 * doc/invoke.texi: Document -mload-store-pairs.
25749
25750 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
25751 Sandra Loosemore <sandra@codesourcery.com>
25752
25753 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
25754 argument isn't a CONST_INT.
25755 (nios2_alternate_compare_const): Assert op is a CONST_INT.
25756 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
25757 (nios2_validate_compare): Bypass alternate compare logic if *op2
25758 is not a CONST_INT.
25759 (ldstwm_operation_p): Return false if first_base is not a REG or
25760 if first_offset is not a CONST_INT.
25761
25762 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
25763
25764 * config/cris/cris.md: Use correct operand in a define_peephole2.
25765
25766 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
25767
25768 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
25769
25770 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
25771
25772 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
25773 this_insn if it is an INSN or JUMP_INSN.
25774 (force_offsettable): Look at base, not at addr.
25775 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
25776 on things that aren't necessarily CONST_INTs.
25777
25778 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
25779
25780 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
25781 -mfpmath=sse is the default also for x86-32 targets with SSE2
25782 instruction set when @option{-ffast-math} is enabled
25783
25784 2017-02-24 Jeff Law <law@redhat.com>
25785
25786 PR rtl-optimizatoin/79286
25787 * ira.c (update_equiv_regs): Drop may_trap_p exception to
25788 dominance test.
25789
25790 2017-02-24 Richard Biener <rguenther@suse.de>
25791
25792 PR tree-optimization/79389
25793 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
25794 debug insns.
25795
25796 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
25797
25798 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
25799 function comment to reflect reality.
25800 (loop_exits_before_overflow): Fix typo in function description.
25801
25802 2017-02-24 Richard Biener <rguenther@suse.de>
25803
25804 PR tree-optimization/79389
25805 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
25806 properly that a threading opportunity exists. Detect conditional
25807 copy/constant propagation opportunities.
25808
25809 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
25810
25811 * config/visium/visium.md (type): Add trap.
25812 (b): New mode attribute.
25813 (*btst): Rename into...
25814 (*btst<mode>): ...this and adjust.
25815 (*cbranchsi4_btst_insn): Rename into...
25816 (*cbranch<mode>4_btst_insn): ...this and adjust.
25817 (trap): New define_insn.
25818
25819 2017-02-23 Jakub Jelinek <jakub@redhat.com>
25820
25821 PR tree-optimization/79389
25822 * ifcvt.c (struct noce_if_info): Add rev_cond field.
25823 (noce_reversed_cond_code): New function.
25824 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
25825 reversed_comparison_code. Formatting fix.
25826 (noce_try_store_flag): Test rev_cond != NULL in addition to
25827 reversed_comparison_code.
25828 (noce_try_store_flag_constants): Likewise.
25829 (noce_try_store_flag_mask): Likewise.
25830 (noce_try_addcc): Use rev_cond if non-NULL instead of
25831 reversed_comparison_code.
25832 (noce_try_cmove_arith): Likewise. Formatting fixes.
25833 (noce_try_minmax, noce_try_abs): Clear rev_cond.
25834 (noce_find_if_block): Initialize rev_cond.
25835 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
25836 instead of false as last argument never attempt to reverse it
25837 afterwards.
25838
25839 2017-02-23 Bin Cheng <bin.cheng@arm.com>
25840
25841 PR tree-optimization/79663
25842 * tree-predcom.c (combine_chains): Process refs in reverse order
25843 only for ZERO length chains, and add explaining comment.
25844
25845 2017-02-23 Jeff Law <law@redhat.com>
25846
25847 PR tree-optimization/79578
25848 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
25849 in call to operand_equal_p.
25850
25851 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
25852
25853 PR target/71017
25854 * config/i386/cpuid.h: Fix another undefined behavior.
25855
25856 2017-02-23 Richard Biener <rguenther@suse.de>
25857
25858 PR tree-optimization/79683
25859 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
25860 vector types for data-refs.
25861
25862 2017-02-23 Martin Liska <mliska@suse.cz>
25863
25864 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
25865
25866 2017-02-23 Jakub Jelinek <jakub@redhat.com>
25867
25868 PR middle-end/79665
25869 * internal-fn.c (get_range_pos_neg): Moved to ...
25870 * tree.c (get_range_pos_neg): ... here. No longer static.
25871 * tree.h (get_range_pos_neg): New prototype.
25872 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
25873 are known to be in between 0 and signed maximum inclusive, try to
25874 expand both unsigned and signed divmod and use the cheaper one from
25875 those.
25876
25877 2017-02-22 Jeff Law <law@redhat.com>
25878
25879 PR tree-optimization/79578
25880 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
25881 to compare base operands.
25882
25883 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
25884
25885 PR target/79211
25886 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
25887 gpc_reg_operand instead of fpr_reg_operand.
25888
25889 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
25890
25891 * config/mips/mips.c (mips_return_in_memory): Force FP
25892 vector types to be returned in memory for o32 ABI.
25893
25894 2017-02-22 Jakub Jelinek <jakub@redhat.com>
25895
25896 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
25897 instead of DW_TAG_member for static data member declarations and don't
25898 set no_linkage_name for static inline data members.
25899 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
25900 to DW_TAG_member.
25901
25902 2017-02-22 Martin Liska <mliska@suse.cz>
25903
25904 * doc/invoke.texi: Replace inequality signs with square brackets
25905 for -Wnormalized.
25906
25907 2017-02-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25908
25909 PR tree-optimization/68644
25910 * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
25911
25912 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
25913
25914 PR target/78660
25915 * lra-constraints.c (simplify_operand_subreg): Handle
25916 WORD_REGISTER_OPERATIONS targets.
25917
25918 2017-02-22 Jakub Jelinek <jakub@redhat.com>
25919
25920 PR target/70465
25921 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
25922 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
25923 elimination by swapping fld*.
25924
25925 2017-02-22 Richard Biener <rguenther@suse.de>
25926
25927 PR tree-optimization/79673
25928 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
25929 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
25930 irrelevant address-space qualifiers and avoiding a
25931 ADDR_SPACE_CONVERT_EXPR from fold_convert.
25932
25933 2017-02-22 Richard Biener <rguenther@suse.de>
25934
25935 PR tree-optimization/79666
25936 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
25937 to not symbolically negate if that may introduce undefined
25938 overflow.
25939
25940 2017-02-22 Martin Liska <mliska@suse.cz>
25941
25942 PR lto/79587
25943 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
25944 * data-streamer-out.c (streamer_write_gcov_count_stream):
25945 Likewise.
25946 * value-prof.c (stream_out_histogram_value): Make assert more
25947 precise based on type of counter.
25948
25949 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
25950
25951 PR target/79593
25952 * config/i386/i386.md (standard_x87sse_constant_load splitter):
25953 Use nonimmediate_operand instead of memory_operand for operand 1.
25954 (float-extend standard_x87sse_constant_load splitter): Ditto.
25955
25956 2017-02-21 Jeff Law <law@redhat.com>
25957
25958 PR tree-optimization/79621
25959 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
25960 blocks with edges to themselves.
25961
25962 2017-02-21 Jakub Jelinek <jakub@redhat.com>
25963
25964 PR target/79633
25965 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
25966 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
25967 Use gimple_call_builtin_p.
25968
25969 PR target/79570
25970 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
25971 on temporarily removed DEBUG_INSNs.
25972
25973 PR tree-optimization/79649
25974 * tree-loop-distribution.c (classify_partition): Give up on
25975 non-generic address space loads/stores.
25976
25977 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
25978
25979 * doc/loop.texi (Loop manipulation): Remove nonexistent
25980 tree_ssa_loop_version from the documentation.
25981 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
25982
25983 2017-02-21 Jakub Jelinek <jakub@redhat.com>
25984
25985 PR target/79494
25986 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
25987 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
25988 * config/rs6000/rs6000.c: Include except.h.
25989 (rs6000_expand_split_stack_prologue): Call
25990 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
25991
25992 2017-02-21 Martin Jambor <mjambor@suse.cz>
25993
25994 PR lto/79579
25995 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
25996 have been analyzed.
25997
25998 2017-02-21 Martin Jambor <mjambor@suse.cz>
25999
26000 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
26001 for backward compatibility only.
26002 * doc/invoke.texi (Option Summary): Remove all references to
26003 -fipa-cp-alignment.
26004
26005 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
26006
26007 PR target/78660
26008 Revert:
26009 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
26010
26011 * lra-constraints.c (curr_insn_transform): Handle
26012 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
26013
26014 2017-02-21 Martin Liska <mliska@suse.cz>
26015
26016 * config/i386/i386.opt: Replace -masm-dialect with -masm.
26017
26018 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
26019
26020 PR translation/79638
26021 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
26022
26023 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
26024
26025 PR ada/67205
26026 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
26027 (arm_function_ok_for_sibcall): Return false for an indirect call by
26028 descriptor if all the argument registers are used.
26029 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
26030 alignment of the function.
26031
26032 2017-02-21 Jakub Jelinek <jakub@redhat.com>
26033
26034 PR tree-optimization/61441
26035 * simplify-rtx.c (simplify_const_unary_operation): For
26036 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
26037 the sNaN unmodified.
26038
26039 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
26040
26041 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
26042 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
26043 instead of SYSTEM_HEADER_DIR.
26044
26045 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
26046 Martin Liška <mliska@suse.cz>
26047
26048 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
26049 Fix typos and grammar, use active voice, and clarify.
26050
26051 2017-02-20 Marek Polacek <polacek@redhat.com>
26052
26053 PR middle-end/79537
26054 * gimplify.c (gimplify_expr): Handle unused *&&L;.
26055
26056 PR sanitizer/79558
26057 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
26058
26059 2017-02-20 Jakub Jelinek <jakub@redhat.com>
26060
26061 PR target/79568
26062 * config/i386/i386.c (ix86_expand_builtin): Handle
26063 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
26064 ix86_builtins_isa[fcode].isa as a requirement of those
26065 flags and any other flag in the bitmask.
26066 (ix86_init_mmx_sse_builtins): Use 0 instead of
26067 ~OPTION_MASK_ISA_64BIT as mask.
26068 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
26069 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
26070 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
26071 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
26072
26073 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
26074
26075 PR target/78012
26076 * lra-constraints.c (split_reg): Check requested split mode
26077 is supported by the register.
26078
26079 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
26080
26081 * lra-constraints.c (simplify_operand_subreg): Remove early
26082 return false.
26083
26084 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
26085
26086 PR target/78660
26087 * lra-constraints.c (curr_insn_transform): Tighten condition
26088 for converting SUBREG reloads from OP_OUT to OP_INOUT.
26089
26090 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
26091
26092 PR target/78660
26093 * lra-constraints.c (curr_insn_transform): Handle
26094 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
26095
26096 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
26097
26098 Revert:
26099 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
26100
26101 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
26102
26103 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
26104
26105 PR c++/69523
26106 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
26107 description.
26108
26109 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
26110
26111 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
26112 for FMA_EXPR.
26113
26114 2017-02-18 Jakub Jelinek <jakub@redhat.com>
26115
26116 * final.c (last_columnnum, override_columnnum): New variables.
26117 (final_start_function): Set last_columnnum, pass it to begin_prologue
26118 hook and pass 0 to dwarf2out_begin_prologue.
26119 (final_scan_insn): Update override_columnnum. Pass last_columnnum
26120 to source_line debug hook.
26121 (notice_source_line): Compute last_columnnum and for debug_column_info
26122 return true on column changes.
26123 * debug.h (struct gcc_debug_hooks): Add column argument to
26124 source_line and begin_prologue hooks.
26125 (debug_nothing_int_charstar_int_bool): Remove prototype.
26126 (debug_nothing_int_int_charstar,
26127 debug_nothing_int_int_charstar_int_bool): New prototypes.
26128 (dwarf2out_begin_prologue): Add column argument.
26129 * debug.c (do_nothing_debug_hooks): Adjust source_line and
26130 begin_prologue hooks.
26131 (debug_nothing_int_charstar_int_bool): Remove.
26132 (debug_nothing_int_int_charstar,
26133 debug_nothing_int_int_charstar_int_bool): New functions.
26134 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
26135 through to dwarf2out_source_line.
26136 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
26137 (dwarf2out_source_line): Add column argument, emit it if requested.
26138 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
26139 arguments.
26140 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
26141 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
26142 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
26143 through to dwarf2out_begin_prologue.
26144 (vmsdbgout_source_line): Add column argument, pass it through to
26145 dwarf2out_source_line.
26146 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
26147 dbxout_source_line caller.
26148 (dbxout_source_line): Add column argument.
26149
26150 * common.opt (gno-column-info, gcolumn-info): New options.
26151 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
26152 (check_die): Also test for multiple DW_AT_decl_column attributes.
26153 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
26154 DW_AT_decl_column if requested.
26155 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
26156 if requested.
26157 (gen_variable_die): Likewise.
26158 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
26159 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
26160
26161 PR target/79569
26162 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
26163 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
26164 (ix86_handle_option): Handle OPT_m3dnowa.
26165 * doc/invoke.texi (-m3dnowa): Document.
26166 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
26167 -m3dnowa instead of -m3dnow -march=athlon.
26168
26169 PR target/79559
26170 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
26171 instead of gcc_assert for K, r and R code checks. Formatting fixes.
26172
26173 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26174
26175 PR target/79261
26176 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
26177 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
26178 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
26179 generator for vsx_xxpermdi_<mode>_be.
26180 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
26181 force big-endian semantics.
26182 (vsx_xxpermdi_<mode>_be): New define_expand with same
26183 implementation as previous version of vsx_xxpermdi_<mode>.
26184
26185 2017-02-17 Jakub Jelinek <jakub@redhat.com>
26186
26187 PR tree-optimization/79327
26188 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
26189 variable, its initialization and use.
26190
26191 2017-02-17 Julia Koval <julia.koval@intel.com>
26192
26193 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
26194 (OPTION_MASK_ISA_PKU_UNSET): New.
26195 (ix86_handle_option): Handle -mrdpid.
26196 * config/i386/cpuid.h (bit_RDPID): New.
26197 * config/i386/driver-i386.c (host_detect_local_cpu):
26198 Detect RDPID feature.
26199 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
26200 * config/i386/i386-c.c (ix86_target_macros_internal):
26201 Handle RDPID flag.
26202 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
26203 (ix86_valid_target_attribute_inner_p): Add "rdpid".
26204 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
26205 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
26206 * config/i386/i386.md (define_insn "rdpid"): New.
26207 * config/i386/i386.opt Add -mrdpid.
26208 * config/i386/immintrin.h (_rdpid_u32): New.
26209
26210 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
26211
26212 PR rtl-optimization/79541
26213 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
26214 instead of transforming it into USE.
26215
26216 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
26217
26218 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
26219 If HONOR_SNANS (SFmode) force the input to a register.
26220 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
26221 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
26222 an frsp or similar insn.
26223
26224 2017-02-17 Martin Liska <mliska@suse.cz>
26225
26226 PR rtl-optimization/79577
26227 * params.def (selsched-max-sched-times): Increase minimum to 1.
26228
26229 2017-02-17 Martin Liska <mliska@suse.cz>
26230
26231 PR rtl-optimization/79574
26232 * gcse.c (want_to_gcse_p): Prevent integer overflow.
26233
26234 2017-02-17 Martin Liska <mliska@suse.cz>
26235
26236 PR tree-optimization/79529
26237 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
26238 ssa_defined_default_def_p to handle cases which are implicitly
26239 defined.
26240 * tree-ssa.c (ssa_defined_default_def_p): New function.
26241 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
26242 which are implicitly defined.
26243 * tree-ssa.h (ssa_defined_default_def_p): Declare.
26244
26245 2017-02-17 Richard Biener <rguenther@suse.de>
26246
26247 PR middle-end/79576
26248 * params.def (max-ssa-name-query-depth): Limit to 10.
26249
26250 2017-02-17 Richard Biener <rguenther@suse.de>
26251
26252 PR tree-optimization/79552
26253 * tree-ssa-structalias.c (visit_loadstore): Properly verify
26254 default defs.
26255
26256 2017-02-17 Richard Biener <rguenther@suse.de>
26257
26258 PR bootstrap/79567
26259 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
26260
26261 2017-02-17 Marek Polacek <polacek@redhat.com>
26262
26263 PR middle-end/79536
26264 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
26265 (fold_negate_expr): New wrapper.
26266
26267 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
26268
26269 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
26270 Correct terminology and de-emphasize pre-standard behavior.
26271
26272 2017-02-16 Alan Modra <amodra@gmail.com>
26273
26274 PR rtl-optimization/79286
26275 * ira.c (def_dominates_uses): New function.
26276 (update_equiv_regs): Don't create an equivalence for insns that
26277 may trap where the register def does not dominate the use.
26278
26279 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
26280
26281 PR rtl-optimization/78127
26282 * lra.c (lra): Call lra_eliminate before finish the loop after
26283 lra_constraint.
26284
26285 2017-02-16 Richard Biener <rguenther@suse.de>
26286
26287 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
26288 isl/isl_val.h.
26289 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
26290 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
26291 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
26292 (isl_val_int_from_wi): New function.
26293 (extract_affine_gmp): Rename to ...
26294 (extract_affine_wi): ... this, take a widest_int.
26295 (extract_affine_int): Just wrap extract_affine_wi.
26296 (add_param_constraints): Use isl_val_int_from_wi.
26297 (add_loop_constraints): Likewise, and extract_affine_wi.
26298
26299 2017-02-15 Jeff Law <law@redhat.com>
26300
26301 PR middle-end/79521
26302 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
26303 ira_init_register_move_cost_if_necessary.
26304
26305 2017-02-15 Martin Sebor <msebor@redhat.com>
26306
26307 PR middle-end/32003
26308 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
26309 removed in a prior commit.
26310
26311 2017-02-15 Bin Cheng <bin.cheng@arm.com>
26312
26313 PR tree-optimization/79347
26314 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
26315 counters during peeling.
26316
26317 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
26318
26319 * Makefile.in (site.exp): Remove "set ISLVER".
26320
26321 2017-02-15 Jakub Jelinek <jakub@redhat.com>
26322
26323 PR target/79487
26324 * real.c (real_from_integer): Call real_convert even for decimal.
26325
26326 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
26327
26328 PR target/79421
26329 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
26330
26331 2017-02-14 Andrew Pinski <apinski@cavium.com>
26332
26333 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
26334 cores and change the partno/implementer to be correct.
26335 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
26336 the 'B" as the implementer.
26337 * config/aarch64/aarch64-tune.md: Regenerate.
26338
26339 2017-02-14 Carl Love <cel@us.ibm.com>
26340
26341 * config/rs6000/rs6000.c: Add case statement entry to make the
26342 xvcvuxdsp built-in argument unsigned.
26343 * config/rs6000/vsx.md: Fix the source and return operand types so they
26344 match the instruction definitions from the ISA document. Fix typo
26345 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
26346 statement.
26347
26348 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
26349
26350 PR target/79282
26351 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
26352 member early_clobber_alts.
26353 * lra-lives.c (reg_early_clobber_p): New.
26354 (process_bb_lives): Use it.
26355 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
26356 (debug_operand_data): Initialize early_clobber_alts.
26357 (setup_operand_alternative): Set up early_clobber_alts.
26358 (collect_non_operand_hard_regs): Ditto. Pass early clobber
26359 alternatives to new_insn_reg.
26360 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
26361 it.
26362 (lra_update_insn_regno_info): Pass the new arg.
26363
26364 2017-02-14 Jakub Jelinek <jakub@redhat.com>
26365
26366 PR middle-end/79505
26367 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
26368 (new_oacc_loop_raw): Don't clear already cleared fields.
26369
26370 PR target/79481
26371 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
26372 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
26373 _mm512_prefetch_i64gather_ps): New inline functions and macros.
26374
26375 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
26376
26377 PR target/79495
26378 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
26379
26380 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
26381
26382 PR target/79498
26383 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
26384 the extra instruction to the right place to store 128-bit constant
26385 when needed.
26386
26387 2017-02-14 Martin Sebor <msebor@redhat.com>
26388
26389 PR middle-end/79448
26390 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
26391 warning for strings of unknown length.
26392
26393 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
26394
26395 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
26396
26397 2017-02-14 Jeff Law <law@redhat.com>
26398
26399 PR target/79404
26400 * ira-costs.c (scan_one_insn): Initialize register move costs
26401 for pseudos seen in USE/CLOBBER insns.
26402
26403 PR tree-optimization/79095
26404 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
26405 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
26406 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
26407 if the operands are known to be not equal, then the resulting range
26408 is ~[0,0].
26409 (intersect_ranges): If the new range is ~[0,0] and the old range is
26410 wide, then prefer ~[0,0].
26411 * tree-vrp.c (overflow_comparison_p_1): New function.
26412 (overflow_comparison_p): New function.
26413 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
26414 if NAME is used in an overflow test.
26415 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
26416 overflow check that can be expressed as an equality test, then adjust
26417 ops to be that equality test.
26418
26419 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26420
26421 * config/s390/s390-builtin-types.def: Remove flags argument.
26422 * config/s390/s390.c (s390_init_builtins): Likewise.
26423
26424 2017-02-14 Martin Liska <mliska@suse.cz>
26425
26426 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
26427 vector. Fix trailing white spaces.
26428
26429 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
26430
26431 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
26432 HFmode.
26433
26434 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26435
26436 PR rtl-optimization/68664
26437 * config/arm/arm.c (arm_sched_can_speculate_insn):
26438 New function. Declare prototype.
26439 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
26440
26441 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26442
26443 PR rtl-optimization/68664
26444 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
26445 New function.
26446 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
26447
26448 2017-02-14 Amit Pawar <amit.pawar@amd.com>
26449
26450 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
26451 max skip bytes for function, loop and jump.
26452
26453 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
26454
26455 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
26456 ABS_EXPR for gimple dump.
26457
26458 2017-02-14 Jakub Jelinek <jakub@redhat.com>
26459
26460 PR target/79462
26461 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
26462
26463 PR tree-optimization/79408
26464 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
26465 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
26466 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
26467 also if rhs1 is INTEGER_CST.
26468
26469 2017-02-14 Richard Biener <rguenther@suse.de>
26470
26471 PR middle-end/79432
26472 * tree-into-ssa.c (insert_phi_nodes): When the function can
26473 have abnormal edges rewrite SSA names with broken use-def
26474 dominance out of SSA and register them for PHI insertion.
26475
26476 2017-02-13 Martin Sebor <msebor@redhat.com>
26477
26478 PR middle-end/79496
26479 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
26480 clearing info.nowrite flag when snprintf size argument is a range.
26481
26482 2017-02-13 Jakub Jelinek <jakub@redhat.com>
26483
26484 * cprop.c (cprop_jump): Add missing space in string literal.
26485 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
26486 (get_constraint_for_component_ref): Likewise.
26487 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
26488 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
26489 * lra-constraints.c (process_alt_operands): Likewise.
26490 * ipa-inline.c (inline_small_functions): Likewise.
26491 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
26492 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
26493 * trans-mem.c (diagnose_tm_1_op): Likewise.
26494 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
26495 (grid_parallel_clauses_gridifiable): Likewise.
26496
26497 * config/nvptx/mkoffload.c (process): Add space in between
26498 , and %d.
26499
26500 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
26501 "MOD4_SSE_REGS" and "ALL_REGS".
26502
26503 * spellcheck.c (test_data): Add , in between "foo" and "food".
26504
26505 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
26506
26507 PR target/79449
26508 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
26509 boundary crossing check and subsequent code generation agree.
26510
26511 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26512
26513 * config/aarch64/aarch64.c (has_memory_op): Delete.
26514 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
26515 has_memory_op.
26516
26517 2017-02-13 Jakub Jelinek <jakub@redhat.com>
26518
26519 PR rtl-optimization/79388
26520 PR rtl-optimization/79450
26521 * combine.c (distribute_notes): When removing TEM_INSN for which
26522 corresponding dest has last value recorded, invalidate that last
26523 value.
26524
26525 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26526
26527 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
26528 of explicit '@'. Add missing assembly comment marker on branch costs
26529 printout.
26530
26531 2017-02-13 Nathan Sidwell <nathan@acm.org>
26532
26533 * gengtype-lex.l (<in_struct>): Add '/'.
26534
26535 2017-02-13 Martin Liska <mliska@suse.cz>
26536
26537 PR c/79471
26538 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
26539
26540 2017-02-13 Richard Biener <rguenther@suse.de>
26541
26542 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
26543 Remove.
26544 * configure: Re-generate.
26545 * config.in: Likewise.
26546 * graphite-dependences.c: Simplify as if
26547 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
26548 * graphite-isl-ast-to-gimple.c: Likewise.
26549 * graphite-optimize-isl.c: Likewise.
26550 * graphite-poly.c: Likewise.
26551 * graphite-sese-to-poly.c: Likewise.
26552 * graphite.h: Likewise.
26553 * toplev.c: Include isl/version.h and use isl_version () for
26554 printing the ISL version.
26555 * doc/install.texi: Update ISL requirement.
26556
26557 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
26558
26559 * doc/standards.texi (Standards): Update reference to
26560 Objective-C 2.0.
26561
26562 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
26563
26564 * doc/extend.texi (Named Address Spaces): sourceware.org now
26565 defaults to https.
26566 * doc/install.texi (Binaries): Ditto.
26567 (Specific): Ditto.
26568
26569 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
26570
26571 * doc/cpp.texi: Replace "stringify"/"stringification" with C
26572 standard terminology "stringize"/"stringizing" throughout.
26573 * doc/cppinternals.texi: Likewise.
26574
26575 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
26576
26577 * doc/extend.texi: Fix some spelling mistakes and typos.
26578 * doc/invoke.texi: Likewise.
26579
26580 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
26581
26582 PR ipa/79224
26583 * params.def (inline-min-speedup) Change from 10 to 8.
26584
26585 2017-02-11 Jakub Jelinek <jakub@redhat.com>
26586
26587 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
26588 4.5.
26589
26590 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
26591
26592 PR ipa/79224
26593 * ipa-inline-analysis.c (get_minimal_bb): New function.
26594 (record_modified): Use it.
26595 (remap_edge_change_prob): Handle also ancestor functions.
26596
26597 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
26598
26599 * doc/contrib.texi (Contributors): Remove broken link into
26600 the Mauve CVS repository.
26601
26602 2017-02-11 Jakub Jelinek <jakub@redhat.com>
26603
26604 PR middle-end/79454
26605 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
26606 result computation whenever lhs doesn't have vector mode, not
26607 just when it has BLKmode.
26608
26609 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
26610
26611 * doc/makefile.texi (profiledbootstrap): Refer to the
26612 installation instructions only in textual form.
26613
26614 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
26615
26616 PR target/79295
26617 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
26618
26619 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
26620
26621 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
26622 (Specific): Update mingw-w64 reference.
26623 (Binaries): Ditto.
26624 (Specific): Remove broken link to Renesas RX processor.
26625
26626 2017-02-10 Richard Biener <rguenther@suse.de>
26627
26628 * toplev.c (process_options): Do not mention obsolete graphite
26629 options when printing sorry message about missing graphite support.
26630 Mention -floop-nest-optimize.
26631
26632 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
26633
26634 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
26635 (vtst_p16): Likewise.
26636 (vtstq_p8): Likewise.
26637 (vtstq_p16): Likewise.
26638 (vtst_p64): New.
26639 (vtstq_p64): Likewise.
26640 * config/arm/arm_neon.h (vgetq_lane_p64): New.
26641 (vset_lane_p64): New.
26642 (vsetq_lane_p64): New.
26643
26644 2017-02-10 Jakub Jelinek <jakub@redhat.com>
26645
26646 PR tree-optimization/79411
26647 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
26648 stmt operands are SSA_NAMEs used in abnormal phis.
26649 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
26650 phis.
26651
26652 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
26653
26654 PR ipa/70795
26655 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
26656 flag if needed.
26657
26658 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
26659
26660 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
26661
26662 2017-02-09 Jakub Jelinek <jakub@redhat.com>
26663
26664 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
26665 to avoid warning.
26666
26667 PR c/79413
26668 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
26669 not arbitrary TREE_CONSTANT.
26670
26671 PR c/79431
26672 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
26673 "omp declare target link" attribute unless is_global_var.
26674 * omp-offload.c (find_link_var_op): Likewise.
26675
26676 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
26677 Chung-Lin Tang <cltang@codesourcery.com>
26678
26679 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
26680 OMP_CLAUSE_TILE.
26681 (gimplify_adjust_omp_clauses): Don't delete TILE.
26682 (gimplify_omp_for): Deal with TILE.
26683 * internal-fn.c (expand_GOACC_TILE): New function.
26684 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
26685 (GOACC_TILE): New.
26686 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
26687 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
26688 element fields.
26689 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
26690 avoid DIV for outermost collapse var.
26691 (expand_oacc_for): Insert tile element loop as needed. Adjust.
26692 Remove out of date comments, fix whitespace.
26693 * omp-general.c (omp_extract_for_data): Deal with tiling.
26694 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
26695 adjust OLF_DIM_BASE value.
26696 (struct omp_for_data): Add tiling field.
26697 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
26698 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
26699 for auto loops. Remove default auto determining, moved to
26700 oacc_loop_fixed_partitions.
26701 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
26702 stmts, add e_mask field.
26703 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
26704 (oacc_thread_numbers): Use oacc_dim_call.
26705 (oacc_xform_tile): New.
26706 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
26707 (finish_oacc_loop): Adjust for ifns vector.
26708 (oacc_loop_discover_walk): Append loop abstraction sites to list,
26709 add case for GOACC_TILE fns.
26710 (oacc_loop_xform_loop): Delete.
26711 (oacc_loop_process): Iterate over call list directly, and add
26712 handling for GOACC_TILE fns.
26713 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
26714 dump partitioning.
26715 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
26716 vector partitioning to outer loops. Assign 2 partitions to loops
26717 when available. Add TILE handling.
26718 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
26719 (execite_oacc_device_lower): Process GOACC_TILE fns,
26720 ignore unknown specs.
26721 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
26722 * tree.c (omp_clause_num_ops): Adjust TILE ops.
26723 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
26724
26725 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
26726
26727 * configure.ac (ACX_BUGURL): Update.
26728 * configure: Regenerate.
26729
26730 2017-02-09 Richard Biener <rguenther@suse.de>
26731
26732 PR tree-optimization/69823
26733 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
26734 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
26735
26736 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
26737
26738 * config/arc/arc-c.def: Add __NPS400__ definition.
26739 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
26740 (TARGET_NPS400): Define.
26741
26742 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
26743
26744 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
26745 file.
26746 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
26747 pointer, arch_info.
26748 (arc_cpu_types): Fill the arch_info field with a pointer into the
26749 arc_arch_types table.
26750 (arc_selected_cpu): Declare.
26751 * config/arc/arc.c (arc_selected_cpu): Make global.
26752 (arc_selected_arch): Delete.
26753 (arc_base_cpu): Delete.
26754 (arc_override_options): Remove references to deleted variables,
26755 update access to arch information.
26756 (ARC_OPT): Update access to arch information.
26757 (ARC_OPTX): Likewise.
26758 * config/arc/arc.h (arc_base_cpu): Remove declaration.
26759 (TARGET_ARC600): Update access to arch information.
26760 (TARGET_ARC601): Likewise.
26761 (TARGET_ARC700): Likewise.
26762 (TARGET_EM): Likewise.
26763 (TARGET_HS): Likewise.
26764 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
26765 information.
26766
26767 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
26768
26769 PR target/78604
26770 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
26771 condition/operands for integer GE/LE/GEU/LEU operations.
26772
26773 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
26774
26775 PR translation/79397
26776 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
26777 of AltiVec.
26778
26779 2017-02-08 Martin Jambor <mjambor@suse.cz>
26780
26781 PR ipa/79375
26782 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
26783 whether allocation happened.
26784 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
26785 nothing was allocated.
26786
26787 2017-02-08 Jakub Jelinek <jakub@redhat.com>
26788
26789 PR tree-optimization/79408
26790 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
26791 constant, but SSA_NAME with a known integer range, use the minimum
26792 of that range instead of op1 to determine if modulo can be replaced
26793 with its first operand.
26794
26795 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26796
26797 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
26798
26799 2017-02-08 Richard Biener <rguenther@suse.de>
26800
26801 PR tree-optimization/71824
26802 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
26803 Check all loops contained in the merged region.
26804
26805 2017-02-07 Andrew Pinski <apinski@cavium.com>
26806
26807 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
26808
26809 2017-02-07 Andrew Pinski <apinski@cavium.com>
26810
26811 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
26812 (thunderxt88): Likewise.
26813 (thunderxt81): Disable LSE and change v8.1 to v8.
26814 (thunderxt83): Likewise.
26815
26816 2017-02-07 Jakub Jelinek <jakub@redhat.com>
26817 Richard Biener <rguenther@suse.de>
26818
26819 PR middle-end/79399
26820 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
26821 type from int to size_t.
26822 * ira-costs.c (struct_costs_size): Change type from int to size_t.
26823
26824 2017-02-07 Jakub Jelinek <jakub@redhat.com>
26825
26826 PR rtl-optimization/79386
26827 * cprop.c (bypass_conditional_jumps): Initialize
26828 bypass_last_basic_block already before splitting bbs after
26829 unconditional traps...
26830 (bypass_conditional_jumps): ... rather than here.
26831
26832 PR target/79299
26833 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
26834 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
26835 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
26836 fix -masm=intel patterns.
26837
26838 2017-02-07 Richard Biener <rguenther@suse.de>
26839
26840 PR tree-optimization/79256
26841 PR middle-end/79278
26842 * builtins.c (get_object_alignment_2): Use min_align_of_type
26843 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
26844 and ADJUST_FIELD_ALIGN.
26845
26846 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
26847 type parameter.
26848 * doc/tm.texi: Regenerate.
26849 * stor-layout.c (layout_decl): Adjust.
26850 (update_alignment_for_field): Likewise.
26851 (place_field): Likewise.
26852 (min_align_of_type): Likewise.
26853 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
26854 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
26855 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
26856 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
26857 * config/frv/frv.c (frv_adjust_field_align): Likewise.
26858 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
26859 * config/i386/i386.c (x86_field_alignment): Likewise.
26860 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
26861 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
26862 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
26863 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
26864 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
26865 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
26866 Likewise.
26867
26868 Revert
26869 2017-01-30 Richard Biener <rguenther@suse.de>
26870
26871 PR tree-optimization/79256
26872 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
26873 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
26874 alignment on TYPE.
26875
26876 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
26877
26878 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
26879 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
26880 builtins to SImode and emit a zero-extend, if necessary.
26881
26882 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
26883
26884 * docs/invoke.texi (RISC-V Options): Alphabetize.
26885
26886 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
26887
26888 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
26889 options.
26890
26891 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
26892
26893 * config/riscv/riscv.c: New file.
26894 * common/config/riscv/riscv-common.c: Likewise.
26895 * config.gcc: Likewise.
26896 * config/riscv/constraints.md: Likewise.
26897 * config/riscv/elf.h: Likewise.
26898 * config/riscv/generic.md: Likewise.
26899 * config/riscv/linux.h: Likewise.
26900 * config/riscv/multilib-generator: Likewise.
26901 * config/riscv/peephole.md: Likewise.
26902 * config/riscv/pic.md: Likewise.
26903 * config/riscv/predicates.md: Likewise.
26904 * config/riscv/riscv-builtins.c: Likewise.
26905 * config/riscv/riscv-c.c: Likewise.
26906 * config/riscv/riscv-ftypes.def: Likewise.
26907 * config/riscv/riscv-modes.def: Likewise.
26908 * config/riscv/riscv-opts.h: Likewise.
26909 * config/riscv/riscv-protos.h: Likewise.
26910 * config/riscv/riscv.h: Likewise.
26911 * config/riscv/riscv.md: Likewise.
26912 * config/riscv/riscv.opt: Likewise.
26913 * config/riscv/sync.md: Likewise.
26914 * config/riscv/t-elf-multilib: Likewise.
26915 * config/riscv/t-linux: Likewise.
26916 * config/riscv/t-linux-multilib: Likewise.
26917 * config/riscv/t-riscv: Likewise.
26918 * configure.ac: Likewise.
26919 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
26920 Waterman as RISC-V maintainers.
26921 * doc/install.texi: Add RISC-V entries.
26922 * doc/invoke.texi: Add RISC-V options section.
26923 * doc/md.texi: Add RISC-V constraints section.
26924 * configure: Regenerated.
26925
26926 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
26927
26928 PR target/66144
26929 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
26930 false values to be constant vectors with all 0 or all 1 bits set.
26931 (vcondu<mode><mode>): Likewise.
26932 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
26933 predicate.
26934 (fpmask_comparison_operator): Update comment.
26935 (vecint_comparison_operator): New predicate.
26936 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
26937 vector conditionals when the true and false values are constant
26938 vectors with all 0 bits or all 1 bits set.
26939
26940 2017-02-06 Martin Sebor <msebor@redhat.com>
26941
26942 PR tree-optimization/79376
26943 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
26944
26945 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
26946
26947 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
26948 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
26949 to simplify split condition.
26950
26951 2017-02-06 Jakub Jelinek <jakub@redhat.com>
26952
26953 * omp-expand.c (oxpand_omp_atomic_fetch_op,
26954 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
26955 false.
26956
26957 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
26958
26959 PR rtl-optimization/68664
26960 * target.def (can_speculate_insn): New hook.
26961 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
26962 * doc/tm.texi: Regenerate.
26963 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
26964 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
26965 (rs6000_sched_can_speculate_insn): New function.
26966
26967 2017-02-06 Jakub Jelinek <jakub@redhat.com>
26968
26969 PR tree-optimization/79284
26970 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
26971 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
26972 vectorizable_mask_load_store, vectorizable_operation,
26973 vect_is_simple_cond, get_same_sized_vectype): Use it instead
26974 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
26975 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
26976 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
26977 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
26978 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
26979 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
26980 is_gimple_assign (stmt). Replace another such test with
26981 is_gimple_assign (stmt).
26982
26983 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
26984
26985 PR target/78883
26986 * config/avr/avr.c (rtl-iter.h): Include it.
26987 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
26988 (avr_legitimate_combined_insn): ...and implementation.
26989
26990 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
26991
26992 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
26993 * config/s390/s390.c (s390_const_operand_ok)
26994 (s390_canonicalize_comparison, s390_extract_part)
26995 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
26996 (s390_contiguous_bitmask_p, s390_rtx_costs)
26997 (legitimize_pic_address): Likewise.
26998 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
26999 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
27000 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
27001 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
27002 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
27003
27004 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
27005
27006 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
27007 REGNO($0) == REGNO($1).
27008
27009 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27010
27011 * config/s390/linux.h(SIZE_TYPE): Add comment.
27012
27013 2017-02-06 Julian Brown <julian@codesourcery.com>
27014 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
27015 Virendra Pathak <virendra.pathak@broadcom.com>
27016
27017 * config/aarch64/aarch64-cores.def: Change the scheduler
27018 to Thunderx2t99.
27019 * config/aarch64/aarch64.md: Include thunderx2t99.md.
27020 * config/aarch64/thunderx2t99.md: New file.
27021
27022 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
27023
27024 * doc/standards.texi (Go Language): Update link to language
27025 standard.
27026
27027 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
27028
27029 * tree-eh.c (lower_resx): Sanitize profile.
27030 (cleanup_empty_eh_move_lp): Likewise.
27031
27032 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
27033
27034 PR tree-ssa/79347
27035 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
27036 ELSE_PROB.
27037 * cfgloopmanip.h (loop_version): Update prototype.
27038 * modulo-sched.c (sms_schedule): Update call of loop_version.
27039 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
27040 * tree-parloops.c (gen_parallel_loop): Likewise.
27041 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
27042 * tree-ssa-loop-split.c (split_loop): Likewise.
27043 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
27044 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
27045
27046 2017-02-05 Martin Liska <mliska@suse.cz>
27047
27048 PR bootstrap/78985
27049 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
27050 variable to NULL.
27051 (print_operand_address): Initialize a struct to zero.
27052
27053 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
27054
27055 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
27056 garbage collector only in textual form.
27057
27058 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
27059
27060 * doc/extend.texi (x86 specific memory model extensions for
27061 transactional memory): Simplify a phrase.
27062
27063 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
27064
27065 PR target/79353
27066 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
27067 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
27068 (atomic_storedi_1): Likewise.
27069
27070 2017-02-04 Jakub Jelinek <jakub@redhat.com>
27071
27072 PR tree-optimization/79338
27073 * tree-parloops.c (gather_scalar_reductions): Don't call
27074 vect_analyze_loop_form for loop->inner before destroying loop's
27075 loop_vinfo.
27076
27077 2017-02-03 Martin Sebor <msebor@redhat.com>
27078
27079 PR tree-optimization/79327
27080 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
27081 when precision has resulted in leading zeros.
27082 (format_integer): Adjust the likely counter to assume an unknown
27083 argument that may be zero is non-zero.
27084
27085 2017-02-03 Jason Merrill <jason@redhat.com>
27086
27087 PR c++/78689
27088 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
27089 avoid copying non-taken branch.
27090
27091 2017-02-03 Jakub Jelinek <jakub@redhat.com>
27092
27093 PR tree-optimization/79340
27094 * tree-vect-loop.c (vectorizable_reduction): Release
27095 vec_defs elements after safe_splicing them into other vectors.
27096 Formatting fixes.
27097
27098 PR tree-optimization/79327
27099 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
27100 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
27101 dirtype.
27102 (format_integer): Use wide_int_to_tree instead of build_int_cst
27103 + to_?hwi. If argmin is NULL, just set argmin and argmax to
27104 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
27105 of shortest and longest sequence.
27106
27107 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
27108
27109 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
27110 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
27111
27112 2017-02-03 Walter Lee <walt@tilera.com>
27113
27114 PR target/78862
27115 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
27116 after initial stackframe link reg save.
27117 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
27118
27119 2017-02-03 Jakub Jelinek <jakub@redhat.com>
27120
27121 PR target/79354
27122 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
27123 wu for stxssp alternative.
27124
27125 2017-02-03 Martin Sebor <msebor@redhat.com>
27126
27127 PR tree-optimization/79352
27128 * gimple-fold.c (get_range_strlen): Add argument.
27129 (get_range_strlen): Change return type to bool.
27130 (get_maxval_strlen): Pass in a dummy argument.
27131 * gimple-fold.h (get_range_strlen): Change return type to bool.
27132 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
27133 * tree.h (array_at_struct_end_p): Add argument.
27134 * tree.c (array_at_struct_end_p): Handle it.
27135
27136 2017-02-03 Martin Liska <mliska@suse.cz>
27137
27138 PR lto/66295
27139 * multiple_target.c (create_dispatcher_calls): Redirect edge
27140 from a caller of a dispatcher.
27141 (expand_target_clones): Make the clones local.
27142 (ipa_target_clone): Do both target clones and resolvers.
27143 (ipa_dispatcher_calls): Remove the pass.
27144 (pass_dispatcher_calls::gate): Likewise.
27145 (make_pass_dispatcher_calls): Likewise.
27146 * passes.def (pass_target_clone): Put as very first IPA early
27147 pass.
27148
27149 2017-02-03 Martin Liska <mliska@suse.cz>
27150
27151 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
27152 in case of a function with ifunc attribute.
27153
27154 2017-02-03 Martin Liska <mliska@suse.cz>
27155
27156 * cgraph.c (cgraph_node::dump): Dump function version info.
27157 * symtab.c (symtab_node::dump_base): Add missing new line.
27158
27159 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
27160
27161 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
27162 (ifcombine_ifandif): Use it.
27163
27164 2017-02-03 Martin Liska <mliska@suse.cz>
27165
27166 * doc/invoke.texi: Document default value for
27167 use-after-scope-direct-emission-threshold.
27168
27169 2017-02-03 Martin Liska <mliska@suse.cz>
27170
27171 PR tree-optimization/79339
27172 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
27173 (format_floating): Likewise.
27174
27175 2017-02-03 Martin Liska <mliska@suse.cz>
27176
27177 PR ipa/79337
27178 * ipa-prop.c (ipa_node_params_t::insert): Remove current
27179 implementation.
27180 (ipa_node_params_t::remove): Likewise.
27181 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
27182 initialization from removed ipa_node_params_t::insert.
27183 (ipa_node_params::~ipa_node_params): Move from removed
27184 ipa_node_params_t::release.
27185 * symbol-summary.h (symbol_summary::m_released): New member.
27186 Do not release a summary twice. Do not allow to call finalizer
27187 for types of a summary that live in GGC memory.
27188
27189 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
27190
27191 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
27192 cmp_branch fusion.
27193
27194 2017-02-02 Martin Sebor <msebor@redhat.com>
27195
27196 PR middle-end/79275
27197 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
27198 (format_string): Tighten up the range of output for non-constant
27199 strings and correct the expected range for wide non-constant strings.
27200
27201 2017-02-02 Martin Sebor <msebor@redhat.com>
27202
27203 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
27204
27205 PR middle-end/32003
27206 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
27207 index.
27208 (-fdump-tree-@var): Add to index and document how to come up
27209 with pass-specific option and dump file names.
27210 (-fdump-passes): Clarify where to look for output.
27211
27212 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
27213
27214 PR middle-end/77445
27215 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
27216 statistics of the analyzed path; allow threading for speed when
27217 any of BBs along the path are optimized for speed.
27218
27219 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
27220
27221 PR middle-end/78468
27222 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
27223 settings of the virtual registers.
27224
27225 Revert again
27226 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
27227
27228 * explow.c (get_dynamic_stack_size): Take known alignment of stack
27229 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
27230 needed.
27231
27232 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27233
27234 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
27235 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
27236
27237 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27238
27239 * config/s390/s390.md: Add missing comments with the expanded
27240 mnemonics.
27241 * config/s390/vector.md: Likewise.
27242 * config/s390/vx-builtins.md: Likewise.
27243
27244 2017-02-02 Jakub Jelinek <jakub@redhat.com>
27245
27246 PR target/79197
27247 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
27248 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
27249 conditions on a single line.
27250
27251 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27252
27253 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
27254 __S390_VX__ to __VX__.
27255
27256 2017-02-01 Andrew Pinski <apinski@cavium.com>
27257
27258 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
27259 stmt_info to record_stmt_cost.
27260 (vect_get_known_peeling_cost): Pass stmt_info if known to
27261 record_stmt_cost.
27262 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
27263 cpu_vector_cost field into
27264 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
27265 field into vec_int_stmt_cost and vec_fp_stmt_cost.
27266 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
27267 splitting of scalar_stmt_cost and vec_stmt_cost.
27268 (thunderx_vector_cost): Likewise.
27269 (cortexa57_vector_cost): LIkewise.
27270 (exynosm1_vector_cost): Likewise.
27271 (xgene1_vector_cost): Likewise.
27272 (thunderx2t99_vector_cost): Improve after the splitting of the two
27273 fields.
27274 (aarch64_builtin_vectorization_cost): Update for the splitting of
27275 scalar_stmt_cost and vec_stmt_cost.
27276
27277 2017-02-01 Torvald Riegel <triegel@redhat.com>
27278 Richard Henderson <rth@redhat.com>
27279
27280 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
27281 conditional on existance of a fast atomic load.
27282 * optabs-query.c (can_atomic_load_p): New function.
27283 * optabs-query.h (can_atomic_load_p): Declare it.
27284 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
27285 no fast atomic load is available for the particular size of access.
27286 (expand_atomic_compare_and_swap): Likewise.
27287 (expand_atomic_load): Likewise.
27288 (expand_atomic_store): Likewise.
27289 (expand_atomic_fetch_op): Likewise.
27290 * testsuite/lib/target-supports.exp
27291 (check_effective_target_sync_int_128): Remove x86 because it provides
27292 no fast atomic load.
27293 (check_effective_target_sync_int_128_runtime): Likewise.
27294
27295 2017-02-01 Richard Biener <rguenther@suse.de>
27296
27297 * graphite.c: Include tree-vectorizer.h for find_loop_location.
27298 (graphite_transform_loops): Provide opt-info for optimized nests.
27299 * tree-parloop.c (parallelize_loops): Provide opt-info for
27300 parallelized loops.
27301
27302 2017-02-01 Richard Biener <rguenther@suse.de>
27303
27304 PR middle-end/79315
27305 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
27306 was not set before.
27307
27308 2017-02-01 Richard Biener <rguenther@suse.de>
27309
27310 PR tree-optimization/71824
27311 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
27312 Verify the loops are valid in the merged SESE region.
27313 (scop_detection::can_represent_loop_1): Check analyzing the
27314 evolution of the number of iterations in the region succeeds.
27315
27316 2017-01-31 Ian Lance Taylor <iant@golang.org>
27317
27318 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
27319 REG_ARGS_SIZE note to 32-bit push insns and call insn.
27320
27321 2017-01-31 David Malcolm <dmalcolm@redhat.com>
27322
27323 PR preprocessor/79210
27324 * input.c (get_substring_ranges_for_loc): Replace line_width
27325 assertion with error-handling.
27326
27327 2017-01-31 Richard Biener <rguenther@suse.de>
27328
27329 PR tree-optimization/77318
27330 * graphite-sese-to-poly.c (extract_affine): Fix assert.
27331 (create_pw_aff_from_tree): Take loop parameter.
27332 (add_condition_to_pbb): Pass loop of the condition to
27333 create_pw_aff_from_tree.
27334
27335 2017-01-31 Jakub Jelinek <jakub@redhat.com>
27336
27337 * config/s390/s390.c (s390_asan_shadow_offset): New function.
27338 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
27339
27340 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
27341
27342 PR target/78597
27343 PR target/79038
27344 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
27345 no longer used.
27346 (convert_int_to_float128): Likewise.
27347 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
27348 (convert_int_to_float128): Likewise.
27349 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
27350 (UNSPEC_IEEE128_CONVERT): Likewise.
27351 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
27352 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
27353 Use local variables for IBM extended format.
27354 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
27355 (fix_trunc<mode>si2_fprs): Likewise.
27356 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
27357 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
27358 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
27359 to know that we can now have integers of all sizes in vector
27360 registers.
27361 (fix<uns>_<mode>di2_hw): Likewise.
27362 (float<uns>_<mode>si2_hw): Likewise.
27363 (fix_<mode>si2_hw): Likewise.
27364 (fixuns_<mode>si2_hw): Likewise.
27365 (float<uns>_<mode>di2_hw): Likewise.
27366 (float_<mode>di2_hw): Likewise.
27367 (float_<mode>si2_hw): Likewise.
27368 (floatuns_<mode>di2_hw): Likewise.
27369 (floatuns_<mode>si2_hw): Likewise.
27370 (xscvqp<su>wz_<mode>): Delete, no longer used.
27371 (xscvqp<su>dz_<mode>): Likewise.
27372 (xscv<su>dqp_<mode>): Likewise.
27373 (ieee128_mfvsrd_64bit): Likewise.
27374 (ieee128_mfvsrd_32bit): Likewise.
27375 (ieee128_mfvsrwz): Likewise.
27376 (ieee128_mtvsrw): Likewise.
27377 (ieee128_mtvsrd_64bit): Likewise.
27378 (ieee128_mtvsrd_32bit): Likewise.
27379
27380 2017-01-31 Martin Liska <mliska@suse.cz>
27381
27382 PR ipa/79285
27383 * ipa-prop.c (ipa_free_all_node_params): Call release method
27384 instead of ~sumbol_summary to not to trigger double times
27385 dtor of hash_map.
27386
27387 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
27388
27389 PR tree-optimization/71691
27390 * bitmap.h (class auto_bitmap): New.
27391 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
27392 is_maybe_undefined instead of ssa_undefined_value_p.
27393
27394 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27395
27396 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
27397 __S390_ARCH_LEVEL__ to __ARCH__.
27398
27399 2017-01-31 Jakub Jelinek <jakub@redhat.com>
27400
27401 PR tree-optimization/79267
27402 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
27403 if should_remove_lhs_p is true.
27404
27405 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
27406
27407 PR debug/63238
27408 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
27409 (add_alignment_attribute): New.
27410 (base_type_die): Add alignment attribute.
27411 (subrange_type_die): Likewise.
27412 (modified_type_die): Likewise.
27413 (gen_array_type_die): Likewise.
27414 (gen_descr_array_type_die: Likewise.
27415 (gen_enumeration_type_die): Likewise.
27416 (gen_subprogram_die): Likewise.
27417 (gen_variable_die): Likewise.
27418 (gen_field_die): Likewise.
27419 (gen_ptr_to_mbr_type_die): Likewise.
27420 (gen_struct_or_union_type_die): Likewise.
27421 (gen_subroutine_type_die): Likewise.
27422 (gen_typedef_die): Likewise.
27423 (base_type_cmp): Compare alignment attribute.
27424
27425 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
27426
27427 PR target/79170
27428 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
27429 (setb_unsigned) New pattern for setb with CCUNS.
27430 * config/rs6000/rs6000.c (expand_block_compare): Use a different
27431 subfc./subfe sequence to avoid overflow problems. Generate a
27432 shorter sequence with cmpld/setb for power9.
27433 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
27434 for generating subfc. instruction.
27435 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
27436 now uses this instruction.
27437
27438 2017-01-30 Ian Lance Taylor <iant@google.com>
27439
27440 PR debug/79289
27441 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
27442 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
27443
27444 2017-01-30 Martin Sebor <msebor@redhat.com>
27445
27446 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
27447 Move constant to the right of a relational operator.
27448 (get_mpfr_format_length, format_character, format_string): Ditto.
27449 (should_warn_p, maybe_warn): Same.
27450
27451 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
27452
27453 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
27454
27455 PR lto/79061
27456 * asan.c (get_translation_unit_decl): Remove function.
27457 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
27458
27459 2017-01-30 Martin Liska <mliska@suse.cz>
27460
27461 PR gcov-profile/79259
27462 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
27463 -fprofile-generate.
27464
27465 2017-01-30 Martin Liska <mliska@suse.cz>
27466
27467 PR bootstrap/78985
27468 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
27469 Initialize variables with NULL value.
27470
27471 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
27472
27473 PR target/79260
27474 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
27475 tm_p_file.
27476 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
27477
27478 2017-01-30 Richard Biener <rguenther@suse.de>
27479
27480 PR tree-optimization/79276
27481 * tree-vrp.c (process_assert_insertions): Properly adjust common
27482 when removing a duplicate.
27483
27484 * gcc.dg/torture/pr79276.c: New testcase.
27485
27486 2017-01-30 Richard Biener <rguenther@suse.de>
27487
27488 PR tree-optimization/79256
27489 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
27490 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
27491 alignment on TYPE.
27492 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
27493
27494 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
27495
27496 PR target/79240
27497 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
27498 ("*r<noxa>sbg_<mode>_sll_bitmask")
27499 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
27500 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
27501 Use contiguous_bitmask_nowrap_operand.
27502
27503 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27504
27505 PR target/79268
27506 * config/rs6000/altivec.h (vec_xl): Revise #define.
27507 (vec_xst): Likewise.
27508
27509 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
27510
27511 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
27512
27513 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
27514
27515 PR rtl-optimization/79194
27516 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
27517 traps before call to bypass_conditional_jumps.
27518
27519 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
27520
27521 PR tree-optimization/71374
27522 * lra-constraints.c (check_conflict_input_operands): New.
27523 (match_reload): Use it.
27524
27525 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
27526
27527 PR target/79131
27528 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
27529 account to calculate conflict_set.
27530
27531 2017-01-27 Bin Cheng <bin.cheng@arm.com>
27532
27533 PR rtl-optimization/78559
27534 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
27535 other_insn in combine.
27536
27537 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
27538
27539 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
27540 uint16_type_node for BT_UINT16.
27541
27542 2017-01-27 David Malcolm <dmalcolm@redhat.com>
27543
27544 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
27545 "RTL Tests" to menu.
27546 (GIMPLE Tests): New node.
27547 (RTL Tests): New node.
27548
27549 2017-01-27 Richard Biener <rguenther@suse.de>
27550
27551 PR tree-optimization/79245
27552 * tree-loop-distribution.c (distribute_loop): Apply cost
27553 modeling also to detected patterns.
27554
27555 2017-01-27 Richard Biener <rguenther@suse.de>
27556
27557 PR tree-optimization/71433
27558 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
27559 (compare_assert_loc): New function.
27560 (process_assert_insertions): Sort and optimize assert locations
27561 to remove duplicates and push down identical assertions on
27562 edges to their destination block.
27563
27564 2017-01-27 Richard Biener <rguenther@suse.de>
27565
27566 PR tree-optimization/79244
27567 * tree-vrp.c (remove_range_assertions): Forcefully propagate
27568 out SSA names even if abnormal.
27569
27570 2017-01-27 Jakub Jelinek <jakub@redhat.com>
27571
27572 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
27573 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
27574 instead of MPFR_RNDN.
27575
27576 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
27577
27578 PR target/79239
27579 * arm.c (arm_option_override): Don't call build_target_option_node
27580 until after doing all option overrides.
27581 (arm_valid_target_attribute_tree): Likewise.
27582
27583 2017-01-27 Martin Liska <mliska@suse.cz>
27584
27585 * doc/invoke.texi (-fprofile-arcs): Document profiling support
27586 for {cd}tors and C++ {cd}tors.
27587
27588 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
27589
27590 * config/s390/s390.md ("*setmem_long_and")
27591 ("*setmem_long_and_31z"): Use zero_extend instead of and.
27592
27593 2017-01-26 Martin Sebor <msebor@redhat.com>
27594
27595 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
27596 of precision.
27597
27598 2017-01-26 Martin Sebor <msebor@redhat.com>
27599
27600 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
27601 HAVE_DFmode before using XFmode or DFmode.
27602 (parse_directive): Avoid using the z length modifier to avoid
27603 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
27604
27605 PR middle-end/78703
27606 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
27607 to accept adjustment as an array.
27608 (get_int_range): New function.
27609 (struct directive): Make width and prec arrays.
27610 (directive::set_width, directive::set_precision): Call get_int_range.
27611 (format_integer, format_floating): Handle width and precision ranges.
27612 (format_string, parse_directive): Same.
27613
27614 2017-01-26 Jakub Jelinek <jakub@redhat.com>
27615
27616 PR debug/79129
27617 * dwarf2out.c (generate_skeleton_bottom_up): For children with
27618 comdat_type_p set, just clone them, but keep the children in the
27619 original DIE.
27620
27621 PR debug/78835
27622 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
27623 which have direct callers with -fvar-tracking-assignments enabled
27624 in the current TU.
27625 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
27626 inside of type units.
27627
27628 2017-01-26 Martin Sebor <msebor@redhat.com>
27629
27630 PR middle-end/78703
27631 * gimple-ssa-sprintf.c (struct result_range): Add likely and
27632 unlikely counters.
27633 (struct format_result): Replace number_chars, number_chars_min,
27634 and number_chars_max with a single member of struct result_range.
27635 Remove bounded.
27636 (format_result::operator+=): Adjust.
27637 (struct fmtresult): Remove bounded. Handle likely and unlikely
27638 counters.
27639 (fmtresult::adjust_for_width_or_precision): New function.
27640 (fmtresult:type_max_digits): New function.
27641 (bytes_remaining): Handle likely and unlikely counters.
27642 (min_bytes_remaining): Remove.
27643 (format_percent): Simplify.
27644 (format_integer, format_floating): Set likely and unlikely counters.
27645 (get_string_length, format_character, format_string): Same.
27646 (format_plain, should_warn_p): New function.
27647 (maybe_warn): Call should_warn_p. Update diagnostic messages
27648 and handle those for all directives, including plain strings.
27649 (format_directive): Handle likely and unlikely counters.
27650 Remove unnecessary quoting from diagnostics. Add an informational
27651 note.
27652 (add_bytes): Remove.
27653 (pass_sprintf_length::compute_format_length): Simplify.
27654 (try_substitute_return_value): Handle likely and unlikely counters.
27655
27656 2017-01-26 Carl Love <cel@us.ibm.com>
27657
27658 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
27659 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
27660
27661 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
27662
27663 PR target/79131
27664 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
27665 endianess for subregs into account.
27666 * lra-constraints.c (lra_constraints): Do risky transformations
27667 always on the first iteration.
27668 * lra-lives.c (check_pseudos_live_through_calls): Add arg
27669 last_call_used_reg_set.
27670 (process_bb_lives): Define and use last_call_used_reg_set.
27671 * lra.c (lra): Always continue after lra_constraints on the first
27672 iteration.
27673
27674 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
27675
27676 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
27677 constant.
27678 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
27679
27680 2017-01-26 Jakub Jelinek <jakub@redhat.com>
27681
27682 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
27683 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
27684 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
27685 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
27686 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
27687 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
27688 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
27689 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
27690 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
27691
27692 2017-01-26 Marek Polacek <polacek@redhat.com>
27693
27694 PR c/79199
27695 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
27696 for the third operand.
27697
27698 2017-01-26 Jakub Jelinek <jakub@redhat.com>
27699
27700 PR middle-end/79236
27701 * omp-low.c (struct omp_context): Add simt_stmt field.
27702 (scan_omp_for): Return omp_context *.
27703 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
27704 context to the _simt_ SIMD stmt.
27705 (lower_omp_for): For combined SIMD with sibling _simt_
27706 SIMD, make sure to use the same decls in _looptemp_
27707 clauses as in the sibling.
27708
27709 2017-01-26 David Sherwood <david.sherwood@arm.com>
27710
27711 PR middle-end/79212
27712 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
27713 all contexts.
27714
27715 2017-01-26 Jakub Jelinek <jakub@redhat.com>
27716
27717 PR target/70465
27718 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
27719 emit fld b; fld a; if possible.
27720
27721 * brig-builtins.def: Update copyright years.
27722 * config/arm/arm_acle_builtins.def: Update copyright years.
27723
27724 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
27725
27726 PR target/79179
27727 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
27728 constraint instead of o for the stxsd instruction.
27729
27730 2017-01-25 Carl Love <cel@us.ibm.com>
27731
27732 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
27733 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
27734
27735 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
27736
27737 * doc/invoke.texi (C++ Dialect Options): Fix typo.
27738
27739 2017-01-25 Richard Biener <rguenther@suse.de>
27740
27741 PR tree-optimization/69264
27742 * target.def (vector_alignment_reachable): Improve documentation.
27743 * doc/tm.texi: Regenerate.
27744 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
27745 and add a comment.
27746 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
27747 earlier changes with respect to TYPE_USER_ALIGN.
27748 (vector_alignment_reachable_p): Likewise. Improve dumping.
27749
27750 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27751
27752 PR target/79145
27753 * config/arm/arm.md (xordi3): Force constant operand into a register
27754 for TARGET_IWMMXT.
27755
27756 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27757
27758 * doc/invoke.texi (-fstore-merging): Correct default optimization
27759 levels at which it is enabled.
27760 (-O): Move -fstore-merging from list to...
27761 (-O2): ... Here.
27762
27763 2017-01-25 Richard Biener <rguenther@suse.de>
27764
27765 PR debug/78363
27766 * omp-expand.c: Include debug.h.
27767 (expand_omp_taskreg): Make sure to generate early debug before
27768 outlining anything from a function.
27769 (expand_omp_target): Likewise.
27770 (grid_expand_target_grid_body): Likewise.
27771
27772 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
27773
27774 PR lto/79061
27775 * asan.c (get_translation_unit_decl): New function.
27776 (asan_add_global): Extract modules file name from globals
27777 TRANSLATION_UNIT_DECL name.
27778
27779 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
27780
27781 PR target/77439
27782 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
27783 for long calls with APCS frame and VFP.
27784
27785 2017-01-24 David Malcolm <dmalcolm@redhat.com>
27786
27787 * cfg.c (original_copy_tables_initialized_p): New function.
27788 * cfg.h (original_copy_tables_initialized_p): New decl.
27789 * cfgrtl.c (relink_block_chain): Guard the call to
27790 free_original_copy_tables with a call to
27791 original_copy_tables_initialized_p.
27792 * cgraph.h (symtab_node::native_rtl_p): New decl.
27793 * cgraphunit.c (symtab_node::native_rtl_p): New function.
27794 (symtab_node::needed_p): Don't assert for early assembly output
27795 for __RTL functions.
27796 (cgraph_node::finalize_function): Set "force_output" for __RTL
27797 functions.
27798 (cgraph_node::analyze): Bail out early for __RTL functions.
27799 (analyze_functions): Update assertion to support __RTL functions.
27800 (cgraph_node::expand): Bail out early for __RTL functions.
27801 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
27802 __RTL functions.
27803 * function.h (struct function): Update comment for field
27804 "pass_startwith".
27805 * gimple-expr.c: Include "tree-pass.h".
27806 (gimple_has_body_p): Return false for __RTL functions.
27807 * Makefile.in (OBJS): Add run-rtl-passes.o.
27808 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
27809 accessor.
27810 (gcc::pass_manager::get_clean_slate): New accessor.
27811 * passes.c: Include "insn-addr.h".
27812 (should_skip_pass_p): Add logging. Update logic for running
27813 "expand" to be compatible with both __GIMPLE and __RTL. Guard
27814 property-provider override so it is only done for gimple passes.
27815 Don't skip dfinit.
27816 (skip_pass): New function.
27817 (execute_one_pass): Call skip_pass when skipping passes.
27818 * read-md.c (md_reader::read_char): Support filtering
27819 the input to a subset of line numbers.
27820 (md_reader::md_reader): Initialize fields
27821 m_first_line and m_last_line.
27822 (md_reader::read_file_fragment): New function.
27823 * read-md.h (md_reader::read_file_fragment): New decl.
27824 (md_reader::m_first_line): New field.
27825 (md_reader::m_last_line): New field.
27826 * read-rtl-function.c (function_reader::create_function): Only
27827 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
27828 curr_properties. Set DECL_INITIAL to a dummy block.
27829 (read_rtl_function_body_from_file_range): New function.
27830 * read-rtl-function.h (read_rtl_function_body_from_file_range):
27831 New decl.
27832 * run-rtl-passes.c: New file.
27833 * run-rtl-passes.h: New file.
27834
27835 2017-01-24 Jeff Law <law@redhat.com>
27836
27837 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
27838 buffer size.
27839
27840 2017-01-24 Bin Cheng <bin.cheng@arm.com>
27841
27842 PR tree-optimization/79159
27843 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
27844 (record_nonwrapping_iv): Improve boundary using above function if no
27845 value range information.
27846
27847 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
27848 Martin Jambor <mjambor@suse.cz>
27849
27850 * brig-builtins.def: New file.
27851 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
27852 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
27853 (DEF_HSAIL_SAT_BUILTIN): Likewise.
27854 (DEF_HSAIL_INTR_BUILTIN): Likewise.
27855 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
27856 * builtin-types.def (BT_INT8): New.
27857 (BT_INT16): Likewise.
27858 (BT_UINT8): Likewise.
27859 (BT_UINT16): Likewise.
27860 (BT_FN_ULONG): Likewise.
27861 (BT_FN_UINT_INT): Likewise.
27862 (BT_FN_UINT_ULONG): Likewise.
27863 (BT_FN_UINT_LONG): Likewise.
27864 (BT_FN_UINT_PTR): Likewise.
27865 (BT_FN_ULONG_PTR): Likewise.
27866 (BT_FN_INT8_FLOAT): Likewise.
27867 (BT_FN_INT16_FLOAT): Likewise.
27868 (BT_FN_UINT32_FLOAT): Likewise.
27869 (BT_FN_UINT16_FLOAT): Likewise.
27870 (BT_FN_UINT8_FLOAT): Likewise.
27871 (BT_FN_UINT64_FLOAT): Likewise.
27872 (BT_FN_UINT16_UINT32): Likewise.
27873 (BT_FN_UINT32_UINT16): Likewise.
27874 (BT_FN_UINT16_UINT16_UINT16): Likewise.
27875 (BT_FN_INT_PTR_INT): Likewise.
27876 (BT_FN_UINT_PTR_UINT): Likewise.
27877 (BT_FN_LONG_PTR_LONG): Likewise.
27878 (BT_FN_ULONG_PTR_ULONG): Likewise.
27879 (BT_FN_VOID_UINT64_UINT64): Likewise.
27880 (BT_FN_UINT8_UINT8_UINT8): Likewise.
27881 (BT_FN_INT8_INT8_INT8): Likewise.
27882 (BT_FN_INT16_INT16_INT16): Likewise.
27883 (BT_FN_INT_INT_INT): Likewise.
27884 (BT_FN_UINT_FLOAT_UINT): Likewise.
27885 (BT_FN_FLOAT_UINT_UINT): Likewise.
27886 (BT_FN_ULONG_UINT_UINT): Likewise.
27887 (BT_FN_ULONG_UINT_PTR): Likewise.
27888 (BT_FN_ULONG_ULONG_ULONG): Likewise.
27889 (BT_FN_UINT_UINT_UINT): Likewise.
27890 (BT_FN_VOID_UINT_PTR): Likewise.
27891 (BT_FN_UINT_UINT_PTR: Likewise.
27892 (BT_FN_UINT32_UINT64_PTR): Likewise.
27893 (BT_FN_INT_INT_UINT_UINT): Likewise.
27894 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
27895 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
27896 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
27897 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
27898 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
27899 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
27900 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
27901 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
27902 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
27903 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
27904 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
27905 * doc/frontends.texi: List BRIG FE.
27906 * doc/install.texi (Testing): Add BRIG tesring requirements.
27907 * doc/invoke.texi (Overall Options): Mention BRIG.
27908 * doc/standards.texi (Standards): Doucment BRIG HSA version.
27909
27910 2017-01-24 Richard Biener <rguenther@suse.de>
27911
27912 PR translation/79208
27913 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
27914
27915 2017-01-24 Martin Jambor <mjambor@suse.cz>
27916
27917 PR bootstrap/79198
27918 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
27919 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
27920 and known_contexts.
27921
27922 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
27923
27924 PR middle-end/79123
27925 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
27926 casts from signed to unsigned really don't have a range.
27927
27928 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
27929
27930 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
27931 GMP_RNDx for compatiblity.
27932
27933 2017-01-24 Martin Liska <mliska@suse.cz>
27934
27935 PR bootstrap/79132
27936 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
27937 that would prevent us to call alloca with -1 as argument.
27938
27939 2017-01-24 Jakub Jelinek <jakub@redhat.com>
27940
27941 * dwarf2out.c (output_compilation_unit_header, output_file_names):
27942 Avoid -Wformat-security warning.
27943
27944 2017-01-23 Andrew Pinski <apinski@cavium.com>
27945
27946 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
27947 cost table.
27948
27949 2017-01-23 Martin Sebor <msebor@redhat.com>
27950
27951 PR middle-end/78703
27952 * gimple-ssa-sprintf.c (warn_level): New global.
27953 (format_integer): Use it here and throughout the rest of the file.
27954 Use the same switch to compute sign as base.
27955 (maybe_warn): New function.
27956 (format_directive): Factor out warnings into maybe_warn.
27957 Add debugging output. Use warn_level.
27958 (add_bytes): Use warn_level.
27959 (pass_sprintf_length::compute_format_length): Add debugging output.
27960 (try_substitute_return_value): Same.
27961 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
27962
27963 PR middle-end/78703
27964 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
27965 (struct fmtresult, format_integer, format_floating): Adjust.
27966 (fmtresult::fmtresult): Set max correctly in two argument ctor.
27967 (get_string_length, format_string,format_directive): Same.
27968 (pass_sprintf_length::compute_format_length): Same.
27969 (try_substitute_return_value): Simplify slightly.
27970
27971 PR middle-end/78703
27972 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
27973 (fmtresult::operator+=): Outlined.
27974 (struct fmtresult): Add ctors.
27975 (struct conversion_spec): Rename...
27976 (struct directive): ...to this. Add and remove data members.
27977 (directive::set_width, directive::set_precision): New functions.
27978 (format_percent): Use fmtresult ctor.
27979 (get_width_and_precision): Remove.
27980 (format_integer): Make naming changes. Avoid computing width and
27981 precision.
27982 (format_floating): Same. Adjust indentation.
27983 (format_character, format_none): New functions.
27984 (format_string): Moved character handling to format_character.
27985 (format_directive): Remove arguments, change return type.
27986 (parse_directive): New function.
27987 (pass_sprintf_length::compute_format_length): Move directive
27988 parsing to parse_directive.
27989
27990 2017-01-23 Jakub Jelinek <jakub@redhat.com>
27991
27992 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
27993 (assign_assembler_name_if_needed): ... this.
27994 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
27995 (assign_assembler_name_if_needed): ... this.
27996 (free_lang_data_in_cgraph): Adjust callers.
27997 * cgraphunit.c (cgraph_node::analyze): Likewise.
27998 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
27999 Likewise.
28000
28001 2017-01-23 Richard Biener <rguenther@suse.de>
28002
28003 PR tree-optimization/79088
28004 PR tree-optimization/79188
28005 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
28006 resetting loop bounds after last path deletion. Reset loop
28007 bounds of the target loop, make code match the comments.
28008 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
28009 Make sure loops need no fixups.
28010
28011 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
28012
28013 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
28014 exponent support with double type for first argument.
28015 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
28016 type returned by __builtin_vec_extract_sig,
28017 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
28018 functions from "vector int" to "vector unsigned int" or from
28019 "vector long long int" to "vector unsigned long long int".
28020 Changed type returned by __builtin_vec_extract_exp,
28021 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
28022 functions from "vector int" to "vector unsigned int" or from
28023 "vector long long int" to "vector unsigned long long int".
28024 Changed return type of __builtin_vec_test_data_class,
28025 __builtin_vec_test_data_class_sp, and
28026 __builtin_vec_test_data_class_dp from "vector int" to
28027 "vector bool int" or from "vector long long int" to "vector bool
28028 long long int" and changed second argument type from "unsigned
28029 int" to "int". Added new overloaded function forms "vector float
28030 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
28031 "vector float __builtin_vec_insert_exp_sp (vector float, vector
28032 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
28033 double, vector unsigned long long int)" and "vector double
28034 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
28035 long int)". Changed return type of
28036 __builtin_scalar_test_data_class and
28037 __builtin_scalar_test_data_class_sp and
28038 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
28039 int" and changed second argument from "unsigned int" to "int".
28040 Changed type returned by __builtin_scalar_test_neg,
28041 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
28042 from "int" to "bool int". Added new overloaded function form
28043 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
28044 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
28045 exponent double-precision with floating point first argument.
28046 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
28047 documentation of scalar_test_data_class, scalar_test_neg,
28048 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
28049 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
28050 vec_test_data_class built-in functions to reflect refinements in
28051 their type signatures.
28052
28053 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
28054
28055 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
28056 size of buf.
28057 (aarch64_elf_asm_destructor): Likewise.
28058
28059 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
28060
28061 PR rtl-optimization/78634
28062 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
28063 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
28064 * ifcvt.c (noce_try_cmove): Add missing cost check.
28065
28066 PR rtl-optimization/71724
28067 * combine.c (if_then_else_cond): Look for situations where it is
28068 beneficial to undo the work of one of the recursive calls.
28069
28070 2017-01-23 Bin Cheng <bin.cheng@arm.com>
28071
28072 PR tree-optimization/70754
28073 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
28074 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
28075 combined stmt before it if not NULL.
28076 (combine_chains): Process refs reversely and compute dominance point
28077 for root ref.
28078
28079 2017-01-23 Martin Liska <mliska@suse.cz>
28080
28081 PR tree-optimization/79196
28082 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
28083 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
28084 instead of memcmp.
28085 (strlen_optimize_stmt): Call the renamed function.
28086
28087 2017-01-23 Michael Matz <matz@suse.de>
28088
28089 PR tree-optimization/78384
28090 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
28091
28092 2017-01-23 Richard Biener <rguenther@suse.de>
28093
28094 PR tree-optimization/79186
28095 * tree-vrp.c (register_new_assert_for): Make sure we've seen
28096 both incoming edges before moving an assert.
28097
28098 2017-01-23 Martin Jambor <mjambor@suse.cz>
28099
28100 * ipa-prop.c (load_from_param_1): Removed.
28101 (load_from_unmodified_param): Bits from load_from_param_1 put back
28102 here.
28103 (load_from_param): Removed.
28104 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
28105 with stmt. Reverted back to use of load_from_unmodified_param.
28106
28107 2017-01-23 Martin Jambor <mjambor@suse.cz>
28108
28109 PR ipa/79108
28110 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
28111 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
28112 field a pointer to garbage collected vector, mark lattices and
28113 ipcp_orig_node with GTY((skip)).
28114 (ipa_get_param_count): Adjust to descriptors being a pointer.
28115 (ipa_get_param): Likewise.
28116 (ipa_get_type): Likewise.
28117 (ipa_get_param_move_cost): Likewise.
28118 (ipa_set_param_used): Likewise.
28119 (ipa_get_controlled_uses): Likewise.
28120 (ipa_set_controlled_uses): Likewise.
28121 (ipa_is_param_used): Likewise.
28122 (ipa_node_params_t): Move into garbage collector. New methods insert
28123 and remove.
28124 (ipa_node_params_sum): Annotate wth GTY(()).
28125 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
28126 garbage collected.
28127 (ipa_load_from_parm_agg): Adjust declaration.
28128 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
28129 * ipa-profile.c (ipa_profile): Likewise.
28130 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
28131 (ipa_populate_param_decls): Make descriptors parameter garbage
28132 collected.
28133 (ipa_dump_param): Adjust to descriptors being a pointer.
28134 (ipa_alloc_node_params): Likewise.
28135 (ipa_initialize_node_params): Likewise.
28136 (load_from_param_1): Make descriptors parameter garbage collected.
28137 (load_from_unmodified_param): Likewise.
28138 (load_from_param): Likewise.
28139 (ipa_load_from_parm_agg): Likewise.
28140 (ipa_node_params::~ipa_node_params): Removed.
28141 (ipa_free_all_node_params): Remove call to delete operator.
28142 (ipa_node_params_t::insert): New.
28143 (ipa_node_params_t::remove): Likewise.
28144 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
28145 copy known_csts and known_contexts vectors.
28146 (ipa_read_node_info): Adjust to descriptors being a pointer.
28147 (ipcp_modif_dom_walker): Make m_descriptors field garbage
28148 collected.
28149 (ipcp_transform_function): Make descriptors variable garbage
28150 collected.
28151
28152 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
28153
28154 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
28155 * config/i386/avx512dqintrin.h: Ditto.
28156 * config/i386/avx512fintrin.h: Ditto.
28157 * config/i386/i386.c: Handle new builtins.
28158 * config/i386/i386-builtin.def: Add new builtins.
28159 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
28160 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
28161
28162 2017-01-23 Jakub Jelinek <jakub@redhat.com>
28163 Martin Liska <mliska@suse.cz>
28164
28165 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
28166 * asan.c (asan_expand_poison_ifn): Support stores and use
28167 appropriate ASAN report function.
28168 * internal-fn.c (expand_ASAN_POISON_USE): New function.
28169 * internal-fn.def (ASAN_POISON_USE): Declare.
28170 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
28171 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
28172 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
28173 ASAN_POISON calls w/o LHS.
28174 * tree-ssa.c (execute_update_addresses_taken): Create clobber
28175 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
28176 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
28177 * gimplify.c (asan_poison_variables): Add attribute
28178 use_after_scope_memory to variables that really needs to live
28179 in memory.
28180 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
28181 having the attribute.
28182
28183 2017-01-23 Martin Liska <mliska@suse.cz>
28184
28185 * asan.c (create_asan_shadow_var): New function.
28186 (asan_expand_poison_ifn): Likewise.
28187 * asan.h (asan_expand_poison_ifn): New declaration.
28188 * internal-fn.c (expand_ASAN_POISON): Likewise.
28189 * internal-fn.def (ASAN_POISON): New builtin.
28190 * sanopt.c (pass_sanopt::execute): Expand
28191 asan_expand_poison_ifn.
28192 * tree-inline.c (copy_decl_for_dup_finish): Make function
28193 external.
28194 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
28195 * tree-ssa.c (is_asan_mark_p): New function.
28196 (execute_update_addresses_taken): Rewrite local variables
28197 (identified just by use-after-scope as addressable) into SSA.
28198
28199 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
28200
28201 * doc/install.texi (Specific): opensource.apple.com uses https
28202 now. Remove trailing slash.
28203
28204 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
28205
28206 * README.Portability: Remove note on an Irix compatibility issue.
28207
28208 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
28209
28210 * gcov.c (INCLUDE_ALGORITHM): Define.
28211 (INCLUDE_VECTOR): Define.
28212 No longer include <vector> and <algorithm> directly.
28213
28214 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
28215
28216 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
28217 to https.
28218 * doc/invoke.texi (Code Gen Options): Ditto.
28219
28220 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
28221
28222 PR lto/78407
28223 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
28224
28225 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
28226
28227 rtl-optimization/79125
28228 * cprop.c (local_cprop_pass): Handle cases where we make an
28229 unconditional trap.
28230
28231 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
28232
28233 PR target/61729
28234 PR target/77850
28235 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
28236 read from, for big endian.
28237
28238 2017-01-20 Jiong Wang <jiong.wang@arm.com>
28239
28240 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
28241 register pauth builtins for LP64 only.
28242
28243 2017-01-20 Marek Polacek <polacek@redhat.com>
28244
28245 PR c/79152
28246 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
28247 non-case labels.
28248
28249 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
28250
28251 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
28252 of safelen status.
28253 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
28254 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
28255 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
28256
28257 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28258
28259 PR target/71270
28260 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
28261 in big-endian mode when they are not a single duplicated value.
28262
28263 2017-01-20 Richard Biener <rguenther@suse.de>
28264
28265 * BASE-VER: Bump to 7.0.1.
28266
28267 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
28268
28269 * omp-low.c (omplow_simd_context): New struct. Use it...
28270 (lower_rec_simd_input_clauses): ...here and...
28271 (lower_rec_input_clauses): ...here to hold common data. Adjust all
28272 references to idx, lane, max_vf, is_simt.
28273
28274 2017-01-20 Graham Markall <graham.markall@embecosm.com>
28275
28276 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
28277 mcpu=nps400.
28278
28279 2017-01-20 Martin Jambor <mjambor@suse.cz>
28280
28281 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
28282 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
28283 gt-hsa-common.h.
28284 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
28285 (GTFILES): Rename hsa.c to hsa-common.c.
28286 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
28287 * hsa-dump.c: Likewise.
28288 * hsa-gen.c: Likewise.
28289 * hsa-regalloc.c: Likewise.
28290 * ipa-hsa.c: Likewise.
28291 * omp-expand.c: Likewise.
28292 * omp-low.c: Likewise.
28293 * toplev.c: Likewise.
28294
28295 2017-01-20 Marek Polacek <polacek@redhat.com>
28296
28297 PR c/64279
28298 * doc/invoke.texi: Document -Wduplicated-branches.
28299 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
28300 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
28301 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
28302 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
28303 return 0 only when not OEP_LEXICOGRAPHIC.
28304 (fold_build_cleanup_point_expr): Use the expression
28305 location when building CLEANUP_POINT_EXPR.
28306 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
28307 * tree.c (add_expr): Handle error_mark_node.
28308
28309 2017-01-20 Martin Liska <mliska@suse.cz>
28310
28311 PR lto/69188
28312 * tree-profile.c (init_ic_make_global_vars): Do not call
28313 finalize_decl.
28314 (gimple_init_gcov_profiler): Likewise.
28315
28316 2017-01-20 Martin Liska <mliska@suse.cz>
28317
28318 PR ipa/71190
28319 * cgraph.h (maybe_create_reference): Remove argument and
28320 update comment.
28321 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
28322 argument.
28323 * ipa-cp.c (create_specialized_node): Likewise.
28324 * symtab.c (symtab_node::maybe_create_reference): Handle
28325 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
28326
28327 2017-01-20 Martin Liska <mliska@suse.cz>
28328
28329 * read-rtl-function.c (function_reader::create_function): Use
28330 build_decl instread of build_decl_stat.
28331
28332 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
28333
28334 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
28335 * config/i386/avx512dqintrin.h: Ditto.
28336 * config/i386/avx512fintrin.h: Ditto.
28337 * config/i386/i386-builtin-types.def: Add new types.
28338 * config/i386/i386.c: Handle new types.
28339 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
28340 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
28341 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
28342 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
28343 (__builtin_ia32_kshiftridi): New.
28344 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
28345
28346 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
28347
28348 PR target/78875
28349 PR target/79140
28350 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
28351 define to rs6000_init_stack_protect_guard.
28352 (rs6000_init_stack_protect_guard): New function.
28353
28354 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
28355 Yunqiang Su <yunqiang.su@imgtec.com>
28356
28357 * config.gcc (supported_defaults): Add madd4.
28358 (with_madd4): Add validation.
28359 (all_defaults): Add madd4.
28360 * config/mips/mips.opt (mmadd4): New option.
28361 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
28362 mmadd4.
28363 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
28364 __mips_no_madd4.
28365 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
28366 (ISA_HAS_FUSED_MADD4): Likewise.
28367 * doc/invoke.texi (-mmadd4): Document the new option.
28368 * doc/install.texi (--with-madd4): Document the new option.
28369
28370 2017-01-19 Jiong Wang <jiong.wang@arm.com>
28371
28372 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
28373 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
28374 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
28375 (aarch64_init_pauth_hint_builtins): New.
28376 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
28377 (aarch64_expand_builtin): Expand new builtins.
28378
28379 2017-01-19 Jiong Wang <jiong.wang@arm.com>
28380
28381 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
28382 * combine-stack-adj.c (no_unhandled_cfa): Handle
28383 REG_CFA_TOGGLE_RA_MANGLE.
28384 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
28385 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
28386 info for return address signing.
28387 (aarch64_expand_epilogue): Likewise.
28388
28389 2017-01-19 Jiong Wang <jiong.wang@arm.com>
28390
28391 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
28392 * config/aarch64/aarch64-protos.h
28393 (aarch64_return_address_signing_enabled): New declaration.
28394 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
28395 New function.
28396 (aarch64_expand_prologue): Sign return address before it's pushed onto
28397 stack.
28398 (aarch64_expand_epilogue): Authenticate return address fetched from
28399 stack.
28400 (aarch64_override_options): Sanity check for ILP32 and ISA level.
28401 (aarch64_attributes): New function attributes for "sign-return-address".
28402 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
28403 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
28404 ("*do_return"): Generate combined instructions according to key index.
28405 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
28406 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
28407 iterators.
28408 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
28409 * config/aarch64/aarch64.opt (msign-return-address=): New.
28410 * doc/extend.texi (AArch64 Function Attributes): Documents
28411 "sign-return-address=".
28412 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
28413
28414 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
28415
28416 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
28417 overall option summary.
28418
28419 2017-01-19 Jiong Wang <jiong.wang@arm.com>
28420
28421 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
28422 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
28423 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
28424 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
28425
28426 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
28427
28428 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
28429 -mpower9-minmax by default for -mcpu=power9.
28430 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
28431 128-bit floating point.
28432
28433 2017-01-20 Alan Modra <amodra@gmail.com>
28434
28435 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
28436 optimizing for size.
28437
28438 2017-01-20 Alan Modra <amodra@gmail.com>
28439
28440 PR target/79144
28441 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
28442 for strcmp and strncmp from corresponding builtin decl.
28443
28444 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
28445
28446 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
28447 instead of i386/rtems-64.h.
28448 * config/i386/rtems-64.h: Remove.
28449
28450 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
28451
28452 PR target/78478
28453 Revert:
28454 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
28455
28456 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
28457
28458 2017-01-19 Tamar Christina <tamar.christina@arm.com>
28459
28460 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
28461 Change int to HOST_WIDE_INT.
28462 * config/aarch64/aarch64-protos.h
28463 (aarch64_simd_gen_const_vector_dup): Likewise.
28464 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
28465
28466 2017-01-19 David Malcolm <dmalcolm@redhat.com>
28467
28468 * langhooks-def.h (lhd_type_for_size): New decl.
28469 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
28470 * langhooks.c (lhd_type_for_size): New function, taken from
28471 lto_type_for_size.
28472
28473 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
28474
28475 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
28476 define_bypass for CR latency.
28477 (power9-cracked-alu): Update bypass latency and remove power9-branch.
28478 (power9-alu2): Add define_bypass for CR latency.
28479 (power9-cmp): New.
28480 (power9-mul): Update insn latency.
28481 (power9-mul-compare): Update insn latency, bypass latency and remove
28482 power9-branch.
28483
28484 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28485
28486 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
28487 Delete.
28488 * config/aarch64/aarch64.md
28489 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
28490 aarch64_nopcrelative_literal_loads.
28491 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
28492
28493 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
28494
28495 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
28496 TARGET_LOONGSON_3A.
28497 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
28498
28499 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
28500
28501 PR target/78176
28502 * config.gcc (supported_defaults): Add lxc1-sxc1.
28503 (with_lxc1_sxc1): Add validation.
28504 (all_defaults): Add lxc1-sxc1.
28505 * config/mips/mips.opt (mlxc1-sxc1): New option.
28506 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
28507 mlxc1-sxc1.
28508 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
28509 __mips_no_lxc1_sxc1.
28510 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
28511 * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
28512 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
28513
28514 2017-01-19 Richard Biener <rguenther@suse.de>
28515
28516 PR tree-optimization/72488
28517 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
28518 sure to restore SSA info.
28519 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
28520
28521 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
28522
28523 PR rtl-optimization/79121
28524 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
28525 of the inner type when shifting an extended value.
28526
28527 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
28528
28529 PR lto/78407
28530 * symtab.c (symtab_node::equal_address_to): Fix comparing of
28531 interposable aliases.
28532
28533 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
28534
28535 PR target/78516
28536 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
28537 Use the evmergelohi instruction.
28538 (mov_si<mode>_e500_subreg4_2_le): Likewise.
28539 (mov_sitf_e500_subreg8_2_be): Likewise.
28540 (mov_sitf_e500_subreg12_2_le): Likewise.
28541 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
28542 (mov_si<mode>_e500_subreg4_2_be): Likewise.
28543 (mov_sitf_e500_subreg8_2_le): Likewise.
28544 (mov_sitf_e500_subreg12_2_be): Likewise.
28545
28546 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28547
28548 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
28549 attribute from vecsimple to vecperm.
28550 (altivec_vbpermq2): Likewise.
28551
28552 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28553
28554 PR target/79040
28555 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
28556
28557 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
28558 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
28559 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
28560 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
28561 case where N arg is SIZE_MAX.
28562 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
28563 (cmpstrsi): Add pattern.
28564
28565 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
28566
28567 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
28568 __builtin_vec_revb builtins.
28569 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
28570 built-in functions to support generation of the ISA 3.0 XXBR<x>
28571 vector byte reverse instructions.
28572 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
28573 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
28574 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
28575 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
28576 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
28577 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
28578 (P9V_BUILTIN_VEC_REVB): Likewise.
28579 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
28580 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
28581 (p9_xxbrq_v16qi): Likewise.
28582 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
28583 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
28584 (p9_xxbrh_v8hi): Likewise.
28585 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
28586 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
28587 vec_revb built-in functions.
28588
28589 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
28590
28591 PR rtl-optimization/78952
28592 * config/i386/i386.md (any_extract): New code iterator.
28593 (*insvqi_2): Use any_extract for source operand.
28594 (*insvqi_3): Use any_shiftrt for source operand.
28595
28596 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
28597
28598 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
28599 New function.
28600 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
28601
28602 2017-01-18 Matthias Klose <doko@ubuntu.com>
28603
28604 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
28605
28606 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28607
28608 * config/rs6000/altivec.h (vec_bperm): Change #define.
28609 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
28610 (altivec_vbpermq2): New define_insn.
28611 (altivec_vbpermd): Likewise.
28612 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
28613 function interface.
28614 (VBPERMD): Likewise.
28615 (VBPERM): New polymorphic function interface.
28616 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
28617 Add entries for P9V_BUILTIN_VEC_VBPERM.
28618 * doc/extend.texi: Add interfaces for vec_bperm.
28619
28620 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28621
28622 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
28623 first letter of error messages.
28624 (s390_resolve_overloaded_builtin): Likewise.
28625 * config/s390/s390.c (s390_expand_builtin): Likewise.
28626 (s390_invalid_arg_for_unprototyped_fn): Likewise.
28627 (s390_valid_target_attribute_inner_p): Likewise.
28628 * config/s390/s390.md ("tabort"): Likewise.
28629
28630 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
28631
28632 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
28633 (ISA_AVOID_DIV_HILO): New macro.
28634 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
28635 (ISA_HAS_DDIV): Likewise.
28636
28637 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
28638
28639 * doc/invoke.texi (fabi-version): Correct number of occurrences.
28640
28641 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
28642
28643 * doc/invoke.texi (fabi-version): Spelling fix.
28644
28645 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
28646
28647 PR c++/70182
28648 * doc/invoke.texi (fabi-version): Mention mangling fix for
28649 operator names.
28650
28651 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
28652
28653 PR c++/77489
28654 * doc/invoke.texi (fabi-version): Document discriminator mangling.
28655
28656 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
28657
28658 PR target/78875
28659 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
28660 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
28661 the new options.
28662 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
28663 flexible settings.
28664 (stack_protect_test): Ditto.
28665 * config/rs6000/rs6000.opt (mstack-protector-guard=,
28666 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
28667 options.
28668 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
28669 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
28670 -mstack-protector-guard-offset=.
28671 (RS/6000 and PowerPC Options): Ditto.
28672
28673 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
28674
28675 * config/i386/i386.h (MASK_CLASS_P): New define.
28676 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
28677 there are no registers from different register sets also when
28678 mask registers are used. Update function comment.
28679 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
28680 to (*k/*r) and (*k/*km) alternatives.
28681
28682 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
28683
28684 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
28685 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
28686 (EH_RETURN_HANDLER_RTX): New define.
28687 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
28688 Force frame pointer in EH return functions.
28689 (aarch64_expand_epilogue): Add barrier for eh_return.
28690 (aarch64_final_eh_return_addr): Remove.
28691 (aarch64_eh_return_handler_rtx): New function.
28692 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
28693 Remove.
28694 (aarch64_eh_return_handler_rtx): New prototype.
28695
28696 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28697
28698 * config/rs6000/altivec.h (vec_rlmi): New #define.
28699 (vec_vrlnm): Likewise.
28700 (vec_rlnm): Likewise.
28701 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
28702 (UNSPEC_VRLNM): Likewise.
28703 (VIlong): New mode iterator.
28704 (altivec_vrl<VI_char>mi): New define_insn.
28705 (altivec_vrl<VI_char>nm): Likewise.
28706 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
28707 function entry.
28708 (VRLDNM): Likewise.
28709 (RLNM): New polymorphic function entry.
28710 (VRLWMI): New monomorphic function entry.
28711 (VRLDMI): Likewise.
28712 (RLMI): New polymorphic function entry.
28713 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
28714 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
28715 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
28716 vec_vrlnm.
28717
28718 2017-01-17 Jakub Jelinek <jakub@redhat.com>
28719
28720 PR debug/78839
28721 * dwarf2out.c (field_byte_offset): Restore the
28722 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
28723 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
28724 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
28725 of build2 + fold.
28726
28727 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
28728
28729 PR ada/67205
28730 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
28731
28732 2017-01-17 Jakub Jelinek <jakub@redhat.com>
28733
28734 PR debug/71669
28735 * dwarf2out.c (add_data_member_location_attribute): For constant
28736 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
28737 instead of DW_AT_data_member_location, DW_AT_bit_offset and
28738 DW_AT_byte_size attributes.
28739
28740 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
28741
28742 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
28743 after forcing to constant memory when the code model is medium.
28744
28745 2017-01-17 Julia Koval <julia.koval@intel.com>
28746
28747 PR target/76731
28748 * config/i386/avx512fintrin.h
28749 (_mm512_i32gather_ps): Change __addr type to void const*.
28750 (_mm512_mask_i32gather_ps): Ditto.
28751 (_mm512_i32gather_pd): Ditto.
28752 (_mm512_mask_i32gather_pd): Ditto.
28753 (_mm512_i64gather_ps): Ditto.
28754 (_mm512_mask_i64gather_ps): Ditto.
28755 (_mm512_i64gather_pd): Ditto.
28756 (_mm512_mask_i64gather_pd): Ditto.
28757 (_mm512_i32gather_epi32): Ditto.
28758 (_mm512_mask_i32gather_epi32): Ditto.
28759 (_mm512_i32gather_epi64): Ditto.
28760 (_mm512_mask_i32gather_epi64): Ditto.
28761 (_mm512_i64gather_epi32): Ditto.
28762 (_mm512_mask_i64gather_epi32): Ditto.
28763 (_mm512_i64gather_epi64): Ditto.
28764 (_mm512_mask_i64gather_epi64): Ditto.
28765 (_mm512_i32scatter_ps): Change __addr type to void*.
28766 (_mm512_mask_i32scatter_ps): Ditto.
28767 (_mm512_i32scatter_pd): Ditto.
28768 (_mm512_mask_i32scatter_pd): Ditto.
28769 (_mm512_i64scatter_ps): Ditto.
28770 (_mm512_mask_i64scatter_ps): Ditto.
28771 (_mm512_i64scatter_pd): Ditto.
28772 (_mm512_mask_i64scatter_pd): Ditto.
28773 (_mm512_i32scatter_epi32): Ditto.
28774 (_mm512_mask_i32scatter_epi32): Ditto.
28775 (_mm512_i32scatter_epi64): Ditto.
28776 (_mm512_mask_i32scatter_epi64): Ditto.
28777 (_mm512_i64scatter_epi32): Ditto.
28778 (_mm512_mask_i64scatter_epi32): Ditto.
28779 (_mm512_i64scatter_epi64): Ditto.
28780 (_mm512_mask_i64scatter_epi64): Ditto.
28781 * config/i386/avx512pfintrin.h
28782 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
28783 (_mm512_mask_prefetch_i32gather_ps): Ditto.
28784 (_mm512_mask_prefetch_i64gather_pd): Ditto.
28785 (_mm512_mask_prefetch_i64gather_ps): Ditto.
28786 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
28787 (_mm512_prefetch_i32scatter_ps): Ditto.
28788 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
28789 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
28790 (_mm512_prefetch_i64scatter_pd): Ditto.
28791 (_mm512_prefetch_i64scatter_ps): Ditto.
28792 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
28793 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
28794 * config/i386/avx512vlintrin.h
28795 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
28796 (_mm_mmask_i32gather_ps): Ditto.
28797 (_mm256_mmask_i32gather_pd): Ditto.
28798 (_mm_mmask_i32gather_pd): Ditto.
28799 (_mm256_mmask_i64gather_ps): Ditto.
28800 (_mm_mmask_i64gather_ps): Ditto.
28801 (_mm256_mmask_i64gather_pd): Ditto.
28802 (_mm_mmask_i64gather_pd): Ditto.
28803 (_mm256_mmask_i32gather_epi32): Ditto.
28804 (_mm_mmask_i32gather_epi32): Ditto.
28805 (_mm256_mmask_i32gather_epi64): Ditto.
28806 (_mm_mmask_i32gather_epi64): Ditto.
28807 (_mm256_mmask_i64gather_epi32): Ditto.
28808 (_mm_mmask_i64gather_epi32): Ditto.
28809 (_mm256_mmask_i64gather_epi64): Ditto.
28810 (_mm_mmask_i64gather_epi64): Ditto.
28811 (_mm256_i32scatter_ps): Change __addr type to void*.
28812 (_mm256_mask_i32scatter_ps): Ditto.
28813 (_mm_i32scatter_ps): Ditto.
28814 (_mm_mask_i32scatter_ps): Ditto.
28815 (_mm256_i32scatter_pd): Ditto.
28816 (_mm256_mask_i32scatter_pd): Ditto.
28817 (_mm_i32scatter_pd): Ditto.
28818 (_mm_mask_i32scatter_pd): Ditto.
28819 (_mm256_i64scatter_ps): Ditto.
28820 (_mm256_mask_i64scatter_ps): Ditto.
28821 (_mm_i64scatter_ps): Ditto.
28822 (_mm_mask_i64scatter_ps): Ditto.
28823 (_mm256_i64scatter_pd): Ditto.
28824 (_mm256_mask_i64scatter_pd): Ditto.
28825 (_mm_i64scatter_pd): Ditto.
28826 (_mm_mask_i64scatter_pd): Ditto.
28827 (_mm256_i32scatter_epi32): Ditto.
28828 (_mm256_mask_i32scatter_epi32): Ditto.
28829 (_mm_i32scatter_epi32): Ditto.
28830 (_mm_mask_i32scatter_epi32): Ditto.
28831 (_mm256_i32scatter_epi64): Ditto.
28832 (_mm256_mask_i32scatter_epi64): Ditto.
28833 (_mm_i32scatter_epi64): Ditto.
28834 (_mm_mask_i32scatter_epi64): Ditto.
28835 (_mm256_i64scatter_epi32): Ditto.
28836 (_mm256_mask_i64scatter_epi32): Ditto.
28837 (_mm_i64scatter_epi32): Ditto.
28838 (_mm_mask_i64scatter_epi32): Ditto.
28839 (_mm256_i64scatter_epi64): Ditto.
28840 (_mm256_mask_i64scatter_epi64): Ditto.
28841 (_mm_i64scatter_epi64): Ditto.
28842 (_mm_mask_i64scatter_epi64): Ditto.
28843 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
28844 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
28845 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
28846 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
28847 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
28848 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
28849 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
28850 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
28851 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
28852 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
28853 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
28854 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
28855 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
28856 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
28857 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
28858 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
28859 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
28860 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
28861 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
28862 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
28863 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
28864 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
28865 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
28866 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
28867 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
28868 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
28869 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
28870 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
28871 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
28872 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
28873 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
28874 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
28875 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
28876 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
28877 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
28878 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
28879 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
28880 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
28881 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
28882 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
28883 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
28884 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
28885 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
28886 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
28887 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
28888 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
28889 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
28890 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
28891 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
28892 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
28893 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
28894 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
28895 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
28896 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
28897 definitions accordingly.
28898
28899 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
28900 Kuan-Lin Chen <kuanlinchentw@gmail.com>
28901
28902 PR target/79079
28903 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
28904 gen_lowpart.
28905
28906 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
28907
28908 PR target/79058
28909 * ira-conflicts.c (ira_build_conflicts): Update total conflict
28910 hard regs for inner regno.
28911
28912 2017-01-17 Martin Liska <mliska@suse.cz>
28913
28914 PR ipa/71207
28915 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
28916 assumption and add comment.
28917
28918 2017-01-17 Nathan Sidwell <nathan@acm.org>
28919
28920 * ipa-visibility.c (localize_node): New function, broken out of ...
28921 (function_and_variable_visibility): ... here. Call it.
28922
28923 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
28924
28925 PR middle-end/77445
28926 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
28927 correctly set frequency of oudgoing edge.
28928 (duplicate_thread_path): Fix profile updating.
28929
28930 2017-01-17 Jakub Jelinek <jakub@redhat.com>
28931
28932 PR other/79046
28933 * configure.ac: Add GCC_BASE_VER.
28934 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
28935 version from BASE-VER file.
28936 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
28937 (gcc.o): Depend on $(BASEVER).
28938 * common.opt (dumpfullversion): New option.
28939 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
28940 * doc/invoke.texi: Document -dumpfullversion.
28941 * doc/install.texi: Document --with-gcc-major-version-only.
28942 * configure: Regenerated.
28943
28944 2017-01-17 Richard Biener <rguenther@suse.de>
28945
28946 PR tree-optimization/71433
28947 * tree-vrp.c (register_new_assert_for): Merge same asserts
28948 on all incoming edges.
28949 (process_assert_insertions_for): Handle insertions at the
28950 beginning of BBs.
28951
28952 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
28953
28954 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
28955 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
28956
28957 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
28958
28959 PR target/78633
28960 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
28961 RTL sharing.
28962
28963 2017-01-17 Alan Modra <amodra@gmail.com>
28964
28965 PR target/79066
28966 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
28967 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
28968 symbolic stack limit when pic.
28969
28970 2017-01-16 Martin Sebor <msebor@redhat.com>
28971
28972 PR tree-optimization/78608
28973 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
28974
28975 2017-01-16 Jeff Law <law@redhat.com>
28976
28977 Revert:
28978 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
28979 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
28980 for several include directories that may be relative to sysroot.
28981 * config/i386/x-mingw32 (gplus_includedir): Define.
28982 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
28983 (native_system_includedir): Likewise.
28984 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
28985 override if TARGET_SYSTEM_ROOT is defined.
28986 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
28987
28988 PR tree-optimization/79090
28989 PR tree-optimization/33562
28990 PR tree-optimization/61912
28991 PR tree-optimization/77485
28992 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
28993 and computed trims into the dump file.
28994
28995 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
28996
28997 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
28998
28999 2017-01-16 Jakub Jelinek <jakub@redhat.com>
29000
29001 PR c/79089
29002 * gimplify.c (gimplify_init_constructor): If want_value and
29003 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
29004 fix.
29005
29006 PR target/79080
29007 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
29008 sequence. Formatting fixes.
29009 (doloop_optimize): Formatting fixes.
29010
29011 PR driver/49726
29012 * gcc.c (debug_level_greater_than_spec_func): New function.
29013 (static_spec_functions): Add debug-level-gt spec function.
29014 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
29015 !g0.
29016 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
29017 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
29018 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
29019 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
29020 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
29021 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
29022
29023 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
29024
29025 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
29026 QImode fixups to general and mask registers only.
29027
29028 2017-01-16 Carl Love <cel@us.ibm.com>
29029
29030 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
29031 for built-in functions
29032 vector signed char vec_nabs (vector signed char)
29033 vector signed short vec_nabs (vector signed short)
29034 vector signed int vec_nabs (vector signed int)
29035 vector signed long long vec_nabs (vector signed long long)
29036 vector float vec_nabs (vector float)
29037 vector double vec_nabs (vector double)
29038 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
29039 and NABS overload.
29040 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
29041 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
29042 * doc/extend.texi: Update the documentation file for the new built-in
29043 functions.
29044
29045 2017-01-16 Martin Sebor <msebor@redhat.com>
29046
29047 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
29048 message.
29049
29050 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29051
29052 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
29053 UNSPEC_VSX__XXSPLTD to require special splat handling.
29054
29055 2017-01-16 David Malcolm <dmalcolm@redhat.com>
29056
29057 PR bootstrap/78616
29058 * system.h: Poison strndup.
29059
29060 2017-01-16 Alan Modra <amodra@gmail.com>
29061
29062 PR target/79098
29063 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
29064 use a switch.
29065
29066 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
29067
29068 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
29069
29070 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
29071
29072 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
29073 call recog here. Assert that INSN_CODE (insn) is non-negative.
29074
29075 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
29076
29077 PR target/72749
29078 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
29079 fallthrough.
29080 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
29081 in the currently scheduled RTL fragment.
29082
29083 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
29084
29085 PR rtl-optimization/78751
29086 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
29087 give up.
29088
29089 2017-01-14 Jeff Law <law@redhat.com>
29090
29091 PR tree-optimization/79090
29092 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
29093 variable length stores.
29094 (compute_trims): Delete dead assignment to *trim_tail.
29095 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
29096 zero length.
29097
29098 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
29099
29100 PR rtl-optimization/78626
29101 PR rtl-optimization/78727
29102 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
29103 of a block, and split such blocks after everything else is finished.
29104
29105 2017-01-14 Alan Modra <amodra@gmail.com>
29106
29107 PR target/72749
29108 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
29109 target legitimate_combined_insn.
29110 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
29111 (rs6000_legitimate_combined_insn): New function.
29112 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
29113 all uses.
29114 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
29115 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
29116 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
29117
29118 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
29119
29120 * doc/frontends.texi (G++ and GCC): Remove references to Java.
29121
29122 2017-01-13 Jeff Law <law@redhat.com>
29123
29124 PR tree-optimization/33562
29125 PR tree-optimization/61912
29126 PR tree-optimization/77485
29127 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
29128 a statement.
29129 (delete_dead_assignment): Likewise.
29130 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
29131 statement to delete_dead_call and delete_dead_assignment.
29132
29133 2017-01-13 David Malcolm <dmalcolm@redhat.com>
29134
29135 PR c/78304
29136 * substring-locations.c (format_warning_va): Strengthen case 1 so
29137 that both endpoints of the substring must be within the format
29138 range for just the substring to be printed.
29139
29140 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
29141
29142 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
29143 * config/i386/i386.c (ix86_target_string): Add missing options
29144 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
29145 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
29146 flags_other and ix86_target_other to flags2_other. Display unknown
29147 isa2 options.
29148 (ix86_valid_target_attribute_inner_p): Add missing options and
29149 reorder options by implied ISAs, as in ix86_target_string.
29150
29151 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
29152
29153 * hash-table.h (hash_table::too_empty_p): New function.
29154 (hash_table::expand): Use it.
29155 (hash_table::traverse): Likewise.
29156 (hash_table::empty_slot): Use sizeof (value_type) instead of
29157 sizeof (PTR) to convert bytes to elements. Shrink the table
29158 if the current size is excessive for the current number of
29159 elements.
29160
29161 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
29162
29163 * ira-costs.c (record_reg_classes): Break from the inner loop
29164 early once alt_fail is known to be true. Update outer loop
29165 handling accordingly.
29166
29167 2017-01-13 Jeff Law <law@redhat.com>
29168
29169 * tree-ssa-dse.c (decrement_count): New function.
29170 (increment_start_addr, maybe_trim_memstar_call): Likewise.
29171 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
29172 when we know the partially dead statement is a mem* function.
29173
29174 PR tree-optimization/61912
29175 PR tree-optimization/77485
29176 * tree-ssa-dse.c: Include expr.h.
29177 (maybe_trim_constructor_store): New function.
29178 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
29179
29180 PR tree-optimization/33562
29181 PR tree-optimization/61912
29182 PR tree-optimization/77485
29183 * doc/invoke.texi: Document new dse-max-object-size param.
29184 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
29185 * tree-ssa-dse.c: Include params.h.
29186 (dse_store_status): New enum.
29187 (initialize_ao_ref_for_dse): New, partially extracted from
29188 dse_optimize_stmt.
29189 (valid_ao_ref_for_dse, normalize_ref): New.
29190 (setup_live_bytes_from_ref, compute_trims): Likewise.
29191 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
29192 (maybe_trim_partially_dead_store): Likewise.
29193 (maybe_trim_complex_store): Likewise.
29194 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
29195 Track what bytes live from the original store. Return tri-state
29196 for dead, partially dead or live.
29197 (dse_dom_walker): Add constructor, destructor and new private members.
29198 (delete_dead_call, delete_dead_assignment): New extracted from
29199 dse_optimize_stmt.
29200 (dse_optimize_stmt): Make a member of dse_dom_walker.
29201 Use initialize_ao_ref_for_dse.
29202
29203 PR tree-optimization/33562
29204 PR tree-optimization/61912
29205 PR tree-optimization/77485
29206 * sbitmap.h (bitmap_count_bits): Prototype.
29207 (bitmap_clear_range, bitmap_set_range): Likewise.
29208 * sbitmap.c (bitmap_clear_range): New function.
29209 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
29210
29211 2017-01-13 Martin Liska <mliska@suse.cz>
29212
29213 PR ipa/79043
29214 * function.c (set_cfun): Add new argument force.
29215 * function.h (set_cfun): Likewise.
29216 * ipa-inline-transform.c (inline_call): Use the function when
29217 strict alising from is dropped for function we inline to.
29218
29219 2017-01-13 Richard Biener <rguenther@suse.de>
29220
29221 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
29222 for dumping GIMPLE INTEGER_CSTs.
29223
29224 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29225
29226 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
29227 to 201112L since C++17.
29228
29229 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
29230
29231 PR sanitizer/78887
29232 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
29233 if -fsanitize=kernel-address is present.
29234
29235 2017-01-13 Richard Biener <rguenther@suse.de>
29236
29237 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
29238 as _Literal ( type ) number in case usual suffixes do not
29239 preserve all information.
29240
29241 2017-01-13 Richard Biener <rguenther@suse.de>
29242
29243 PR tree-optimization/77283
29244 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
29245 and ssa-iterators.h.
29246 (is_feasible_trace): Implement a cost model based on joiner
29247 PHI node uses.
29248
29249 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
29250
29251 PR target/79004
29252 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
29253 char or short to __float128/_Float128 directly.
29254
29255 2017-01-12 Martin Sebor <msebor@redhat.com>
29256
29257 to -Wformat-overflow.
29258 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
29259 (min_bytes_remaining): Same.
29260 (get_string_length): Same.
29261 (format_string): Same.
29262 (format_directive): Same.
29263 (add_bytes): Same.
29264 (pass_sprintf_length::handle_gimple_call): Same.
29265
29266 2017-01-12 Jakub Jelinek <jakub@redhat.com>
29267
29268 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
29269 info.nowrite calls with no lhs that can't throw. Return bool
29270 whether gsi_remove has been called or not.
29271 (pass_sprintf_length::handle_gimple_call): Return bool whether
29272 try_substitute_return_value called gsi_remove. Formatting fix.
29273 (pass_sprintf_length::execute): Don't use gsi_remove if
29274 handle_gimple_call returned true.
29275
29276 PR bootstrap/79069
29277 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
29278 be removed due to side-effects, don't remove following barrier nor
29279 turn the successor edge into fallthru edge.
29280
29281 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29282
29283 PR target/79044
29284 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
29285 element-reversing loads and stores as not swappable.
29286
29287 2017-01-12 Nathan Sidwell <nathan@acm.org>
29288 Nicolai Stange <nicstange@gmail.com>
29289
29290 * combine.c (try_combine): Don't ignore result of overlap checking
29291 loop. Combine overlap & asm check into single loop.
29292
29293 2017-01-12 Richard Biener <rguenther@suse.de>
29294
29295 * tree-pretty-print.c (dump_generic_node): Provide -gimple
29296 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
29297
29298 2017-01-12 Richard Biener <rguenther@suse.de>
29299
29300 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
29301 and TS_TARGET_OPTION directly derive from TS_BASE.
29302 * tree-core.h (tree_optimization_option): Derive from tree_base.
29303 (tree_target_option): Likewise.
29304
29305 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
29306
29307 * config/i386/i386.c (memory_address_length): Increase len
29308 only when rip_relative_addr_p returns false.
29309
29310 2017-01-11 Julia Koval <julia.koval@intel.com>
29311
29312 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
29313 (OPTION_MASK_ISA_SGX_SET): New.
29314 (ix86_handle_option): Handle OPT_msgx.
29315 * config.gcc: Added sgxintrin.h.
29316 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
29317 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
29318 * config/i386/i386.c (ix86_target_string): Add -msgx.
29319 (PTA_SGX): New.
29320 (ix86_option_override_internal): Handle new options.
29321 (ix86_valid_target_attribute_inner_p): Add sgx.
29322 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
29323 * config/i386/i386.opt: Add msgx.
29324 * config/i386/sgxintrin.h: New file.
29325 * config/i386/x86intrin.h: Add sgxintrin.h.
29326
29327 2017-01-11 Jakub Jelinek <jakub@redhat.com>
29328
29329 PR c++/71537
29330 * fold-const.c (maybe_nonzero_address): Return 1 for function
29331 local objects.
29332 (tree_single_nonzero_warnv_p): Don't handle function local objects
29333 here.
29334
29335 PR c++/72813
29336 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
29337 of c-header.
29338
29339 2017-01-11 David Malcolm <dmalcolm@redhat.com>
29340
29341 PR driver/78877
29342 * opts.c: Include "spellcheck.h"
29343 (struct string_fragment): New struct.
29344 (struct edit_distance_traits<const string_fragment &>): New
29345 struct.
29346 (get_closest_sanitizer_option): New function.
29347 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
29348
29349 2017-01-11 Jakub Jelinek <jakub@redhat.com>
29350
29351 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
29352 by 12.
29353 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
29354 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
29355 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
29356 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
29357 for initial die_offset if dwarf_split_debug_info.
29358 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
29359 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
29360 fields.
29361 (output_skeleton_debug_sections): Formatting fix. Use
29362 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
29363 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
29364
29365 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
29366
29367 * config/arm/cortex-a53.md: Add bypasses for
29368 cortex_a53_r2f_cvt.
29369 (cortex_a53_r2f): Only use for transfers.
29370 (cortex_a53_f2r): Likewise.
29371 (cortex_a53_r2f_cvt): Add reservation for conversions.
29372 (cortex_a53_f2r_cvt): Likewise.
29373
29374 2017-01-11 Tamar Christina <tamar.christina@arm.com>
29375
29376 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
29377 to all inlined functions, change static to extern.
29378
29379 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
29380
29381 PR target/78253
29382 * config/arm/arm.c (legitimize_pic_address): Handle reference to
29383 weak symbol.
29384 (arm_assemble_integer): Likewise.
29385
29386 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
29387
29388 * config.gcc: Use new awk script to check CPU, FPU and architecture
29389 parameters for --with-... options.
29390 * config/arm/parsecpu.awk: New file
29391 * config/arm/arm-cpus.in: New file.
29392 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
29393 files.
29394 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
29395 files.
29396 * config/arm/t-arm: Update dependency rules.
29397 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
29398 of processing .def files.
29399 * config/arm/genopt.sh: Deleted.
29400 * config/arm/gentune.sh: Deleted.
29401 * config/arm/arm-cores.def: Deleted.
29402 * config/arm/arm-arches.def: Deleted.
29403 * config/arm/arm-fpus.def: Deleted.
29404 * config/arm/arm-tune.md: Regenerated.
29405 * config/arm/arm-tables.opt: Regenerated.
29406 * config/arm/arm-cpu.h: New generated file.
29407 * config/arm/arm-cpu-data.h: New generated file.
29408 * config/arm/arm-cpu-cdata.h: New generated file.
29409
29410 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
29411
29412 PR lto/79042
29413 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
29414 bit.
29415 (input_varpool_node): Unpack dynamically_initialized bit.
29416
29417 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
29418
29419 PR rtl-optimization/79032
29420 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
29421 the alignment of the adjusted memory reference against that of MODE,
29422 instead of the alignment of the original memory reference.
29423
29424 2017-01-11 Martin Jambor <mjambor@suse.cz>
29425
29426 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
29427 test.
29428 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
29429 decorated functions.
29430
29431 2017-01-11 Richard Biener <rguenther@suse.de>
29432
29433 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
29434 set range/nonnull info for PHI results. Do not set it on
29435 stmts marked for removal.
29436
29437 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
29438
29439 * expr.c (store_field): In the bitfield case, fetch the return value
29440 from the registers before applying a single big-endian adjustment.
29441 Always do a final load for a BLKmode value not larger than a word.
29442
29443 2017-01-10 David Malcolm <dmalcolm@redhat.com>
29444
29445 PR c++/77949
29446 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
29447 that we correctly handle column numbers greater than
29448 LINE_MAP_MAX_COLUMN_NUMBER.
29449
29450 2017-01-10 Martin Sebor <msebor@redhat.com>
29451
29452 PR middle-end/78245
29453 * gimple-ssa-sprintf.c (get_destination_size): Call
29454 {init,fini}object_sizes.
29455 * tree-object-size.c (addr_object_size): Adjust.
29456 (pass_through_call): Adjust.
29457 (pass_object_sizes::execute): Adjust.
29458 * tree-object-size.h (fini_object_sizes): Declare.
29459
29460 2017-01-10 Martin Sebor <msebor@redhat.com>
29461
29462 PR tree-optimization/78775
29463 * builtins.c (get_size_range): Move...
29464 * calls.c: ...to here.
29465 (alloc_max_size): Accept zero argument.
29466 (operand_signed_p): Remove.
29467 (maybe_warn_alloc_args_overflow): Call get_size_range.
29468 * calls.h (get_size_range): Declare.
29469
29470 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
29471
29472 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
29473 from TI's devices.csv file as of September 2016.
29474 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
29475
29476 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
29477
29478 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
29479 * doc/invoke.texi: Likewise.
29480 * doc/md.texi: Likewise.
29481 * doc/objc.texi: Likewise.
29482
29483 2017-01-10 Joshua Conner <joshconner@google.com>
29484
29485 * config/arm/fuchsia-elf.h: New file.
29486 * config/fuchsia.h: New file.
29487 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
29488 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
29489 targets.
29490 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
29491
29492 2016-01-10 Richard Biener <rguenther@suse.de>
29493
29494 PR tree-optimization/79034
29495 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
29496 Propagate out degenerate PHIs in the joiner.
29497
29498 2017-01-10 Martin Liska <mliska@suse.cz>
29499
29500 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
29501 (sort_congruence_classes_by_decl_uid): Likewise.
29502 (sort_congruence_class_groups_by_decl_uid): Likewise.
29503 (sem_item_optimizer::merge_classes): Sort class, groups in these
29504 classes and members in the groups by DECL_UID of declarations.
29505 This would make merge operations stable.
29506
29507 2017-01-10 Martin Liska <mliska@suse.cz>
29508
29509 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
29510 usage of m_classes_vec.
29511 (sem_item_optimizer::~sem_item_optimizer): Likewise.
29512 (sem_item_optimizer::get_group_by_hash): Likewise.
29513 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
29514 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
29515 (sem_item_optimizer::verify_classes): Likewise.
29516 (sem_item_optimizer::process_cong_reduction): Likewise.
29517 (sem_item_optimizer::dump_cong_classes): Likewise.
29518 (sem_item_optimizer::merge_classes): Likewise.
29519 * ipa-icf.h (congruence_class_hash): Rename from
29520 congruence_class_group_hash. Remove declaration of m_classes_vec.
29521
29522 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
29523
29524 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
29525 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
29526 * config.gcc: Add avx512vpopcntdqintrin.h.
29527 * config/i386/avx512vpopcntdqintrin.h: New.
29528 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
29529 * config/i386/i386-builtin-types.def: Add new types.
29530 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
29531 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
29532 __builtin_ia32_vpopcountq_v8di_mask): New.
29533 * config/i386/i386-c.c (ix86_target_macros_internal): Define
29534 __AVX512VPOPCNTDQ__.
29535 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
29536 (PTA_AVX512VPOPCNTDQ): Define.
29537 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
29538 TARGET_AVX512VPOPCNTDQ_P): Define.
29539 * config/i386/i386.opt: Add mavx512vpopcntdq.
29540 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
29541 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
29542
29543 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
29544
29545 PR middle-end/77484
29546 * predict.def (PRED_CALL): Set to 67.
29547
29548 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
29549
29550 * expr.c (store_field): In the bitfield case, if the value comes from
29551 a function call and is of an aggregate type returned in registers, do
29552 not modify the field mode; extract the value in all cases if the mode
29553 is BLKmode and the size is not larger than a word.
29554
29555 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
29556
29557 PR target/71017
29558 * config/i386/cpuid.h: Fix undefined behavior.
29559
29560 2017-01-04 Jeff Law <law@redhat.com>
29561
29562 PR tree-optimization/79007
29563 PR tree-optimization/67955
29564 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
29565 conservative for pt.null when flag_non_call_exceptions is on.
29566
29567 2017-01-09 Jakub Jelinek <jakub@redhat.com>
29568
29569 PR translation/79019
29570 PR translation/79020
29571 * params.def (PARAM_INLINE_MIN_SPEEDUP,
29572 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
29573 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
29574 in descriptions.
29575 * config/avr/avr.opt (maccumulate-args): Likewise.
29576 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
29577 * common.opt (freport-bug): Likewise.
29578 * cif-code.def (CIF_FINAL_ERROR): Likewise.
29579 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
29580 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
29581 translatable string.
29582 * config/i386/i386.c (function_value_32): Likewise.
29583 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
29584 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
29585 Likewise.
29586 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
29587 * common/config/msp430/msp430-common.c (msp430_handle_option):
29588 Likewise.
29589 * symtab.c (symtab_node::verify_base): Likewise.
29590 * opts.c (set_debug_level): Likewise.
29591 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
29592 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
29593 missing whitespace to translatable strings.
29594 * config/avr/avr.md (bswapsi2): Fix typo in comment.
29595 * config/sh/superh.h: Likewise.
29596 * config/i386/xopintrin.h: Likewise.
29597 * config/i386/znver1.md: Likewise.
29598 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
29599 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
29600 * double-int.h (struct double_int): Likewise.
29601 * double-int.c (div_and_round_double): Likewise.
29602 * wide-int.cc: Likewise.
29603 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
29604 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
29605 * cfgcleanup.c (crossjumps_occured): Renamed to ...
29606 (crossjumps_occurred): ... this.
29607 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
29608 Adjust all uses.
29609
29610 PR tree-optimization/78899
29611 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
29612 returning bool return struct loop *, NULL for failure and the new
29613 loop on success.
29614 (versionable_outer_loop_p): Don't version outer loop if it has
29615 dont_vectorized bit set.
29616 (tree_if_conversion): When versioning outer loop, ensure
29617 tree_if_conversion is performed also on the inner loop of the
29618 non-vectorizable outer loop copy.
29619 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
29620 LOOP_VECTORIZED in inner loop of the scalar outer loop and
29621 prevent vectorization of it.
29622 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
29623 the outer loop vectorization of the non-scalar version is attempted
29624 before vectorization of the inner loop in scalar version. If
29625 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
29626 vectorization of its inner loop.
29627 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
29628 has 2 inner loops, rename also on edges from bb whose single pred
29629 is outer_loop->header. Fix typo in function comment.
29630
29631 2017-01-09 Martin Sebor <msebor@redhat.com>
29632
29633 PR bootstrap/79033
29634 * asan.c (asan_emit_stack_protection): Increase local buffer size
29635 to avoid snprintf truncation warning.
29636
29637 2017-01-09 Andrew Pinski <apinski@cavium.com>
29638
29639 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
29640 to reference thunderx2t99 for the tuning structure
29641 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
29642 Rename to ...
29643 (thunderx2t99_extra_costs): This.
29644 * config/aarch64/aarch64-tune.md: Regenerate.
29645 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
29646 (vulcan_addrcost_table): This.
29647 (vulcan_regmove_cost): Rename to ...
29648 (thunderx2t99_regmove_cost): This.
29649 (vulcan_vector_cost): Rename to ...
29650 (thunderx2t99_vector_cost): this.
29651 (vulcan_branch_cost): Rename to ...
29652 (thunderx2t99_branch_cost): This.
29653 (vulcan_tunings): Rename to ...
29654 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
29655 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
29656
29657 2017-01-09 Martin Jambor <mjambor@suse.cz>
29658
29659 PR ipa/78365
29660 PR ipa/78599
29661 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
29662 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
29663 (propagate_vr_accross_jump_function): Use the above function for all
29664 value range computations for pass-through jump functions and type
29665 converasion from explicit value range values.
29666 (ipcp_propagate_stage): Do not attempt to deduce types of formal
29667 parameters from TYPE_ARG_TYPES.
29668 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
29669 (ipa_write_node_info): Stream type of the actual argument.
29670 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
29671
29672 2017-01-09 Martin Liska <mliska@suse.cz>
29673
29674 PR pch/78970
29675 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
29676 (lookup_compiler): Do not show error message with have_E.
29677
29678 2017-01-09 Jakub Jelinek <jakub@redhat.com>
29679
29680 PR tree-optimization/78938
29681 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
29682 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
29683 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
29684 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
29685 fixes.
29686
29687 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29688
29689 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
29690 is const0_rtx.
29691
29692 2017-01-09 Richard Biener <rguenther@suse.de>
29693
29694 PR tree-optimization/78997
29695 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
29696 name condition properly.
29697
29698 2017-01-09 Richard Biener <rguenther@suse.de>
29699
29700 PR debug/79000
29701 * dwarf2out.c (is_cxx): New overload with context.
29702 (is_naming_typedef_decl): Use it.
29703
29704 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
29705
29706 * invoke.texi (Option Summary): Correct spacing in option lists
29707 and add line breaks to fix over-long lines.
29708
29709 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
29710
29711 PR middle-end/17660
29712
29713 * extend.texi (Common Variable Attributes): Add xref to GCC
29714 Internals manual to explain mode attribute keywords.
29715
29716 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
29717
29718 PR other/16519
29719 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
29720 and Preprocessor Options.
29721 (Options for Linking): Document -pthread here....
29722 (RS/6000 and PowerPC Options): ...not here.
29723 (Solaris 2 Options): ...or here.
29724 * doc/cppopts.texi: Document -pthread.
29725
29726 2017-01-08 Martin Sebor <msebor@redhat.com>
29727
29728 PR middle-end/77708
29729 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
29730 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
29731 New member functions.
29732 (format_directive): Used them.
29733 (add_bytes): Same.
29734 (pass_sprintf_length::handle_gimple_call): Same.
29735 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
29736 to avoid truncation for any argument.
29737 (extract_affine_mul): Same.
29738 * tree.c (get_file_function_name): Same.
29739
29740 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
29741
29742 PR middle-end/77484
29743 * predict.def (PRED_INDIR_CALL): Set to 86.
29744
29745 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
29746
29747 PR preprocessor/54124
29748 * doc/cppopts.texi: Reformat -d subtable to list the full name
29749 of the options. Add cross-reference to the docs for the general
29750 compiler -d options.
29751 * doc/invoke.texi (Developer Options): Add cross-reference to the
29752 preprocessor-specific -d option documentation.
29753
29754 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
29755
29756 PR preprocessor/13498
29757 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
29758 redudant material, and reflect new command-line options.
29759 (System Headers): Likewise.
29760
29761 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
29762
29763 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
29764 -isystem, and -idirafter. Copy-edit.
29765 * doc/cppopts.texi: Copy-edit. Remove contradiction about
29766 default for -ftrack-macro-expansion. Delete obsolete and
29767 badly-formatted implementation details about -fdebug-cpp output.
29768 * doc/cppwarnopts.texi: Copy-edit.
29769
29770 2017-01-07 David Malcolm <dmalcolm@redhat.com>
29771
29772 PR c++/72803
29773 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
29774 that the transition from a max line width >= 1<<10 to narrower
29775 lines works correctly.
29776
29777 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
29778
29779 * doc/options.texi (PerFunction): New.
29780 * opt-functions.awk (switch_flags): Map both Optimization and
29781 PerFunction to CL_OPTIMIZATION.
29782 * opth-gen.awk: Test for PerFunction flag along with
29783 Optimization.
29784 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
29785 it only when the latter is present. Skip those that don't in
29786 the hash function generator.
29787 * common.opt (fvar-tracking): Mark as PerFunction instead of
29788 Optimization.
29789 (fvar-tracking-assignments): Likewise.
29790 (fvar-tracking-assignments-toggle): Likewise.
29791 (fvar-tracking-uninit): Likewise.
29792
29793 2017-01-07 Jakub Jelinek <jakub@redhat.com>
29794
29795 PR translation/79018
29796 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
29797 the and store.
29798
29799 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
29800
29801 PR target/57583
29802 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
29803 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
29804 TARGET_LONG_JUMP_TABLE_OFFSETS.
29805 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
29806 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
29807 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
29808 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
29809 * config/m68k/m68k.md (tablejump expander): Likewise.
29810 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
29811 TARGET_LONG_JUMP_TABLE_OFFSETS.
29812 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
29813 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
29814
29815 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
29816 David Holsgrove <david.holsgrove@xilinx.com>
29817
29818 * common/config/microblaze/microblaze-common.c
29819 (TARGET_EXCEPT_UNWIND_INFO): Remove.
29820 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
29821 New prototype.
29822 * config/microblaze/microblaze.c (microblaze_must_save_register)
29823 (microblaze_expand_epilogue, microblaze_return_addr): Handle
29824 calls_eh_return.
29825 (microblaze_eh_return): New function.
29826 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
29827 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
29828 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
29829 * config/microblaze/microblaze.md (eh_return): New pattern.
29830
29831 2017-01-06 Jakub Jelinek <jakub@redhat.com>
29832
29833 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
29834 GCC_DIAGNOSTIC_STRINGIFY): Define.
29835
29836 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
29837
29838 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
29839
29840 * config/arm/arm.md (<mcrr>): New.
29841 (<mrrc>): New.
29842 * config/arm/arm.c (arm_arch5te): New.
29843 (arm_option_override): Set arm_arch5te.
29844 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
29845 and mrrc2.
29846 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
29847 (arm_mcrr_qualifiers): ... this. New.
29848 (MRRC_QUALIFIERS): Define to...
29849 (arm_mrrc_qualifiers): ... this. New.
29850 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
29851 __arm_mrrc2): New.
29852 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
29853 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
29854 (MRRCI, mrrc, MRRC): New.
29855 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
29856 VUNSPEC_MRRC2): New.
29857
29858 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
29859
29860 * config/arm/arm.md (<mcr>): New.
29861 (<mrc>): New.
29862 * config/arm/arm.c (arm_coproc_builtin_available): Add
29863 support for mcr, mrc, mcr2 and mrc2.
29864 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
29865 (arm_mcr_qualifiers): ... this. New.
29866 (MRC_QUALIFIERS): Define to ...
29867 (arm_mrc_qualifiers): ... this. New.
29868 (MCR_QUALIFIERS): Define to ...
29869 (arm_mcr_qualifiers): ... this. New.
29870 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
29871 __arm_mrc2): New.
29872 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
29873 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
29874 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
29875 VUNSPEC_MRC2): New.
29876
29877 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
29878
29879 * config/arm/arm.md (*ldc): New.
29880 (*stc): New.
29881 (<ldc>): New.
29882 (<stc>): New.
29883 * config/arm/arm.c (arm_coproc_builtin_available): Add
29884 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
29885 (arm_coproc_ldc_stc_legitimate_address): New.
29886 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
29887 'qualifier_const_pointer'.
29888 (LDC_QUALIFIERS): Define to...
29889 (arm_ldc_qualifiers): ... this. New.
29890 (STC_QUALIFIERS): Define to...
29891 (arm_stc_qualifiers): ... this. New.
29892 * config/arm/arm-protos.h
29893 (arm_coproc_ldc_stc_legitimate_address): New.
29894 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
29895 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
29896 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
29897 stc2, stcl, stc2l): New.
29898 * config/arm/constraints.md (Uz): New.
29899 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
29900 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
29901 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
29902 VUNSPEC_STC2L): New.
29903
29904 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
29905
29906 * config/arm/arm.md (<cdp>): New.
29907 * config/arm/arm.c (neon_const_bounds): Rename this ...
29908 (arm_const_bounds): ... this.
29909 (arm_coproc_builtin_available): New.
29910 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
29911 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
29912 (CDP_QUALIFIERS): Define to...
29913 (arm_cdp_qualifiers): ... this. New.
29914 (void_UP): Define.
29915 (arm_expand_builtin_args): Add case for 6 arguments.
29916 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
29917 (arm_const_bounds): ... this.
29918 (arm_coproc_builtin_available): New.
29919 * config/arm/arm_acle.h (__arm_cdp): New.
29920 (__arm_cdp2): New.
29921 * config/arm/arm_acle_builtins.def (cdp): New.
29922 (cdp2): New.
29923 * config/arm/iterators.md (CDPI,CDP,cdp): New.
29924 * config/arm/neon.md: Rename all 'neon_const_bounds' to
29925 'arm_const_bounds'.
29926 * config/arm/types.md (coproc): New.
29927 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
29928 * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
29929 * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
29930 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
29931
29932 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
29933
29934 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
29935 (UBINOP_QUALIFIERS): New.
29936 (si_UP): Define.
29937 (acle_builtin_data): New. Change comment.
29938 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
29939 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
29940 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
29941 arm_acle_builtins.def.
29942 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
29943 (arm_init_acle_builtins): New.
29944 (CRC32_BUILTIN): Remove.
29945 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
29946 crc32cb, crc32ch and crc32cw.
29947 (arm_init_crc32_builtins): Remove.
29948 (arm_init_builtins): Use arm_init_acle_builtins rather
29949 than arm_init_crc32_builtins.
29950 (arm_expand_acle_builtin): New.
29951 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
29952 * config/arm/arm_acle_builtins.def: New.
29953
29954 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
29955
29956 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
29957 (arm_builtin_datum): ... this.
29958 (arm_init_neon_builtin): Rename to ...
29959 (arm_init_builtin): ... this. Add a new parameters PREFIX
29960 and USE_SIG_IN_NAME.
29961 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
29962 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
29963 'arm_builtin_datum'.
29964 (arm_init_vfp_builtins): Likewise.
29965 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
29966 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
29967 (arm_expand_neon_args): Rename to ...
29968 (arm_expand_builtin_args): ... this. Rename builtin_arg
29969 enum values and differentiate between ARG_BUILTIN_MEMORY
29970 and ARG_BUILTIN_NEON_MEMORY.
29971 (arm_expand_neon_builtin_1): Rename to ...
29972 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
29973 values, arm_expand_builtin_args and add bool parameter NEON.
29974 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
29975 (arm_expand_vfp_builtin): Likewise.
29976 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
29977
29978 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
29979
29980 PR middle-end/77484
29981 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
29982 * predict.c (tree_estimate_probability_bb): Reverse direction of
29983 polymorphic call predictor.
29984
29985 2017-01-06 David Malcolm <dmalcolm@redhat.com>
29986
29987 * passes.c (execute_one_pass): Split out pass-skipping logic into...
29988 (determine_pass_name_match): ...this new function and...
29989 (should_skip_pass_p): ...this new function.
29990
29991 2017-01-06 Nathan Sidwell <nathan@acm.org>
29992
29993 * ipa-visibility.c (function_and_variable_visibility): Reformat
29994 comments and long lines. Remove extrneous if.
29995 * symtab.c (symtab_node::make_decl_local): Fix code format.
29996 (symtab_node::set_section_for_node): Fix comment typo.
29997
29998 2017-01-06 Martin Liska <mliska@suse.cz>
29999
30000 PR bootstrap/79003
30001 * lra-constraints.c: Rename invariant to lra_invariant.
30002 * predict.c (set_even_probabilities): Initialize e to NULL.
30003
30004 2017-01-05 Martin Sebor <msebor@redhat.com>
30005
30006 PR tree-optimization/78910
30007 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
30008 (format_integer): Correct off-by-one error in the handling
30009 of precision with negative numbers in signed conversions..
30010
30011 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
30012
30013 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
30014
30015 2017-01-05 Jakub Jelinek <jakub@redhat.com>
30016
30017 PR tree-optimization/71016
30018 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
30019 factor_out_conditional_conversion. Formatting fix.
30020 (factor_out_conditional_conversion): Add cond_stmt argument.
30021 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
30022 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
30023 Formatting fix.
30024
30025 2017-01-05 David Malcolm <dmalcolm@redhat.com>
30026
30027 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
30028 read-rtl-function.o, and selftest-rtl.o.
30029 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
30030 (selftest::aarch64_test_loading_full_dump): New function.
30031 (selftest::aarch64_run_selftests): New function.
30032 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
30033 selftest::aarch64_run_selftests.
30034 * config/i386/i386.c
30035 (selftest::ix86_test_loading_dump_fragment_1): New function.
30036 (selftest::ix86_test_loading_call_insn): New function.
30037 (selftest::ix86_test_loading_full_dump): New function.
30038 (selftest::ix86_test_loading_unspec): New function.
30039 (selftest::ix86_run_selftests): Call the new functions.
30040 * emit-rtl.c (maybe_set_max_label_num): New function.
30041 * emit-rtl.h (maybe_set_max_label_num): New decl.
30042 * function.c (instantiate_decls): Guard call to
30043 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
30044 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
30045 "static".
30046 * gensupport.c (gen_reader::gen_reader): Pass "false"
30047 for new "compact" param of rtx_reader.
30048 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
30049 rather than an empty string for NULL strings.
30050 * read-md.c: Potentially include config.h rather than bconfig.h.
30051 Wrap include of errors.h with #ifdef GENERATOR_FILE.
30052 (have_error): New global, copied from errors.c.
30053 (md_reader::read_name): Rename to...
30054 (md_reader::read_name_1): ...this, adding "out_loc" param,
30055 and converting "missing name or number" to returning false, rather
30056 than failing.
30057 (md_reader::read_name): Reimplement in terms of read_name_1.
30058 (md_reader::read_name_or_nil): New function.
30059 (md_reader::read_string): Handle "(nil)" by returning NULL.
30060 (md_reader::md_reader): Add new param "compact".
30061 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
30062 (md_reader::read_file): New method.
30063 * read-md.h (md_reader::md_reader): Add new param "compact".
30064 (md_reader::read_file): New method.
30065 (md_reader::is_compact): New accessor.
30066 (md_reader::read_name): Convert return type from void to file_location.
30067 (md_reader::read_name_or_nil): New decl.
30068 (md_reader::read_name_1): New decl.
30069 (md_reader::m_compact): New field.
30070 (noop_reader::noop_reader): Pass "false" for new "compact" param
30071 of rtx_reader.
30072 (rtx_reader::rtx_reader): Add new "compact" param.
30073 (rtx_reader::read_rtx_operand): Make virtual and convert return
30074 type from void to rtx.
30075 (rtx_reader::read_until): New decl.
30076 (rtx_reader::handle_any_trailing_information): New virtual function.
30077 (rtx_reader::postprocess): New virtual function.
30078 (rtx_reader::finalize_string): New virtual function.
30079 (rtx_reader::m_in_call_function_usage): New field.
30080 (rtx_reader::m_reuse_rtx_by_id): New field.
30081 * read-rtl-function.c: New file.
30082 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
30083 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
30084 (selftest::verify_three_block_rtl_cfg): New decl.
30085 * read-rtl-function.h: New file.
30086 * read-rtl.c: Potentially include config.h rather than bconfig.h.
30087 For host, include function.h, memmodel.h, and emit-rtl.h.
30088 (one_time_initialization): New function.
30089 (struct compact_insn_name): New struct.
30090 (compact_insn_names): New array.
30091 (find_code): Handle insn codes in compact dumps.
30092 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
30093 (bind_subst_iter_and_attr): Likewise.
30094 (add_condition_to_string): Likewise.
30095 (add_condition_to_rtx): Likewise.
30096 (apply_attribute_uses): Likewise.
30097 (add_current_iterators): Likewise.
30098 (apply_iterators): Likewise.
30099 (initialize_iterators): Guard usage of apply_subst_iterator with
30100 #ifdef GENERATOR_FILE.
30101 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
30102 (md_reader::read_mapping): Likewise.
30103 (add_define_attr_for_define_subst): Likewise.
30104 (add_define_subst_attr): Likewise.
30105 (read_subst_mapping): Likewise.
30106 (check_code_iterator): Likewise.
30107 (rtx_reader::read_rtx): Likewise. Move one-time initialization
30108 logic to...
30109 (one_time_initialization): New function.
30110 (rtx_reader::read_until): New method.
30111 (read_flags): New function.
30112 (parse_reg_note_name): New function.
30113 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
30114 Handle reuse_rtx ids.
30115 Wrap iterator lookup within #ifdef GENERATOR_FILE.
30116 Add parsing support for RTL dumps, mirroring the special-cases in
30117 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
30118 values, and calling handle_any_trailing_information.
30119 (rtx_reader::read_rtx_operand): Convert return type from void
30120 to rtx, returning return_rtx. Handle case 'e'. Call
30121 finalize_string on XSTR and XTMPL fields.
30122 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
30123 "(nil)" values were omitted. Call the postprocess vfunc on the
30124 return_rtx.
30125 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
30126 class ctor. Initialize m_in_call_function_usage. Call
30127 one_time_initialization.
30128 * rtl-tests.c (selftest::test_uncond_jump): Call
30129 set_new_first_and_last_insn.
30130 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
30131 * selftest-rtl.c: New file.
30132 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
30133 (selftest::get_insn_by_uid): New decl.
30134 * selftest-run-tests.c (selftest::run_tests): Call
30135 read_rtl_function_c_tests.
30136 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
30137 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
30138 dumps.
30139
30140 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
30141
30142 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
30143 operands in a special way. Assert that pos+len <= mode precision.
30144
30145 2017-01-05 Jakub Jelinek <jakub@redhat.com>
30146
30147 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
30148 3 argument Alias with unlimited for the negative form.
30149 (fno-vect-cost-model): Removed.
30150
30151 2017-01-05 Martin Liska <mliska@suse.cz>
30152
30153 * hsa-gen.c (gen_hsa_divmod): New function.
30154 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
30155
30156 2017-01-05 Martin Liska <mliska@suse.cz>
30157
30158 PR pch/78970
30159 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
30160 header.
30161
30162 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30163
30164 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
30165 small constant length operands.
30166
30167 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30168
30169 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
30170 between loop iterations.
30171
30172 2017-01-05 Martin Liska <mliska@suse.cz>
30173
30174 PR sanitizer/78815
30175 * gimplify.c (gimplify_decl_expr): Compare to
30176 asan_poisoned_variables instread of checking flags.
30177 (gimplify_target_expr): Likewise.
30178 (gimplify_expr): Likewise.
30179 (gimplify_function_tree): Conditionally initialize
30180 asan_poisoned_variables.
30181
30182 2017-01-04 Jeff Law <law@redhat.com>
30183
30184 PR tree-optimizatin/78812
30185 * rtl.h (contains_mem_rtx_p): Prototype.
30186 * ifcvt.c (containts_mem_rtx_p): Move from here to...
30187 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
30188 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
30189 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
30190 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
30191
30192 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
30193
30194 * input.c (assert_char_at_range): Default-initialize actual_range.
30195
30196 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
30197
30198 * df-scan.c (df_ref_create_structure): Make regno unsigned,
30199 to match the caller.
30200
30201 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
30202
30203 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
30204 insns after final jump in test to emit dummy move.
30205
30206 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
30207
30208 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
30209 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
30210
30211 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
30212
30213 * multiple_target.c (create_dispatcher_calls): Init e_next.
30214 * tree-ssa-loop-split.c (split_loop): Init border.
30215 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
30216 scalar_type.
30217
30218 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
30219
30220 PR target/71977
30221 PR target/70568
30222 PR target/78823
30223 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
30224 (altivec_register_operand): Do not return true if the operand
30225 contains a SUBREG mixing SImode and SFmode.
30226 (vsx_register_operand): Likewise.
30227 (vsx_reg_sfsubreg_ok): New predicate.
30228 (vfloat_operand): Do not return true if the operand contains a
30229 SUBREG mixing SImode and SFmode.
30230 (vint_operand): Likewise.
30231 (vlogical_operand): Likewise.
30232 (gpc_reg_operand): Likewise.
30233 (int_reg_operand): Likewise.
30234 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
30235 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
30236 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
30237 SImode and SFmode.
30238 (rs6000_emit_move_si_sf_subreg): New helper function.
30239 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
30240 fixup SUBREGs involving SImode and SFmode.
30241 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
30242 numbers for the new peephole2 optimization.
30243 (peephole2 for SFmode unions): New peephole2 to optimize cases in
30244 the GLIBC math library that do AND/IOR/XOR operations on single
30245 precision floating point.
30246 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
30247 target macros to say whether we need to avoid SUBREGs mixing
30248 SImode and SFmode.
30249 (TARGET_ALLOW_SF_SUBREG): Likewise.
30250 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
30251 (UNSPEC_SI_FROM_SF): Likewise.
30252 (iorxor): Change spacing.
30253 (and_ior_xor): New iterator for AND, IOR, and XOR.
30254 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
30255 (movdi_from_sf_zero_ext): Likewise.
30256 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
30257 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
30258 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
30259 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
30260 (fms<mode>4): Likewise.
30261 (fnma<mode>4): Likewise.
30262 (fnms<mode>4): Likewise.
30263 (nfma<mode>4): Likewise.
30264 (nfms<mode>4): Likewise.
30265
30266 2017-01-04 Marek Polacek <polacek@redhat.com>
30267
30268 PR c++/64767
30269 * doc/invoke.texi: Document -Wpointer-compare.
30270
30271 2017-01-04 Jakub Jelinek <jakub@redhat.com>
30272
30273 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
30274 RejectNegative.
30275
30276 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
30277 descriptions for -gdwarf-5 and emit them as uleb128 instead of
30278 2-byte data.
30279
30280 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
30281
30282 PR target/78056
30283 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
30284 documentation of the powerpc_popcntb_ok attribute.
30285 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
30286 code to issue warning messages if a requested CPU configuration is
30287 not supported by the binary (assembler and loader) toolchain.
30288 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
30289 made to define a built-in function that has been disabled.
30290 (paired_init_builtins): Add assertion to prevent ICE if attempt is
30291 made to define a built-in function that has been disabled.
30292 (altivec_init_builtins): Add comment explaining why definition
30293 of the DST built-in functions is not preceded by an assertion
30294 check. Add assertions to prevent ICE if attempts are made to
30295 define an altivec predicate or an abs* built-in function that has
30296 been disabled.
30297 (htm_init_builtins): Add comment explaining why definition of the
30298 htm built-in functions is not preceded by an assertion check.
30299
30300 2017-01-04 Jeff Law <law@redhat.com>
30301
30302 PR tree-optimizatin/67955
30303 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
30304 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
30305 the points-to solution does not include pt_null. Use DECL_PT_UID
30306 unconditionally.
30307
30308 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
30309
30310 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
30311 Use gen_int_mode instead of gen_lopwart for const_int operands.
30312
30313 2017-01-04 Jakub Jelinek <jakub@redhat.com>
30314
30315 PR tree-optimization/71563
30316 * match.pd: Simplify X << Y into X if Y is known to be 0 or
30317 out of range value - has low bits known to be zero.
30318
30319 2017-01-04 Alan Modra <amodra@gmail.com>
30320
30321 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
30322 * configure: Regenerate.
30323 * config.in: Regenerate.
30324
30325 2017-01-04 Jakub Jelinek <jakub@redhat.com>
30326
30327 PR bootstrap/77569
30328 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
30329 a substring of the message, but strcmp with the whole message. Ifdef
30330 ENABLE_NLS, translate the message first using dgettext.
30331
30332 2017-01-03 Jeff Law <law@redhat.com>
30333
30334 PR tree-optimizatin/78856
30335 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
30336 (mark_threaded_blocks): Remove code to truncate thread paths that
30337 cross multiple loop headers. Instead invalidate the cached loop
30338 iteration information and handle case of a thread path walking
30339 into an irreducible region.
30340
30341 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
30342
30343 PR target/78900
30344 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
30345 assertions. Add support for doing the signbit if the IEEE 128-bit
30346 floating point value is in a GPR.
30347 * config/rs6000/rs6000.md (Fsignbit): Delete.
30348 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
30349 Update the length attribute if the value is in a GPR.
30350 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
30351 the sign or zero extension instruction, since the value is always 0/1.
30352 (signbit<mode>2_dm2): Delete using <Fsignbit>.
30353
30354 PR target/78953
30355 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
30356 extracting SImode to a GPR register so that we can generate a
30357 store, limit the vector to be in a traditional Altivec register
30358 for the vextuwrx instruction.
30359
30360 2017-01-03 Ian Lance Taylor <iant@google.com>
30361
30362 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
30363
30364 2017-01-03 Martin Sebor <msebor@redhat.com>
30365
30366 PR tree-optimization/78696
30367 * gimple-ssa-sprintf.c (format_floating): Correct handling of
30368 precision. Use MPFR for %f for greater fidelity. Correct handling
30369 of %g.
30370 (pass_sprintf_length::compute_format_length): Set width and precision
30371 specified by asrerisk to void_node for vararg functions.
30372 (try_substitute_return_value): Adjust dump output.
30373
30374 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
30375
30376 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
30377
30378 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
30379
30380 * doc/invoke.texi (SPARC options): Document -mlra as the default.
30381 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
30382 -mlra/-mno-lra was passed to the compiler.
30383
30384 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
30385
30386 PR rtl-optimization/65618
30387 * emit-rtl.c (try_split): Move initialization of "before" and
30388 "after" to just before the call to emit_insn_after_setloc.
30389
30390 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
30391
30392 * doc/md.texi (Standard Names): Remove reference to Java frontend.
30393
30394 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
30395
30396 * dwarf2out.c (gen_enumeration_type_die): When
30397 -gno-strict-dwarf, add a DW_AT_encoding attribute.
30398
30399 2017-01-03 Jakub Jelinek <jakub@redhat.com>
30400
30401 PR tree-optimization/78965
30402 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
30403 Change first argument from const call_info & to call_info &. For %n
30404 set info.nowrite to false.
30405
30406 PR middle-end/78901
30407 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
30408 possibly throwing calls.
30409
30410 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
30411 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
30412 and fns handling, rather than in a separate case SSA_NAME.
30413
30414 2017-01-02 Jeff Law <law@redhat.com>
30415
30416 * config/darwin-driver.c (darwin_driver_init): Const-correctness
30417 fixes for first_period and second_period variables.
30418
30419 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
30420
30421 PR target/78967
30422 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
30423 (*insvqi_1): New insn pattern.
30424 (*insvqi_1_mem_rex64): Ditto.
30425 (*insvqi_2): Ditto.
30426 (*insvqi_3): Rename from *insvqi.
30427
30428 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
30429
30430 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
30431
30432 * doc/cfg.texi (Edges): Remove reference to Java.
30433 (Maintaining the CFG): Ditto.
30434
30435 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
30436
30437 PR middle-end/77674
30438 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
30439 transparent aliases.
30440
30441 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
30442
30443 PR middle-end/77484
30444 * predict.def (PRED_CALL): Update hitrate.
30445 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
30446 * predict.c (tree_estimate_probability_bb): Split CALL predictor
30447 into direct/indirect/polymorphic variants.
30448
30449 2017-01-01 Jakub Jelinek <jakub@redhat.com>
30450
30451 Update copyright years.
30452
30453 * gcc.c (process_command): Update copyright notice dates.
30454 * gcov-dump.c (print_version): Ditto.
30455 * gcov.c (print_version): Ditto.
30456 * gcov-tool.c (print_version): Ditto.
30457 * gengtype.c (create_file): Ditto.
30458 * doc/cpp.texi: Bump @copying's copyright year.
30459 * doc/cppinternals.texi: Ditto.
30460 * doc/gcc.texi: Ditto.
30461 * doc/gccint.texi: Ditto.
30462 * doc/gcov.texi: Ditto.
30463 * doc/install.texi: Ditto.
30464 * doc/invoke.texi: Ditto.
30465 \f
30466 Copyright (C) 2017 Free Software Foundation, Inc.
30467
30468 Copying and distribution of this file, with or without modification,
30469 are permitted in any medium without royalty provided the copyright
30470 notice and this notice are preserved.