arm_neon.h (vdot_u32, [...]): New.
[gcc.git] / gcc / ChangeLog
1 2017-10-16 Tamar Christina <tamar.christina@arm.com>
2
3 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): New.
4 (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
5 (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
6
7 2017-10-16 Tamar Christina <tamar.christina@arm.com>
8
9 * config/aarch64/aarch64-builtins.c
10 (aarch64_types_quadopu_lane_qualifiers): New.
11 (TYPES_QUADOPU_LANE): New.
12 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
13 (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
14 (aarch64_<sur>dot_laneq<vsi2qi>): New.
15 * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
16 (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
17 * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
18 (Vdottype, DOTPROD): New.
19 (sur): Add SDOT and UDOT.
20
21 2017-10-16 Tamar Christina <tamar.christina@arm.com>
22
23 * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
24 (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
25 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add TARGET_DOTPROD.
26 * config/aarch64/aarch64-option-extensions.def (dotprod): New.
27 * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75): Enable TARGET_DOTPROD.
28 (cortex-a75.cortex-a55): Likewise.
29 * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
30
31 2017-10-16 Tamar Christina <tamar.christina@arm.com>
32
33 * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
34 (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS): New.
35 * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane): new.
36 * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
37 (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
38 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
39 (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
40 * config/arm/types.md (neon_dot, neon_dot_q): New.
41 * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
42
43 2017-10-16 Tamar Christina <tamar.christina@arm.com>
44
45 * config/arm/arm.h (TARGET_DOTPROD): New.
46 * config/arm/arm.c (arm_arch_dotprod): New.
47 (arm_option_reconfigure_globals): Add arm_arch_dotprod.
48 * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
49 * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
50 (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
51 (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
52 * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
53 * doc/invoke.texi (armv8.2-a): Document dotprod
54
55 2017-10-14 Jan Hubicka <hubicka@ucw.cz>
56
57 * i386.c (ix86_vec_cost): New function.
58 (ix86_rtx_costs): Handle vector operations better.
59 * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
60 * x86-tune-costs.h: Add new costs to all tables.
61
62 2017-10-14 Jan Hubicka <hubicka@ucw.cz>
63
64 * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
65 operations.
66 * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
67 divsd, sqrtss and sqrtsd
68 * x86-tune-costs.h: Add new entries to all costs.
69 (znver1_cost): Fix to match real instruction latencies.
70
71 2017-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
72 Michael Collison <michael.collison@arm.com>
73
74 * compare-elim.c: Include emit-rtl.h.
75 (can_merge_compare_into_arith): New function.
76 (try_validate_parallel): Likewise.
77 (try_merge_compare): Likewise.
78 (try_eliminate_compare): Call the above when no previous clobber
79 is available.
80 (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
81 dataflow problems.
82
83 2017-10-14 Jakub Jelinek <jakub@redhat.com>
84
85 PR middle-end/62263
86 PR middle-end/82498
87 * tree-ssa-phiopt.c (value_replacement): Comment fix. Handle
88 up to 2 preparation statements for ASSIGN in MIDDLE_BB.
89
90 PR middle-end/62263
91 PR middle-end/82498
92 * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
93 to be any operand_equal_p operands. For & (B - 1) require
94 B to be power of 2. Recognize
95 (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
96
97 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
98
99 PR bootstrap/82553
100 * optabs.c (expand_memory_blockage): Fix call of
101 targetm.have_memory_blockage.
102
103 2017-10-14 Jakub Jelinek <jakub@redhat.com>
104
105 PR bootstrap/82548
106 * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
107 x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
108 objects to extra_objs instead of overwriting it.
109
110 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
111
112 * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
113 Use any_fp_register_operand as operand[3] predicate. Simplify
114 equality test for operands[2] and operands[4] memory location.
115 (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
116 (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
117 (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
118 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
119 any_fp_register_operand as operand[1] predicate. Simplify
120 equality test for operands[0] and operands[3] memory location.
121 (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
122 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
123 (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
124
125 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
126
127 * target-insns.def: Add memory_blockage.
128 * optabs.c (expand_memory_blockage): New function.
129 (expand_asm_memory_barrier): Rename ...
130 (expand_asm_memory_blockage): ... to this.
131 (expand_mem_thread_fence): Call expand_memory_blockage
132 instead of expand_asm_memory_barrier.
133 (expand_mem_singnal_fence): Ditto.
134 (expand_atomic_load): Ditto.
135 (expand_atomic_store): Ditto.
136 * doc/md.texi (Standard Pattern Names For Generation):
137 Document memory_blockage instruction pattern.
138
139 2017-10-13 Sebastian Perta <sebastian.perta@renesas.com>
140
141 * config/rl78/rl78.c (rl78_emit_libcall): New function.
142 * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
143 * config/rl78/rl78.md: New define_expand "adddi3".
144
145 2017-10-13 Jan Hubicka <hubicka@ucw.cz>
146
147 * cfghooks.c (verify_flow_info): Disable check that all probabilities
148 are set correctly.
149
150 2017-10-13 Jeff Law <law@redhat.com>
151
152 * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
153
154 2017-10-13 Jakub Jelinek <jakub@redhat.com>
155
156 PR target/82274
157 * internal-fn.c (expand_mul_overflow): If both operands have
158 the same highpart of -1 or 0 and the topmost bit of lowpart
159 is different, overflow is if res <= 0 rather than res < 0.
160
161 2017-10-13 Pat Haugen <pthaugen@us.ibm.com>
162
163 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
164 TARGET_P9_VECTOR code for unaligned_load case.
165
166 2017-10-13 Jan Hubicka <hubicka@ucw.cz>
167
168 * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
169
170 2017-10-13 Nathan Sidwell <nathan@acm.org>
171
172 * tree-core.h (tree_contains_struct): Make bool.
173 * tree.c (tree_contains_struct): Likewise.
174 * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
175 (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
176 MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
177 MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
178 MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
179
180 2017-10-13 Richard Biener <rguenther@suse.de>
181
182 * graphite-isl-ast-to-gimple.c
183 (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
184 parameters and dominance check.
185 (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
186 (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
187 (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
188 Do not update SSA form here or do intermediate IL verification.
189 * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
190 (graphite_initialize): Remove check on the number of loops in
191 the function and inline into graphite_transform_loops.
192 (graphite_finalize): Inline into graphite_transform_loops.
193 (graphite_transform_loops): Perform SSA update and IL verification
194 here.
195 * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
196
197 2017-10-13 Richard Biener <rguenther@suse.de>
198
199 * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
200 graphite_expression_type_precision): Avoid global constructor
201 by moving ...
202 (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
203 (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
204 (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
205 (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
206 (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
207 * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
208
209 2017-10-13 H.J. Lu <hongjiu.lu@intel.com>
210
211 PR target/82499
212 * config/i386/i386.h (ix86_red_zone_size): New.
213 * config/i386/i386.md (push peephole2s): Replace
214 "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
215
216 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
217 Alan Hayward <alan.hayward@arm.com>
218 David Sherwood <david.sherwood@arm.com>
219
220 * combine.c (can_change_dest_mode): Reject changes in
221 REGMODE_NATURAL_SIZE.
222
223 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
224 Alan Hayward <alan.hayward@arm.com>
225 David Sherwood <david.sherwood@arm.com>
226
227 * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
228 (expand_debug_source_expr): Likewise.
229 * combine.c (combine_simplify_rtx): Likewise.
230 * cse.c (fold_rtx): Likewise.
231 * fwprop.c (canonicalize_address): Likewise.
232 * targhooks.c (default_shift_truncation_mask): Likewise.
233
234 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
235 Alan Hayward <alan.hayward@arm.com>
236 David Sherwood <david.sherwood@arm.com>
237
238 * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
239 (widened_mode): Likewise.
240 (expand_unop): Likewise.
241 * ree.c (transform_ifelse): Likewise.
242 (merge_def_and_ext): Likewise.
243 (combine_reaching_defs): Likewise.
244 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
245
246 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
247 Alan Hayward <alan.hayward@arm.com>
248 David Sherwood <david.sherwood@arm.com>
249
250 * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
251 * combine.c (gen_lowpart_for_combine): Likewise.
252 * dwarf2out.c (rtl_for_decl_location): Likewise.
253 * final.c (alter_subreg): Likewise.
254 * rtlhooks.c (gen_lowpart_general): Likewise.
255 (gen_lowpart_if_possible): Likewise.
256
257 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
258 Alan Hayward <alan.hayward@arm.com>
259 David Sherwood <david.sherwood@arm.com>
260
261 * calls.c (expand_call): Use subreg_lowpart_offset.
262 * cse.c (cse_insn): Likewise.
263 * regcprop.c (copy_value): Likewise.
264 (copyprop_hardreg_forward_1): Likewise.
265
266 2017-10-13 Jakub Jelinek <jakub@redhat.com>
267
268 PR target/82524
269 * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
270 *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
271 =Q constraints to +Q and into insn condition add check
272 that operands[0] and operands[1] are equal.
273 (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
274 =Q constraints to +Q and into insn condition add check
275 that operands[0] is equal to either operands[1] or operands[2].
276
277 PR target/82498
278 * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
279 instead of handling MINUS_EXPR twice (once for each argument),
280 canonicalize operand order and handle just once, use rtype where
281 possible. Handle (A << B) | (A >> (-B & (Z - 1))).
282
283 PR target/82498
284 * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
285 any values of __C while still being pattern recognizable as a simple
286 rotate instruction.
287
288 2017-10-13 Richard Biener <rguenther@suse.de>
289
290 PR tree-optimization/82451
291 Revert
292 2017-10-02 Richard Biener <rguenther@suse.de>
293
294 PR tree-optimization/82355
295 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
296 a mapping for the enclosing loop but avoid generating one for
297 the loop tree root.
298 (copy_bb_and_scalar_dependences): Remove premature codegen
299 error on PHIs in blocks duplicated into multiple places.
300 * graphite-scop-detection.c
301 (scop_detection::stmt_has_simple_data_refs_p): For a loop not
302 in the region use it as loop and nest to analyze the DR in.
303 (try_generate_gimple_bb): Likewise.
304 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
305 (add_loop_constraints): For blocks in a loop not in the region
306 create a dimension with a single iteration.
307 * sese.h (gbb_loop_at_index): Remove assert.
308
309 * cfgloop.c (loop_preheader_edge): For the loop tree root
310 return the single successor of the entry block.
311 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
312 Reset the SCEV hashtable and niters.
313 * graphite-scop-detection.c
314 (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
315 assert that we only have POLYNOMIAL_CHREC that vary in loops
316 contained in the region.
317 (scop_detection::graphite_can_represent_expr): Adjust.
318 (scop_detection::stmt_has_simple_data_refs_p): For loops
319 not in the region set loop to NULL. The nest is now the
320 entry edge to the region.
321 (try_generate_gimple_bb): Likewise.
322 * sese.c (scalar_evolution_in_region): Adjust for
323 instantiate_scev change.
324 * tree-data-ref.h (graphite_find_data_references_in_stmt):
325 Make nest parameter the edge into the region.
326 (create_data_ref): Likewise.
327 * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
328 entry edge into a region and adjust instantiate_scev calls.
329 (create_data_ref): Likewise.
330 (graphite_find_data_references_in_stmt): Likewise.
331 (find_data_references_in_stmt): Pass the loop preheader edge
332 from the nest argument.
333 * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
334 parameter the edge into the region.
335 (instantiate_parameters): Use the loop preheader edge as entry.
336 * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
337 NULL loop.
338 (get_instantiated_value_entry): Make instantiate_below parameter
339 the edge into the region.
340 (instantiate_scev_name): Likewise. Adjust dominance checks,
341 when we cannot use loop-based instantiation instantiate by
342 walking use-def chains.
343 (instantiate_scev_poly): Adjust.
344 (instantiate_scev_binary): Likewise.
345 (instantiate_scev_convert): Likewise.
346 (instantiate_scev_not): Likewise.
347 (instantiate_array_ref): Remove.
348 (instantiate_scev_3): Likewise.
349 (instantiate_scev_2): Likewise.
350 (instantiate_scev_1): Likewise.
351 (instantiate_scev_r): Do not blindly handle N-operand trees.
352 Do not instantiate array-refs. Handle all constants and invariants.
353 (instantiate_scev): Make instantiate_below parameter
354 the edge into the region.
355 (resolve_mixers): Use the loop preheader edge for the region
356 parameter to instantiate_scev_r.
357 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
358
359 2017-10-13 Richard Biener <rguenther@suse.de>
360
361 PR tree-optimization/82525
362 * graphite-isl-ast-to-gimple.c
363 (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
364 out from ...
365 (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
366 Fail code generation when we cannot represent the isl integer.
367 (binary_op_to_tree): Elide modulo operations that are no-ops
368 in the type we code generate. Remove now superfluous code
369 generation errors.
370
371 2017-10-13 Richard Biener <rguenther@suse.de>
372
373 * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
374 (scop_detection::harmful_loop_in_region): Remove premature
375 IV type restriction.
376 (scop_detection::graphite_can_represent_scev): We can handle
377 pointer IVs just fine.
378
379 2017-10-13 Alan Modra <amodra@gmail.com>
380
381 * doc/extend.texi (Extended Asm <Clobbers>): Rename to
382 "Clobbers and Scratch Registers". Add paragraph on
383 alternative to clobbers for scratch registers and OpenBLAS
384 example.
385
386 2017-10-13 Alan Modra <amodra@gmail.com>
387
388 * doc/extend.texi (Clobbers): Correct vax example. Delete old
389 example of a memory input for a string of known length. Move
390 commentary out of table. Add a number of new examples
391 covering array memory inputs.
392
393 2017-10-12 Martin Liska <mliska@suse.cz>
394
395 PR tree-optimization/82493
396 * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
397 (test_range_functions): New function.
398 (sbitmap_c_tests): Likewise.
399 * selftest-run-tests.c (selftest::run_tests): Run new tests.
400 * selftest.h (sbitmap_c_tests): New function.
401
402 * tree-ssa-dse.c (live_bytes_read): Fix thinko.
403
404 2017-10-12 Michael Meissner <meissner@linux.vnet.ibm.com>
405
406 * config/rs6000/amo.h: Fix spacing issue.
407
408 2017-10-12 Jakub Jelinek <jakub@redhat.com>
409
410 PR target/82498
411 * config/i386/i386.md (*ashl<mode>3_mask_1,
412 *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
413 *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
414 patterns.
415
416 2017-10-12 Jan Hubicka <hubicka@ucw.cz>
417
418 * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
419 (profile_probability): Set max_probability
420 to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
421 in temporaries.
422 * profile-count.c (profile_probability::differs_from_p): Do not
423 rely on max_probaiblity == 10000
424
425 2017-10-12 Jeff Law <law@redhat.com>
426
427 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
428 negative offsets.
429
430 2017-10-12 Martin Sebor <msebor@redhat.com>
431
432 PR other/82301
433 PR c/82435
434 * cgraphunit.c (maybe_diag_incompatible_alias): New function.
435 (handle_alias_pairs): Call it.
436 * common.opt (-Wattribute-alias): New option.
437 * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
438 * doc/invoke.texi (-Wattribute-alias): Document.
439
440 2017-10-12 Vladimir Makarov <vmakarov@redhat.com>
441
442 Revert
443 2017-10-11 Vladimir Makarov <vmakarov@redhat.com>
444 PR sanitizer/82353
445 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
446 locations.
447 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
448 (make_hard_regno_born, make_hard_regno_dead): Update
449 bb_killed_pseudos and bb_gen_pseudos.
450
451 2017-10-12 Jan Hubicka <hubicka@ucw.cz>
452
453 * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
454
455 2017-10-12 Uros Bizjak <ubizjak@gmail.com>
456
457 * config/alpha/alpha.c (alpha_split_conditional_move):
458 Use std::swap instead of manually swapping.
459 (alpha_stdarg_optimize_hook): Ditto.
460 (alpha_canonicalize_comparison): Ditto.
461
462 2017-10-12 Bin Cheng <bin.cheng@arm.com>
463
464 * tree-loop-distribution.c (struct builtin_info): New struct.
465 (struct partition): Refactor fields into struct builtin_info.
466 (partition_free): Free struct builtin_info.
467 (build_size_arg_loc, build_addr_arg_loc): Delete.
468 (generate_memset_builtin, generate_memcpy_builtin): Get memory range
469 information from struct builtin_info.
470 (find_single_drs): New function refactored from classify_partition.
471 Also moved builtin validity checks to this function.
472 (compute_access_range, alloc_builtin): New functions.
473 (classify_builtin_st, classify_builtin_ldst): New functions.
474 (classify_partition): Refactor code into functions find_single_drs,
475 classify_builtin_st and classify_builtin_ldst.
476 (distribute_loop): Don't do runtime alias check when distributing
477 loop nest.
478 (find_seed_stmts_for_distribution): New function.
479 (pass_loop_distribution::execute): Refactor code finding seed
480 stmts into above function. Support distribution for the innermost
481 two-level loop nest. Adjust dump information.
482
483 2017-10-12 Bin Cheng <bin.cheng@arm.com>
484
485 * tree-loop-distribution.c: Adjust the general comment.
486 (NUM_PARTITION_THRESHOLD): New macro.
487 (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
488 (classify_partition): Skip builtin pattern of loop nest's inner loop.
489 (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
490 in call to build_partition_graph.
491 (finalize_partitions): New parameter. Make loop distribution more
492 conservative by fusing more partitions.
493 (distribute_loop): Don't do runtime alias check in case of loop nest
494 distribution.
495 (find_seed_stmts_for_distribution): New function.
496 (prepare_perfect_loop_nest): New function.
497 (pass_loop_distribution::execute): Refactor code finding seed stmts
498 and loop nest into above functions. Support loop nest distribution.
499 Adjust dump information accordingly.
500
501 2017-10-12 Bin Cheng <bin.cheng@arm.com>
502
503 * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
504 and set PTYPE_SEQUENTIAL for merged partition.
505
506 2017-10-12 Richard Biener <rguenther@suse.de>
507
508 PR tree-optimization/69728
509 Revert
510 2017-09-19 Richard Biener <rguenther@suse.de>
511
512 PR tree-optimization/69728
513 * graphite-sese-to-poly.c (schedule_error): New global.
514 (add_loop_schedule): Handle empty domain by failing the
515 schedule.
516 (build_original_schedule): Handle schedule_error.
517
518 * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
519 domain by returning an unchanged schedule.
520
521 2017-10-12 Jakub Jelinek <jakub@redhat.com>
522
523 * genrecog.c (validate_pattern): For VEC_SELECT verify that
524 CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
525
526 2017-10-12 Aldy Hernandez <aldyh@redhat.com>
527
528 * Makefile.in (TAGS): Merge all the *.def files into one pattern.
529 Handle params.def.
530
531 2017-10-12 Jakub Jelinek <jakub@redhat.com>
532
533 PR c++/82159
534 * expr.c (store_field): Don't optimize away bitsize == 0 store
535 from CALL_EXPR with addressable return type.
536
537 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org>
538
539 * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
540 * config/rs6000/rs6000.md (sel): Delete mode attribute.
541 (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
542 *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
543 TARGET_ISEL instead of TARGET_ISEL<sel>.
544
545 2017-10-11 David Edelsohn <dje.gcc@gmail.com>
546
547 * config/rs6000/rs6000.c
548 (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
549
550 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org>
551
552 * config/rs6000/predicates.md (zero_constant, all_ones_constant):
553 Move up in file.
554 (reg_or_cint_operand): Fix comment.
555 (reg_or_zero_operand): New predicate.
556 * config/rs6000/rs6000-protos.h (output_isel): Delete.
557 * config/rs6000/rs6000.c (output_isel): Delete.
558 * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
559 instead of reg_or_cint_operand. Output instruction directly (not via
560 output_isel).
561 (isel_unsigned_<mode>): Ditto.
562 (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
563 gpc_reg_operand. Add an instruction alternative for this. Output
564 instruction directly.
565 (*isel_reversed_unsigned_<mode>): Ditto.
566
567 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
568
569 * config/i386/i386.c (ix86_canonicalize_comparison): New function.
570 (TARGET_CANONICALIZE_COMPARISON): Define.
571
572 2017-10-11 Qing Zhao <qing.zhao@oracle.com>
573
574 PR target/81422
575 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
576 Check whether the dest is REG before adding REG_EQUIV note.
577
578 2017-10-11 Vladimir Makarov <vmakarov@redhat.com>
579
580 PR sanitizer/82353
581 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
582 locations.
583 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
584 (make_hard_regno_born, make_hard_regno_dead): Update
585 bb_killed_pseudos and bb_gen_pseudos.
586
587 2017-10-11 Nathan Sidwell <nathan@acm.org>
588
589 * incpath.h (enum incpath_kind): Name enum, prefix values.
590 (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
591 * incpath.c (heads, tails): Use INC_MAX.
592 (add_env_var_paths, add_standard_paths): Use incpath_kind.
593 (merge_include_chains, split_quote_chain,
594 register_include_chains): Update incpath_kind names.
595 (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
596 * config/darwin-c.c (add_system_framework_path): Update incpath_kind
597 names.
598 (add_framework_path, darwin_register_objc_includes): Likewise.
599 * config/vms/vms-c.c (vms_c_register_includes): Likewise.
600
601 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
602
603 * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
604 Do not use float_operator operator predicate.
605 (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
606 * config/i386/predicates.md (float_operator): Remove predicate.
607
608 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
609
610 * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
611 (*jccxf_i387): Ditto.
612 (*jcc<mode>_i387): Ditto.
613 (*jccu<mode>_i387): Ditto.
614 (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
615 (*jcc_*_i387 splitters): Remove.
616 * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
617 * config/i386/i386.c (ix86_split_fp_branch): Remove.
618 * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
619 Remove predicate.
620
621 2017-10-11 Jan Hubicka <hubicka@ucw.cz>
622
623 * profile-count.h (slow_safe_scale_64bit): New function.
624 (safe_scale_64bit): New inline.
625 (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
626 * profile-count.c: Include wide-int.h
627 (slow_safe_scale_64bit): New.
628
629 2017-10-11 Nathan Sidwell <nathan@acm.org>
630
631 * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
632 HAS_DECL_ASSEMBLER_NAME_P.
633 * gimple-expr.c (gimple_decl_printable_name: Check
634 HAS_DECL_ASSEMBLER_NAME_P too.
635 * ipa-utils.h (type_in_anonymous_namespace_p): Check
636 DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
637 (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
638 * passes.c (rest_of_decl_compilation): Check
639 HAS_DECL_ASSEMBLER_NAME_P too.
640 * recog.c (verify_changes): Likewise.
641 * tree-pretty-print.c (dump_decl_name): Likewise.
642 * tree-ssa-structalias.c (alias_get_name): Likewise. Reimplement.
643
644 * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
645 (SET_DECL_ASSEMBLER_NAME): Use it.
646 (DECL_ASSEMBLER_NAME_SET_P): Likewise.
647 (COPY_DECL_ASSEMBLER_NAME): Likewise.
648 * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
649
650 2017-10-11 Jan Hubicka <hubicka@ucw.cz>
651
652 * config.gcc (i386, x86_64): Add extra objects.
653 * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
654 (ix86_min_insn_size): Declare.
655 (ix86_issue_rate): Declare.
656 (ix86_adjust_cost): Declare.
657 (ia32_multipass_dfa_lookahead): Declare.
658 (ix86_macro_fusion_p): Declare.
659 (ix86_macro_fusion_pair_p): Declare.
660 (ix86_bd_has_dispatch): Declare.
661 (ix86_bd_do_dispatch): Declare.
662 (ix86_core2i7_init_hooks): Declare.
663 (ix86_atom_sched_reorder): Declare.
664 * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
665 (COSTS_N_BYTES): Move to x86-tune-costs.h.
666 (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
667 (rip_relative_addr_p): Rename to ...
668 (ix86_rip_relative_addr_p): ... this one; export.
669 (memory_address_length): Update.
670 (ix86_issue_rate): Move to x86-tune-sched.c.
671 (ix86_flags_dependent): Move to x86-tune-sched.c.
672 (ix86_agi_dependent): Move to x86-tune-sched.c.
673 (exact_dependency_1): Move to x86-tune-sched.c.
674 (exact_store_load_dependency): Move to x86-tune-sched.c.
675 (ix86_adjust_cost): Move to x86-tune-sched.c.
676 (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
677 (ix86_macro_fusion_p): Move to x86-tune-sched.c.
678 (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
679 (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
680 (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
681 (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
682 (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
683 (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
684 (min_insn_size): Rename to ...
685 (ix86_min_insn_size): ... this one; export.
686 (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
687 (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
688 (core2i7_first_cycle_multipass_backtrack): Move to
689 x86-tune-sched-core.c.
690 (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
691 (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
692 (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
693 (ix86_avoid_jump_mispredicts): Update.
694 (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
695 (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
696 (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
697 (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
698 (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
699 (MAX_INSN): Move to ix86-tune-sched-bd.c.
700 (MAX_IMM): Move to ix86-tune-sched-bd.c.
701 (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
702 (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
703 (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
704 (MAX_LOAD): Move to ix86-tune-sched-bd.c.
705 (MAX_STORE): Move to ix86-tune-sched-bd.c.
706 (BIG): Move to ix86-tune-sched-bd.c.
707 (enum dispatch_group): Move to ix86-tune-sched-bd.c.
708 (enum insn_path): Move to ix86-tune-sched-bd.c.
709 (get_mem_group): Move to ix86-tune-sched-bd.c.
710 (is_cmp): Move to ix86-tune-sched-bd.c.
711 (dispatch_violation): Move to ix86-tune-sched-bd.c.
712 (is_branch): Move to ix86-tune-sched-bd.c.
713 (is_prefetch): Move to ix86-tune-sched-bd.c.
714 (init_window): Move to ix86-tune-sched-bd.c.
715 (allocate_window): Move to ix86-tune-sched-bd.c.
716 (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
717 (is_end_basic_block): Move to ix86-tune-sched-bd.c.
718 (process_end_window): Move to ix86-tune-sched-bd.c.
719 (allocate_next_window): Move to ix86-tune-sched-bd.c.
720 (find_constant): Move to ix86-tune-sched-bd.c.
721 (get_num_immediates): Move to ix86-tune-sched-bd.c.
722 (has_immediate): Move to ix86-tune-sched-bd.c.
723 (get_insn_path): Move to ix86-tune-sched-bd.c.
724 (get_insn_group): Move to ix86-tune-sched-bd.c.
725 (count_num_restricted): Move to ix86-tune-sched-bd.c.
726 (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
727 (add_insn_window): Move to ix86-tune-sched-bd.c.
728 (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
729 (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
730 (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
731 (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
732 (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
733 (do_dispatch): Move to ix86-tune-sched-bd.c.
734 (has_dispatch): Move to ix86-tune-sched-bd.c.
735 * config/i386/t-i386: Add new object files.
736 * config/i386/x86-tune-costs.h: New file.
737 * config/i386/x86-tune-sched-atom.c: New file.
738 * config/i386/x86-tune-sched-bd.c: New file.
739 * config/i386/x86-tune-sched-core.c: New file.
740 * config/i386/x86-tune-sched.c: New file.
741
742 2017-10-11 Liu Hao <lh_mouse@126.com>
743
744 * pretty-print.c [_WIN32] (colorize_init): Remove. Use
745 the generic version below instead.
746 (should_colorize): Recognize Windows consoles as terminals
747 for MinGW targets.
748 * pretty-print.c [__MINGW32__] (write_all): New function.
749 [__MINGW32__] (find_esc_head): Likewise.
750 [__MINGW32__] (find_esc_terminator): Likewise.
751 [__MINGW32__] (eat_esc_sequence): Likewise.
752 [__MINGW32__] (mingw_ansi_fputs): New function that handles
753 ANSI escape codes.
754 (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
755 for MinGW targets.
756
757 2017-10-11 Richard Biener <rguenther@suse.de>
758
759 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
760 Properly call analyze_scalar_evolution with the loop of the stmt.
761
762 2017-10-11 Richard Biener <rguenther@suse.de>
763
764 * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
765 * tree-core.h (tree_base): Add chrec_var union member.
766 * tree.h (CHREC_VAR): Remove.
767 (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
768 * tree-chrec.h (build_polynomial_chrec): Adjust.
769 * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
770 * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
771
772 2017-10-11 Marc Glisse <marc.glisse@inria.fr>
773
774 * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
775 * match.pd: ... here.
776 ((T) X == (T) Y): Relax condition.
777
778 2017-10-11 Bin Cheng <bin.cheng@arm.com>
779
780 PR tree-optimization/82472
781 * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
782 comment.
783 (break_alias_scc_partitions): Update postorder number.
784
785 2017-10-11 Martin Liska <mliska@suse.cz>
786
787 PR sanitizer/82490
788 * opts.c (parse_no_sanitize_attribute): Do not use error_value
789 variable.
790 * opts.h (parse_no_sanitize_attribute): Remove last argument.
791
792 2017-10-11 Martin Liska <mliska@suse.cz>
793
794 * print-rtl.c (print_insn): Move declaration of idbuf
795 to same scope as name.
796
797 2017-10-11 Martin Liska <mliska@suse.cz>
798
799 Revert r253637:
800
801 PR sanitizer/82484
802 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
803 volatile arguments.
804
805 2017-10-11 Martin Liska <mliska@suse.cz>
806
807 PR sanitizer/82484
808 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
809 volatile arguments.
810
811 2017-10-11 Adhemerval Zanella <adhemerval.zanella@linaro.org>
812
813 * config.gcc (default_gnu_indirect_function): Default to yes for
814 arm*-*-linux* with glibc.
815
816 2017-10-11 Richard Biener <rguenther@suse.de>
817
818 * tree-scalar-evolution.c (get_scalar_evolution): Handle
819 default-defs and types we do not want to analyze.
820 (interpret_loop_phi): Replace unreachable code with an assert.
821 (compute_scalar_evolution_in_loop): Remove and inline ...
822 (analyze_scalar_evolution_1): ... here, replacing condition with
823 what makes the intent clearer. Remove handling of cases
824 get_scalar_evolution now handles.
825
826 2017-10-10 Jim Wilson <wilson@tuliptree.org>
827
828 PR rtl-optimization/81434
829 * haifa-sched.c (prune_ready_list): Init min_cost_group to 0. Update
830 comment for main loop. In sched_group_found if, also add checks for
831 pass and min_cost_group.
832
833 2017-10-10 Segher Boessenkool <segher@kernel.crashing.org>
834
835 * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
836 (rs6000_insn_cost): New function.
837 * config/rs6000/rs6000.md (cost): New attribute.
838
839 2017-10-10 Jakub Jelinek <jakub@redhat.com>
840 H.J. Lu <hongjiu.lu@intel.com>
841
842 PR target/79565
843 PR target/82483
844 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
845 OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
846 __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
847 (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
848 to OPTION_MASK_ISA_AVX512VL - builtins that have both
849 OPTION_MASK_ISA_MMX and some other bit set require both
850 mmx and the ISAs without the mmx bit.
851 * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
852 __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
853 __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
854 __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
855 __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
856 __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
857 __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
858 __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
859 __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
860 __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
861 __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
862 __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
863 __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
864 __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
865 Add OPTION_MASK_ISA_MMX.
866
867 2017-10-10 Andreas Tobler <andreast@gcc.gnu.org>
868
869 * config.gcc (armv7*-*-freebsd*): New target.
870 (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
871
872 2017-10-10 Jan Hubicka <hubicka@ucw.cz>
873
874 * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
875 X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
876 spot in the file.
877
878 2017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
879
880 * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
881 a template parameter.
882 (WIDE_INT_REF_FOR): Update accordingly.
883 * tree.h (wi::int_traits <const_tree>): Delete.
884 (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
885 (wi::to_widest, wi::to_offset): Use them. Expand commentary.
886 (wi::tree_to_wide_ref): New typedef.
887 (wi::to_wide): New function.
888 * calls.c (get_size_range): Use wi::to_wide when operating on
889 trees as wide_ints.
890 * cgraph.c (cgraph_node::create_thunk): Likewise.
891 * config/i386/i386.c (ix86_data_alignment): Likewise.
892 (ix86_local_alignment): Likewise.
893 * dbxout.c (stabstr_O): Likewise.
894 * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
895 * expr.c (const_vector_from_tree): Likewise.
896 * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
897 * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
898 (fold_negate_expr_1, int_const_binop_1, const_binop)
899 (fold_convert_const_int_from_real, optimize_bit_field_compare)
900 (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
901 (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
902 (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
903 (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
904 (fold_not_const, round_up_loc): Likewise.
905 * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
906 * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
907 (alloca_call_type): Likewise.
908 * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
909 * godump.c (go_output_typedef): Likewise.
910 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
911 * internal-fn.c (get_min_precision): Likewise.
912 * ipa-cp.c (ipcp_store_vr_results): Likewise.
913 * ipa-polymorphic-call.c
914 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
915 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
916 (ipa_modify_call_arguments): Likewise.
917 * match.pd: Likewise.
918 * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
919 * print-tree.c (print_node_brief, print_node): Likewise.
920 * stmt.c (expand_case): Likewise.
921 * stor-layout.c (layout_type): Likewise.
922 * tree-affine.c (tree_to_aff_combination): Likewise.
923 * tree-cfg.c (group_case_labels_stmt): Likewise.
924 * tree-data-ref.c (dr_analyze_indices): Likewise.
925 (prune_runtime_alias_test_list): Likewise.
926 * tree-dump.c (dequeue_and_dump): Likewise.
927 * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
928 * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
929 * tree-pretty-print.c (dump_generic_node): Likewise.
930 * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
931 (simple_iv_with_niters): Likewise.
932 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
933 * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
934 * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
935 * tree-ssa-loop-niter.c (split_to_var_and_offset)
936 (refine_value_range_using_guard, number_of_iterations_ne_max)
937 (number_of_iterations_lt_to_ne, number_of_iterations_lt)
938 (get_cst_init_from_scev, record_nonwrapping_iv)
939 (scev_var_range_cant_overflow): Likewise.
940 * tree-ssa-phiopt.c (minmax_replacement): Likewise.
941 * tree-ssa-pre.c (compute_avail): Likewise.
942 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
943 (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
944 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
945 * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
946 * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
947 * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
948 (dump_case_nodes, try_switch_expansion): Likewise.
949 * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
950 (vect_do_peeling): Likewise.
951 * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
952 * tree-vect-stmts.c (vectorizable_load): Likewise.
953 * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
954 (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
955 (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
956 (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
957 (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
958 (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
959 (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
960 (evrp_dom_walker::before_dom_children): Likewise.
961 * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
962 (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
963 (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
964 (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
965 (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
966 (get_range_pos_neg): Likewise.
967 * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
968 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
969 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
970 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
971 * config/avr/avr.c (avr_fold_builtin): Likewise.
972 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
973 * config/msp430/msp430.c (msp430_attr): Likewise.
974 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
975 * config/powerpcspe/powerpcspe-c.c
976 (altivec_resolve_overloaded_builtin): Likewise.
977 * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
978 (rs6000_expand_ternop_builtin): Likewise.
979 * config/rs6000/rs6000-c.c
980 (altivec_resolve_overloaded_builtin): Likewise.
981 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
982 (rs6000_expand_ternop_builtin): Likewise.
983 * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
984
985 2017-10-10 Bin Cheng <bin.cheng@arm.com>
986
987 * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
988 when copying loop nest with only one inner loop.
989
990 2017-10-10 Richard Biener <rguenther@suse.de>
991
992 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
993 blocks if SCEV is active.
994 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
995 dead code.
996 (analyze_scalar_evolution): Handle cached evolutions the obvious way.
997 (scev_initialize): Assert we are not yet initialized.
998
999 2017-10-10 Bin Cheng <bin.cheng@arm.com>
1000
1001 * tree-loop-distribution.c (generate_loops_for_partition): Remove
1002 inner loop's exit stmt by making it always exit the loop, otherwise
1003 we would generate an infinite empty loop.
1004
1005 2017-10-10 Bin Cheng <bin.cheng@arm.com>
1006
1007 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
1008 renaming variables in new preheader if it's deleted.
1009
1010 2017-10-10 Bin Cheng <bin.cheng@arm.com>
1011
1012 * tree-loop-distribution.c (struct partition): Remove unused field
1013 loops of the structure.
1014 (partition_alloc, partition_free): Ditto.
1015 (build_rdg_partition_for_vertex): Ditto.
1016
1017 2017-10-09 Jeff Law <law@redhat.com>
1018
1019 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
1020 return type to match prototype and documentation.
1021
1022 2010-10-09 Segher Boessenkool <segher@kernel.crashing.org>
1023
1024 * config/rs6000/rs6000.c (processor_costs): Move to ...
1025 * config/rs6000/rs6000.h: ... here.
1026 (rs6000_cost): Declare.
1027
1028 2017-10-09 Eric Botcazou <ebotcazou@adacore.com>
1029
1030 * except.c (setjmp_fn): New global variable.
1031 (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
1032 (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
1033 if DONT_USE_BUILTIN_SETJMP is defined.
1034
1035 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
1036
1037 * target.def (insn_cost): New hook.
1038 * doc/tm.texi.in (TARGET_INSN_COST): New hook.
1039 * doc/tm.texi: Regenerate.
1040 * rtlanal.c (insn_cost): Use the new hook.
1041
1042 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
1043
1044 * combine.c (combine_validate_cost): Compute the new insn_cost,
1045 not just pattern_cost.
1046 (try_combine): Adjust comment.
1047
1048 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
1049
1050 * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
1051 insn_cost.
1052 * combine.c (uid_insn_cost): Adjust comment.
1053 (combine_validate_cost): Adjust comment. Use pattern_cost instead
1054 of insn_rtx_cost
1055 (combine_instructions): Use insn_cost instead of insn_rtx_cost.
1056 * dse.c (find_shift_sequence): Ditto.
1057 * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
1058 (bb_valid_for_noce_process_p): Use pattern_cost.
1059 * rtl.h (insn_rtx_cost): Delete.
1060 (pattern_cost): New prototype.
1061 (insn_cost): New prototype.
1062 * rtlanal.c (insn_rtx_cost): Rename to...
1063 (pattern_cost): ... this.
1064 (insn_cost): New.
1065
1066 2017-10-09 Uros Bizjak <ubizjak@gmail.com>
1067
1068 * config/i386/i386.md (*jcc_2): Remove insn pattern.
1069 (*jcc<mode>_0_r_i387): Ditto.
1070 (*jccxf_r_i387): Ditto.
1071 (*jcc<mode>_r_i387): Ditto.
1072 (*jccu<mode>_r_i387): Ditto.
1073 (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
1074 (*jcc): Rename from *jcc_1.
1075
1076 2017-10-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1077
1078 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
1079 deferred rescans after the lvx/stvx recombination pre-pass.
1080
1081 2017-10-09 Michael Meissner <meissner@linux.vnet.ibm.com>
1082
1083 * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
1084 memory operation instruction support.
1085 * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
1086 (rs6000-ibm-aix[789]*): Likewise.
1087 * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
1088 Document new functions.
1089
1090 2017-10-09 Richard Biener <rguenther@suse.de>
1091
1092 PR tree-optimization/82397
1093 * tree-data-ref.c (data_ref_compare_tree): Make sure to return
1094 equality only for semantically equal trees.
1095
1096 2017-10-09 Richard Biener <rguenther@suse.de>
1097
1098 PR tree-optimization/82449
1099 * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
1100 * tree-chrec.h (evolution_function_is_constant_p): Adjust to
1101 allow constant addresses.
1102 * tree-chrec.c (scev_is_linear_expression): Constant evolutions
1103 are linear.
1104
1105 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1106
1107 * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
1108 flags.
1109
1110 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1111
1112 PR target/82463
1113 * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
1114 definitions.
1115
1116 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1117
1118 PR target/82465
1119 * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
1120
1121 2017-10-09 Jakub Jelinek <jakub@redhat.com>
1122
1123 PR target/82464
1124 * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
1125 s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
1126
1127 2017-10-09 Richard Sandiford <richard.sandiford@linaro.org>
1128
1129 * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
1130 (WI_BINARY_PREDICATE_RESULT): Likewise.
1131 (wi::binary_traits::operator_result): New type.
1132 (wi::binary_traits::predicate_result): Likewise.
1133 (generic_wide_int::operator~, unary generic_wide_int::operator-)
1134 (generic_wide_int::operator==, generic_wide_int::operator!=)
1135 (generic_wide_int::operator&, generic_wide_int::and_not)
1136 (generic_wide_int::operator|, generic_wide_int::or_not)
1137 (generic_wide_int::operator^, generic_wide_int::operator+
1138 (binary generic_wide_int::operator-, generic_wide_int::operator*):
1139 Delete.
1140 (operator~, unary operator-, operator==, operator!=, operator&)
1141 (operator|, operator^, operator+, binary operator-, operator*): New
1142 functions.
1143 * expr.c (get_inner_reference): Use wi::bit_and_not.
1144 * fold-const.c (fold_binary_loc): Likewise.
1145 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
1146 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1147 (bit_value_binop): Likewise.
1148 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
1149 * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
1150 (extract_range_from_binary_expr_1): Likewise.
1151 (masked_increment): Likewise.
1152 (simplify_bit_ops_using_ranges): Likewise.
1153
1154 2017-10-09 Martin Jambor <mjambor@suse.cz>
1155
1156 PR hsa/82416
1157 * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
1158 * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
1159 (hsa_type_for_scalar_tree_type): Use it. Always force min32int for
1160 COMPLEX types.
1161 (hsa_fixup_mov_insn_type): New function.
1162 (hsa_op_with_type::get_in_type): Use it.
1163 (hsa_build_append_simple_mov): Likewise. Allow sub-32bit
1164 immediates in an assert.
1165 (hsa_op_with_type::extend_int_to_32bit): New method.
1166 (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
1167 types. Convert to dest type if necessary.
1168 (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
1169 (reg_for_gimple_ssa): Pass false as min32int to
1170 hsa_type_for_scalar_tree_type.
1171 (gen_hsa_addr): Fixup type when creating addresable temporary.
1172 (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
1173 (gen_hsa_unary_operation): Extend operands and convert to dest type if
1174 necessary. Call hsa_fixup_mov_insn_type.
1175 (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
1176 extend operands and convert to dest type if necessary.
1177 (gen_hsa_insns_for_operation_assignment): Extend operands and convert
1178 to dest type if necessary.
1179 (set_output_in_type): Call hsa_fixup_mov_insn_type. Just ude dest
1180 if conversion nt necessary and size matches.
1181 (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
1182 to dest type if necessary.
1183 (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
1184 (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
1185 necessary.
1186 (gen_hsa_clrsb): Likewise.
1187 (gen_hsa_ffs): Likewise.
1188 (gen_hsa_divmod): Extend operands and convert to dest type if
1189 necessary.
1190 (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
1191
1192 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org>
1193
1194 * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
1195 Remove empty default arguments. Use a brace block as output
1196 statement.
1197 (conditional return): Ditto.
1198 (jump): Ditto.
1199 (indirect_jump): Ditto. Use b%T0 instead of bctr/blr.
1200 (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
1201 Ditto.
1202 (group_ending_nop): Ditto.
1203 (doloop_end): Ditto.
1204 (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
1205 (splitters for those): Ditto.
1206
1207 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org>
1208
1209 * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
1210 a conditional jump (and the compare for it) so that pc_rtx is the
1211 last operand.
1212 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
1213 for the deleted and renamed ctr<mode>_internal[234] patterns.
1214 * config/rs6000/rs6000.md: Delete second conditional branch pattern.
1215 Delete second conditional return pattern.
1216 (ctr<mode>_internal2): Delete this second bdnz pattern.
1217 (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
1218 (ctr<mode>_internal4): Delete this second bdz pattern.
1219
1220 2017-10-08 Eric Botcazou <ebotcazou@adacore.com>
1221
1222 * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
1223 (always_initialized_rtx_for_ssa_name_p): New predicate.
1224 * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
1225 (finish_out_of_ssa): Free new field of SA.
1226 * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
1227 * tree-ssa-coalesce.c: Include tree-ssa.h.
1228 (get_parm_default_def_partitions): Remove extern keyword.
1229 (get_undefined_value_partitions): New function.
1230 * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
1231 not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
1232 uninitialized bits.
1233 * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
1234
1235 2017-10-08 Eric Botcazou <ebotcazou@adacore.com>
1236
1237 * builtins.def (BUILT_IN_SETJMP): Revert latest change.
1238
1239 2017-10-08 Jan Hubicka <hubicka@ucw.cz>
1240
1241 * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
1242 for targets that preffer 128bit.
1243
1244 2017-10-08 Jan Hubicka <hubicka@ucw.cz>
1245
1246 * config/i386/i386.c (has_dispatch): Disable for Ryzen.
1247
1248 2017-10-08 Olivier Hainque <hainque@adacore.com>
1249
1250 * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
1251 on the target mem instead of RTX_FRAME_RELATED_P on the insn to
1252 prevent DSE.
1253 (thumb_set_return_address): Likewise.
1254
1255 2017-10-08 Olivier Hainque <hainque@adacore.com>
1256
1257 * common/config/arm/arm-common.c (arm_except_unwind_info):
1258 Handle DWARF2_UNWIND_INFO.
1259
1260 2017-10-07 Michael Collison <michael.collison@arm.com>
1261
1262 * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
1263 New pattern.
1264
1265 2017-10-07 Eric Botcazou <ebotcazou@adacore.com>
1266
1267 * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
1268 of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
1269 * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
1270 defined, force the creation of a new block for a dispatch label.
1271
1272 2017-10-07 Jan Hubicka <hubicka@ucw.cz>
1273
1274 * invoke.texi (Wsuggest-attribute=cold): Document.
1275 * common.opt (Wsuggest-attribute=cold): New
1276 * ipa-pure-const.c (warn_function_cold): New function.
1277 * predict.c (compute_function_frequency): Use it.
1278 * predict.h (warn_function_cold): Declare.
1279
1280 2017-10-06 Jan Hubicka <hubicka@ucw.cz>
1281
1282 * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
1283 Update profile.
1284
1285 2017-10-06 Martin Liska <mliska@suse.cz>
1286
1287 * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
1288 keyword for member functions.
1289 (struct sanopt_tree_couple): New struct.
1290 (struct sanopt_tree_couple_hash): New function.
1291 (struct sanopt_ctx): Add new hash_map.
1292 (has_dominating_ubsan_ptr_check): New function.
1293 (record_ubsan_ptr_check_stmt): Likewise.
1294 (maybe_optimize_ubsan_ptr_ifn): Likewise.
1295 (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
1296 (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
1297
1298 2017-10-06 Sudakshina Das <sudi.das@arm.com>
1299
1300 PR target/82440
1301 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
1302 aarch64_simd_valid_immediate on CONST_VECTORs.
1303 (aarch64_reg_or_bic_imm): Likewise.
1304
1305 2017-10-06 Wilco Dijkstra <wdijkstr@arm.com>
1306
1307 PR rtl-optimization/82396
1308 * haifa-sched.c (ready_sort_real): Disable qsort checking.
1309
1310 2017-10-06 Sebastian Pop <sebpop@gmail.com>
1311
1312 * graphite-dependences.c (scop_get_reads): Move code to...
1313 (scop_get_must_writes): Move code to...
1314 (scop_get_may_writes): Move code to...
1315 (scop_get_reads_and_writes): ... here.
1316 (scop_get_dependences): Call scop_get_reads_and_writes.
1317
1318 2017-10-06 Jakub Jelinek <jakub@redhat.com>
1319
1320 PR tree-optimization/82434
1321 * fold-const.h (can_native_encode_type_p,
1322 can_native_encode_string_p): Remove.
1323 * fold-const.c (native_encode_int): Formatting fixes. If ptr is NULL,
1324 don't encode anything, just return what would be otherwise returned.
1325 (native_encode_fixed, native_encode_complex, native_encode_vector):
1326 Likewise.
1327 (native_encode_string): Likewise. Inline by hand
1328 can_native_encode_string_p.
1329 (can_native_encode_type_p): Remove.
1330 (can_native_encode_string_p): Remove.
1331 * tree-vect-stmts.c (vectorizable_store): Instead of testing just
1332 STRING_CSTs using can_native_encode_string_p, test all
1333 CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
1334 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
1335 argument from native_encode_expr.
1336 (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
1337 (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
1338 but just 2.
1339
1340 2017-10-06 Richard Biener <rguenther@suse.de>
1341
1342 PR tree-optimization/82397
1343 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
1344 operand_equal_p but rely on data_ref_compare_tree for detecting
1345 equalities.
1346 (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
1347 to match up with dr_group_sort_cmp.
1348
1349 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1350
1351 PR target/82322
1352 * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
1353 builtin.
1354 * config/s390/s390-builtin-types.def: Regenerate.
1355
1356 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1357
1358 PR target/82317
1359 * config/s390/s390-builtin-types.def: Regenerate.
1360 * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
1361 Change flag from B_VXE to B_VX.
1362 (s390_vec_min_dbl): Remove B_VXE flag.
1363
1364 2017-10-06 Richard Biener <rguenther@suse.de>
1365
1366 * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
1367 (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
1368 translate_isl_ast_to_gimple::is_valid_rename,
1369 translate_isl_ast_to_gimple::get_rename,
1370 translate_isl_ast_to_gimple::get_def_bb_for_const,
1371 translate_isl_ast_to_gimple::get_new_name,
1372 translate_isl_ast_to_gimple::collect_all_ssa_names,
1373 translate_isl_ast_to_gimple::copy_loop_phi_args,
1374 translate_isl_ast_to_gimple::collect_all_ssa_names,
1375 translate_isl_ast_to_gimple::copy_loop_phi_args,
1376 translate_isl_ast_to_gimple::copy_loop_phi_nodes,
1377 translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
1378 translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
1379 translate_isl_ast_to_gimple::copy_loop_close_phi_args,
1380 translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
1381 translate_isl_ast_to_gimple::copy_cond_phi_args,
1382 translate_isl_ast_to_gimple::copy_cond_phi_nodes,
1383 translate_isl_ast_to_gimple::edge_for_new_close_phis,
1384 translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
1385 translate_isl_ast_to_gimple::rename_uses,
1386 translate_isl_ast_to_gimple::rename_all_uses): Remove.
1387 (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
1388 (set_rename_for_each_def): Likewise.
1389 (graphite_copy_stmts_from_block): Handle debug stmt resetting
1390 here. Handle rewriting SCEV analyzable uses here.
1391 (copy_bb_and_scalar_dependences): Generate code for PHI
1392 copy-in/outs.
1393 (graphite_regenerate_ast_isl): Adjust.
1394 * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
1395 (add_write, add_read): New functions.
1396 (build_cross_bb_scalars_def): Use it and simplify.
1397 (build_cross_bb_scalars_use): Likewise.
1398 (graphite_find_cross_bb_scalar_vars): Inline into...
1399 (try_generate_gimple_bb): ...here. Add dependences for PHIs,
1400 simulating out-of-SSA. Compute liveout and add dependencies.
1401 (build_scops): Force an empty entry block.
1402 * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
1403 members.
1404 (sese_build_liveouts): Declare.
1405 (sese_trivially_empty_bb_p): Likewise.
1406 * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
1407 compute liveout and debug_liveout.
1408 (sese_bad_liveouts_use): Remove.
1409 (sese_reset_debug_liveouts_bb): Likewise.
1410 (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
1411 (sese_build_liveouts): Build liveout and debug_liveout and store
1412 it in region.
1413 (new_sese_info): Adjust.
1414 (free_sese_info): Likewise.
1415 (sese_insert_phis_for_liveouts): Reset debug stmts from here,
1416 do not build liveout here.
1417 (move_sese_in_condition): Adjust region entry.
1418 (scev_analyzable_p): Match up with chrec_apply requirements.
1419 (sese_trivially_empty_bb_p): New.
1420 * tree-into-ssa.c (get_reaching_def): Properly support generating
1421 default-defs for incremental rewrite of anonymous names.
1422
1423 2017-10-06 Richard Biener <rguenther@suse.de>
1424
1425 * graphite-sese-to-poly.c (extract_affine): For casts increasing
1426 precision do not perform modulo reduction.
1427
1428 2017-10-06 Richard Biener <rguenther@suse.de>
1429
1430 PR tree-optimization/82436
1431 * tree-vect-slp.c (vect_supported_load_permutation_p): More
1432 conservatively choose the vectorization factor when checking
1433 whether we can perform the required load permutation.
1434 (vect_transform_slp_perm_load): Assert when we may not fail.
1435
1436 2017-10-05 Segher Boessenkool <segher@kernel.crashing.org>
1437
1438 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
1439 message for incompatible -msdata=* and -mcall-* options.
1440
1441 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
1442
1443 * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
1444 rate for post-reload scheduling.
1445
1446 2017-10-05 Tamar Christina <tamar.christina@arm.com>
1447
1448 * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
1449
1450 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
1451
1452 * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
1453 to improve monte carlo in scimark.
1454
1455 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
1456
1457 * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
1458 pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
1459 athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
1460 pentium4_cost, nocona_cost): Set reassociation width to 1.
1461 (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
1462 width to 2 for fp operations and 1 otherwise.
1463 (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
1464 for int and fp.
1465 (atom_cost): Set reassociation width to 2.
1466 (slm_cost, generic_cost): Set fp reassociation width
1467 to 2 and 1 otherwise.
1468 (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
1469 (core_cost): Set fp reassociation width to 4 and vector to 2.
1470 (ix86_reassociation_width): Rewrite using cost table; special case
1471 plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
1472 and TARGET_AVX128_OPTIMAL.
1473 * config/i386/i386.h (processor_costs): Add
1474 reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
1475 (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
1476 TARGET_REASSOC_FP_TO_PARALLEL): Remove.
1477 * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
1478 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
1479 (X86_TUNE_VECTOR_PARALLEL_EXECUTION): Remove.
1480
1481 2017-10-05 Nathan Sidwell <nathan@acm.org>
1482
1483 * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
1484
1485 2017-10-05 Tamar Christina <tamar.christina@arm.com>
1486
1487 * config/arm/arm.c (arm_test_fpu_data): New.
1488 (arm_run_selftests): Call arm_test_fpu_data.
1489
1490 2017-10-04 Nathan Sidwell <nathan@acm.org>
1491
1492 * toplev.c (toplev::main): Remove excess parens on pretty_printer
1493 decl.
1494 * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
1495
1496 2017-10-04 Sudakshina Das <sudi.das@arm.com>
1497
1498 * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
1499 check type for aarch64_simd_valid_immediate.
1500 (aarch64_output_simd_mov_immediate): Update prototype.
1501 (aarch64_simd_valid_immediate): Update prototype.
1502 * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
1503 support for ORR-immediate.
1504 (and<mode>3): modified pattern to add support for BIC-immediate.
1505 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
1506 now checks for valid immediate for BIC and ORR based on new enum
1507 argument.
1508 (aarch64_output_simd_mov_immediate): Function now used to output
1509 BIC/ORR imm as well based on new enum argument.
1510 * config/aarch64/constraints.md (Do): New vector immediate constraint.
1511 (Db) : Likewise.
1512 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
1513 (aarch64_reg_or_bic_imm): Likewise.
1514
1515 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1516
1517 * config/s390/vx-builtins.md ("vec_mergeh<mode>")
1518 ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
1519
1520 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com>
1521
1522 Revert r253399:
1523
1524 PR rtl-optimization/82396
1525 * haifa-sched.c (autopref_multipass_init): Simplify
1526 initialization.
1527 (autopref_rank_data): Simplify sort order.
1528 * sched-int.h (autopref_multipass_data_): Remove
1529 multi_mem_insn_p, min_offset and max_offset.
1530
1531 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1532
1533 * doc/sourcebuild.texi: Document vect_peeling_profitable.
1534
1535 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1536
1537 * doc/sourcebuild.texi: Document vect_intdouble_cvt and
1538 vect_doubleint_cvt.
1539
1540 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1541
1542 * doc/sourcebuild.texi: Document vect_long_mult.
1543
1544 2017-10-04 Richard Sandiford <richard.sandiford@linaro.org>
1545
1546 PR tree-optimization/82413
1547 * fold-const.c (build_range_check): Use widest_int when comparing
1548 the maximum ETYPE value with HIGH.
1549
1550 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com>
1551
1552 PR rtl-optimization/82396
1553 * haifa-sched.c (autopref_multipass_init): Simplify
1554 initialization.
1555 (autopref_rank_data): Simplify sort order.
1556 * sched-int.h (autopref_multipass_data_): Remove
1557 multi_mem_insn_p, min_offset and max_offset.
1558
1559 2017-10-04 Jakub Jelinek <jakub@redhat.com>
1560
1561 PR tree-optimization/82381
1562 * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
1563 oeN->rank first. Return 1 or -1 if one op is SSA_NAME and the other
1564 is not.
1565
1566 PR tree-optimization/82374
1567 * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
1568 DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
1569 DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
1570 current_function_decl to the new decl.
1571
1572 2017-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
1573
1574 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
1575 helper macro for IEEE float128 hardware built-in functions.
1576 (SQRTF128_ODD): Add built-in functions with the round-to-odd
1577 semantics.
1578 (TRUNCF128_ODD): Likewise.
1579 (ADDF128_ODD): Likewise.
1580 (SUBF128_ODD): Likewise.
1581 (MULF128_ODD): Likewise.
1582 (DIVF128_ODD): Likewise.
1583 (FMAF128_ODD): Likewise.
1584 * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
1585 UNSPEC_TRUNC_ROUND_TO_ODD.
1586 (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
1587 (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
1588 floating point round to odd instructions.
1589 (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
1590 (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
1591 (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
1592 (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
1593 (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
1594 (trunc<mode>sf2_hw): Change the truncate with round to odd
1595 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
1596 (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
1597 to odd hardware instructions.
1598 (sub<mode>3_odd): Likewise.
1599 (mul<mode>3_odd): Likewise.
1600 (div<mode>3_odd): Likewise.
1601 (sqrt<mode>2_odd): Likewise.
1602 (fma<mode>4_odd): Likewise.
1603 (fms<mode>4_odd): Likewise.
1604 (nfma<mode>4_odd): Likewise.
1605 (nfms<mode>4_odd): Likewise.
1606 (trunc<mode>df2_odd): Change the truncate with round to odd
1607 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. Add a generator
1608 function.
1609 * doc/extend.texi (PowerPC built-in functions): Update documentation
1610 for existing IEEE float128-bit built-in functions. Add built-in
1611 functions that generate the IEEE 128-bit floating point round to
1612 odd instructions.
1613
1614 2017-10-03 Segher Boessenkool <segher@kernel.crashing.org>
1615
1616 PR rtl-optimization/77729
1617 * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
1618 to (X&(C1&~C2))|C2 transformations.
1619
1620 2017-10-03 Martin Jambor <mjambor@suse.cz>
1621
1622 PR tree-optimization/82363
1623 * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
1624 mismatch, mark lacc written regardless of racc.
1625
1626 2017-10-03 Jakub Jelinek <jakub@redhat.com>
1627
1628 PR tree-optimization/82381
1629 * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
1630 stmt_to_insert nor wheather SSA_NAMEs are default defs.
1631 Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
1632 fallthrough into reassoc_stmt_dominates_stmt_p.
1633
1634 PR target/82386
1635 * combine.c (combine_instructions): Don't combine in unreachable
1636 basic blocks.
1637
1638 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
1639
1640 PR target/80210
1641 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
1642 function to not use the have_cpu variable. Do not set cpu_index,
1643 rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
1644 or the default cpu.
1645 (rs6000_valid_attribute_p): Remove duplicate initializations of
1646 old_optimize and func_optimize.
1647 (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
1648 (rs6000_activate_target_options): Make global.
1649 * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
1650 prototype.
1651
1652 2017-10-02 Jakub Jelinek <jakub@redhat.com>
1653
1654 * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
1655 if *poffset + *pmax_size overflows in HOST_WIDE_INT.
1656 Set *poffset to 0 and *psize and *pmax_size to -1 if
1657 *poffset + *psize overflows in HOST_WIDE_INT.
1658
1659 PR tree-optimization/82387
1660 PR tree-optimization/82388
1661 PR tree-optimization/82389
1662 * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
1663 instead of live_bytes non-NULL.
1664
1665 2017-10-02 Georg-Johann Lay <avr@gjlay.de>
1666
1667 PR target/41076
1668 * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
1669 alternative.
1670
1671 2017-10-02 Richard Biener <rguenther@suse.de>
1672
1673 * graphite-isl-ast-to-gimple.c (set_codegen_error): With
1674 -fchecking and --param graphite-allow-codegen-errors=0 ICE.
1675 * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
1676
1677 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org>
1678
1679 * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
1680 requested precision matches the type's.
1681 * calls.c (alloc_max_size): Calculate the new candidate size as
1682 a widest_int and use wi::to_widest when comparing it with the
1683 current candidate size.
1684 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
1685 zero rather than integer_zero_node.
1686 * match.pd: Check for a no-op conversion before using wi::add
1687 rather than after. Use tree_to_uhwi when summing small shift
1688 counts into an unsigned int.
1689
1690 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org>
1691 Alan Hayward <alan.hayward@arm.com>
1692 David Sherwood <david.sherwood@arm.com>
1693
1694 PR target/71307
1695 * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
1696 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
1697 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
1698 POINTER_AND_FP_REGS.
1699
1700 2017-10-02 Richard Biener <rguenther@suse.de>
1701
1702 PR tree-optimization/82355
1703 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
1704 a mapping for the enclosing loop but avoid generating one for
1705 the loop tree root.
1706 (copy_bb_and_scalar_dependences): Remove premature codegen
1707 error on PHIs in blocks duplicated into multiple places.
1708 * graphite-scop-detection.c
1709 (scop_detection::stmt_has_simple_data_refs_p): For a loop not
1710 in the region use it as loop and nest to analyze the DR in.
1711 (try_generate_gimple_bb): Likewise.
1712 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
1713 (add_loop_constraints): For blocks in a loop not in the region
1714 create a dimension with a single iteration.
1715 * sese.h (gbb_loop_at_index): Remove assert.
1716
1717 2017-10-01 Kevin Buettner <kevinb@redhat.com>
1718
1719 * omp-expand.c (adjust_context_scope): New function.
1720 (expand_parallel_call): Call adjust_context_scope.
1721
1722 2017-10-01 Jeff Law <law@redhat.com>
1723
1724 * tree-ssa-dom.c (optimize_stmt): Make this a method within the
1725 dom_opt_dom_walker class with direct access to private members.
1726 Add comments. Call test_for_singularity.
1727 (dom_opt_dom_walker::before_dom_children): Corresponding changes.
1728 (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
1729 m_dummy_cond anymore.
1730 (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
1731 class ctor.
1732 (pass_dominator:execute): Build the dummy_cond here and pass it
1733 to the dom_opt_dom_walker ctor.
1734 (test_for_singularity): New function.
1735
1736 2017-09-30 Krister Walfridsson <krister.walfridsson@gmail.com>
1737 Maya Rashish <coypu@sdf.org>
1738
1739 * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
1740 netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
1741 (alpha*-*-netbsd*) Use nbsd_tm_file.
1742 (arm*-*-netbsdelf*) Likewise.
1743 (i[34567]86-*-netbsdelf*) Likewise.
1744 (x86_64-*-netbsd*) Likewise.
1745 (mips*-*-netbsd*) Likewise.
1746 (powerpc-*-netbsd*) Likewise.
1747 (sh*-*-netbsd*) Likewise.
1748 (sparc-*-netbsdelf*) Likewise.
1749 (sparc64-*-netbsd*) Likewise.
1750 (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
1751 to tm_defines.
1752 (vax-*-netbsdelf*) Likewise.
1753 * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
1754 (UINT_FAST8_TYPE) Likewise.
1755 (INT_FAST16_TYPE) Check CHAR_FAST16.
1756 (UINT_FAST16_TYPE) Likewise.
1757
1758 2017-09-30 Jakub Jelinek <jakub@redhat.com>
1759
1760 PR target/82361
1761 * config/i386/i386.md
1762 (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
1763 (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
1764 *divmodsi4_zext_2): New define_insn_and_split.
1765 (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
1766 (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
1767 (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
1768 *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
1769 New define_insn_and_split.
1770 (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
1771 * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
1772 operands[1] having DImode when mode is SImode.
1773
1774 * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
1775 always SImode for DIV and MOD in REG_EQUAL notes.
1776
1777 2017-09-29 Yury Gribov <tetra2005@gmail.com>
1778
1779 PR middle-end/82319
1780 * match.pd: Fix handling of NaNs in pattern.
1781
1782 2017-09-29 Jeff Law <law@redhat.com>
1783
1784 * sbitmap.c (bitmap_bit_in_range_p): New function.
1785 * sbitmap.h (bitmap_bit_in_range_p): Prototype.
1786 * tree-ssa-dse.c (live_bytes_read): New function.
1787 (dse_classify_store): Ignore reads of dead bytes.
1788
1789 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
1790 typos and whitespace errors.
1791 * config/i386/predicates.md (address_no_seg_operand): Likewise.
1792 * config/s390/s390.c (s390_emit_prologue): Likewise.
1793
1794 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
1795
1796 PR target/81481
1797 * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
1798 with a symbol for LRA.
1799
1800 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
1801
1802 PR rtl-optimization/82338
1803 * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
1804
1805 2017-09-29 Alexander Monakov <amonakov@ispras.ru>
1806
1807 * genmodes.c (calc_wider_mode): Suppress qsort macro.
1808 * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
1809 (qsort_chk): Declare.
1810 * vec.c [CHECKING_P] (qsort_chk_error): New static function.
1811 (qsort_chk): New function.
1812
1813 2017-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1814
1815 PR tree-optimization/82337
1816 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
1817 phi definition if the PHI result appears in an abnormal PHI.
1818 (find_basis_for_base_expr): Don't record a basis if the LHS of the
1819 basis appears in an abnormal PHI.
1820
1821 2017-09-29 Richard Biener <rguenther@suse.de>
1822
1823 * graphite-isl-ast-to-gimple.c
1824 (translate_isl_ast_to_gimple::set_codegen_error): New function.
1825 (binary_op_to_tree): Use it.
1826 (get_rename_from_scev): Likewise.
1827 (copy_loop_phi_nodes): Likewise.
1828 (copy_bb_and_scalar_dependences): Likewise.
1829 (translate_pending_phi_nodes): Likewise.
1830
1831 2017-09-29 Jakub Jelinek <jakub@redhat.com>
1832
1833 PR target/82339
1834 * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
1835 for movabsq $(i32 << shift), r64.
1836
1837 2017-09-28 Uros Bizjak <ubizjak@gmail.com>
1838
1839 * config/i386/i386.c (ix86_print_operand_address_as): Do not check
1840 index when encoding %esp as %rsp to avoid 0x67 prefix.
1841
1842 2017-09-28 Sergey Shalnov <Sergey.Shalnov@intel.com>
1843
1844 * config/i386/i386.md (*movsf_internal, *movdf_internal):
1845 Return 256-bit AVX modes for TARGET_PREFER_AVX256.
1846
1847 2017-09-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
1848
1849 * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
1850 Extensions with more than 16 double VFP registers.
1851 (cmse_nonsecure_entry_clear_before_return): Remove second entry of
1852 to_clear_mask and all code related to it. Replace the remaining
1853 entry by a sbitmap and adapt code accordingly.
1854
1855 2017-09-28 Henry Linjamäki <henry.linjamaki@parmance.com>
1856
1857 * brig-builtins.def: Change pure attributes to const.
1858
1859 2017-09-28 Joseph Myers <joseph@codesourcery.com>
1860
1861 * config.gcc (default_gnu_indirect_function): Default to yes for
1862 sparc*-*-linux* with glibc.
1863
1864 2017-09-28 Joseph Myers <joseph@codesourcery.com>
1865
1866 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
1867 (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
1868 when creating .init_array and .fini_array sections with priority
1869 specified.
1870
1871 2017-09-27 Christophe Lyon <christophe.lyon@linaro.org>
1872
1873 PR target/71727
1874 * config/aarch64/aarch64.c
1875 (aarch64_builtin_support_vector_misalignment): Always return false
1876 when misalignment is unknown.
1877
1878 2017-09-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
1879
1880 * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
1881 this function to return false if the definition used by the swap
1882 instruction is artificial, or if the memory address from which the
1883 constant value is loaded is not represented by a base address held
1884 in a register or if the base address register is a frame or stack
1885 pointer. Additionally, return false if the base address of the
1886 loaded constant is a SYMBOL_REF but is not considered to be a
1887 constant.
1888 (replace_swapped_load_constant): New function.
1889 (rs6000_analyze_swaps): Add a new pass to replace a swap of a
1890 loaded constant vector with a load of a swapped constant vector.
1891
1892 2017-09-27 Carl Love <cel@us.ibm.com>
1893
1894 * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
1895 (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
1896 * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
1897 fctiw instruction.
1898
1899 2017-09-27 Alexander Monakov <amonakov@ispras.ru>
1900
1901 * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
1902 first, always call autopref_rank_data otherwise.
1903
1904 2017-09-27 Richard Biener <rguenther@suse.de>
1905
1906 * graphite-scop-detection.c (find_scop_parameters): Move
1907 loop bound handling ...
1908 (gather_bbs::before_dom_children): ... here, avoiding the need
1909 to build scop_info->loop_nest.
1910 (record_loop_in_sese): Remove.
1911 * sese.h (sese_info_t::loop_nest): Remove.
1912 * sese.c (new_sese_info): Do not allocate loop_nest.
1913 (free_sese_info): Do not free loop_nest.
1914
1915 2017-09-27 Jakub Jelinek <jakub@redhat.com>
1916
1917 PR c++/82159
1918 * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
1919 lhs from calls if the lhs has addressable type.
1920
1921 2017-09-27 Richard Biener <rguenther@suse.de>
1922
1923 * graphite.h (scop::max_alias_set): New member.
1924 * graphite-scop-detection.c: Remove references to non-existing
1925 --param in comments.
1926 (build_alias_sets): Record the maximum alias set used for drs.
1927 (build_scops): Support zero as unlimited for
1928 --param graphite-max-arrays-per-scop.
1929 * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
1930 and inline into ...
1931 (build_poly_sr_1): ... here. Compute alias set based on the
1932 maximum alias set used for drs rather than
1933 PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
1934
1935 2017-09-27 Richard Biener <rguenther@suse.de>
1936
1937 * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
1938 --param loop-block-tile-size=0 to disable tiling.
1939
1940 2017-09-27 Richard Biener <rguenther@suse.de>
1941
1942 * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
1943 (graphite-max-nb-scop-params): Document special value zero.
1944 * domwalk.h (dom_walker::STOP): New symbolical constant.
1945 (dom_walker::dom_walker): Add optional parameter for bb to
1946 RPO mapping.
1947 (dom_walker::~dom_walker): Declare.
1948 (dom_walker::before_dom_children): Document STOP return value.
1949 (dom_walker::m_user_bb_to_rpo): New member.
1950 (dom_walker::m_bb_to_rpo): Likewise.
1951 * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
1952 mapping here if not provided by the user.
1953 (dom_walker::~dom_walker): Free bb to RPO mapping if not
1954 provided by the user.
1955 (dom_walker::STOP): Define.
1956 (dom_walker::walk): Do not compute bb to RPO mapping here.
1957 Support STOP return value from before_dom_children to stop
1958 walking.
1959 * graphite-optimize-isl.c (optimize_isl): If the schedule
1960 is the same still generate code if -fgraphite-identity
1961 or -floop-parallelize-all are given.
1962 * graphite-scop-detection.c: Include cfganal.h.
1963 (gather_bbs::gather_bbs): Get and pass through bb to RPO
1964 mapping.
1965 (gather_bbs::before_dom_children): Return STOP for BBs
1966 not in the region.
1967 (build_scops): Compute bb to RPO mapping and pass it to
1968 the domwalk. Treat --param graphite-max-nb-scop-params=0
1969 as not limiting the number of params.
1970 * graphite.c (graphite_initialize): Remove limit on the
1971 number of basic-blocks in a function.
1972 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
1973 (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
1974 default value of 10.
1975
1976 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com>
1977
1978 * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
1979 Adjust code to eliminate needing to do the shift right 32-bits
1980 operation after XSCVDPSPN.
1981
1982 2017-09-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1983
1984 * match.pd ((X / Y) == 0 -> X < Y): New pattern.
1985 ((X / Y) != 0 -> X >= Y): Likewise.
1986
1987 2017-09-26 Carl Love <cel@us.ibm.com>
1988
1989 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
1990 P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
1991 vector unsigned char vec_xl_len_r (unsigned char *, size_t);
1992 void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
1993 * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
1994 * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
1995 definitions and overloading.
1996 * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
1997 statement for P9V_BUILTIN_XST_LEN_R.
1998 (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
1999 * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
2000 define_expand and define_insn for the instructions and builtins.
2001 * doc/extend.texi: Update the built-in documentation file for the new
2002 built-in functions.
2003 * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
2004 define_insn for the instructions
2005
2006 2017-09-26 Krister Walfridsson <krister.walfridsson@gmail.com>
2007
2008 PR target/39570
2009 * gcc/config/netbsd-protos.h: New file.
2010 * gcc/config/netbsd.c: New file.
2011 * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
2012 * gcc/config/t-netbsd: New file.
2013 * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
2014 (tmake_file) Add t-netbsd.
2015 (extra_objs) Add netbsd.o.
2016
2017 2017-09-26 Janus Weil <janus@gcc.gnu.org>
2018
2019 PR fortran/82143
2020 PR fortran/82324
2021 * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
2022
2023 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com>
2024
2025 * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
2026 sign extension from a vector register to a GPR by doing a 32-bit
2027 direct move and then an EXTSW.
2028 (extendsi<mode>2 splitter): Likewise.
2029 (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
2030 right or vector extract after doing XSCVDPSPN. Use
2031 zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
2032 the GPRs.
2033 (movdi_from_sf_zero_ext): Likewise.
2034 (reload_gpr_from_vsxsf): Likewise.
2035 (p8_mfvsrd_4_disf): Delete, no longer used.
2036 (movsi_from_df): Optimize converting a DFmode to a SFmode, and
2037 then needing to move the SFmode to a GPR to use the XSCVDPSP
2038 instruction instead of FRSP and XSCVDPSPN.
2039 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
2040 it is adjacent to the other XSCVSPDP insns.
2041 (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
2042 SFmode to be in traditional Altivec registers.
2043 (vsx_xscvdpspn): Eliminate useless alternative constraint.
2044 (vsx_xscvspdpn): Likewise.
2045 (vsx_xscvspdpn_scalar): Likewise.
2046
2047 2017-09-26 Martin Jambor <mjambor@suse.cz>
2048
2049 * tree-sra.c (compare_access_positions): Put integral types first,
2050 stabilize sorting of integral types, remove conditions putting
2051 non-full-precision integers last.
2052 (sort_and_splice_var_accesses): Disable scalarization if a
2053 non-integert would be represented by a non-full-precision integer.
2054
2055 2017-09-26 Joseph Myers <joseph@codesourcery.com>
2056
2057 * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
2058 * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
2059 * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
2060 * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
2061 Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
2062 conditionals inside the function instead of around it. Call
2063 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
2064 (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
2065
2066 2017-09-26 Richard Biener <rguenther@suse.de>
2067
2068 * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
2069 fold in ...
2070 (scop_detection::build_scop_breadth): ... this. Removed.
2071 (scop_detection::loop_is_valid_in_scop): Fold into single caller.
2072 (scop_detection::harmful_stmt_in_bb): Likewise.
2073 (scop_detection::graphite_can_represent_stmt): Likewise.
2074 (scop_detection::loop_body_is_valid_scop): Likewise. Remove recursion.
2075 (scop_detection::can_represent_loop): Remove recursion, fold in ...
2076 (scop_detection::can_represent_loop_1): ... this. Removed.
2077 (scop_detection::harmful_loop_in_region): Simplify after inlining
2078 the above and remove more quadraticness.
2079 (build_scops): Adjust.
2080 * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
2081 quadraticness.
2082
2083 2017-09-26 Jakub Jelinek <jakub@redhat.com>
2084
2085 PR target/82267
2086 * config/i386/i386.c (ix86_print_operand_address_as): Only test
2087 REGNO (base) == SP_REG if base is a REG.
2088
2089 PR middle-end/35691
2090 * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
2091 if it is different SSA_NAME.
2092 (optimize_range_tests_cmp_bitwise): New function.
2093 (optimize_range_tests): Call it.
2094
2095 2017-09-26 Richard Biener <rguenther@suse.de>
2096
2097 PR tree-optimization/82321
2098 * graphite.c (canonicalize_loop_closed_ssa): Properly check
2099 for the def being inside the loop.
2100
2101 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2102
2103 * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
2104 assembler output.
2105 * config/s390/s390-builtins.def: Fix constraint on op4.
2106
2107 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2108
2109 * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
2110 independent expanders.
2111 * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
2112 ("vec_ordered", "vec_unordered"): New expanders.
2113
2114 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2115
2116 * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
2117 for SFmode.
2118
2119 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2120
2121 * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
2122 vec_unpacks_lo_v16qi.
2123 ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
2124
2125 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2126
2127 * config/s390/vector.md ("vec_unpacks_lo_v4sf")
2128 ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
2129 ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
2130
2131 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2132
2133 * config/s390/predicates.md ("const_shift_by_byte_operand"): New
2134 predicate.
2135 * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
2136 and V16QI.
2137 ("*vec_slb<mode>"): New insn pattern.
2138 ("vec_shr_<mode>"): New expander.
2139 * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
2140 and force the shift count operand to V16QImode.
2141 ("vec_srb<mode>"): Set shift count mode to V16QI.
2142
2143 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2144
2145 * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
2146 ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
2147 ("vec_widen_smult_hi_<mode>"): New expander definitions.
2148
2149 2017-09-26 Richard Earnshaw <rearnsha@arm.com>
2150
2151 PR target/82175
2152 * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
2153
2154 2017-09-26 Richard Biener <rguenther@suse.de>
2155
2156 PR tree-optimization/82320
2157 * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
2158 isn't a change.
2159
2160 2017-09-25 Jeff Law <law@redhat.com>
2161
2162 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
2163 prototype for new argument.
2164 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
2165 mostly extracted from rs6000_emit_allocate_stack.
2166 (rs6000_emit_probe_stack_range_stack_clash): New function.
2167 (rs6000_emit_allocate_stack): Call
2168 rs6000_emit_probe_stack_range_stack_clash as needed.
2169 (rs6000_emit_probe_stack_range): Add additional argument
2170 to call to gen_probe_stack_range{si,di}.
2171 (output_probe_stack_range): New.
2172 (output_probe_stack_range_1): Renamed from output_probe_stack_range.
2173 (output_probe_stack_range_stack_clash): New.
2174 (rs6000_emit_prologue): Emit notes into dump file as requested.
2175 * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
2176 (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
2177 Add additional operand and pass it to output_probe_stack_range.
2178
2179 2017-09-25 Bin Cheng <bin.cheng@arm.com>
2180
2181 PR tree-optimization/82163
2182 * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
2183 (checking_verify_loop_closed_ssa): New parameter.
2184 * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
2185 (check_loop_closed_ssa_stmt): Delete.
2186 (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
2187 (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
2188 (tree_transform_and_unroll_loop): Check loop closed ssa form only for
2189 changed loops.
2190
2191 2017-09-25 Pekka Jaaskelainen <pekka@parmance.com>
2192
2193 * brig-builtins.def: Treat HSAIL barrier builtins as
2194 setjmp/longjump style functions.
2195
2196 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org>
2197
2198 * target.def (constant_alignment): New hook.
2199 * defaults.h (CONSTANT_ALIGNMENT): Delete.
2200 * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
2201 (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
2202 * doc/tm.texi: Regenerate.
2203 * targhooks.h (default_constant_alignment): Declare.
2204 (constant_alignment_word_strings): Likewise.
2205 * targhooks.c (default_constant_alignment): New function.
2206 (constant_alignment_word_strings): Likewise.
2207 * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
2208 instead of CONSTANT_ALIGNMENT.
2209 * varasm.c (align_variable, get_variable_align, build_constant_desc)
2210 (force_const_mem): Likewise.
2211 * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
2212 * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
2213 (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
2214 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2215 * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
2216 definition.
2217 * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
2218 * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2219 constant_alignment_word_strings.
2220 * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
2221 (CONSTANT_ALIGNMENT): Likewise.
2222 * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2223 (arm_constant_alignment): New function.
2224 * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
2225 * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2226 constant_alignment_word_strings.
2227 * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
2228 * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2229 constant_alignment_word_strings.
2230 * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
2231 * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2232 (cris_constant_alignment): New function.
2233 * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
2234 * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2235 (epiphany_constant_alignment): New function.
2236 * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
2237 * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2238 constant_alignment_word_strings.
2239 * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
2240 * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2241 constant_alignment_word_strings.
2242 * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
2243 * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2244 constant_alignment_word_strings.
2245 * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
2246 * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
2247 * config/i386/i386.c (ix86_constant_alignment): Make static.
2248 Use the same interface as the target hook.
2249 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2250 * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
2251 * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2252 constant_alignment_word_strings.
2253 * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
2254 * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
2255 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2256 * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
2257 * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2258 constant_alignment_word_strings.
2259 * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
2260 * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2261 constant_alignment_word_strings.
2262 * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
2263 * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2264 constant_alignment_word_strings.
2265 * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
2266 * config/microblaze/microblaze.c (microblaze_constant_alignment):
2267 New function.
2268 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2269 * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
2270 * config/mips/mips.c (mips_constant_alignment): New function.
2271 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2272 * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
2273 * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
2274 * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2275 (mmix_constant_alignment): Make static. Use the same interface
2276 as the target hook.
2277 * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
2278 * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2279 constant_alignment_word_strings.
2280 * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
2281 * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2282 constant_alignment_word_strings.
2283 * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
2284 * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2285 constant_alignment_word_strings.
2286 * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
2287 * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2288 (rs6000_constant_alignment): New function.
2289 * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
2290 * config/riscv/riscv.c (riscv_constant_alignment): New function.
2291 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2292 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
2293 * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2294 (rs6000_constant_alignment): New function.
2295 * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
2296 * config/s390/s390.c (s390_constant_alignment): New function.
2297 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2298 * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
2299 * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2300 constant_alignment_word_strings.
2301 * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
2302 * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2303 (sparc_constant_alignment): New function.
2304 * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
2305 * config/spu/spu.c (spu_constant_alignment): New function.
2306 (TARGET_CONSTANT_ALIGNMENT): Redefine.
2307 * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
2308 * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2309 constant_alignment_word_strings.
2310 * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
2311 * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2312 constant_alignment_word_strings.
2313 * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
2314 * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2315 constant_alignment_word_strings.
2316 * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
2317 * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2318 (visium_constant_alignment): New function.
2319 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
2320 * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2321 (xtensa_constant_alignment): New function.
2322 * system.h (CONSTANT_ALIGNMENT): Poison.
2323
2324 2017-09-25 Will Schmidt <will_schmidt@vnet.ibm.com>
2325
2326 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
2327 for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
2328 (rs6000_builtin_valid_without_lhs): New helper function.
2329 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2330 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
2331
2332 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org>
2333
2334 * target.h (vec_perm_indices): Use unsigned short rather than
2335 unsigned char.
2336 (auto_vec_perm_indices): Likewise.
2337 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
2338 Use unsigned int rather than unsigned char.
2339 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
2340
2341 2017-09-25 Richard Biener <rguenther@suse.de>
2342
2343 * cfgloop.h (sort_sibling_loops): Declare.
2344 * cfgloop.c (sort_sibling_loops_cmp): New helper.
2345 (sort_sibling_loops): New function sorting the sibling loop list
2346 in RPO order.
2347 * graphite.c (graphite_transform_loops): Sort sibling loops.
2348
2349 2017-09-25 Richard Sandiford <richard.sandifird@linaro.org>
2350
2351 * target.def (vec_perm_const_ok): Change sel parameter to
2352 vec_perm_indices.
2353 * optabs-query.c (can_vec_perm_p): Update accordingly.
2354 * doc/tm.texi: Regenerate.
2355 * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
2356 auto_vec_perm_indices and remove separate nelt field.
2357 (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
2358 (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
2359 (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
2360 (aarch64_expand_vec_perm_const): Update accordingly.
2361 (aarch64_vectorize_vec_perm_const_ok): Likewise. Change sel
2362 to vec_perm_indices.
2363 * config/arm/arm.c (expand_vec_perm_d): Change perm to
2364 auto_vec_perm_indices and remove separate nelt field.
2365 (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
2366 (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
2367 (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
2368 accordingly.
2369 (arm_vectorize_vec_perm_const_ok): Likewise. Change sel
2370 to vec_perm_indices.
2371 * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
2372 sel to vec_perm_indices.
2373 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
2374 * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
2375 * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
2376 Likewise.
2377 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
2378 Likewise.
2379
2380 2017-09-25 Pierre-Marie de Rodat <derodat@adacore.com>
2381
2382 PR debug/82155
2383 * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
2384 on the FUNCTION_DECL function context if it has a DIE that is a
2385 declaration.
2386
2387 2017-09-25 Richard Biener <rguenther@suse.de>
2388
2389 PR tree-optimization/82285
2390 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
2391 enumeral types.
2392
2393 2017-09-25 Tom de Vries <tom@codesourcery.com>
2394
2395 PR target/80035
2396 PR target/81069
2397 * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
2398 noreturn function.
2399
2400 2017-09-25 Richard Biener <rguenther@suse.de>
2401
2402 * graphite-optimize-isl.c (optimize_isl): Fail and dump if
2403 ISL errors other than isl_error_quota happen. Dump if the
2404 schedule is the same.
2405 * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
2406 errors instead of aborting inside ISL.
2407
2408 2017-09-25 Iain Sandoe <iain@codesourcery.com>
2409
2410 PR target/80556
2411 * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
2412 of libgcc_eh for m64.
2413 * config/i386/darwin64.h: Likewise.
2414
2415 2017-09-25 Richard Biener <rguenther@suse.de>
2416
2417 PR middle-end/82144
2418 * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
2419 attribute for incomplete types nor twice for complete ones.
2420
2421 2017-09-24 Uros Bizjak <ubizjak@gmail.com>
2422
2423 PR target/82267
2424 * config/i386/i386.c (ix86_print_operand_address_as): Encode
2425 %esp as %rsp to avoid 0x67 prefix if there is no index or base
2426 register.
2427
2428 2017-09-23 Uros Bizjak <ubizjak@gmail.com>
2429
2430 PR bootstrap/82306
2431 * config/i386/i386.opt (mprefer-avx256): Use
2432 ix86_target_flags variable.
2433 * config/i386/i386.c (ix86_target_string): Move
2434 -mprefer-avx256 to flag2_opts.
2435
2436 2017-09-22 Jakub Jelinek <jakub@redhat.com>
2437
2438 PR middle-end/35691
2439 * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
2440 and x != -1 | y != -1 into (x & y) != -1.
2441
2442 2017-09-22 Steve Ellcey <sellcey@cavium.com>
2443
2444 * config.gcc: Add new case statement to set
2445 default_gnu_indirect_function. Remove it from x86_64-*-linux*,
2446 i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
2447 s390x-*-linux* case statements. Added aarch64 to the list of
2448 supported architectures.
2449
2450 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
2451
2452 PR tree-optimization/82289
2453 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
2454 STMT_VINFO_RELEVANT_P.
2455
2456 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
2457 Alan Hayward <alan.hayward@arm.com>
2458 David Sherwood <david.sherwood@arm.com>
2459
2460 * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
2461 for VR_RANGE only; don't allow VR_ANTI_RANGE.
2462 (extract_range_from_binary_expr_1): Don't call
2463 extract_range_from_multiplicative_op_1 if !range_int_cst_p.
2464
2465 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
2466 Alan Hayward <alan.hayward@arm.com>
2467 David Sherwood <david.sherwood@arm.com>
2468
2469 * target.def (preferred_vector_alignment): New hook.
2470 * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
2471 hook.
2472 * doc/tm.texi: Regenerate.
2473 * targhooks.h (default_preferred_vector_alignment): Declare.
2474 * targhooks.c (default_preferred_vector_alignment): New function.
2475 * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
2476 Expand commentary.
2477 (DR_TARGET_ALIGNMENT): New macro.
2478 (aligned_access_p): Update commentary.
2479 (vect_known_alignment_in_bytes): New function.
2480 * tree-vect-data-refs.c (vect_calculate_required_alignment): New
2481 function.
2482 (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
2483 Calculate the misalignment based on the target alignment rather than
2484 the vector size.
2485 (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
2486 rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
2487 (vect_enhance_data_refs_alignment): Mask the byte misalignment with
2488 the target alignment, rather than masking the element misalignment
2489 with the number of elements in a vector. Also use the target
2490 alignment when calculating the maximum number of peels.
2491 (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
2492 instead of TYPE_ALIGN_UNIT.
2493 (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
2494 Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
2495 (vect_create_addr_base_for_vector_ref): Update call accordingly.
2496 (vect_create_data_ref_ptr): Likewise.
2497 (vect_setup_realignment): Realign by ANDing with
2498 -DR_TARGET_MISALIGNMENT.
2499 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
2500 the number of peels based on DR_TARGET_ALIGNMENT.
2501 * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
2502 with the guaranteed alignment boundary when deciding whether
2503 overrun is OK.
2504 (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
2505 relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
2506 (ensure_base_align): Remove stmt_info parameter. Get the
2507 target base alignment from DR_TARGET_ALIGNMENT.
2508 (vectorizable_store): Update call accordingly. Interpret
2509 DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
2510 TYPE_ALIGN_UNIT.
2511 (vectorizable_load): Likewise.
2512
2513 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
2514 Alan Hayward <alan.hayward@arm.com>
2515 David Sherwood <david.sherwood@arm.com>
2516
2517 * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
2518 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
2519 (vect_enhance_data_refs_alignment): Likewise.
2520
2521 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com>
2522
2523 * config/arm/parsecpu.awk (fatal): Note that we've encountered an
2524 error. Only quit immediately if parsing is complete.
2525 (BEGIN): Initialize fatal_err and parse_done.
2526 (begin fpu, end fpu): Check number of arguments.
2527 (begin arch, end arch): Likewise.
2528 (begin cpu, end cpu): Likewise.
2529 (cname, tune for, tune flags, architecture, fpu, option): Likewise.
2530 (optalias): Likewise.
2531
2532 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com>
2533
2534 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
2535 * config/arm/arm-isa.h: Delete. Move definitions to ...
2536 * arm-cpus.in: ... here. Use new feature and fgroup values.
2537 * config/arm/arm.c (arm_option_override): Use lower case for feature
2538 bit names.
2539 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
2540 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
2541 * config/arm/parsecpu.awk (END): Add new command 'isa'.
2542 (isa_pfx): Delete.
2543 (print_isa_bits_for): New function.
2544 (gen_isa): New function.
2545 (gen_comm_data): Use print_isa_bits_for.
2546 (define feature): New keyword.
2547 (define fgroup): New keyword.
2548 * config/arm/t-arm (TM_H): Remove.
2549 (GTM_H): Add arm-isa.h.
2550 (arm-isa.h): Add rule to generate file.
2551 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
2552 case for feature bit names.
2553
2554 2017-09-22 Richard Biener <rguenther@suse.de>
2555
2556 * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
2557 single caller.
2558 (graphite_regenerate_ast_isl): Do not reset SCEV. Move debug
2559 print of no dependency loops ...
2560 * graphite.c (graphite_transform_loops): ... here.
2561 (canonicalize_loop_closed_ssa_form): Work from inner to outer
2562 loops.
2563 (same_close_phi_node, remove_duplicate_close_phi,
2564 make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
2565 (canonicalize_loop_closed_ssa): ... here and simplify.
2566 * graphite-optimize-isl.c: Include tree-vectorizer.h.
2567 (optimize_isl): Use dump_printf_loc to tell when we stopped
2568 optimizing because of an ISL timeout.
2569
2570 2017-09-22 Richard Biener <rguenther@suse.de>
2571
2572 PR tree-optimization/82291
2573 * tree-if-conv.c (predicate_mem_writes): Make sure to
2574 remove writes in blocks predicated with false.
2575
2576 2017-09-22 Richard Biener <rguenther@suse.de>
2577
2578 * sese.c: Include cfganal.h.
2579 (if_region_set_false_region): Remove.
2580 (create_if_region_on_edge): Likewise.
2581 (move_sese_in_condition): Re-implement without destroying
2582 dominators.
2583
2584 2017-09-22 Richard Biener <rguenther@suse.de>
2585
2586 * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
2587 Verify both BBs contain loop PHI nodes before dispatching to
2588 copy_loop_phi_args.
2589 (graphite_regenerate_ast_isl): Do not recompute dominators,
2590 do not verify three times. Restructure for clarity.
2591 * graphite-scop-detection.c (same_close_phi_node,
2592 remove_duplicate_close_phi, make_close_phi_nodes_unique,
2593 defined_in_loop_p, canonicalize_loop_closed_ssa,
2594 canonicalize_loop_closed_ssa_form): Simplify, remove excess
2595 checking and SSA rewrite, move to ...
2596 * graphite.c: ... here. Include ssa.h and tree-ssa-loop-manip.h.
2597 (graphite_initialize): Do not pass in ctx, do not reset the
2598 SCEV cache, compute only dominators.
2599 (graphite_transform_loops): Allocate ISL ctx after
2600 graphite_initialize. Call canonicalize_loop_closed_ssa_form.
2601 Maintain post-dominators only around build_scops.
2602 * sese.c (if_region_set_false_region): Make static. Free
2603 and recompute dominators.
2604 (move_sese_in_condition): Assert we don't get called with
2605 post-dominators computed.
2606 * sese.h (if_region_set_false_region): Remove.
2607
2608 2017-09-22 Sergey Shalnov <sergey.shalnov@intel.com>
2609
2610 * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
2611 mode attribute for TARGET_AVX512VL.
2612
2613 2017-09-21 Sergey Shalnov <sergey.shalnov@intel.com>
2614
2615 * config/i386/i386.opt (mprefer-avx256): New option.
2616 * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
2617 to flag_opts.
2618 (ix86_preferred_simd_mode): Return 256-bit AVX modes
2619 for TARGET_PREFER_AVX256.
2620 * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
2621
2622 2017-09-21 Jeff Law <law@redhat.com>
2623
2624 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
2625 Fix dump output if the only stack space is for pushed registers.
2626
2627 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
2628
2629 * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
2630 of insn_cost.
2631
2632 2017-09-21 Martin Sebor <msebor@redhat.com>
2633
2634 PR c/81882
2635 * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
2636 code (in C++) or code that triggers warnings.
2637
2638 2017-09-21 Eric Botcazou <ebotcazou@adacore.com>
2639
2640 * stor-layout.c (bit_from_pos): Do not distribute the conversion.
2641
2642 2017-09-21 Segher Boessenkool <segher@kernel.crashing.org>
2643
2644 * haifa-sched.c: Rename insn_cost to insn_sched_cost.
2645 * sched-rgn.c: Ditto.
2646 * sel-sched-ir.c: Ditto.
2647
2648 2017-09-21 Alexander Monakov <amonakov@ispras.ru>
2649
2650 * toplev.h (set_random_seed): Adjust return type.
2651 * toplev.c (init_local_tick): Move eager initialization of random_seed
2652 to get_random_seed. Adjust comment.
2653 (init_random_seed): Inline to get_random_seed, delete.
2654 (get_random_seed): Initialize random_seed lazily.
2655 (set_random_seed): Do not return previous value.
2656 (print_switch_value): Do not call get_random_seed.
2657
2658 2017-09-21 Evgeny Kudryashov <kudryashov@ispras.ru>
2659
2660 * cgraph.c (delete_function_version): New, broken out from...
2661 (cgraph_node::delete_function_version): ...here. Rename to
2662 cgraph_node::delete_function_version_by_decl. Update all uses.
2663 (cgraph_node::remove): Call delete_function_version.
2664
2665 2017-09-21 Jakub Jelinek <jakub@redhat.com>
2666
2667 PR sanitizer/81715
2668 * tree-inline.c (expand_call_inline): Emit clobber stmts for
2669 VAR_DECLs to which addressable non-volatile parameters are mapped
2670 and for id->retvar after the return value assignment. Clear
2671 id->retval and id->retbnd after inlining.
2672
2673 2017-09-21 Richard Biener <rguenther@suse.de>
2674
2675 PR tree-optimization/82276
2676 PR tree-optimization/82244
2677 * tree-vrp.c (build_assert_expr_for): Set
2678 SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
2679 has it set.
2680 (remove_range_assertions): Revert earlier change.
2681
2682 2017-09-21 Wilco Dijkstra <wdijkstr@arm.com>
2683
2684 PR target/71951
2685 * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
2686
2687 2017-09-21 Richard Biener <rguenther@suse.de>
2688
2689 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
2690 Restore valid IL after code generation errors.
2691 * graphite.c (graphite_transform_loops): Diagnose code
2692 generation issues as MSG_MISSED_OPTIMIZATION and continue
2693 with processing SCOPs.
2694
2695 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
2696 Alan Hayward <alan.hayward@arm.com>
2697 David Sherwood <david.sherwood@arm.com>
2698
2699 * calls.c (compute_argument_addresses): Use simplify_gen_binary
2700 rather than choosing between plus_constant and gen_rtx_<CODE>.
2701 * expr.c (emit_push_insn): Likewise.
2702 (expand_expr_real_2): Likewise.
2703
2704 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
2705 Alan Hayward <alan.hayward@arm.com>
2706 David Sherwood <david.sherwood@arm.com>
2707
2708 * loop-unroll.c (split_iv): Call copy_rtx on the step.
2709
2710 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
2711 Alan Hayward <alan.hayward@arm.com>
2712 David Sherwood <david.sherwood@arm.com>
2713
2714 * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
2715 calling tree_to_uhwi.
2716
2717 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
2718 Alan Hayward <alan.hayward@arm.com>
2719 David Sherwood <david.sherwood@arm.com>
2720
2721 * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
2722 INTEGER_CST rather than a negative test for ADDR_EXPR.
2723
2724 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
2725 Alan Hayward <alan.hayward@arm.com>
2726 David Sherwood <david.sherwood@arm.com>
2727
2728 * tree-vrp.c (extract_range_from_binary_expr_1): Check
2729 int_cst_rangeN before calling value_range_constant_singleton (&vrN).
2730
2731 2017-09-21 Richard Biener <rguenther@suse.de>
2732
2733 PR tree-optimization/71351
2734 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
2735 graphite_create_new_loop_guard): Remove, fold remaining parts
2736 into caller ...
2737 (translate_isl_ast_node_for): ... here and simplify.
2738
2739 2017-09-21 Jakub Jelinek <jakub@redhat.com>
2740
2741 PR target/82260
2742 * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
2743 with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
2744 latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
2745 alternative always use QI mode, for -Os imov (=R,R) alternative
2746 always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
2747 ignore -Os.
2748
2749 2017-09-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2750 Jeff Law <law@redhat.com>
2751
2752 * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
2753 (allocate_stack_space): New function, partially extracted from
2754 s390_emit_prologue.
2755 (s390_emit_prologue): Track offset to most recent stack probe.
2756 Code to allocate space moved into allocate_stack_space.
2757 Dump actions when no stack is allocated.
2758 (s390_prologue_plus_offset): New function.
2759 (s390_emit_stack_probe): Likewise.
2760
2761 2017-09-20 Alexandre Oliva <aoliva@redhat.com>
2762
2763 * common.opt (Wa, Wl, Wp, g, gz=): Add
2764 RejectNegative.
2765 (gno-column-info): Remove.
2766 (gcolumn-info): Drop RejectNegative.
2767 (gno-): New prefix.
2768 (gno-record-gcc-switches): Remove.
2769 (grecord-gcc-switches): Drop RejectNegative.
2770 (gno-split-dwarf): Remove.
2771 (gsplit-dwarf): Drop RejectNegative.
2772 (gno-strict-dwarf): Remove.
2773 (gstrict-dwarf): Drop RejectNegative.
2774 * config/darwin.opt (gfull, gused): Add RejectNegative.
2775 * dwarf2out.c (gen_producer_string): Drop
2776 gno-record-gcc-switches handler.
2777 * optc-gen.awk: Add g to prefixes with negative forms.
2778 * opts-common.c (remapping_prefix_p): New.
2779 (find_opt): Check it.
2780 (generate_canonical_option): Test g prefix.
2781 (option_map): Add -gno- mapping.
2782 (add_misspelling_candidates): Check remapping_prefix_p.
2783
2784 2017-09-20 Jeff Law <law@redhat.com>
2785
2786 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
2787 thinko in stack clash protection support.
2788
2789 * explow.c (compute_stack_clash_protection_loop_data): Use
2790 CONST_INT_P instead of explicit test. Verify object is a
2791 CONST_INT_P before looking at INTVAL.
2792 (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
2793 instead of explicit test.
2794
2795 2017-09-20 Segher Boessenkool <segher@kernel.crashing.org>
2796
2797 PR target/77687
2798 * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
2799 address instead of to r1 and r11.
2800
2801 2017-09-20 Sebastian Peryt <sebastian.peryt@intel.com>
2802
2803 * config.gcc: Support "knm".
2804 * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
2805 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
2806 PROCESSOR_KNM.
2807 * config/i386/i386.c (m_KNM): Define.
2808 (processor_target_table): Add "knm".
2809 (PTA_KNM): Define.
2810 (ix86_option_override_internal): Add "knm".
2811 (ix86_issue_rate): Add PROCESSOR_KNM.
2812 (ix86_adjust_cost): Ditto.
2813 (ia32_multipass_dfa_lookahead): Ditto.
2814 (get_builtin_code_for_version): Handle PROCESSOR_KNM.
2815 (fold_builtin_cpu): Add M_INTEL_KNM.
2816 * config/i386/i386.h (processor_costs): Define TARGET_KNM.
2817 (processor_type): Add PROCESSOR_KNM.
2818 * config/i386/x86-tune.def: Add m_KNM.
2819 * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
2820
2821 2017-09-20 Richard Biener <rguenther@suse.de>
2822
2823 PR tree-optimization/80213
2824 * graphite-scop-detection.c (trivially_empty_bb_p): Labels
2825 are allowed in empty BBs as well.
2826 (canonicalize_loop_closed_ssa): Also look for other complex
2827 edges.
2828 (scop_detection::get_sese): Include the loop-closed PHI block
2829 in loop SESEs.
2830 (scop_detection::merge_sese): Remove code adding extra blocks.
2831 (scop_detection::region_has_one_loop): Adjust for get_sese changes.
2832 (build_scops): Assert the final returned scop is invalid.
2833
2834 2017-09-20 Richard Biener <rguenther@suse.de>
2835
2836 PR tree-optimization/82264
2837 * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
2838 for GIMPLE_CONDs.
2839 (vn_phi_lookup): Likewise.
2840 (vn_phi_insert): Likewise.
2841
2842 2017-09-20 Jakub Jelinek <jakub@redhat.com>
2843
2844 * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
2845 that fits into uhwi or shwi, add DW_AT_const_value regardless
2846 of early_dwarf without going through RTL, using add_AT_unsigned
2847 or add_AT_int.
2848
2849 * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
2850 (DEBUG_LTO_ABBREV_SECTION): Likewise.
2851 (DEBUG_LTO_MACINFO_SECTION): Likewise.
2852 (DEBUG_MACRO_SECTION): Likewise.
2853 (DEBUG_LTO_MACRO_SECTION): Likewise.
2854 (DEBUG_STR_DWO_SECTION): Likewise.
2855 (DEBUG_LTO_STR_DWO_SECTION): Likewise.
2856 (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
2857 (DEBUG_LTO_DWO_LINE_SECTION): Define.
2858 (DEBUG_LTO_LINE_STR_SECTION): Define.
2859 (init_sections_and_labels): Initialize debug_line_str_section
2860 variable. Initialize debug_loc_section for -gdwarf-5 to
2861 DEBUG_LOCLISTS_SECTION. Formatting fixes.
2862
2863 2017-09-20 Richard Biener <rguenther@suse.de>
2864
2865 * graphite-sese-to-poly.c (extract_affine): Properly handle
2866 POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
2867
2868 2017-09-20 Richard Biener <rguenther@suse.de>
2869
2870 PR tree-optimization/81373
2871 * graphite-scop-detection.c (build_cross_bb_scalars_def):
2872 Force SESE live-out defs to be handled even if they are
2873 scev_analyzable_p.
2874
2875 2017-09-19 Jeff Law <law@redhat.com>
2876
2877 * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
2878 nothing for stack adjustments with REG_STACK_CHECK.
2879 * sched-deps.c (parse_add_or_inc): Reject insns with
2880 REG_STACK_CHECK from dependency breaking.
2881 * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
2882 (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
2883 * reg-notes.def (STACK_CHECK): New note.
2884
2885 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
2886 (ix86_expand_prologue): Dump stack clash info as needed.
2887 Call ix86_adjust_stack_and_probe_stack_clash as needed.
2888
2889 * function.c (dump_stack_clash_frame_info): New function.
2890 * function.h (dump_stack_clash_frame_info): Prototype.
2891 (enum stack_clash_probes): New enum.
2892
2893 * config/alpha/alpha.c (alpha_expand_prologue): Also check
2894 flag_stack_clash_protection.
2895 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
2896 (arm_expand_prologue, thumb1_expand_prologue): Likewise.
2897 (arm_frame_pointer_required): Likewise.
2898 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
2899 (ia64_expand_prologue): Likewise.
2900 * config/mips/mips.c (mips_expand_prologue): Likewise.
2901 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
2902 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
2903 (sparc_flat_expand_prologue): Likewise.
2904 * config/spu/spu.c (spu_expand_prologue): Likewise.
2905
2906 * explow.c: Include "params.h".
2907 (anti_adjust_stack_and_probe_stack_clash): New function.
2908 (get_stack_check_protect): Likewise.
2909 (compute_stack_clash_protection_loop_data): Likewise.
2910 (emit_stack_clash_protection_loop_start): Likewise.
2911 (emit_stack_clash_protection_loop_end): Likewise.
2912 (allocate_dynamic_stack_space): Use get_stack_check_protect.
2913 Use anti_adjust_stack_and_probe_stack_clash.
2914 * explow.h (compute_stack_clash_protection_loop_data): Prototype.
2915 (emit_stack_clash_protection_loop_start): Likewise.
2916 (emit_stack_clash_protection_loop_end): Likewise.
2917 * rtl.h (get_stack_check_protect): Prototype.
2918 * target.def (stack_clash_protection_final_dynamic_probe): New hook.
2919 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
2920 * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
2921 Prototype.
2922 * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
2923 Add @hook.
2924 * doc/tm.texi: Rebuilt.
2925 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
2926 get_stack_check_protect.
2927 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
2928 * config/arm/arm.c (arm_expand_prologue): Likewise.
2929 (arm_frame_pointer_required): Likewise.
2930 * config/i386/i386.c (ix86_expand_prologue): Likewise.
2931 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
2932 * config/mips/mips.c (mips_expand_prologue): Likewise.
2933 * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
2934 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
2935 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
2936 (sparc_flat_expand_prologue): Likewise.
2937
2938 * common.opt (-fstack-clash-protection): New option.
2939 * flag-types.h (enum stack_check_type): Note difference between
2940 -fstack-check= and -fstack-clash-protection.
2941 * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
2942 (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
2943 * toplev.c (process_options): Issue warnings/errors for cases
2944 not handled with -fstack-clash-protection.
2945 * doc/invoke.texi (-fstack-clash-protection): Document new option.
2946 (-fstack-check): Note additional problem with -fstack-check=generic.
2947 Note that -fstack-check is primarily for Ada and refer users
2948 to -fstack-clash-protection for stack-clash-protection.
2949 Document new params for stack clash protection.
2950
2951 2017-09-19 Uros Bizjak <ubizjak@gmail.com>
2952
2953 * config/i386/i386.c (ix86_split_long_move): Do not handle
2954 address used for LEA in a special way.
2955
2956 2017-09-19 Segher Boessenkool <segher@kernel.crashing.org>
2957
2958 * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
2959
2960 2017-09-19 Martin Sebor <msebor@redhat.com>
2961
2962 PR c/81854
2963 * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
2964 of incompatible types.
2965
2966 2017-09-19 Will Schmidt <will_schmidt@vnet.ibm.com>
2967
2968 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
2969 for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
2970 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2971 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
2972
2973 2017-09-19 Richard Biener <rguenther@suse.de>
2974
2975 PR tree-optimization/82244
2976 * tree-vrp.c (remove_range_assertions): Do not propagate
2977 a constant to abnormals but replace the assert with a copy.
2978
2979 2017-09-19 Alexander Monakov <amonakov@ispras.ru>
2980
2981 PR rtl-optimization/57878
2982 PR rtl-optimization/68988
2983 * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
2984 avoidance test involving non_reload_pseudos. Move frequency test
2985 below the general fragmentation avoidance test.
2986
2987 2017-09-19 Richard Biener <rguenther@suse.de>
2988
2989 PR tree-optimization/69728
2990 * graphite-sese-to-poly.c (schedule_error): New global.
2991 (add_loop_schedule): Handle empty domain by failing the
2992 schedule.
2993 (build_original_schedule): Handle schedule_error.
2994
2995 2017-09-19 Richard Biener <rguenther@suse.de>
2996
2997 * graphite-scop-detection.c (scop_detection::can_represent_loop):
2998 Do not iterate to sibling loops but only to siblings of inner
2999 loops.
3000
3001 2017-09-18 Andreas Schwab <schwab@linux-m68k.org>
3002
3003 PR target/81613
3004 * config/m68k/m68k.md (moveq feeding equality comparison): Check
3005 that the registers are different.
3006
3007 2017-09-18 Uros Bizjak <ubizjak@gmail.com>
3008
3009 * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
3010 to processor_model and "amdfam17h" to arch_names_table.
3011 * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
3012
3013 2017-09-18 Jakub Jelinek <jakub@redhat.com>
3014
3015 PR c/82234
3016 * doc/extend.texi: Add @findex entry for __builtin_shuffle.
3017
3018 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3019 Alan Hayward <alan.hayward@arm.com>
3020 David Sherwood <david.sherwood@arm.com>
3021
3022 * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
3023 with a vec_info *.
3024 * tree-vect-loop.c (vect_analyze_loop_operations): Update call
3025 accordingly.
3026 * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
3027 parameter. Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
3028 vect_schedule_slp_instance.
3029 (vect_slp_analyze_operations): Replace parameters with a vec_info *.
3030 Update call to vect_slp_analyze_node_operations. Simplify return
3031 value.
3032 (vect_slp_analyze_bb_1): Update call accordingly.
3033 (vect_schedule_slp_instance): Remove vectorization_factor parameter.
3034 Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
3035 (vect_schedule_slp): Update call accordingly.
3036
3037 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3038 Alan Hayward <alan.hayward@arm.com>
3039 David Sherwood <david.sherwood@arm.com>
3040
3041 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
3042 with types that aren't in fact scalar.
3043
3044 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3045
3046 * tree-vect-slp.c (vect_record_max_nunits): New function,
3047 split out from...
3048 (vect_build_slp_tree_1): ...here.
3049 (vect_build_slp_tree_2): Call it for phis too.
3050
3051 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3052
3053 * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
3054 to vect_get_vec_def_for_operand when getting the mask operand.
3055
3056 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3057 Alan Hayward <alan.hayward@arm.com>
3058 David Sherwood <david.sherwood@arm.com>
3059
3060 * tree-vect-loop.c (vectorizable_live_operation): Fix type of
3061 bitstart.
3062
3063 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3064 Alan Hayward <alan.hayward@arm.com>
3065 David Sherwood <david.sherwood@arm.com>
3066
3067 * tree-vect-loop.c (vectorizable_live_operation): Fix element size
3068 calculation for vector booleans.
3069
3070 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
3071 Alan Hayward <alan.hayward@arm.com>
3072 David Sherwood <david.sherwood@arm.com>
3073
3074 * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
3075 split out from...
3076 (vect_transform_stmt): ...here.
3077 (vect_analyze_stmt): Use it instead of calling
3078 vectorizable_live_operation directly.
3079
3080 2017-09-18 Cesar Philippidis <cesar@codesourcery.com>
3081
3082 * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
3083 non-SIMT targets in acc vector loops.
3084
3085 2017-09-18 Claudiu Zissulescu <claziss@synopsys.com>
3086
3087 * configure.ac: Add arc and check if assembler supports gdwarf2.
3088 * configure: Regenerate.
3089
3090 2017-09-18 Richard Biener <rguenther@suse.de>
3091
3092 PR tree-optimization/82220
3093 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
3094 epilogue niters from the min_profitable_iters compute.
3095
3096 2017-09-18 Jakub Jelinek <jakub@redhat.com>
3097
3098 PR target/82145
3099 * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
3100 changes. Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
3101 (ix86_init_pic_reg): Revert 2017-09-01 changes.
3102
3103 2017-09-18 Eric Botcazou <ebotcazou@adacore.com>
3104
3105 PR target/81361
3106 * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
3107 switching to a new text section.
3108
3109 2017-09-18 Richard Biener <rguenther@suse.de>
3110
3111 * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
3112 Simplify.
3113 (build_alias_set): Reject aliases with no access function.
3114
3115 2017-09-18 Richard Biener <rguenther@suse.de>
3116
3117 PR tree-optimization/79622
3118 * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
3119 handle PHIs.
3120 (build_cross_bb_scalars_use): Likewise.
3121
3122 2017-09-18 Pierre-Marie de Rodat <derodat@adacore.com>
3123
3124 * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
3125
3126 2017-09-18 Alan Modra <amodra@gmail.com>
3127
3128 PR target/81996
3129 * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
3130 stack_pointer_rtx for count 0. Update comments. Break up
3131 large rtl expression.
3132
3133 2017-09-17 Daniel Santos <daniel.santos@pobox.com>
3134
3135 * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
3136 Increase to 20 bytes.
3137 (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
3138 (xlogue_layout::get_stub_name): Modify to select the appropairate sse
3139 or avx version of the stub.
3140
3141 2017-09-17 H.J. Lu <hongjiu.lu@intel.com>
3142
3143 PR target/82166
3144 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
3145 compute the minimum stack alignment. Also update preferred stack
3146 boundary for leaf functions.
3147
3148 2017-09-16 Richard Sandiford <richard.sandiford@linaro.org>
3149
3150 PR tree-optimization/82228
3151 * tree-vect-loop.c (vectorizable_live_operation): Move initialization
3152 of ncopies.
3153
3154 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com>
3155
3156 * common/config/nds32/nds32-common.c
3157 (nds32_option_optimization_table): Refine formatting.
3158 (nds32_option_optimization_table): Use -fsched-pressure and
3159 -fomit-frame-pointer for specific optimization level.
3160
3161 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com>
3162
3163 * config/nds32/nds32.c: Refine formatting and comments.
3164 * config/nds32/nds32.h: Likewise.
3165 * config/nds32/nds32.md: Likewise.
3166 * config/nds32/nds32-cost.c: Likewise.
3167 * config/nds32/nds32-isr.c: Likewise.
3168 * config/nds32/nds32-md-auxiliary.c: Likewise.
3169 * config/nds32/nds32-multiple.md: Likewise.
3170 * config/nds32/nds32-predicates.c: Likewise.
3171
3172 2017-09-15 Andrew Sutton <andrew.n.sutton@gmail.com>
3173 Jakub Jelinek <jakub@redhat.com>
3174
3175 Add support for -std=c++2a.
3176 * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
3177 or -std=gnu+2a.
3178 * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
3179
3180 2017-09-15 Steve Ellcey <sellcey@cavium.com>
3181
3182 PR target/82066
3183 * doc/extend.texi (Common Function Attributes): Add
3184 references to ARM, AArch64, and S/390 specific attributes.
3185 (Function Specific Option Pragmas): Add AArch64 and S/390
3186 to list of back ends that support the target pragma.
3187
3188 2017-09-15 Nathan Sidwell <nathan@acm.org>
3189
3190 * doc/standards.texi: Fix C++17 description. Update URLs for
3191 C++11 & 14.
3192
3193 2017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
3194
3195 * common.opt (Wcast-align=strict): New warning option.
3196 * doc/invoke.texi: Document -Wcast-align=strict.
3197
3198 2017-09-15 Pierre-Marie de Rodat <derodat@adacore.com>
3199
3200 * cgraph.h (cgraph_thunk_info): Add comments.
3201 * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
3202 assert for VIRTUAL_* arguments stricter.
3203
3204 2017-09-15 Jackson Woodruff <jackson.woodruff@arm.com>
3205
3206 PR tree-optimization/71026
3207 * match.pd: Move RDIV patterns from fold-const.c
3208 * fold-const.c (distribute_real_division): Removed.
3209 (fold_binary_loc): Remove calls to distribute_real_divison.
3210
3211 2017-09-15 Jakub Jelinek <jakub@redhat.com>
3212
3213 * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
3214 c++1z and gnu++1z as deprecated. Change other references to
3215 -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
3216 Change -Wc++1z-compat to -Wc++17-compat.
3217 * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
3218 * dwarf2out.c (highest_c_language): Handle C++17.
3219 (gen_compile_unit_die): Likewise.
3220
3221 2017-09-15 Jakub Jelinek <jakub@redhat.com>
3222
3223 PR rtl-optimization/82192
3224 * combine.c (make_extraction): Don't look through non-paradoxical
3225 SUBREGs or TRUNCATE if pos + len is or might be bigger than
3226 inner's mode.
3227
3228 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
3229 Alan Hayward <alan.hayward@arm.com>
3230 David Sherwood <david.sherwood@arm.com>
3231
3232 * target.def (function_arg_offset): New hook.
3233 * targhooks.h (default_function_arg_offset): Declare.
3234 * targhooks.c (default_function_arg_offset): New function.
3235 * function.c (locate_and_pad_parm): Use
3236 targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
3237 * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
3238 (TARGET_FUNCTION_ARG_OFFSET): ...this.
3239 * doc/tm.texi: Regenerate.
3240 * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
3241 * config/spu/spu.c (spu_function_arg_offset): New function.
3242 (TARGET_FUNCTION_ARG_OFFSET): Redefine.
3243 * system.h (FUNCTION_ARG_OFFSET): Poison.
3244
3245 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
3246 Alan Hayard <alan.hayward@arm.com>
3247 David Sherwood <david.sherwood@arm.com>
3248
3249 * target.def (truly_noop_truncation): New hook.
3250 (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
3251 than TRULY_NOOP_TRUNCATION.
3252 * hooks.h (hook_bool_uint_uint_true): Declare.
3253 * hooks.c (hook_bool_uint_uint_true): New function.
3254 * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
3255 (TARGET_TRULY_NOOP_TRUNCATION): ...this.
3256 * doc/tm.texi: Regenerate.
3257 * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
3258 rather than TRULY_NOOP_TRUNCATION in comments.
3259 (simplify_comparison): Likewise.
3260 (record_truncated_value): Likewise.
3261 * expmed.c (extract_bit_field_1): Likewise.
3262 (extract_split_bit_field): Likewise.
3263 * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
3264 instead of TRULY_NOOP_TRUNCATION.
3265 * function.c (assign_parm_setup_block): Likewise.
3266 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
3267 * rtlhooks.c: Include target.h.
3268 * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
3269 * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
3270 * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
3271 * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
3272 * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
3273 * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
3274 * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
3275 * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
3276 * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
3277 * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
3278 * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
3279 * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
3280 * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
3281 * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
3282 * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
3283 * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
3284 * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
3285 * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
3286 * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
3287 * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
3288 * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
3289 * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
3290 * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
3291 * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
3292 * config/mips/mips.c (mips_truly_noop_truncation): New function.
3293 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
3294 * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
3295 rather than TRULY_NOOP_TRUNCATION in comments.
3296 * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
3297 * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
3298 * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
3299 * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
3300 * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
3301 * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
3302 * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
3303 * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
3304 * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
3305 * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
3306 * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
3307 * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
3308 rather than TRULY_NOOP_TRUNCATION in comments.
3309 * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
3310 * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
3311 * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
3312 * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
3313 * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
3314 TRULY_NOOP_TRUNCATION condition.
3315 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
3316 (TRULY_NOOP_TRUNCATION): Delete.
3317 * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
3318 * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
3319 * config/spu/spu.c (spu_truly_noop_truncation): New function.
3320 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
3321 * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
3322 * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
3323 * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
3324 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
3325 * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
3326 rather than TRULY_NOOP_TRUNCATION in comments.
3327 * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
3328 * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
3329 * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
3330 * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
3331 * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
3332 * system.h (TRULY_NOOP_TRUNCATION): Poison.
3333
3334 2017-09-15 Christophe Lyon <christophe.lyon@linaro.org>
3335
3336 PR target/67591
3337 * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
3338 (*cmp_ior): Likewise.
3339 (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
3340 (*ior_scc_scc_cmp): Likewise.
3341 (*and_scc_scc): Likewise.
3342 (*and_scc_scc_cmp): Likewise.
3343
3344 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
3345 Alan Hayard <alan.hayward@arm.com>
3346 David Sherwood <david.sherwood@arm.com>
3347
3348 * target.def (can_change_mode_class): New hook.
3349 (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
3350 (hard_regno_nregs): Likewise.
3351 * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
3352 * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
3353 * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
3354 (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
3355 (LOAD_EXTEND_OP): Update accordingly.
3356 * doc/tm.texi: Regenerate.
3357 * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
3358 CANNOT_CHANGE_MODE_CLASS.
3359 * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
3360 (REG_CAN_CHANGE_MODE_P): ...this new macro.
3361 * combine.c (simplify_set): Update accordingly.
3362 * emit-rtl.c (validate_subreg): Likewise.
3363 * recog.c (general_operand): Likewise.
3364 * regcprop.c (mode_change_ok): Likewise.
3365 * reload1.c (choose_reload_regs): Likewise.
3366 (inherit_piecemeal_p): Likewise.
3367 * rtlanal.c (simplify_subreg_regno): Likewise.
3368 * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
3369 instead of CANNOT_CHANGE_MODE_CLASS.
3370 (reload_cse_simplify_operands): Likewise.
3371 * reload.c (push_reload): Use targetm.can_change_mode_class
3372 instead of CANNOT_CHANGE_MODE_CLASS.
3373 (push_reload): Likewise. Also use REG_CAN_CHANGE_MODE_P instead of
3374 REG_CANNOT_CHANGE_MODE_P.
3375 * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3376 * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
3377 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3378 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3379 * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3380 (arm_can_change_mode_class): New function.
3381 * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
3382 than CANNOT_CHANGE_MODE_CLASS in comments.
3383 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3384 * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
3385 * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
3386 (ix86_can_change_mode_class): ...this new function, inverting the
3387 sense of the return value.
3388 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3389 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3390 * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3391 (ia64_can_change_mode_class): New function.
3392 * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3393 * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
3394 * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
3395 (m32c_can_change_mode_class): ...this new function, inverting the
3396 sense of the return value.
3397 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3398 * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3399 * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
3400 * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
3401 (mips_can_change_mode_class): ...this new function, inverting the
3402 sense of the return value.
3403 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3404 * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3405 * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3406 (msp430_can_change_mode_class): New function.
3407 * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3408 * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
3409 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3410 * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3411 * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3412 * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
3413 * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3414 (pa_cannot_change_mode_class): Replace with...
3415 (pa_can_change_mode_class): ...this new function, inverting the
3416 sense of the return value.
3417 (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
3418 than CANNOT_CHANGE_MODE_CLASS in comments.
3419 * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3420 * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
3421 * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3422 (pdp11_cannot_change_mode_class): Replace with...
3423 (pdp11_can_change_mode_class): ...this new function, inverting the
3424 sense of the return value.
3425 * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3426 * config/powerpcspe/powerpcspe-protos.h
3427 (rs6000_cannot_change_mode_class_ptr): Delete.
3428 * config/powerpcspe/powerpcspe.c
3429 (rs6000_cannot_change_mode_class_ptr): Delete.
3430 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3431 (rs6000_option_override_internal): Assign to
3432 targetm.can_change_mode_class instead of
3433 rs6000_cannot_change_mode_class_ptr.
3434 (rs6000_cannot_change_mode_class): Replace with...
3435 (rs6000_can_change_mode_class): ...this new function, inverting the
3436 sense of the return value.
3437 (rs6000_debug_cannot_change_mode_class): Replace with...
3438 (rs6000_debug_can_change_mode_class): ...this new function.
3439 * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3440 * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
3441 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3442 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3443 * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
3444 Delete.
3445 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
3446 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3447 (rs6000_option_override_internal): Assign to
3448 targetm.can_change_mode_class instead of
3449 rs6000_cannot_change_mode_class_ptr.
3450 (rs6000_cannot_change_mode_class): Replace with...
3451 (rs6000_can_change_mode_class): ...this new function, inverting the
3452 sense of the return value.
3453 (rs6000_debug_cannot_change_mode_class): Replace with...
3454 (rs6000_debug_can_change_mode_class): ...this new function.
3455 * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3456 * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
3457 * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
3458 (s390_can_change_mode_class): ...this new function, inverting the
3459 sense of the return value.
3460 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3461 * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3462 * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
3463 * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3464 (sh_cannot_change_mode_class): Replace with...
3465 (sh_can_change_mode_class): ...this new function, inverting the
3466 sense of the return value.
3467 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3468 * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3469 (sparc_can_change_mode_class): New function.
3470 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3471 * config/spu/spu.c (spu_can_change_mode_class): New function.
3472 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3473 * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
3474 * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
3475 (visium_can_change_mode_class): New function.
3476 * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
3477
3478 2017-09-15 Richard Biener <rguenther@suse.de>
3479
3480 PR tree-optimization/82217
3481 * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
3482 but not undefined case.
3483
3484 2017-09-15 Jakub Jelinek <jakub@redhat.com>
3485
3486 PR target/82145
3487 * postreload.c (reload_cse_simplify_operands): Skip
3488 NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
3489
3490 2017-09-15 Richard Biener <rguenther@suse.de>
3491
3492 PR tree-optimization/68823
3493 * graphite-scop-detection.c (build_alias_set): If we have a
3494 possible dependence check whether we can handle them by just
3495 looking at the DRs DR_ACCESS_FNs.
3496 (build_scops): If build_alias_set fails, fail the SCOP.
3497
3498 2017-09-14 Michael Meissner <meissner@linux.vnet.ibm.com>
3499
3500 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
3501 to support float128 built-in functions that require the ISA 3.0
3502 hardware.
3503 (BU_FLOAT128_3_HW): Likewise.
3504 (SQRTF128): Add support for the IEEE 128-bit square root and fma
3505 built-in functions.
3506 (FMAF128): Likewise.
3507 (FMAQ): Likewise.
3508 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
3509 support for built-in functions that need the ISA 3.0 IEEE 128-bit
3510 floating point instructions.
3511 (rs6000_invalid_builtin): Likewise.
3512 (rs6000_builtin_mask_names): Likewise.
3513 * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
3514 (RS6000_BTM_FLOAT128_HW): Likewise.
3515 (RS6000_BTM_COMMON): Likewise.
3516 * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
3517 function.
3518 * doc/extend.texi (RS/6000 built-in functions): Document the
3519 IEEE 128-bit floating point square root and fused multiply-add
3520 built-in functions.
3521
3522 2017-09-14 Pat Haugen <pthaugen@us.ibm.com>
3523
3524 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
3525 reg (r2) isn't in the set of registers defined in the prologue.
3526
3527 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3528 Alan Hayward <alan.hayward@arm.com>
3529 David Sherwood <david.sherwood@arm.com>
3530
3531 * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
3532 (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
3533 (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
3534 (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
3535 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
3536 accordingly.
3537 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
3538 max_vectorization_factor.
3539 (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
3540
3541 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3542 Alan Hayward <alan.hayward@arm.com>
3543 David Sherwood <david.sherwood@arm.com>
3544
3545 * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
3546 (vect_worthwhile_without_simd_p): Declare.
3547 * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
3548 (vectorizable_reduction): Use it.
3549 * tree-vect-stmts.c (vectorizable_shift): Likewise.
3550 (vectorizable_operation): Likewise.
3551
3552 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3553 Alan Hayward <alan.hayward@arm.com>
3554 David Sherwood <david.sherwood@arm.com>
3555
3556 * tree-vectorizer.h (vect_get_num_copies): New function.
3557 * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
3558 * tree-vect-loop.c (vectorizable_reduction): Likewise.
3559 (vectorizable_induction): Likewise.
3560 (vectorizable_live_operation): Likewise.
3561 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
3562 (vectorizable_bswap): Likewise.
3563 (vectorizable_call): Likewise.
3564 (vectorizable_conversion): Likewise.
3565 (vectorizable_assignment): Likewise.
3566 (vectorizable_shift): Likewise.
3567 (vectorizable_operation): Likewise.
3568 (vectorizable_store): Likewise.
3569 (vectorizable_load): Likewise.
3570 (vectorizable_condition): Likewise.
3571 (vectorizable_comparison): Likewise.
3572 (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
3573
3574 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3575 Alan Hayward <alan.hayward@arm.com>
3576 David Sherwood <david.sherwood@arm.com>
3577
3578 * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
3579 of vect_init_vector.
3580
3581 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3582 Alan Hayward <alan.hayward@arm.com>
3583 David Sherwood <david.sherwood@arm.com>
3584
3585 * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
3586 an inline wrapper that provides a location.
3587 (gimple_build_vector): Likewise.
3588 * gimple-fold.c (gimple_build_vector_from_val): New function.
3589 (gimple_build_vector): Likewise.
3590 * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
3591 functions to build the initial value. Always return a gimple value.
3592 (get_initial_defs_for_reduction): Likewise. Only compute
3593 neutral_vec once.
3594 (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
3595 vect_init_vector on the results from get_initial_def(s)_for_reduction.
3596 (vectorizable_induction): Use gimple_build_vector rather than
3597 vect_init_vector.
3598
3599 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3600 Alan Hayward <alan.hayward@arm.com>
3601 David Sherwood <david.sherwood@arm.com>
3602
3603 * target.h (vec_perm_indices): New typedef.
3604 (auto_vec_perm_indices): Likewise.
3605 * optabs-query.h: Include target.h
3606 (can_vec_perm_p): Take a vec_perm_indices *.
3607 * optabs-query.c (can_vec_perm_p): Likewise.
3608 (can_mult_highpart_p): Update accordingly. Use auto_vec_perm_indices.
3609 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
3610 * tree-vect-generic.c (lower_vec_perm): Likewise.
3611 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
3612 (vect_grouped_load_supported): Likewise.
3613 (vect_shift_permute_load_chain): Likewise.
3614 (vect_permute_store_chain): Use auto_vec_perm_indices.
3615 (vect_permute_load_chain): Likewise.
3616 * fold-const.c (fold_vec_perm): Take vec_perm_indices.
3617 (fold_ternary_loc): Update accordingly. Use auto_vec_perm_indices.
3618 Update uses of can_vec_perm_p.
3619 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
3620 mode with a number of elements. Take a vec_perm_indices *.
3621 (vect_create_epilog_for_reduction): Update accordingly.
3622 Use auto_vec_perm_indices.
3623 (have_whole_vector_shift): Likewise. Update call to can_vec_perm_p.
3624 * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
3625 (vect_transform_slp_perm_load): Likewise.
3626 (vect_schedule_slp_instance): Use auto_vec_perm_indices.
3627 * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
3628 (vect_gen_perm_mask_checked): Likewise.
3629 * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
3630 (vect_gen_perm_mask_checked): Likewise.
3631 (vectorizable_mask_load_store): Use auto_vec_perm_indices.
3632 (vectorizable_store): Likewise.
3633 (vectorizable_load): Likewise.
3634 (perm_mask_for_reverse): Likewise. Update call to can_vec_perm_p.
3635 (vectorizable_bswap): Likewise.
3636
3637 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3638 Alan Hayward <alan.hayward@arm.com>
3639 David Sherwood <david.sherwood@arm.com>
3640
3641 * tree.h (build_vector): Take a vec<tree> instead of a tree *.
3642 * tree.c (build_vector): Likewise.
3643 (build_vector_from_ctor): Update accordingly.
3644 (build_vector_from_val): Likewise.
3645 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
3646 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
3647 * tree-vect-generic.c (add_rshift): Likewise.
3648 (expand_vector_divmod): Likewise.
3649 (optimize_vector_constructor): Likewise.
3650 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
3651 (vect_transform_slp_perm_load): Likewise.
3652 (vect_schedule_slp_instance): Likewise.
3653 * tree-vect-stmts.c (vectorizable_bswap): Likewise.
3654 (vectorizable_call): Likewise.
3655 (vect_gen_perm_mask_any): Likewise. Add elements in order.
3656 * expmed.c (make_tree): Likewise.
3657 * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
3658 a vector passed to build_vector.
3659 (fold_convert_const): Likewise.
3660 (exact_inverse): Likewise.
3661 (fold_ternary_loc): Likewise.
3662 (fold_relational_const): Likewise.
3663 (const_binop): Likewise. Use VECTOR_CST_ELT directly when operating
3664 on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
3665 (const_unop): Likewise. Store the reduction accumulator in a
3666 variable rather than an array.
3667 (vec_cst_ctor_to_array): Take the number of elements as a parameter.
3668 (fold_vec_perm): Update calls accordingly. Use auto_vec<tree> for
3669 the new vector, rather than constructing it after the input arrays.
3670 (native_interpret_vector): Use auto_vec<tree> when building
3671 a vector passed to build_vector. Add elements in order.
3672 * tree-vect-loop.c (get_initial_defs_for_reduction): Use
3673 auto_vec<tree> when building a vector passed to build_vector.
3674 (vect_create_epilog_for_reduction): Likewise.
3675 (vectorizable_induction): Likewise.
3676 (get_initial_def_for_reduction): Likewise. Fix indentation of
3677 case statements.
3678 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
3679 to a vec<tree> *.
3680 (sparc_fold_builtin): Use auto_vec<tree> when building a vector
3681 passed to build_vector.
3682
3683 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
3684 Alan Hayward <alan.hayward@arm.com>
3685 David Sherwood <david.sherwood@arm.com>
3686
3687 * tree-core.h (tree_base::u): Add an "nelts" field.
3688 (tree_vector): Use VECTOR_CST_NELTS as the length.
3689 * tree.c (tree_size): Likewise.
3690 (make_vector): Initialize VECTOR_CST_NELTS.
3691 * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
3692 * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
3693 TYPE_VECTOR_SUBPARTS.
3694 * expr.c (const_vector_mask_from_tree): Consistently use "units"
3695 as the number of units, setting it from VECTOR_CST_NELTS.
3696 (const_vector_from_tree): Likewise.
3697 * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
3698 TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
3699 (fold_negate_expr_1): Likewise.
3700 (fold_convert_const): Likewise.
3701 (const_binop): Likewise. Differentiate the number of output and
3702 input elements.
3703 (const_unop): Likewise.
3704 (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
3705 in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
3706 in cases that did the opposite.
3707
3708 2017-09-14 Richard Biener <rguenther@suse.de>
3709
3710 * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
3711 to VN_TOP.
3712
3713 2017-09-14 Eric Botcazou <ebotcazou@adacore.com>
3714
3715 * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
3716
3717 2017-09-14 Jakub Jelinek <jakub@redhat.com>
3718
3719 PR target/81325
3720 * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
3721 if and where to split a bb, except for splitting before debug insn
3722 sequences followed by non-label real insn. Delete debug insns
3723 in between basic blocks.
3724
3725 * combine.c (make_compound_operation_int): Formatting fixes.
3726
3727 * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
3728 * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
3729 * config/netbsd.h (LINK_EH_SPEC): Likewise.
3730 * config/sol2.h (LINK_EH_SPEC): Likewise.
3731 * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
3732 * config/s390/linux.h (LINK_SPEC): Likewise.
3733 * config/freebsd.h (LINK_EH_SPEC): Likewise.
3734 * config/openbsd.h (LINK_EH_SPEC): Likewise.
3735 * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
3736 * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
3737 * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
3738 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
3739 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
3740 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
3741
3742 2017-09-13 Jakub Jelinek <jakub@redhat.com>
3743
3744 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
3745 support.
3746 (ENDFILE_LINUX_SPEC): Likewise.
3747 (LINK_EH_SPEC): Likewise.
3748 * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
3749 (LINK_OS_LINUX_SPEC32): Likewise.
3750 (LINK_OS_LINUX_SPEC64): Likewise.
3751 * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
3752 (LINK_OS_LINUX_SPEC): Likewise.
3753
3754 2017-09-13 Martin Liska <mliska@suse.cz>
3755
3756 PR middle-end/82154
3757 * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
3758 CASE_HIGH is NULL_TREE.
3759
3760 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
3761 Alan Hayward <alan.hayward@arm.com>
3762 David Sherwood <david.sherwood@arm.com>
3763
3764 * target.def (secondary_memory_needed): New hook.
3765 (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
3766 instead of SECONDARY_MEMORY_NEEDED.
3767 (secondary_memory_needed_mode): Likewise.
3768 * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
3769 * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
3770 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
3771 (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
3772 (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
3773 * doc/tm.texi: Regenerate.
3774 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
3775 * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
3776 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3777 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
3778 * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
3779 * config/i386/i386.c (inline_secondary_memory_needed): Put the
3780 mode argument first and change the reg_class arguments to reg_class_t.
3781 (ix86_secondary_memory_needed): Likewise. Remove the strict parameter.
3782 Make static. Update the call to inline_secondary_memory_needed.
3783 (ix86_register_move_cost): Update the call to
3784 inline_secondary_memory_needed.
3785 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3786 * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
3787 definition.
3788 * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
3789 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
3790 in comment.
3791 * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
3792 * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
3793 * config/mips/mips.c (mips_secondary_memory_needed): Make static
3794 and match hook interface. Add comment from mips.h.
3795 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3796 * config/mmix/mmix.md (truncdfsf2): Refer to
3797 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
3798 in comment.
3799 * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
3800 (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
3801 * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3802 (pa_secondary_memory_needed): New function.
3803 * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
3804 * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
3805 * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3806 (pdp11_secondary_memory_needed): Make static and match hook interface.
3807 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
3808 * config/powerpcspe/powerpcspe-protos.h
3809 (rs6000_secondary_memory_needed_ptr): Delete.
3810 * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
3811 Delete.
3812 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3813 (rs6000_option_override_internal): Assign to
3814 targetm.secondary_memory_needed rather than
3815 rs6000_secondary_memory_needed_ptr.
3816 (rs6000_secondary_memory_needed): Match hook interface.
3817 (rs6000_debug_secondary_memory_needed): Likewise.
3818 * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
3819 * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
3820 (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
3821 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3822 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
3823 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
3824 Delete.
3825 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
3826 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3827 (rs6000_option_override_internal): Assign to
3828 targetm.secondary_memory_needed rather than
3829 rs6000_secondary_memory_needed_ptr.
3830 (rs6000_secondary_memory_needed): Match hook interface.
3831 (rs6000_debug_secondary_memory_needed): Likewise.
3832 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
3833 * config/s390/s390.c (s390_secondary_memory_needed): New function.
3834 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3835 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
3836 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
3837 (sparc_secondary_memory_needed): New function.
3838 * lra-constraints.c (check_and_process_move): Refer to
3839 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
3840 in comment.
3841 (curr_insn_transform): Likewise.
3842 (process_alt_operands): Use targetm.secondary_memory_needed
3843 instead of TARGET_SECONDARY_MEMORY_NEEDED.
3844 (check_secondary_memory_needed_p): Likewise.
3845 (choose_split_class): Likewise.
3846 * reload.c: Unconditionally include code that was previously
3847 conditional on SECONDARY_MEMORY_NEEDED.
3848 (push_secondary_reload): Use targetm.secondary_memory_needed
3849 instead of TARGET_SECONDARY_MEMORY_NEEDED.
3850 (push_reload): Likewise.
3851 * reload1.c: Unconditionally include code that was previously
3852 conditional on SECONDARY_MEMORY_NEEDED.
3853 (choose_reload_regs): Use targetm.secondary_memory_needed
3854 instead of TARGET_SECONDARY_MEMORY_NEEDED.
3855 (gen_reload): Likewise.
3856 * system.h (SECONDARY_MEMORY_NEEDED): Poison.
3857
3858 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
3859 Alan Hayward <alan.hayward@arm.com>
3860 David Sherwood <david.sherwood@arm.com>
3861
3862 * target.def (secondary_memory_needed_mode): New hook:
3863 * targhooks.c (default_secondary_memory_needed_mode): Declare.
3864 * targhooks.h (default_secondary_memory_needed_mode): New function.
3865 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
3866 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
3867 * doc/tm.texi: Regenerate.
3868 * lra-constraints.c (check_and_process_move): Use
3869 targetm.secondary_memory_needed_mode instead of
3870 TARGET_SECONDARY_MEMORY_NEEDED_MODE.
3871 (curr_insn_transform): Likewise.
3872 * reload.c (get_secondary_mem): Likewise.
3873 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
3874 * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
3875 function.
3876 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
3877 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
3878 * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
3879 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
3880 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
3881 Delete.
3882 * config/powerpcspe/powerpcspe-protos.h
3883 (rs6000_secondary_memory_needed_mode): Delete.
3884 * config/powerpcspe/powerpcspe.c
3885 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
3886 (rs6000_secondary_memory_needed_mode): Make static.
3887 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
3888 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
3889 Delete.
3890 * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
3891 Redefine.
3892 (rs6000_secondary_memory_needed_mode): Make static.
3893 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
3894 * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
3895 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
3896 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
3897 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
3898 Redefine.
3899 (sparc_secondary_memory_needed_mode): New function.
3900 * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
3901
3902 2017-09-13 Jackson Woodruff <jackson.woodruff@arm.com>
3903
3904 * config/aarch64/constraints.md (Umq): New constraint.
3905 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
3906 Change to use Umq.
3907 (mov<mode>): Update condition.
3908
3909 2017-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3910
3911 * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
3912 when bitposition is the same.
3913
3914 2017-09-13 Richard Biener <rguenther@suse.de>
3915
3916 * dwarf2out.c (output_die_symbol): Remove.
3917 (output_die): Do not output a DIEs symbol.
3918
3919 2017-09-13 Richard Biener <rguenther@suse.de>
3920
3921 PR middle-end/82128
3922 * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
3923 default-def to avoid breaking iterator update with the weird
3924 interaction with cgraph_update_edges_for_call_stmt_node.
3925
3926 2017-09-13 Richard Biener <rguenther@suse.de>
3927
3928 * tree-cfg.c (verify_gimple_assign_binary): Add verification
3929 for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
3930 VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
3931 (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
3932
3933 2017-09-13 Kugan Vivekanandarajah <kuganv@linaro.org>
3934
3935 * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
3936 Disable pc relative literal load irrespective of
3937 TARGET_FIX_ERR_A53_84341 for default.
3938
3939 2017-09-12 Eric Botcazou <ebotcazou@adacore.com>
3940
3941 * config/sparc/sparc.c (output_return): Output the source location of
3942 the insn in the delay slot, if any.
3943 (output_sibcall): Likewise.
3944
3945 2017-09-12 H.J. Lu <hongjiu.lu@intel.com>
3946
3947 PR driver/81498
3948 * common.opt (-static-pie): New alias.
3949 (shared): Negate static-pie.
3950 (-no-pie): Update help text.
3951 (-pie): Likewise.
3952 (static-pie): New option.
3953 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
3954 -static-pie support.
3955 (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
3956 (LINK_EH_SPEC): Likewise.
3957 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
3958 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
3959 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
3960 * gcc.c (LINK_COMMAND_SPEC): Likewise.
3961 (init_gcc_specs): Likewise.
3962 (init_spec): Likewise.
3963 (display_help): Update help message for -pie.
3964 * doc/invoke.texi: Update -pie, -no-pie and -static. Document
3965 -static-pie.
3966
3967 2017-09-12 Wilco Dijkstra <wdijkstr@arm.com>
3968
3969 * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
3970 (movdi_aarch64): Likewise.
3971 (movti_aarch64): Likewise.
3972
3973 2017-09-12 Simon Wright <simon@pushface.org>
3974
3975 PR target/80204
3976 * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
3977 calculation of the minor version, always output as 0.
3978
3979 2017-09-12 Jakub Jelinek <jakub@redhat.com>
3980
3981 PR target/82112
3982 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
3983 ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
3984 on it early, rather than manual conversion late. For
3985 ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
3986 instead of performing manual conversion.
3987
3988 2017-09-12 Carl Love <cel@us.ibm.com>
3989
3990 * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
3991 vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
3992 vmulouw, vmulosw.
3993 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
3994 VMULOSW): Add definitions.
3995 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3996 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
3997 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
3998 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
3999 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
4000
4001 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
4002
4003 * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
4004 types correctly.
4005 (movti_aarch64): Likewise.
4006 (movdf_aarch64): Likewise.
4007 (movtf_aarch64): Likewise.
4008 (load_pairdi): Likewise.
4009 (store_pairdi): Likewise.
4010 (load_pairdf): Likewise.
4011 (store_pairdf): Likewise.
4012 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
4013 (storewb_pair<GPI:mode>_<P:mode>): Likewise.
4014 (ldr_got_small_<mode>): Likewise.
4015 (ldr_got_small_28k_<mode>): Likewise.
4016 (ldr_got_tiny): Likewise.
4017 * config/aarch64/iterators.md (ldst_sz): New.
4018 (ldpstp_sz): Likewise.
4019 * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
4020 to store_16.
4021 (thunderx_load): Split load_8 to load_16.
4022 * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
4023 load_8 to load_16.
4024 (thunderx2t99_storepair_basic): Split store_8 to store_16.
4025 * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
4026 (xgene1_store_pair): Split store_8 to store_16.
4027 * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
4028 (falkor_st_0_st_sd): Split store_8 to store_16.
4029
4030 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
4031
4032 * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
4033 and store1/2/3/4 to store_4/8/12/16.
4034 * config/aarch64/aarch64.md: Update for rename.
4035 * config/arm/arm.md: Likewise.: Likewise.
4036 * config/arm/arm.c: Likewise.
4037 * config/arm/thumb1.md: Likewise.
4038 * config/arm/thumb2.md: Likewise.
4039 * config/arm/vfp.md: Likewise.
4040 * config/arm/arm-generic.md: Likewise.
4041 * config/arm/arm1020e.md: Likewise.
4042 * config/arm/arm1026ejs.md: Likewise.
4043 * config/arm/arm1136jfs.md: Likewise.
4044 * config/arm/arm926ejs.md: Likewise.
4045 * config/arm/cortex-a15.md: Likewise.
4046 * config/arm/cortex-a17.md: Likewise.
4047 * config/arm/cortex-a5.md: Likewise.
4048 * config/arm/cortex-a53.md: Likewise.
4049 * config/arm/cortex-a57.md: Likewise.
4050 * config/arm/cortex-a7.md: Likewise.
4051 * config/arm/cortex-a8.md: Likewise.
4052 * config/arm/cortex-a9.md: Likewise.
4053 * config/arm/cortex-m4.md: Likewise.
4054 * config/arm/cortex-m7.md: Likewise.
4055 * config/arm/cortex-r4.md: Likewise.
4056 * config/arm/exynos-m1.md: Likewise.
4057 * config/arm/fa526.md: Likewise.
4058 * config/arm/fa606te.md: Likewise.
4059 * config/arm/fa626te.md: Likewise.
4060 * config/arm/fa726te.md: Likewise.
4061 * config/arm/fmp626.md: Likewise.
4062 * config/arm/iwmmxt.md: Likewise.
4063 * config/arm/ldmstm.md: Likewise.
4064 * config/arm/marvell-pj4.md: Likewise.
4065 * config/arm/xgene1.md: Likewise.
4066 * config/aarch64/thunderx.md: Likewise.
4067 * config/aarch64/thunderx2t99.md: Likewise.
4068 * config/aarch64/falkor.md: Likewise.
4069
4070 2017-09-12 Martin Liska <mliska@suse.cz>
4071
4072 * attribs.c (private_lookup_attribute): New function.
4073 * attribs.h (private_lookup_attribute): Declared here.
4074 (lookup_attribute): Called from this place.
4075
4076 2017-09-12 Richard Biener <rguenther@suse.de>
4077
4078 PR tree-optimization/82157
4079 * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
4080 stmts with side-effects.
4081
4082 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4083 Alan Hayward <alan.hayward@arm.com>
4084 David Sherwood <david.sherwood@arm.com>
4085
4086 * target.def (hard_regno_nregs): New hook.
4087 (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
4088 * targhooks.h (default_hard_regno_nregs): Declare.
4089 * targhooks.c (default_hard_regno_nregs): New function.
4090 * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
4091 (TARGET_HARD_REGNO_NREGS): ...this hook.
4092 (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
4093 (CLASS_MAX_NREGS): Likewise.
4094 * doc/tm.texi: Regenerate.
4095 * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
4096 instead of HARD_REGNO_NREGS.
4097 * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
4098 HARD_REGNO_NREGS in the comment.
4099 * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
4100 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
4101 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
4102 Return an unsigned int.
4103 (TARGET_HARD_REGNO_NREGS): Redefine.
4104 * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
4105 * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
4106 * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
4107 (arc_hard_regno_nregs): New function.
4108 * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
4109 * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
4110 (arm_hard_regno_nregs): New function.
4111 * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
4112 * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
4113 * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
4114 (TARGET_HARD_REGNO_NREGS): Redefine.
4115 * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
4116 * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
4117 (HARD_REGNO_NREGS): Delete.
4118 * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
4119 (cr16_hard_regno_nregs): New function.
4120 (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
4121 * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
4122 * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
4123 (cris_hard_regno_nregs): New function.
4124 * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
4125 * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
4126 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
4127 * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
4128 (CLASS_MAX_NREGS): Remove outdated copy of documentation.
4129 * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
4130 * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
4131 (frv_hard_regno_nregs): Make static. Take and return an
4132 unsigned int.
4133 (frv_class_max_nregs): Remove outdated copy of documentation.
4134 * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
4135 * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
4136 * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
4137 * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
4138 * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
4139 * config/i386/i386.c (ix86_hard_regno_nregs): New function.
4140 (TARGET_HARD_REGNO_NREGS): Redefine.
4141 * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
4142 (CLASS_MAX_NREGS): Update comment.
4143 * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
4144 (ia64_hard_regno_nregs): New function.
4145 * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
4146 * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
4147 * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
4148 * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
4149 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
4150 an unsigned int.
4151 (m32c_hard_regno_nregs): Likewise. Make static.
4152 (TARGET_HARD_REGNO_NREGS): Redefine.
4153 * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
4154 * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
4155 * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
4156 (m68k_hard_regno_nregs): New function.
4157 * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
4158 * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
4159 * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
4160 * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
4161 * config/mips/mips.c (mips_hard_regno_nregs): Make static.
4162 Take and return an unsigned int.
4163 (TARGET_HARD_REGNO_NREGS): Redefine.
4164 * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
4165 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
4166 * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
4167 * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
4168 * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
4169 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
4170 * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
4171 (msp430_hard_regno_nregs): Make static. Take and return an
4172 unsigned int.
4173 * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
4174 * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
4175 * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
4176 (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
4177 * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
4178 * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
4179 * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
4180 (TARGET_HARD_REGNO_NREGS): Redefine.
4181 * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
4182 (PA_HARD_REGNO_NREGS): ...this.
4183 * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
4184 (PA_HARD_REGNO_NREGS): ...this.
4185 * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
4186 (pa_hard_regno_nregs): New function.
4187 * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
4188 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
4189 (pdp11_hard_regno_nregs): New function.
4190 * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
4191 * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
4192 (rs6000_hard_regno_nregs_hook): New function.
4193 * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
4194 * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
4195 * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
4196 Take and return an unsigned int. Move earlier in file.
4197 (TARGET_HARD_REGNO_NREGS): Redefine.
4198 * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
4199 * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
4200 * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
4201 (rl78_hard_regno_nregs): Make static. Take and return an
4202 unsigned int.
4203 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
4204 * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
4205 (rs6000_hard_regno_nregs_hook): New function.
4206 * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
4207 * config/rx/rx.c (rx_hard_regno_nregs): New function.
4208 (TARGET_HARD_REGNO_NREGS): Redefine.
4209 * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
4210 * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
4211 instead of HARD_REGNO_NREGS.
4212 (s390_hard_regno_nregs): New function.
4213 (s390_hard_regno_mode_ok): Add comment from s390.h.
4214 (TARGET_HARD_REGNO_NREGS): Redefine.
4215 * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
4216 * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
4217 (sh_hard_regno_nregs): New function.
4218 (sh_pass_in_reg_p): Use it.
4219 * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
4220 * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
4221 (sparc_hard_regno_nregs): New function.
4222 * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
4223 * config/spu/spu.c (spu_hard_regno_nregs): New function.
4224 (spu_function_arg_advance): Use it, supplying a valid register number.
4225 (TARGET_HARD_REGNO_NREGS): Redefine.
4226 * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
4227 * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
4228 * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
4229 * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
4230 * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
4231 * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
4232 (CLASS_MAX_NREGS): Remove copy of old documentation.
4233 * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
4234 (visium_hard_regno_nregs): New function.
4235 (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
4236 * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
4237 * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
4238 xtensa_hard_regno_nregs): New function.
4239 * system.h (HARD_REGNO_NREGS): Poison.
4240
4241 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4242
4243 * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
4244 hard_regno_nregs instead of HARD_REGNO_NREGS.
4245 (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
4246 * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
4247 (c6x_expand_epilogue): Likewise.
4248 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
4249 (frv_read_iacc_argument): Likewise.
4250 * config/sh/sh.c: Include regs.h.
4251 (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
4252 (regs_used): Likewise.
4253 (output_stack_adjust): Likewise.
4254 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
4255 * expmed.c: Include regs.h.
4256 (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
4257 * ree.c: Include regs.h.
4258 (combine_reaching_defs): Use hard_regno_nregs instead of
4259 HARD_REGNO_NREGS.
4260 (add_removable_extension): Likewise.
4261
4262 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4263
4264 * regs.h (hard_regno_nregs): Turn into a function.
4265 (end_hard_regno): Update accordingly.
4266 * caller-save.c (setup_save_areas): Likewise.
4267 (save_call_clobbered_regs): Likewise.
4268 (replace_reg_with_saved_mem): Likewise.
4269 (insert_restore): Likewise.
4270 (insert_save): Likewise.
4271 * combine.c (can_change_dest_mode): Likewise.
4272 (move_deaths): Likewise.
4273 (distribute_notes): Likewise.
4274 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
4275 * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
4276 (rs6000_split_multireg_move): Likewise.
4277 (rs6000_register_move_cost): Likewise.
4278 (rs6000_memory_move_cost): Likewise.
4279 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
4280 (rs6000_split_multireg_move): Likewise.
4281 (rs6000_register_move_cost): Likewise.
4282 (rs6000_memory_move_cost): Likewise.
4283 * cselib.c (cselib_reset_table): Likewise.
4284 (cselib_lookup_1): Likewise.
4285 * emit-rtl.c (set_mode_and_regno): Likewise.
4286 * function.c (aggregate_value_p): Likewise.
4287 * ira-color.c (setup_profitable_hard_regs): Likewise.
4288 (check_hard_reg_p): Likewise.
4289 (calculate_saved_nregs): Likewise.
4290 (assign_hard_reg): Likewise.
4291 (improve_allocation): Likewise.
4292 (calculate_spill_cost): Likewise.
4293 * ira-emit.c (modify_move_list): Likewise.
4294 * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
4295 (ira_hard_reg_in_set_p): Likewise.
4296 * ira.c (setup_reg_mode_hard_regset): Likewise.
4297 (clarify_prohibited_class_mode_regs): Likewise.
4298 (check_allocation): Likewise.
4299 * lra-assigns.c (find_hard_regno_for_1): Likewise.
4300 (lra_setup_reg_renumber): Likewise.
4301 (setup_try_hard_regno_pseudos): Likewise.
4302 (spill_for): Likewise.
4303 (assign_hard_regno): Likewise.
4304 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
4305 * lra-constraints.c (in_class_p): Likewise.
4306 (lra_constraint_offset): Likewise.
4307 (simplify_operand_subreg): Likewise.
4308 (lra_constraints): Likewise.
4309 (split_reg): Likewise.
4310 (split_if_necessary): Likewise.
4311 (invariant_p): Likewise.
4312 (inherit_in_ebb): Likewise.
4313 * lra-lives.c (process_bb_lives): Likewise.
4314 * lra-remat.c (reg_overlap_for_remat_p): Likewise.
4315 (get_hard_regs): Likewise.
4316 (do_remat): Likewise.
4317 * lra-spills.c (assign_spill_hard_regs): Likewise.
4318 * mode-switching.c (create_pre_exit): Likewise.
4319 * postreload.c (reload_combine_recognize_pattern): Likewise.
4320 * recog.c (peep2_find_free_register): Likewise.
4321 * regcprop.c (kill_value_regno): Likewise.
4322 (set_value_regno): Likewise.
4323 (copy_value): Likewise.
4324 (maybe_mode_change): Likewise.
4325 (find_oldest_value_reg): Likewise.
4326 (copyprop_hardreg_forward_1): Likewise.
4327 * regrename.c (check_new_reg_p): Likewise.
4328 (regrename_do_replace): Likewise.
4329 * reload.c (push_reload): Likewise.
4330 (combine_reloads): Likewise.
4331 (find_dummy_reload): Likewise.
4332 (operands_match_p): Likewise.
4333 (find_reloads): Likewise.
4334 (find_equiv_reg): Likewise.
4335 (reload_adjust_reg_for_mode): Likewise.
4336 * reload1.c (count_pseudo): Likewise.
4337 (count_spilled_pseudo): Likewise.
4338 (find_reg): Likewise.
4339 (clear_reload_reg_in_use): Likewise.
4340 (free_for_value_p): Likewise.
4341 (allocate_reload_reg): Likewise.
4342 (choose_reload_regs): Likewise.
4343 (reload_adjust_reg_for_temp): Likewise.
4344 (emit_reload_insns): Likewise.
4345 (delete_output_reload): Likewise.
4346 * rtlanal.c (subreg_get_info): Likewise.
4347 * sched-deps.c (sched_analyze_reg): Likewise.
4348 * sel-sched.c (init_regs_for_mode): Likewise.
4349 (mark_unavailable_hard_regs): Likewise.
4350 (choose_best_reg_1): Likewise.
4351 (verify_target_availability): Likewise.
4352 * valtrack.c (dead_debug_insert_temp): Likewise.
4353 * var-tracking.c (track_loc_p): Likewise.
4354 (emit_note_insn_var_location): Likewise.
4355 * varasm.c (make_decl_rtl): Likewise.
4356 * reginfo.c (choose_hard_reg_mode): Likewise.
4357 (init_reg_modes_target): Refer directly to
4358 this_target_regs->x_hard_regno_nregs.
4359
4360 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4361
4362 * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
4363 instead of hard_regno_nregs.
4364
4365 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4366
4367 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
4368 end_hard_regno instead of hard_regno_nregs.
4369 * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
4370 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
4371 * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
4372 * ira-color.c (improve_allocation): Likewise.
4373 * lra-assigns.c (find_hard_regno_for_1): Likewise.
4374 * lra-lives.c (mark_regno_live): Likewise.
4375 (mark_regno_dead): Likewise.
4376 * lra-remat.c (operand_to_remat): Likewise.
4377 * lra.c (collect_non_operand_hard_regs): Likewise.
4378 * postreload.c (reload_combine_note_store): Likewise.
4379 (move2add_valid_value_p): Likewise.
4380 * reload.c (regno_clobbered_p): Likewise.
4381
4382 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4383
4384 * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
4385 hard_regno_nregs.
4386 * config/v850/v850.c (v850_reorg): Likewise.
4387 * reload.c (refers_to_regno_for_reload_p): Likewise.
4388 (find_equiv_reg): Likewise.
4389 * reload1.c (reload_reg_reaches_end_p): Likewise.
4390
4391 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4392
4393 * caller-save.c (add_used_regs): Use REG_NREGS instead of
4394 hard_regno_nregs.
4395 * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
4396 * config/arm/arm.c (output_move_neon): Likewise.
4397 (arm_attr_length_move_neon): Likewise.
4398 (neon_split_vcombine): Likewise.
4399 * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
4400 (c6x_mark_reg_written): Likewise.
4401 (c6x_dwarf_register_span): Likewise.
4402 * config/i386/i386.c (ix86_save_reg): Likewise.
4403 * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
4404 (rws_access_reg): Likewise.
4405 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
4406 * mode-switching.c (create_pre_exit): Likewise.
4407 * ree.c (combine_reaching_defs): Likewise.
4408 (add_removable_extension): Likewise.
4409 * regcprop.c (find_oldest_value_reg): Likewise.
4410 (copyprop_hardreg_forward_1): Likewise.
4411 * reload.c (reload_inner_reg_of_subreg): Likewise.
4412 (push_reload): Likewise.
4413 (combine_reloads): Likewise.
4414 (find_dummy_reload): Likewise.
4415 (reload_adjust_reg_for_mode): Likewise.
4416 * reload1.c (find_reload_regs): Likewise.
4417 (forget_old_reloads_1): Likewise.
4418 (reload_reg_free_for_value_p): Likewise.
4419 (reload_adjust_reg_for_temp): Likewise.
4420 (emit_reload_insns): Likewise.
4421 (delete_output_reload): Likewise.
4422 * sel-sched.c (choose_best_reg_1): Likewise.
4423 (choose_best_pseudo_reg): Likewise.
4424
4425 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4426 Alan Hayward <alan.hayward@arm.com>
4427 David Sherwood <david.sherwood@arm.com>
4428
4429 * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
4430 * target.def (slow_unaligned_access): New hook.
4431 * targhooks.h (default_slow_unaligned_access): Declare.
4432 * targhooks.c (default_slow_unaligned_access): New function.
4433 * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
4434 (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
4435 * doc/tm.texi: Regenerate.
4436 * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
4437 * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
4438 * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
4439 definition.
4440 * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
4441 * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
4442 Redefine.
4443 (rs6000_slow_unaligned_access): New function.
4444 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
4445 (expand_block_compare): Likewise.
4446 (expand_strn_compare): Likewise.
4447 (rs6000_rtx_costs): Likewise.
4448 * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
4449 (riscv_slow_unaligned_access): Likewise.
4450 * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
4451 (riscv_slow_unaligned_access_p): ...this and make static.
4452 (riscv_option_override): Update accordingly.
4453 (riscv_slow_unaligned_access): New function.
4454 (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
4455 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
4456 * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
4457 (rs6000_slow_unaligned_access): New function.
4458 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
4459 (rs6000_rtx_costs): Likewise.
4460 * config/rs6000/rs6000-string.c (expand_block_compare)
4461 (expand_strn_compare): Use targetm.slow_unaligned_access instead
4462 of SLOW_UNALIGNED_ACCESS.
4463 * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
4464 * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
4465 * calls.c (expand_call): Use targetm.slow_unaligned_access instead
4466 of SLOW_UNALIGNED_ACCESS.
4467 * expmed.c (simple_mem_bitfield_p): Likewise.
4468 * expr.c (alignment_for_piecewise_move): Likewise.
4469 (emit_group_load_1): Likewise.
4470 (emit_group_store): Likewise.
4471 (copy_blkmode_from_reg): Likewise.
4472 (emit_push_insn): Likewise.
4473 (expand_assignment): Likewise.
4474 (store_field): Likewise.
4475 (expand_expr_real_1): Likewise.
4476 * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
4477 * lra-constraints.c (simplify_operand_subreg): Likewise.
4478 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
4479 * gimple-ssa-store-merging.c: Likewise in block comment at start
4480 of file.
4481 * tree-ssa-strlen.c: Include target.h.
4482 (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
4483 of SLOW_UNALIGNED_ACCESS.
4484 * system.h (SLOW_UNALIGNED_ACCESS): Poison.
4485
4486 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
4487
4488 PR rtl-optimization/82185
4489 * expmed.c (emit_store_flag_int): Only test tem if it has been
4490 initialized.
4491
4492 2017-09-12 Richard Biener <rguenther@suse.de>
4493
4494 PR middle-end/82149
4495 * match.pd ((FTYPE) N CMP CST): Fix typo.
4496
4497 2017-09-12 Simon Atanasyan <simon.atanasyan@imgtec.com>
4498
4499 * config/mips/mips.c (mips_attribute_table): Add 'short_call'
4500 attribute.
4501 (mips_near_type_p): Add 'short_call' attribute as a synonym
4502 for 'near'.
4503 * doc/extend.texi (short_call): Document new function attribute.
4504
4505 2017-09-12 Jakub Jelinek <jakub@redhat.com>
4506
4507 PR target/82112
4508 * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
4509 assertion check that in the condition.
4510 (get_atomic_generic_size): Likewise. Before testing if parameter
4511 has pointer type, if it has array type, call for C++
4512 default_conversion to perform array-to-pointer conversion.
4513
4514 2017-09-12 Richard Biener <rguenther@suse.de>
4515
4516 * tree-vect-generic.c (expand_vector_operations_1): Do nothing
4517 for operations we cannot scalarize.
4518
4519 2017-09-12 Aldy Hernandez <aldyh@redhat.com>
4520
4521 * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
4522 vectors heap vectors. Clean up comments.
4523 Make visited_bbs a reference.
4524 (profitable_jump_thread_path): Make GC
4525 vectors heap vectors. Clean up comments.
4526 Misc cleanups.
4527 (convert_and_register_jump_thread_path): Make GC vectors heap
4528 vectors.
4529 (check_subpath_and_update_thread_path): Same. Clean up comments.
4530 Make visited_bbs a reference.
4531 (handle_phi): Abstract common code to to
4532 register_jump_thread_path_if_profitable.
4533 Rename VAR_BB to DEF_BB.
4534 Update comments.
4535 Make GC vectors heap vectors.
4536 Make visited_bbs a reference.
4537 (handle_assignment): Same.
4538 (register_jump_thread_path_if_profitable): New.
4539 (fsm_find_control_statement_thread_paths): Rename VAR_BB to
4540 DEF_BB.
4541 Make GC vectors heap vectors. Clean up comments.
4542 Make visited_bbs a reference.
4543 (find_jump_threads_backwards): Make visited_bbs live in the stack.
4544 * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
4545 comment.
4546
4547 2017-09-11 Max Filippov <jcmvbkbc@gmail.com>
4548
4549 PR target/82181
4550 * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
4551 words of E_DImode object are reachable by xtensa_uimm8x4 access.
4552
4553 2017-09-11 Vidya Praveen <vidyapraveen@arm.com>
4554
4555 Revert r251800 and r251799.
4556
4557 2017-09-11 Martin Jambor <mjambor@suse.cz>
4558
4559 PR hsa/82119
4560 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
4561 arguments in advance.
4562 * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
4563 use it to find predecessor edges.
4564 (naive_outof_ssa): Collect vector of predecessors.
4565
4566 2017-09-08 Jason Merrill <jason@redhat.com>
4567
4568 PR c++/70029 - ICE with ref-qualifier and -flto
4569 * langhooks.h (struct lang_hooks_for_types): Add
4570 copy_lang_qualifiers.
4571 * attribs.c (build_type_attribute_qual_variant): Use it.
4572 * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
4573 NULL.
4574 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
4575 * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
4576
4577 2017-09-08 Eric Botcazou <ebotcazou@adacore.com>
4578
4579 PR target/81988
4580 * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
4581 (*mulsi3_sp64): New instruction.
4582 (mulsi3): New expander.
4583
4584 2017-09-08 Uros Bizjak <ubizjak@gmail.com>
4585
4586 * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
4587
4588 2017-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4589
4590 * sancov.c: Include memmodel.h.
4591
4592 2017-09-07 Eric Botcazou <ebotcazou@adacore.com>
4593
4594 PR target/80897
4595 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
4596 large offsets.
4597
4598 2017-09-07 Carl Love <cel@us.ibm.com>
4599
4600 * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
4601 the sldi instruction.
4602
4603 2017-09-07 David Edelsohn <dje.gcc@gmail.com>
4604
4605 * sancov.c: Include tm_p.h.
4606
4607 2017-09-07 Jakub Jelinek <jakub@redhat.com>
4608
4609 PR target/81979
4610 * output.h (switch_to_other_text_partition): New declaration.
4611 * varasm.c (switch_to_other_text_partition): New function.
4612 * config/rs6000/rs6000.c (uses_TOC): Return 2 if
4613 NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
4614 (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
4615 to the other text partition before emitting LCL label and switch back
4616 after emitting the word after it.
4617
4618 2017-09-07 Richard Biener <rguenther@suse.de>
4619
4620 * passes.def (pass_split_crit_edges): Remove instance before PRE.
4621 * tree-ssa-pre.c (pass_pre::execute): Instead manually split
4622 critical edges here, after loop init.
4623 (pass_data_pre): Remove PROP_no_crit_edges flags.
4624 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
4625 for valueization of call args to avoid leaking VN_TOP.
4626 (visit_use): Assert we do not visit default defs.
4627 (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
4628 Use error_mark_node to more easily detect leaking VN_TOP.
4629 All default-defs are varying, not VN_TOP. Mark them visited.
4630 (run_scc_vn): Make code match comment.
4631
4632 2017-09-07 Michael Meissner <meissner@linux.vnet.ibm.com>
4633
4634 * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
4635 OPTION_MASK_FLOAT128_KEYWORD.
4636 (POWERPC_MASKS): Likewise.
4637 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
4638 support for the -mfloat128-type option, and make -mfloat128
4639 default on PowerPC Linux systems. Define or undefine
4640 __FLOAT128__ and __FLOAT128_HARDWARE__ for the current options.
4641 Define __float128 to be __ieee128 if IEEE 128-bit support is
4642 enabled, or undefine it.
4643 (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
4644 Delete defining __FLOAT128_TYPE__.
4645 * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
4646 -mfloat128-type option and make -mfloat128 default on PowerPC
4647 Linux systems.
4648 (TARGET_FLOAT128_TYPE): Likewise.
4649 (-mfloat128-type): Likewise.
4650 * config/rs6000/rs6000.c (rs6000_option_override_internal):
4651 Delete the -mfloat128-type option and make -mfloat128 default on
4652 PowerPC Linux systems. Always use __ieee128 to be the keyword for
4653 the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
4654 128-bit floating point is enabled. Change tests from using
4655 -mfloat128-type to -mfloat128.
4656 (rs6000_mangle_type): Use the correct mangling for the __float128
4657 type even if normal long double is restricted to 64-bits.
4658 (floatn_mode): Enable the _Float128 type by default on VSX Linux
4659 systems.
4660 * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
4661 (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
4662 (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
4663 -mfloat128-type.
4664 * doc/invoke.texi (RS/6000 and PowerPC Options): Update
4665 documentation for -mfloat128.
4666
4667 2017-09-06 Olivier Hainque <hainque@adacore.com>
4668
4669 * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
4670
4671 2017-09-06 Wish Wu <wishwu007@gmail.com>
4672 Jakub Jelinek <jakub@redhat.com>
4673
4674 * asan.c (initialize_sanitizer_builtins): Add
4675 BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
4676 BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
4677 BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
4678 BT_FN_VOID_UINT64_PTR variables.
4679 * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
4680 (BT_FN_VOID_UINT16_UINT16): Likewise.
4681 (BT_FN_VOID_UINT32_UINT32): Likewise.
4682 (BT_FN_VOID_FLOAT_FLOAT): Likewise.
4683 (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
4684 (BT_FN_VOID_UINT64_PTR): Likewise.
4685 * common.opt (flag_sanitize_coverage): New variable.
4686 (fsanitize-coverage=trace-pc): Remove.
4687 (fsanitize-coverage=): Add.
4688 * flag-types.h (enum sanitize_coverage_code): New enum.
4689 * fold-const.c (fold_range_test): Disable non-short-circuit
4690 optimization if flag_sanitize_coverage.
4691 (fold_truth_andor): Likewise.
4692 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
4693 * opts.c (COVERAGE_SANITIZER_OPT): Define.
4694 (coverage_sanitizer_opts): New array.
4695 (get_closest_sanitizer_option): Add OPTS argument, handle also
4696 OPT_fsanitize_coverage_.
4697 (parse_sanitizer_options): Adjusted to also handle
4698 OPT_fsanitize_coverage_.
4699 (common_handle_option): Add OPT_fsanitize_coverage_.
4700 * sancov.c (instrument_comparison, instrument_switch): New function.
4701 (sancov_pass): Add trace-cmp support.
4702 * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
4703 BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
4704 BUILT_IN_SANITIZER_COV_TRACE_CMP8,
4705 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
4706 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
4707 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
4708 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
4709 BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
4710 BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
4711 * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
4712
4713 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
4714
4715 * config/arm/parsecpu.awk (fatal): Note that we've encountered an
4716 error. Only quit immediately if parsing is complete.
4717 (BEGIN): Initialize fatal_err and parse_done.
4718 (begin fpu, end fpu): Check number of arguments.
4719 (begin arch, end arch): Likewise.
4720 (begin cpu, end cpu): Likewise.
4721 (cname, tune for, tune flags, architecture, fpu, option): Likewise.
4722 (optalias): Likewise.
4723
4724 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
4725
4726 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
4727 * config/arm/arm-isa.h: Delete. Move definitions to ...
4728 * arm-cpus.in: ... here. Use new feature and fgroup values.
4729 * config/arm/arm.c (arm_option_override): Use lower case for feature
4730 bit names.
4731 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
4732 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
4733 * config/arm/parsecpu.awk (END): Add new command 'isa'.
4734 (isa_pfx): Delete.
4735 (print_isa_bits_for): New function.
4736 (gen_isa): New function.
4737 (gen_comm_data): Use print_isa_bits_for.
4738 (define feature): New keyword.
4739 (define fgroup): New keyword.
4740 * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
4741 (arm-isa.h): Add rule to generate file.
4742 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
4743 case for feature bit names.
4744
4745 2017-09-06 Richard Biener <rguenther@suse.de>
4746
4747 * tree-ssa-pre.c (NECESSARY): Remove.
4748 (create_expression_by_pieces): Do not touch pass-local flags.
4749 (insert_into_preds_of_block): Likewise.
4750 (do_pre_regular_insertion): Likewise.
4751 (eliminate_insert): Likewise.
4752 (eliminate_dom_walker::before_dom_children): Likewise.
4753 (fini_eliminate): Do not look at inserted_exprs.
4754 (mark_operand_necessary): Remove.
4755 (remove_dead_inserted_code): Replace with simple work-list
4756 algorithm based on inserted_exprs and SSA uses.
4757 (pass_pre::execute): Re-order fini_eliminate and
4758 remove_dead_inserted_code.
4759
4760 2017-09-06 Olivier Hainque <hainque@adacore.com>
4761
4762 * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
4763 for VxWorks 7. Adjust surrounding comments.
4764
4765 2017-09-06 Richard Biener <rguenther@suse.de>
4766
4767 * gimple-ssa-strength-reduction.c
4768 (find_candidates_dom_walker::before_dom_children): Also allow
4769 pointer types.
4770
4771 2017-09-06 Richard Biener <rguenther@suse.de>
4772
4773 PR tree-optimization/82108
4774 * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
4775 for gap in the non-permutation SLP case.
4776
4777 2017-09-06 Martin Jambor <mjambor@suse.cz>
4778
4779 PR tree-optimization/82078
4780 * tree-sra.c (sort_and_splice_var_accesses): Move call to
4781 add_access_to_work_queue...
4782 (build_accesses_from_assign): ...here.
4783 (propagate_all_subaccesses): Make sure racc is the group
4784 representative, if there is one.
4785
4786 2017-09-06 Jakub Jelinek <jakub@redhat.com>
4787
4788 PR middle-end/82095
4789 * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
4790 NULL DECL_INITIAL.
4791
4792 2017-09-06 Richard Biener <rguenther@suse.de>
4793
4794 * gimple-ssa-strength-reduction.c
4795 (find_candidates_dom_walker::before_doom_children): Use a
4796 type and not a mode check.
4797
4798 2017-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
4799
4800 PR target/77308
4801 * config/arm/predicates.md (arm_general_adddi_operand): Create new
4802 non-vfp predicate.
4803 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
4804
4805 2017-09-05 Jeff Law <law@redhat.com>
4806
4807 PR tree-optimization/64910
4808 * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
4809 cases where we have 3 or more operands.
4810
4811 2017-09-05 Jakub Jelinek <jakub@redhat.com>
4812
4813 PR middle-end/81768
4814 * omp-low.c (lower_omp_for): Recompute tree invariant if
4815 gimple_omp_for_initial/final is ADDR_EXPR.
4816
4817 PR middle-end/81768
4818 * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
4819 into gimple val before gimplification fo the COND_EXPR.
4820
4821 2017-09-05 Aldy Hernandez <aldyh@redhat.com>
4822
4823 * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
4824 REGION_COPY argument.
4825 (thread_through_all_blocks): Remove unused argument to
4826 duplicate_thread_path.
4827
4828 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
4829 Alan Hayward <alan.hayward@arm.com>
4830 David Sherwood <david.sherwood@arm.com>
4831
4832 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
4833 Take a scalar_mode rather than a machine_mode.
4834 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
4835 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
4836 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
4837 (aarch64_gen_adjusted_ldpstp): Likewise.
4838 (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
4839
4840 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
4841 Alan Hayward <alan.hayward@arm.com>
4842 David Sherwood <david.sherwood@arm.com>
4843
4844 * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
4845 Take a scalar_int_mode instead of a machine_mode.
4846 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
4847 (aarch64_output_scalar_simd_mov_immediate): Likewise.
4848 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
4849 (aarch64_simd_attr_length_rglist): Delete.
4850 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
4851 a scalar_int_mode instead of a machine_mode.
4852 (aarch64_add_offset): Likewise.
4853 (aarch64_internal_mov_immediate): Likewise
4854 (aarch64_add_constant_internal): Likewise.
4855 (aarch64_add_constant): Likewise.
4856 (aarch64_movw_imm): Likewise.
4857 (aarch64_rtx_arith_op_extract_p): Likewise.
4858 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
4859 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
4860 Remove assert that the mode isn't a vector.
4861 (aarch64_output_scalar_simd_mov_immediate): Likewise.
4862 (aarch64_expand_mov_immediate): Update calls after above changes.
4863 (aarch64_output_casesi): Use as_a <scalar_int_mode>.
4864 (aarch64_and_bitmask_imm): Check for scalar integer modes.
4865 (aarch64_move_imm): Likewise.
4866 (aarch64_can_const_movi_rtx_p): Likewise.
4867 (aarch64_strip_extend): Likewise.
4868 (aarch64_extr_rtx_p): Likewise.
4869 (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
4870 a CONST_INT when the mode parameter is VOIDmode.
4871 (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
4872
4873 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
4874
4875 * machmode.h (bitwise_mode_for_mode): Return opt_mode.
4876 * stor-layout.c (bitwise_mode_for_mode): Likewise.
4877 (bitwise_type_for_mode): Update accordingly.
4878
4879 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
4880
4881 * stor-layout.h (mode_for_size_tree): Return an opt_mode.
4882 * stor-layout.c (mode_for_size_tree): Likewise.
4883 (mode_for_array): Update accordingly.
4884 (layout_decl): Likewise.
4885 (compute_record_mode): Likewise. Only set the mode once.
4886
4887 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
4888
4889 * target.def (get_mask_mode): Change return type to opt_mode.
4890 Expand commentary.
4891 * doc/tm.texi: Regenerate.
4892 * targhooks.h (default_get_mask_mode): Return an opt_mode.
4893 * targhooks.c (default_get_mask_mode): Likewise.
4894 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
4895 * optabs-query.c (can_vec_mask_load_store_p): Update use of
4896 targetm.get_mask_mode.
4897 * tree.c (build_truth_vector_type): Likewise.
4898
4899 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
4900
4901 * machmode.h (mode_for_vector): Return an opt_mode.
4902 * stor-layout.c (mode_for_vector): Likewise.
4903 (mode_for_int_vector): Update accordingly.
4904 (layout_type): Likewise.
4905 * config/i386/i386.c (emit_memmov): Likewise.
4906 (ix86_expand_set_or_movmem): Likewise.
4907 (ix86_expand_vector_init): Likewise.
4908 (ix86_get_mask_mode): Likewise.
4909 * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
4910 Likewise.
4911 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
4912 * expmed.c (extract_bit_field_1): Likewise.
4913 * expr.c (expand_expr_real_2): Likewise.
4914 * optabs-query.c (can_vec_perm_p): Likewise.
4915 (can_vec_mask_load_store_p): Likewise.
4916 * optabs.c (expand_vec_perm): Likewise.
4917 * targhooks.c (default_get_mask_mode): Likewise.
4918 * tree-vect-stmts.c (vectorizable_store): Likewise.
4919 (vectorizable_load): Likewise.
4920 (get_vectype_for_scalar_type_and_size): Likewise.
4921
4922 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
4923
4924 * machmode.h (mode_for_int_vector): New function.
4925 * stor-layout.c (mode_for_int_vector): Likewise.
4926 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
4927 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
4928 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
4929 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
4930 (s390_expand_vcond): Likewise.
4931
4932 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
4933
4934 * machmode.h (opt_machine_mode): New type.
4935 (opt_mode<T>): Allow construction from anything that can be
4936 converted to a T.
4937 (is_a, as_a, dyn_cast): Add overloads for opt_mode.
4938 (mode_for_size): Return an opt_machine_mode.
4939 * stor-layout.c (mode_for_size): Likewise.
4940 (mode_for_size_tree): Update call accordingly.
4941 (bitwise_mode_for_mode): Likewise.
4942 (make_fract_type): Likewise.
4943 (make_accum_type): Likewise.
4944 * caller-save.c (replace_reg_with_saved_mem): Update call
4945 accordingly.
4946 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
4947 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
4948 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
4949 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
4950 * expmed.c (extract_bit_field_1): Likewise.
4951 * reload.c (get_secondary_mem): Likewise.
4952 * varasm.c (assemble_integer): Likewise.
4953 * lower-subreg.c (simplify_subreg_concatn): Likewise. Move
4954 early-out.
4955
4956 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
4957
4958 * machmode.h (decimal_float_mode_for_size): New function.
4959 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
4960 (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
4961 (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
4962 (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
4963 (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
4964 (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
4965
4966 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
4967
4968 * builtins.c (expand_builtin_powi): Use int_mode_for_size.
4969 (get_builtin_sync_mode): Likewise.
4970 (expand_ifn_atomic_compare_exchange): Likewise.
4971 (expand_builtin_atomic_clear): Likewise.
4972 (expand_builtin_atomic_test_and_set): Likewise.
4973 (fold_builtin_atomic_always_lock_free): Likewise.
4974 * calls.c (compute_argument_addresses): Likewise.
4975 (emit_library_call_value_1): Likewise.
4976 (store_one_arg): Likewise.
4977 * combine.c (combine_instructions): Likewise.
4978 * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
4979 * config/arm/arm.c (arm_function_value): Likewise.
4980 (aapcs_allocate_return_reg): Likewise.
4981 * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
4982 * config/i386/i386.c (construct_container): Likewise.
4983 (ix86_gimplify_va_arg): Likewise.
4984 (ix86_expand_sse_cmp): Likewise.
4985 (emit_memmov): Likewise.
4986 (emit_memset): Likewise.
4987 (expand_small_movmem_or_setmem): Likewise.
4988 (ix86_expand_pextr): Likewise.
4989 (ix86_expand_pinsr): Likewise.
4990 * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
4991 * config/microblaze/microblaze.c (microblaze_block_move_straight):
4992 Likewise.
4993 * config/mips/mips.c (mips_function_value_1) Likewise.
4994 (mips_block_move_straight): Likewise.
4995 (mips_expand_ins_as_unaligned_store): Likewise.
4996 * config/powerpcspe/powerpcspe.c
4997 (rs6000_darwin64_record_arg_advance_flush): Likewise.
4998 (rs6000_darwin64_record_arg_flush): Likewise.
4999 * config/rs6000/rs6000.c
5000 (rs6000_darwin64_record_arg_advance_flush): Likewise.
5001 (rs6000_darwin64_record_arg_flush): Likewise.
5002 * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
5003 (sparc_function_value_1): Likewise.
5004 * config/spu/spu.c (adjust_operand): Likewise.
5005 (spu_emit_branch_or_set): Likewise.
5006 (arith_immediate_p): Likewise.
5007 * emit-rtl.c (gen_lowpart_common): Likewise.
5008 * expr.c (expand_expr_real_1): Likewise.
5009 * function.c (assign_parm_setup_block): Likewise.
5010 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
5011 * reload1.c (alter_reg): Likewise.
5012 * stor-layout.c (mode_for_vector): Likewise.
5013 (layout_type): Likewise.
5014
5015 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
5016
5017 * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
5018 (spu_convert_move): Likewise.
5019 * lower-subreg.c (resolve_simple_move): Likewise.
5020
5021 2017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5022
5023 PR target/81833
5024 * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
5025 define_insn to a define_expand.
5026 (altivec_vsum2sws_direct): New define_insn.
5027 (altivec_vsumsws): Convert from a define_insn to a define_expand.
5028
5029 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
5030
5031 * config/arm/arm.c (arm_option_params_internal): Improve setting of
5032 max_insns_skipped.
5033
5034 2017-09-05 H.J. Lu <hongjiu.lu@intel.com>
5035
5036 PR target/59501
5037 PR target/81624
5038 PR target/81769
5039 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
5040 realign stack if stack alignment needed is less than incoming
5041 stack boundary.
5042
5043 2017-09-05 Marek Polacek <polacek@redhat.com>
5044
5045 PR sanitizer/82072
5046 * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
5047 check earlier.
5048
5049 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
5050
5051 * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
5052
5053 2017-09-05 Richard Biener <rguenther@suse.de>
5054
5055 PR tree-optimization/82084
5056 * fold-const.c (can_native_encode_string_p): Handle wide characters.
5057
5058 2017-09-05 Richard Biener <rguenther@suse.de>
5059
5060 PR tree-optimization/82102
5061 * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
5062
5063 2017-09-05 Martin Liska <mliska@suse.cz>
5064
5065 PR tree-optimization/82032
5066 * tree-cfg.c (generate_range_test): New function.
5067 * tree-cfg.h (generate_range_test): Declared here.
5068 * tree-cfgcleanup.c (convert_single_case_switch): New function.
5069 (cleanup_control_expr_graph): Use it.
5070 * tree-switch-conversion.c (try_switch_expansion): Remove
5071 assert.
5072 (emit_case_nodes): Use generate_range_test.
5073
5074 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
5075
5076 PR target/82098
5077 * config/i386/i386.md (*<btsc><mode>_mask): Add
5078 TARGET_USE_BT to insn constraint.
5079 (*btr<mode>_mask): Ditto.
5080
5081 2017-09-04 Wilco Dijkstra <wdijkstr@arm.com>
5082
5083 * config/arm/arm.c (arm_legitimate_index_p): Add comment.
5084 (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
5085
5086 2017-09-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
5087
5088 PR target/77308
5089 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
5090 TARGET_NEON and TARGET_IWMMXT.
5091 (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
5092 TARGET_NEON and TARGET_IWMMXT.
5093 (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
5094
5095 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
5096
5097 * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
5098 (ix86_rewrite_tls_address): Ditto.
5099 * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
5100 (ix86_rewrite_tls_address_1): Ditto.
5101 (ix86_rewrite_tls_address): Ditto.
5102 * config/i386/predicates.md (tls_address_pattern): New predicate.
5103 * config/i386/i386.md (TLS address splitter): New splitter.
5104
5105 2017-09-04 Richard Biener <rguenther@suse.de>
5106
5107 PR tree-optimization/82084
5108 * fold-const.h (can_native_encode_string_p): Declare.
5109 * fold-const.c (can_native_encode_string_p): Factor out from ...
5110 (native_encode_string): ... here.
5111 * tree-vect-stmts.c (vectorizable_store): Call it to avoid
5112 vectorizing stores from constants we later cannot handle.
5113
5114 2017-09-04 Marek Polacek <polacek@redhat.com>
5115
5116 PR c/81783
5117 * doc/invoke.texi: Update -Wtautological-compare documentation.
5118
5119 2017-09-04 Jeff Law <law@redhat.com>
5120
5121 PR tree-optimization/64910
5122 * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
5123 swap the first and last operand if the last is a constant.
5124
5125 2017-09-04 Marek Polacek <polacek@redhat.com>
5126
5127 PR sanitizer/82072
5128 * convert.c (do_narrow): When sanitizing signed integer overflows,
5129 bail out for signed types.
5130 (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
5131
5132 2017-09-04 Richard Biener <rguenther@suse.de>
5133
5134 PR tree-optimization/82060
5135 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5136 Move devirtualization after stmt folding and before EH/AB/noreturn
5137 cleanup to get the stmt refs canonicalized. Use a bool instead
5138 of gimple_modified_p since that doesn't work for NOPs. Schedule
5139 NOPs generated by folding for removal.
5140
5141 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
5142 Alan Hayward <alan.hayward@arm.com>
5143 David Sherwood <david.sherwood@arm.com>
5144
5145 * coretypes.h (pad_direction): New enum.
5146 * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
5147 (FUNCTION_ARG_PADDING): Likewise.
5148 * target.def (function_arg_padding): New hook.
5149 * targhooks.h (default_function_arg_padding): Declare.
5150 * targhooks.c (default_function_arg_padding): New function.
5151 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
5152 (TARGET_FUNCTION_ARG_PADDING): ...this.
5153 * doc/tm.texi: Regenerate.
5154 * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
5155 instead of direction.
5156 (compute_argument_addresses): Likewise.
5157 (load_register_parameters): Likewise.
5158 (emit_library_call_value_1): Likewise.
5159 (store_one_arg): Use targetm.calls.function_arg_padding instead
5160 of FUNCTION_ARG_PADDING.
5161 (must_pass_in_stack_var_size_or_pad): Likewise.
5162 * expr.c (emit_group_load_1): Use pad_direction instead of direction.
5163 (emit_group_store): Likewise.
5164 (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
5165 instead of FUNCTION_ARG_PADDING.
5166 (emit_push_insn): Likewise, and propagate enum change throughout
5167 function.
5168 * function.h (direction): Delete.
5169 (locate_and_pad_arg_data::where_pad): Use pad_direction instead
5170 of direction.
5171 * function.c (assign_parm_find_stack_rtl): Likewise.
5172 (assign_parm_setup_block_p): Likewise.
5173 (assign_parm_setup_block): Likewise.
5174 (gimplify_parameters): Likewise.
5175 (locate_and_pad_parm): Use targetm.calls.function_arg_padding
5176 instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
5177 function.
5178 * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
5179 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
5180 * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
5181 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
5182 (aarch64_function_arg_padding): ...this new function.
5183 (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
5184 (TARGET_FUNCTION_ARG_PADDING): Redefine.
5185 * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
5186 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
5187 * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
5188 * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5189 (arm_pad_arg_upward): Replace with...
5190 (arm_function_arg_padding): ...this new function.
5191 * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
5192 of direction.
5193 * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
5194 * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
5195 * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5196 (ia64_hpux_function_arg_padding): Replace with...
5197 (ia64_function_arg_padding): ...this new function. Use pad_direction
5198 instead of direction. Check for TARGET_HPUX.
5199 * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
5200 * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5201 (iq2000_function_arg_padding): New function.
5202 * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
5203 * config/mips/mips.c (mips_pad_arg_upward): Replace with...
5204 (mips_function_arg_padding): ...this new function.
5205 (mips_pad_reg_upward): Update accordingly.
5206 (TARGET_FUNCTION_ARG_PADDING): Redefine.
5207 * config/mips/mips.h (PAD_VARARGS_DOWN): Use
5208 targetm.calls.function_arg_padding.
5209 (FUNCTION_ARG_PADDING): Delete.
5210 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
5211 * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
5212 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
5213 * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
5214 (nios2_block_reg_padding): Return pad_direction instead of direction.
5215 * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
5216 instead of direction.
5217 (nios2_function_arg_padding): Likewise. Make static.
5218 (TARGET_FUNCTION_ARG_PADDING): Redefine.
5219 * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
5220 (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
5221 * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
5222 * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5223 (pa_function_arg_padding): Make static. Return pad_direction instead
5224 of direction.
5225 * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
5226 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
5227 * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
5228 instead of direction. Use targetm.calls.function_arg_padding.
5229 * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
5230 * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
5231 * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
5232 * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
5233 * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
5234 Redefine.
5235 (function_arg_padding): Rename to...
5236 (rs6000_function_arg_padding): ...this. Make static. Return
5237 pad_direction instead of direction.
5238 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
5239 * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
5240 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
5241 * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
5242 instead of direction. Use targetm.calls.function_arg_padding.
5243 * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
5244 * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
5245 * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
5246 * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
5247 * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5248 (function_arg_padding): Rename to...
5249 (rs6000_function_arg_padding): ...this. Make static. Return
5250 pad_direction instead of direction.
5251 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
5252 * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
5253 * config/s390/s390.c (s390_function_arg_padding): New function.
5254 (TARGET_FUNCTION_ARG_PADDING): Redefine.
5255 * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
5256 * config/sparc/sparc-protos.h (function_arg_padding): Delete.
5257 * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5258 (function_arg_padding): Rename to...
5259 (sparc_function_arg_padding): ...this. Make static. Return
5260 pad_direction instead of direction.
5261 * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
5262 * config/spu/spu.c (spu_function_arg_padding): New function.
5263 (TARGET_FUNCTION_ARG_PADDING): Redefine.
5264 * system.h (FUNCTION_ARG_PADDING): Poison.
5265
5266 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
5267 Alan Hayward <alan.hayward@arm.com>
5268 David Sherwood <david.sherwood@arm.com>
5269
5270 * target.def (modes_tieable_p): New hook.
5271 * doc/tm.texi (MODES_TIEABLE_P): Replace with...
5272 (TARGET_MODES_TIEABLE_P): ...this.
5273 * doc/tm.texi.in: Regenerate.
5274 * hooks.h (hook_bool_mode_mode_true): Declare.
5275 * hooks.c (hook_bool_mode_mode_true): New function.
5276 * combine.c (subst): Use targetm.modes_tieable_p instead of
5277 MODES_TIEABLE_P.
5278 * dse.c (find_shift_sequence): Likewise.
5279 * expmed.c (extract_low_bits): Likewise.
5280 * lower-subreg.c: Include target.h.
5281 (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
5282 MODES_TIEABLE_P.
5283 * rtlanal.c (rtx_cost): Likewise.
5284 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
5285 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
5286 * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
5287 (TARGET_MODES_TIEABLE_P): Redefine.
5288 * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
5289 * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
5290 (TARGET_MODES_TIEABLE_P): Redefine.
5291 * config/arc/arc.h (MODES_TIEABLE_P): Delete.
5292 * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
5293 (arc_modes_tieable_p): New function.
5294 * config/arm/arm.h (MODES_TIEABLE_P): Delete.
5295 * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
5296 * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
5297 (arm_modes_tieable_p): Make static.
5298 * config/avr/avr.h (MODES_TIEABLE_P): Delete.
5299 * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
5300 * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
5301 (TARGET_MODES_TIEABLE_P): Redefine.
5302 * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
5303 * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
5304 (TARGET_MODES_TIEABLE_P): Redefine.
5305 * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
5306 * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
5307 (cr16_modes_tieable_p): New function.
5308 * config/cris/cris.h (MODES_TIEABLE_P): Delete.
5309 * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
5310 * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
5311 (TRULY_NOOP_TRUNCATION): Update comment.
5312 * config/frv/frv.h (MODES_TIEABLE_P): Delete.
5313 (TRULY_NOOP_TRUNCATION): Update comment.
5314 * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
5315 (frv_modes_tieable_p): New function.
5316 * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
5317 * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
5318 * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
5319 (TARGET_MODES_TIEABLE_P): Redefine.
5320 * config/i386/i386.h (MODES_TIEABLE_P): Delete.
5321 * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
5322 * config/i386/i386.c (ix86_modes_tieable_p): Make static.
5323 (TARGET_MODES_TIEABLE_P): Redefine.
5324 * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
5325 * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
5326 (ia64_modes_tieable_p): New function.
5327 * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
5328 * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
5329 (iq2000_modes_tieable_p): New function.
5330 * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
5331 * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
5332 (lm32_modes_tieable_p): New function.
5333 * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
5334 * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
5335 * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
5336 (TARGET_MODES_TIEABLE_P): Redefine.
5337 * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
5338 * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
5339 (m32r_modes_tieable_p): New function.
5340 * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
5341 * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
5342 (m68k_modes_tieable_p): New function.
5343 * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
5344 * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
5345 (mcore_modes_tieable_p): New function.
5346 * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
5347 * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
5348 function.
5349 (TARGET_MODES_TIEABLE_P): Redefine.
5350 * config/mips/mips.h (MODES_TIEABLE_P): Delete.
5351 * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
5352 * config/mips/mips.c (mips_modes_tieable_p): Make static.
5353 (TARGET_MODES_TIEABLE_P): Redefine.
5354 * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
5355 * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
5356 * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
5357 * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
5358 (mn10300_modes_tieable_p): ...this and make static.
5359 (TARGET_MODES_TIEABLE_P): Redefine.
5360 * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
5361 * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
5362 * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
5363 * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
5364 (msp430_modes_tieable_p): Make static.
5365 * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
5366 * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
5367 (TARGET_MODES_TIEABLE_P): Redefine.
5368 * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
5369 * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
5370 * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
5371 (TARGET_MODES_TIEABLE_P): Redefine.
5372 * config/pa/pa.h (MODES_TIEABLE_P): Delete.
5373 * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
5374 * config/pa/pa.c (pa_modes_tieable_p): Make static.
5375 (TARGET_MODES_TIEABLE_P): Redefine.
5376 * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
5377 * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
5378 (pdp11_modes_tieable_p): New function.
5379 * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
5380 * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
5381 (rs6000_modes_tieable_p): New function.
5382 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
5383 * config/powerpcspe/powerpcspe.md: Update comment.
5384 * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
5385 * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
5386 (TARGET_MODES_TIEABLE_P): Redefine.
5387 * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
5388 * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
5389 (rl78_modes_tieable_p): New function.
5390 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
5391 * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
5392 (rs6000_modes_tieable_p): New function.
5393 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
5394 * config/rs6000/rs6000.md: Update comment.
5395 * config/rx/rx.h (MODES_TIEABLE_P): Delete.
5396 * config/rx/rx.c (rx_modes_tieable_p): New function.
5397 (TARGET_MODES_TIEABLE_P): Redefine.
5398 * config/s390/s390.h (MODES_TIEABLE_P): Delete.
5399 * config/s390/s390.c (s390_modes_tieable_p): New function.
5400 (TARGET_MODES_TIEABLE_P): Redefine.
5401 * config/sh/sh.h (MODES_TIEABLE_P): Delete.
5402 * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
5403 (sh_modes_tieable_p): New function.
5404 * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
5405 * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
5406 * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
5407 (sparc_modes_tieable_p): Make static.
5408 * config/spu/spu.h (MODES_TIEABLE_P): Delete.
5409 * config/spu/spu.c (spu_modes_tieable_p): New function.
5410 (TARGET_MODES_TIEABLE_P): Redefine.
5411 * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
5412 * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
5413 (TARGET_MODES_TIEABLE_P): Redefine.
5414 * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
5415 * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
5416 * config/v850/v850.h (MODES_TIEABLE_P): Delete.
5417 * config/v850/v850.c (v850_modes_tieable_p): New function.
5418 (TARGET_MODES_TIEABLE_P): Redefine.
5419 * config/vax/vax.h (MODES_TIEABLE_P): Delete.
5420 * config/visium/visium.h (MODES_TIEABLE_P): Delete.
5421 * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
5422 (visium_modes_tieable_p): New function.
5423 * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
5424 * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
5425 (xtensa_modes_tieable_p): New function.
5426 * system.h (MODES_TIEABLE_P): Poison.
5427
5428 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
5429 Alan Hayward <alan.hayward@arm.com>
5430 David Sherwood <david.sherwood@arm.com>
5431
5432 * target.def (hard_regno_mode_ok): New hook.
5433 * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
5434 (TARGET_HARD_REGNO_MODE_OK): ...this.
5435 * doc/tm.texi.in: Regenerate.
5436 * hooks.h (hook_bool_uint_mode_true): Declare.
5437 * hooks.c (hook_bool_uint_mode_true): New function.
5438 * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
5439 HARD_REGNO_MODE_OK.
5440 * genpreds.c (write_insn_preds_c): Add an include of target.h.
5441 * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
5442 instead of HARD_REGNO_MODE_OK.
5443 * caller-save.c: Include target.h.
5444 (reg_save_code): Use targetm.hard_regno_mode_ok instead of
5445 HARD_REGNO_MODE_OK.
5446 * combine.c (can_combine_p): Likewise.
5447 (combinable_i3pat): Likewise.
5448 (can_change_dest_mode): Likewise.
5449 * expr.c (init_expr_target): Likewise.
5450 (convert_move): Likewise.
5451 (convert_modes): Likewise.
5452 * ira.c (setup_prohibited_class_mode_regs): Likewise.
5453 (setup_prohibited_mode_move_regs): Likewise.
5454 * ira.h (target_ira): Likewise.
5455 * lra-assigns.c (find_hard_regno_for_1): Likewise.
5456 * lra-constraints.c (process_alt_operands): Likewise.
5457 (split_reg): Likewise.
5458 * recog.c (peep2_find_free_register): Likewise.
5459 * ree.c (combine_reaching_defs): Likewise.
5460 * regcprop.c (maybe_mode_change): Likewise.
5461 * reginfo.c (init_reg_sets_1): Likewise.
5462 (choose_hard_reg_mode): Likewise.
5463 (simplifiable_subregs): Likewise.
5464 * regrename.c (check_new_reg_p): Likewise.
5465 * reload.c (find_valid_class): Likewise.
5466 (find_valid_class_1): Likewise.
5467 (reload_inner_reg_of_subreg): Likewise.
5468 (push_reload): Likewise.
5469 (combine_reloads): Likewise.
5470 (find_dummy_reload): Likewise.
5471 (find_reloads): Likewise.
5472 * reload1.c (find_reg): Likewise.
5473 (set_reload_reg): Likewise.
5474 (allocate_reload_reg): Likewise.
5475 (choose_reload_regs): Likewise.
5476 (reload_adjust_reg_for_temp): Likewise.
5477 * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
5478 (simplify_subreg_regno): Likewise.
5479 * sel-sched.c (init_regs_for_mode): Likewise.
5480 * varasm.c (make_decl_rtl): Likewise.
5481 * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
5482 (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
5483 HARD_REGNO_MODE_OK.
5484 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
5485 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
5486 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5487 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
5488 * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
5489 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5490 * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
5491 (arc_mode_class): Delete.
5492 (HARD_REGNO_MODE_OK): Delete.
5493 * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5494 (arc_hard_regno_mode_ok): Rename old array to...
5495 (arc_hard_regno_mode_ok_modes): ...this.
5496 (arc_conditional_register_usage): Update accordingly.
5497 (arc_mode_class): Make static.
5498 (arc_hard_regno_mode_ok): New function.
5499 * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
5500 * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
5501 * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5502 (arm_hard_regno_mode_ok): Make static.
5503 * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
5504 HARD_REGNO_MODE_OK.
5505 * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
5506 * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
5507 * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
5508 return a bool.
5509 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5510 * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
5511 * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
5512 * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
5513 (bfin_hard_regno_mode_ok): ...this. Make static and return a bool.
5514 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5515 * config/bfin/predicates.md (valid_reg_operand): Use
5516 targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
5517 * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
5518 * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
5519 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5520 * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
5521 * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
5522 * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5523 (cr16_hard_regno_mode_ok): Make static and return a bool.
5524 * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
5525 * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5526 (cris_hard_regno_mode_ok): New function.
5527 * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
5528 (epiphany_mode_class): Delete.
5529 (HARD_REGNO_MODE_OK): Delete.
5530 * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
5531 * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5532 (hard_regno_mode_ok): Rename to...
5533 (epiphany_hard_regno_mode_ok): ...this. Make static and return a bool.
5534 * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
5535 * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
5536 HARD_REGNO_MODE_OK.
5537 * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
5538 * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
5539 * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5540 (frv_hard_regno_mode_ok): Make static and return a bool.
5541 * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
5542 HARD_REGNO_MODE_OK.
5543 * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
5544 * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
5545 * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
5546 * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
5547 and return a bool.
5548 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5549 * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
5550 * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
5551 * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
5552 return a bool.
5553 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5554 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
5555 * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5556 (ia64_hard_regno_mode_ok): New function.
5557 * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
5558 * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5559 (iq2000_hard_regno_mode_ok): New function.
5560 * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
5561 * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5562 (lm32_hard_regno_mode_ok): New function.
5563 * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
5564 * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
5565 * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
5566 instead of HARD_REGNO_MODE_OK.
5567 (m32c_hard_regno_ok): Rename to...
5568 (m32c_hard_regno_mode_ok): ...this. Make static and return a bool.
5569 (m32c_cannot_change_mode_class): Update accordingly.
5570 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5571 * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
5572 (m32r_mode_class): Delete.
5573 (HARD_REGNO_MODE_OK): Delete.
5574 * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5575 (m32r_hard_regno_mode_ok): Rename to...
5576 (m32r_hard_regno_modes): ...this.
5577 (m32r_mode_class): Make static.
5578 (m32r_hard_regno_mode_ok): New function.
5579 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
5580 * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
5581 * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5582 (m68k_hard_regno_mode_ok): Make static.
5583 * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
5584 * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5585 (mcore_hard_regno_mode_ok): New function.
5586 * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
5587 (HARD_REGNO_MODE_OK): Delete.
5588 * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
5589 Rename to...
5590 (microblaze_hard_regno_mode_ok_p): ...this and make static.
5591 (microblaze_hard_regno_mode_ok): New function.
5592 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5593 * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
5594 (mips_hard_regno_mode_ok): Delete.
5595 * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
5596 (mips_hard_regno_mode_ok_p): ...this and make static.
5597 (mips_hard_regno_mode_ok_p): Rename to...
5598 (mips_hard_regno_mode_ok_uncached): ...this.
5599 (mips_hard_regno_mode_ok): New function.
5600 (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
5601 of HARD_REGNO_MODE_OK.
5602 (mips_option_override): Update after above name changes.
5603 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5604 * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
5605 * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
5606 * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
5607 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
5608 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5609 * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
5610 * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
5611 * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
5612 * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5613 (msp430_hard_regno_mode_ok): Make static and return a bool.
5614 * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
5615 * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
5616 * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
5617 and return a bool.
5618 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5619 * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
5620 * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
5621 * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
5622 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
5623 (PA_HARD_REGNO_MODE_OK): ...this
5624 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
5625 (PA_HARD_REGNO_MODE_OK): ...this.
5626 * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5627 (pa_hard_regno_mode_ok): New function.
5628 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
5629 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5630 (pdp11_hard_regno_mode_ok): New function.
5631 * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
5632 * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
5633 Delete.
5634 * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
5635 Make static.
5636 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5637 (rs6000_hard_regno_mode_ok): Rename to...
5638 (rs6000_hard_regno_mode_ok_uncached): ...this.
5639 (rs6000_init_hard_regno_mode_ok): Update accordingly.
5640 (rs6000_hard_regno_mode_ok): New function.
5641 * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
5642 * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
5643 * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
5644 (riscv_hard_regno_mode_ok): ...this and make static.
5645 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5646 * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
5647 * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
5648 * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5649 (rl78_hard_regno_mode_ok): Make static and return bool.
5650 * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
5651 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5652 Delete.
5653 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
5654 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5655 (rs6000_hard_regno_mode_ok): Rename to...
5656 (rs6000_hard_regno_mode_ok_uncached): ...this.
5657 (rs6000_init_hard_regno_mode_ok): Update accordingly.
5658 (rs6000_hard_regno_mode_ok): New function.
5659 * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
5660 * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
5661 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5662 * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
5663 * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
5664 * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
5665 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5666 * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
5667 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
5668 * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5669 (sh_hard_regno_mode_ok): Make static.
5670 * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
5671 instead of HARD_REGNO_MODE_OK.
5672 * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
5673 (sparc_mode_class): Delete.
5674 (HARD_REGNO_MODE_OK): Delete.
5675 * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5676 (hard_regno_mode_classes): Make static.
5677 (sparc_mode_class): Likewise.
5678 (sparc_hard_regno_mode_ok): New function.
5679 * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
5680 * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
5681 * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
5682 function.
5683 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5684 * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
5685 * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
5686 * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
5687 * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
5688 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5689 * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
5690 * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
5691 * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
5692 (visium_hard_regno_mode_ok): New function.
5693 * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
5694 instead of HARD_REGNO_MODE_OK.
5695 * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
5696 (HARD_REGNO_MODE_OK): Delete.
5697 * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
5698 (xtensa_hard_regno_mode_ok_p): ...this and make static.
5699 (xtensa_option_override): Update accordingly.
5700 (TARGET_HARD_REGNO_MODE_OK): Redefine.
5701 (xtensa_hard_regno_mode_ok): New function.
5702 * system.h (HARD_REGNO_MODE_OK): Poison.
5703
5704 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
5705 Alan Hayward <alan.hayward@arm.com>
5706 David Sherwood <david.sherwood@arm.com>
5707
5708 * target.def (hard_regno_call_part_clobbered): New hook.
5709 * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
5710 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
5711 * doc/tm.texi: Regenerate.
5712 * hooks.h (hook_bool_uint_mode_false): Declare.
5713 * hooks.c (hook_bool_uint_mode_false): New function.
5714 * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5715 * cselib.c (cselib_process_insn): Use
5716 targetm.hard_regno_call_part_clobbered instead of
5717 HARD_REGNO_CALL_PART_CLOBBERED.
5718 * ira-conflicts.c (ira_build_conflicts): Likewise.
5719 * ira-costs.c (ira_tune_allocno_costs): Likewise.
5720 * lra-constraints.c (need_for_call_save_p): Likewise.
5721 * lra-lives.c: Include target.h.
5722 (check_pseudos_live_through_calls): Use
5723 targetm.hard_regno_call_part_clobbered instead of
5724 HARD_REGNO_CALL_PART_CLOBBERED.
5725 * regcprop.c: Include target.h.
5726 (copyprop_hardreg_forward_1): Use
5727 targetm.hard_regno_call_part_clobbered instead of
5728 HARD_REGNO_CALL_PART_CLOBBERED.
5729 * reginfo.c (choose_hard_reg_mode): Likewise.
5730 * regrename.c (check_new_reg_p): Likewise.
5731 * reload.c (find_equiv_reg): Likewise.
5732 * reload1.c (emit_reload_insns): Likewise.
5733 * sched-deps.c (deps_analyze_insn): Likewise.
5734 * sel-sched.c (init_regs_for_mode): Likewise.
5735 (mark_unavailable_hard_regs): Likewise.
5736 * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
5737 * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5738 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
5739 New function.
5740 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5741 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5742 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
5743 Delete.
5744 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
5745 and return a bool.
5746 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5747 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5748 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
5749 function.
5750 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5751 * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5752 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
5753 function.
5754 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5755 * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
5756 Delete.
5757 * config/powerpcspe/powerpcspe.c
5758 (rs6000_hard_regno_call_part_clobbered): New function.
5759 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5760 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5761 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
5762 New function.
5763 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5764 * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5765 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
5766 function.
5767 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
5768 * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
5769 * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
5770
5771 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
5772 Alan Hayward <alan.hayward@arm.com>
5773 David Sherwood <david.sherwood@arm.com>
5774
5775 * rtl.h (subreg_memory_offset): Declare.
5776 * emit-rtl.c (subreg_memory_offset): New function.
5777 * expmed.c (store_bit_field_1): Use it.
5778 * expr.c (undefined_operand_subword_p): Likewise.
5779 * simplify-rtx.c (simplify_subreg): Likewise.
5780
5781 2017-09-04 Alexander Monakov <amonakov@ispras.ru>
5782
5783 PR rtl-optimization/57448
5784 PR target/67458
5785 PR target/81316
5786 * optabs.c (expand_atomic_load): Place compiler memory barriers if
5787 using atomic_load pattern.
5788 (expand_atomic_store): Likewise.
5789
5790 2017-09-04 Jakub Jelinek <jakub@redhat.com>
5791
5792 PR sanitizer/81981
5793 * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
5794 and UBSAN_BOUNDS internal calls. Clean up IFN_UBSAN_OBJECT_SIZE
5795 handling. Use replace_call_with_value with NULL instead of
5796 gsi_replace, unlink_stmt_vdef and release_defs.
5797
5798 * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
5799 instead of tab.
5800
5801 * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
5802
5803 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
5804
5805 PR bootstrap/82045
5806 * rtl.h (emit_library_call_value_1): Declare.
5807 (emit_library_call): Replace declaration with a series of overloads.
5808 Remove the parameter count argument.
5809 (emit_library_call_value): Likewise.
5810 * calls.c (emit_library_call_value_1): Make global. Replace varargs
5811 with an "rtx_mode_t *".
5812 (emit_library_call_value): Delete.
5813 (emit_library_call): Likewise.
5814 * asan.c (asan_emit_stack_protection): Update calls accordingly.
5815 (asan_emit_allocas_unpoison): Likewise.
5816 * builtins.c (expand_builtin_powi): Likewise.
5817 (expand_asan_emit_allocas_unpoison): Likewise.
5818 * cfgexpand.c (expand_main_function): Likewise.
5819 * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
5820 * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
5821 * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
5822 * config/arm/arm.c (arm_trampoline_init): Likewise.
5823 (arm_call_tls_get_addr): Likewise.
5824 (arm_expand_divmod_libfunc): Likewise.
5825 * config/bfin/bfin.md (umulsi3_highpart): Likewise.
5826 (smulsi3_highpart): Likewise.
5827 * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
5828 (c6x_expand_compare): Likewise.
5829 (c6x_expand_movmem): Likewise.
5830 * config/frv/frv.c (frv_trampoline_init): Likewise.
5831 * config/i386/i386.c (ix86_trampoline_init): Likewise.
5832 (ix86_expand_divmod_libfunc): Likewise.
5833 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
5834 (ia64_expand_compare): Likewise.
5835 (ia64_profile_hook): Likewise.
5836 * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
5837 (nonlocal_goto): Likewise.
5838 (restore_stack_nonlocal): Likewise.
5839 * config/m32r/m32r.c (block_move_call): Likewise.
5840 (m32r_trampoline_init): Likewise.
5841 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
5842 * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
5843 (m68k_call_m68k_read_tp): Likewise.
5844 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
5845 (microblaze_expand_divide): Likewise.
5846 * config/mips/mips.h (mips_args): Likewise.
5847 * config/mips/sdemtk.h (mips_sync_icache): Likewise.
5848 (MIPS_ICACHE_SYNC): Likewise.
5849 * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
5850 (nios2_trampoline_init): Likewise.
5851 * config/pa/pa.c (hppa_tls_call): Likewise.
5852 (pa_trampoline_init): Likewise.
5853 * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
5854 * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
5855 (expand_strn_compare): Likewise.
5856 (rs6000_generate_compare): Likewise.
5857 (rs6000_expand_float128_convert): Likewise.
5858 (output_profile_hook): Likewise.
5859 (rs6000_trampoline_init): Likewise.
5860 * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
5861 * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
5862 * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
5863 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
5864 (rs6000_generate_compare): Likewise.
5865 (rs6000_expand_float128_convert): Likewise.
5866 (output_profile_hook): Likewise.
5867 (rs6000_trampoline_init): Likewise.
5868 * config/rs6000/rs6000.md (neg<mode>2): Likewise.
5869 * config/sh/sh.c (sh_trampoline_init): Likewise.
5870 * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
5871 (sparc_emit_float_lib_cmp): Likewise.
5872 (sparc32_initialize_trampoline): Likewise.
5873 (sparc64_initialize_trampoline): Likewise.
5874 (sparc_profile_hook): Likewise.
5875 * config/spu/spu.c (ea_load_store): Likewise.
5876 * config/spu/spu.md (floatunssidf2): Likewise.
5877 * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
5878 * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
5879 * config/visium/visium.c (expand_block_move_4): Likewise.
5880 (expand_block_move_2): Likewise.
5881 (expand_block_move_1): Likewise.
5882 (expand_block_set_4): Likewise.
5883 (expand_block_set_2): Likewise.
5884 (expand_block_set_1): Likewise.
5885 (visium_trampoline_init): Likewise.
5886 (visium_profile_hook): Likewise.
5887 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
5888 (xtensa_setup_frame_addresses): Likewise.
5889 (xtensa_trampoline_init): Likewise.
5890 * except.c (sjlj_emit_function_enter): Likewise.
5891 (sjlj_emit_function_exit): Likewise.
5892 * explow.c (allocate_dynamic_stack_space): Likewise.
5893 (probe_stack_range): Likewise.
5894 * expr.c (convert_mode_scalar): Likewise.
5895 * optabs.c (expand_binop): Likewise.
5896 (expand_twoval_binop_libfunc): Likewise.
5897 (expand_unop): Likewise.
5898 (prepare_cmp_insn): Likewise.
5899 (prepare_float_lib_cmp): Likewise.
5900 (expand_float): Likewise.
5901 (expand_fix): Likewise.
5902 (expand_fixed_convert): Likewise.
5903 (maybe_emit_sync_lock_test_and_set): Likewise.
5904 (expand_atomic_compare_and_swap): Likewise.
5905 (expand_mem_thread_fence): Likewise.
5906 (expand_atomic_fetch_op): Likewise.
5907
5908 2017-09-03 Gerald Pfeifer <gerald@pfeifer.com>
5909
5910 * doc/generic.texi (OpenACC): Adjust URL.
5911 * doc/invoke.texi (C Dialect Options): Ditto.
5912
5913 2017-09-03 Uros Bizjak <ubizjak@gmail.com>
5914
5915 * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
5916 predicate for operand 1. Add (m,<S>) constraint.
5917 (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
5918 Prevent memory operand 1 with register operand 2.
5919
5920 2017-09-01 Segher Boessenkool <segher@kernel.crashing.org>
5921
5922 PR rtl-optimization/82024
5923 * combine.c (try_combine): If the combination result is a PARALLEL,
5924 and we only need to retain the SET in there that would be placed
5925 at I2, check that we can place that at I3 instead, before doing so.
5926
5927 2017-09-01 Jakub Jelinek <jakub@redhat.com>
5928
5929 PR target/81766
5930 * config/i386/i386.c (ix86_init_large_pic_reg): Return label
5931 instead of void.
5932 (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
5933 if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
5934 and label.
5935
5936 2017-09-01 Joerg Sonnenberger <joerg@bec.de>
5937 Jeff Law <law@redhat.com>
5938
5939 * varasm.c (bss_initializer_p): Do not put constants into .bss
5940 (categorize_decl_for_section): Handle bss_initializer_p returning
5941 false when DECL_INITIAL is NULL.
5942
5943 2017-09-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5944
5945 PR target/82012
5946 * config/s390/s390.c (s390_can_inline_p): New function.
5947
5948 2017-09-01 Jeff Law <law@redhat.com>
5949
5950 PR tree-optimization/82052
5951 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
5952 Always initialize the returned slot after a hash table miss
5953 when INSERT is true.
5954
5955 2017-09-01 Alexander Monakov <amonakov@ispras.ru>
5956
5957 * config/s390/s390.md (mem_signal_fence): Remove.
5958 * doc/md.texi (mem_signal_fence): Remove.
5959 * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
5960 Update comments.
5961 * target-insns.def (mem_signal_fence): Remove.
5962
5963 2017-09-01 Jakub Jelinek <jakub@redhat.com>
5964
5965 PR sanitizer/81902
5966 * doc/invoke.texi: Document -fsanitize=pointer-overflow.
5967
5968 PR sanitizer/81923
5969 * asan.c (create_odr_indicator): Strip name encoding from assembler
5970 name before appending it after __odr_asan_.
5971
5972 2017-09-01 Martin Liska <mliska@suse.cz>
5973
5974 PR tree-optimization/82059
5975 * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
5976 frequency only when an edge is redirected.
5977
5978 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
5979
5980 * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
5981 * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
5982 (arc_conditional_register_usage): Remove ARC600 lp_count
5983 exception.
5984 (arc_file_start): Emit Tag_ARC_CPU_variation.
5985 (arc_can_use_doloop_p): New conditions to use ZOLs.
5986 (hwloop_fail): New function.
5987 (hwloop_optimize): Likewise.
5988 (hwloop_pattern_reg): Likewise.
5989 (arc_doloop_hooks): New struct, to be used with reorg_loops.
5990 (arc_reorg_loops): New function, calls reorg_loops.
5991 (arc_reorg): Call arc_reorg_loops. Remove old ZOL handling.
5992 (arc600_corereg_hazard): Remove ZOL checking, case handled by
5993 hwloop_optimize.
5994 (arc_loop_hazard): Remove function, functionality moved into
5995 hwloop_optimize.
5996 (arc_hazard): Remove arc_loop_hazard call.
5997 (arc_adjust_insn_length): Remove ZOL handling, functionality moved
5998 into hwloop_optimize.
5999 (arc_label_align): Remove ZOL handling.
6000 * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
6001 * config/arc/arc.md (doloop_begin): Remove pattern.
6002 (doloop_begin_i): Likewise.
6003 (doloop_end_i): Likewise.
6004 (doloop_fallback): Likewise.
6005 (doloop_fallback_m): Likewise.
6006 (doloop_end): Reimplement expand.
6007 (arc_lp): New pattern for LP instruction.
6008 (loop_end): New pattern.
6009 (loop_fail): Likewise.
6010 (decrement_and_branch_until_zero): Likewise.
6011 * config/arc/arc.opt (mlpc-width): New option.
6012 * doc/invoke.texi (mlpc-width): Document option.
6013
6014 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
6015
6016 * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
6017 (arc_ccfsm_advance): Fix checking for delay slots.
6018 (arc_reorg): Add rtl dump after each call to arc_ifcvt.
6019
6020 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
6021
6022 * config/arc/arc.md (movqi_insn): Add stores to save constant long
6023 immediates.
6024 (movhi_insn): Update store instruction constraint which are saving
6025 6-bit short immediates.
6026 (movsi_insn): Consider also short scaled load operations.
6027 (zero_extendhisi2_i): Use Usd constraint instead of T.
6028 (extendhisi2_i): Add q constraint.
6029 (arc_clzsi2): Add type and length attributes.
6030 (arc_ctzsi2): Likewise.
6031 * config/arc/constraints.md (Usc): Update constraint, the
6032 assembler can parse two relocations for a single instruction.
6033
6034 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
6035
6036 * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
6037 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
6038
6039 2017-08-31 Olivier Hainque <hainque@adacore.com>
6040
6041 * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
6042 match as powerpc-wrs-vxworks*.
6043
6044 2017-08-31 James Greenhalgh <james.greenhalgh@arm.com>
6045
6046 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
6047 register constraint for by-element operand.
6048 (aarch64_mls_elt_merge<mode>): Likewise.
6049
6050 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
6051
6052 * config/arc/arc.c (arc_can_follow_jump): Check for short
6053 branches.
6054
6055 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
6056
6057 * config.gcc: Use g.opt for arc.
6058 * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
6059 functionality moved to ...
6060 (legitimate_scaled_address_p): New function, ...here.
6061 (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
6062 (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
6063 (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
6064 condition.
6065 (arc_override_options): Handle G option.
6066 (arc_output_pic_addr_const): Correct function definition.
6067 (arc_legitimate_address_p): Use legitimate_scaled_address_p.
6068 (arc_decl_anon_ns_mem_p): Delete.
6069 (arc_in_small_data_p): Overhaul this function to take into
6070 consideration the value given via G option.
6071 (arc_rewrite_small_data_1): Renamed and corrected old
6072 arc_rewrite_small_data function.
6073 (arc_rewrite_small_data): New function.
6074 (small_data_pattern): Don't use pic_offset_table_rtx.
6075 * config/arc/arc.h (CC1_SPEC): Recognize G option.
6076 * config/arc/simdext.md (movmisalignv2hi): Use
6077 prepare_move_operands function.
6078 (mov*): Likewise.
6079 (movmisalign*): Likewise.
6080 * doc/invoke.texi (ARC options): Document -G option.
6081
6082 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
6083
6084 * config/arc/arc-protos.h (compact_sda_memory_operand): Update
6085 prototype.
6086 * config/arc/arc.c (arc_print_operand): Output scalled address for
6087 sdata whenever is possible.
6088 (arc_in_small_data_p): Allow sdata for 64bit datum when double
6089 load/stores are available.
6090 (compact_sda_memory_operand): Check for the alignment required by
6091 code density instructions.
6092 * config/arc/arc.md (movsi_insn): Use newly introduced Us0
6093 constraint.
6094 * config/arc/constraints.md (Usd): Update constraint.
6095 (Us0): New constraint.
6096 (Usc): Update constraint.
6097
6098 2017-08-31 Richard Biener <rguenther@suse.de>
6099
6100 PR middle-end/82054
6101 * dwarf2out.c (dwarf2out_early_global_decl): Process each
6102 function only once.
6103
6104 2017-08-31 Tamar Christina <tamar.christina@arm.com>
6105
6106 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
6107 Resize type_signature.
6108
6109 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
6110 Alan Hayward <alan.hayward@arm.com>
6111 David Sherwood <david.sherwood@arm.com>
6112
6113 * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
6114 subregs whose inner modes can be stored in GPRs.
6115 (aarch64_classify_index): Likewise.
6116
6117 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
6118 Alan Hayward <alan.hayward@arm.com>
6119 David Sherwood <david.sherwood@arm.com>
6120
6121 * config/aarch64/iterators.md (V_cmp_result): Rename to...
6122 (V_INT_EQUIV): ...this.
6123 (v_cmp_result): Rename to...
6124 (v_int_equiv): ...this.
6125 * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
6126 * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
6127 (copysign<mode>3): Likewise.
6128 (aarch64_simd_bsl<mode>_internal): Likewise.
6129 (aarch64_simd_bsl<mode>): Likewise.
6130 (vec_cmp<mode><mode>): Likewise.
6131 (vcond<mode><mode>): Likewise.
6132 (vcond<v_cmp_mixed><mode>): Likewise.
6133 (vcondu<mode><v_cmp_mixed>): Likewise.
6134 (aarch64_cm<optab><mode>): Likewise.
6135 (aarch64_cmtst<mode>): Likewise.
6136 (aarch64_fac<optab><mode>): Likewise.
6137 (vec_perm_const<mode>): Likewise.
6138 (vcond_mask_<mode><v_cmp_result>): Rename to...
6139 (vcond_mask_<mode><v_int_equiv>): ...this.
6140 (vec_cmp<mode><v_cmp_result>): Rename to...
6141 (vec_cmp<mode><v_int_equiv>): ...this.
6142
6143 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
6144 Alan Hayward <alan.hayward@arm.com>
6145 David Sherwood <david.sherwood@arm.com>
6146
6147 * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
6148 vector modes.
6149 * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
6150 * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
6151 (UNSPEC_LD4_DREG): New unspecs.
6152 * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
6153 (aarch64_ld2<mode>_dreg_be): Replace with...
6154 (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
6155 unspec.
6156 (aarch64_ld3<mode>_dreg_le)
6157 (aarch64_ld3<mode>_dreg_be): Replace with...
6158 (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
6159 unspec.
6160 (aarch64_ld4<mode>_dreg_le)
6161 (aarch64_ld4<mode>_dreg_be): Replace with...
6162 (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
6163 unspec.
6164
6165 2017-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6166
6167 PR tree-optimization/81987
6168 * gimple-ssa-strength-reduction.c (insert_initializers): Don't
6169 insert an initializer in a location not dominated by the stride
6170 definition.
6171
6172 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
6173
6174 * tree-eh.c (lower_try_finally_switch): Set the location of the finally
6175 on the entire header of the finally block in the fallthru case.
6176
6177 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
6178
6179 * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
6180
6181 2017-08-30 Pat Haugen <pthaugen@us.ibm.com>
6182
6183 * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
6184 rs6000_emit_move_from_cr and call renamed function.
6185 (rs6000_emit_prologue): Call renamed functions.
6186 * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
6187 movesi_from_cr, remove volatile CRs.
6188
6189 2017-08-30 Jon Beniston <jon@beniston.com>
6190 Richard Biener <rguenther@suse.de>
6191
6192 * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
6193 of VECTOR_MODE_P check.
6194 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
6195 element vector types.
6196
6197 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6198
6199 * df.h (df_read_modify_subreg_p): Remove in favor of...
6200 * rtl.h (read_modify_subreg_p): ...this new function. Take a
6201 const_rtx instead of an rtx.
6202 * cprop.c (local_cprop_find_used_regs): Update accordingly.
6203 * df-problems.c (df_word_lr_mark_ref): Likewise.
6204 * ira-lives.c (mark_pseudo_reg_live): Likewise.
6205 (mark_pseudo_reg_dead): Likewise.
6206 (mark_ref_dead): Likewise.
6207 * reginfo.c (init_subregs_of_mode): Likewise.
6208 * sched-deps.c (sched_analyze_1): Likewise.
6209 * df-scan.c (df_def_record_1): Likewise.
6210 (df_uses_record): Likewise.
6211 (df_read_modify_subreg_p): Remove in favor of...
6212 * rtlanal.c (read_modify_subreg_p): ...this new function. Take a
6213 const_rtx instead of an rtx.
6214
6215 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6216 Alan Hayward <alan.hayward@arm.com>
6217 David Sherwood <david.sherwood@arm.com>
6218
6219 * rtl.h (partial_subreg_p): New function.
6220 * caller-save.c (save_call_clobbered_regs): Use it.
6221 * calls.c (expand_call): Likewise.
6222 * combine.c (combinable_i3pat): Likewise.
6223 (simplify_set): Likewise.
6224 (make_extraction): Likewise.
6225 (make_compound_operation_int): Likewise.
6226 (gen_lowpart_or_truncate): Likewise.
6227 (force_to_mode): Likewise.
6228 (make_field_assignment): Likewise.
6229 (reg_truncated_to_mode): Likewise.
6230 (record_truncated_value): Likewise.
6231 (move_deaths): Likewise.
6232 * cse.c (record_jump_cond): Likewise.
6233 (cse_insn): Likewise.
6234 * cselib.c (cselib_lookup_1): Likewise.
6235 * expmed.c (extract_bit_field_using_extv): Likewise.
6236 * function.c (assign_parm_setup_reg): Likewise.
6237 * ifcvt.c (noce_convert_multiple_sets): Likewise.
6238 * ira-build.c (create_insn_allocnos): Likewise.
6239 * lra-coalesce.c (merge_pseudos): Likewise.
6240 * lra-constraints.c (match_reload): Likewise.
6241 (simplify_operand_subreg): Likewise.
6242 (curr_insn_transform): Likewise.
6243 * lra-lives.c (process_bb_lives): Likewise.
6244 * lra.c (new_insn_reg): Likewise.
6245 (lra_substitute_pseudo): Likewise.
6246 * regcprop.c (mode_change_ok): Likewise.
6247 (maybe_mode_change): Likewise.
6248 (copyprop_hardreg_forward_1): Likewise.
6249 * reload.c (push_reload): Likewise.
6250 (find_reloads): Likewise.
6251 (find_reloads_subreg_address): Likewise.
6252 * reload1.c (alter_reg): Likewise.
6253 (eliminate_regs_1): Likewise.
6254 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
6255
6256 2017-08-30 David Edelsohn <dje.gcc@gmail.com>
6257
6258 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
6259 back to if statements, including unpack.
6260
6261 2017-08-30 Martin Liska <mliska@suse.cz>
6262
6263 PR inline-asm/82001
6264 * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
6265 Rename to ...
6266 (func_checker::compare_asm_inputs_outputs): ... this function.
6267 (func_checker::compare_gimple_asm): Use the function to compare
6268 also ASM constrains.
6269 * ipa-icf-gimple.h: Rename the function.
6270
6271 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6272 Alan Hayward <alan.hayward@arm.com>
6273 David Sherwood <david.sherwood@arm.com>
6274
6275 * coretypes.h (complex_mode): New type.
6276 * gdbhooks.py (build_pretty_printer): Handle it.
6277 * machmode.h (complex_mode): New class.
6278 (complex_mode::includes_p): New function.
6279 (is_complex_int_mode): Likewise.
6280 (is_complex_float_mode): Likewise.
6281 * genmodes.c (get_mode_class): Handle complex mode classes.
6282 * function.c (expand_function_end): Use is_complex_int_mode.
6283
6284 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6285 Alan Hayward <alan.hayward@arm.com>
6286 David Sherwood <david.sherwood@arm.com>
6287
6288 * coretypes.h (scalar_mode_pod): New typedef.
6289 * gdbhooks.py (build_pretty_printer): Handle it.
6290 * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
6291 * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
6292 * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
6293 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
6294 as_a <scalar_mode>.
6295
6296 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6297 Alan Hayward <alan.hayward@arm.com>
6298 David Sherwood <david.sherwood@arm.com>
6299
6300 * machmode.h (mode_for_vector): Take a scalar_mode instead
6301 of a machine_mode.
6302 * stor-layout.c (mode_for_vector): Likewise.
6303 * explow.c (promote_mode): Use as_a <scalar_mode>.
6304 * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
6305
6306 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6307 Alan Hayward <alan.hayward@arm.com>
6308 David Sherwood <david.sherwood@arm.com>
6309
6310 * target.def (preferred_simd_mode): Take a scalar_mode
6311 instead of a machine_mode.
6312 * targhooks.h (default_preferred_simd_mode): Likewise.
6313 * targhooks.c (default_preferred_simd_mode): Likewise.
6314 * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
6315 * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
6316 * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
6317 * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
6318 * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
6319 * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
6320 * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
6321 * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
6322 Likewise.
6323 * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
6324 * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
6325 * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
6326 * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
6327 (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
6328 * doc/tm.texi: Regenerate.
6329 * optabs-query.c (can_vec_mask_load_store_p): Return false for
6330 non-scalar modes.
6331
6332 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6333 Alan Hayward <alan.hayward@arm.com>
6334 David Sherwood <david.sherwood@arm.com>
6335
6336 * target.def (scalar_mode_supported_p): Take a scalar_mode
6337 instead of a machine_mode.
6338 * targhooks.h (default_scalar_mode_supported_p): Likewise.
6339 * targhooks.c (default_scalar_mode_supported_p): Likewise.
6340 * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
6341 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
6342 * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
6343 * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
6344 * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
6345 * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
6346 * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
6347 * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
6348 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
6349 * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
6350 * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
6351 * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
6352 Likewise.
6353 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
6354 * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
6355 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
6356 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
6357 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
6358 Likewise.
6359 * doc/tm.texi: Regenerate.
6360
6361 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6362 Alan Hayward <alan.hayward@arm.com>
6363 David Sherwood <david.sherwood@arm.com>
6364
6365 * coretypes.h (opt_scalar_mode): New typedef.
6366 * gdbhooks.py (build_pretty_printers): Handle it.
6367 * machmode.h (mode_iterator::get_2xwider): Add overload for
6368 opt_mode<T>.
6369 * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
6370 over scalar modes.
6371 * expr.c (convert_mode_scalar): Likewise.
6372 * omp-low.c (omp_clause_aligned_alignment): Likewise.
6373 * optabs.c (expand_float): Likewise.
6374 (expand_fix): Likewise.
6375 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
6376
6377 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6378 Alan Hayward <alan.hayward@arm.com>
6379 David Sherwood <david.sherwood@arm.com>
6380
6381 * optabs.c (expand_float): Explicitly check for scalars before
6382 using a branching expansion.
6383 (expand_fix): Likewise.
6384
6385 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6386 Alan Hayward <alan.hayward@arm.com>
6387 David Sherwood <david.sherwood@arm.com>
6388
6389 * expr.c (convert_mode): Split scalar handling out into...
6390 (convert_mode_scalar): ...this new function. Treat the modes
6391 as scalar_modes.
6392
6393 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6394 Alan Hayward <alan.hayward@arm.com>
6395 David Sherwood <david.sherwood@arm.com>
6396
6397 * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
6398 and scalar_mode.
6399 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
6400
6401 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6402 Alan Hayward <alan.hayward@arm.com>
6403 David Sherwood <david.sherwood@arm.com>
6404
6405 * fixed-value.h (fixed_from_double_int): Take a scalar_mode
6406 rather than a machine_mode.
6407 (fixed_from_string): Likewise.
6408 (fixed_convert): Likewise.
6409 (fixed_convert_from_int): Likewise.
6410 (fixed_convert_from_real): Likewise.
6411 (real_convert_from_fixed): Likewise.
6412 * fixed-value.c (fixed_from_double_int): Likewise.
6413 (fixed_from_string): Likewise.
6414 (fixed_convert): Likewise.
6415 (fixed_convert_from_int): Likewise.
6416 (fixed_convert_from_real): Likewise.
6417 (real_convert_from_fixed): Likewise.
6418 * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
6419
6420 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6421 Alan Hayward <alan.hayward@arm.com>
6422 David Sherwood <david.sherwood@arm.com>
6423
6424 * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
6425 of separate mode class checks. Do not allow vector modes here.
6426 (immed_wide_int_const): Use as_a <scalar_mode>.
6427 * explow.c (trunc_int_for_mode): Likewise.
6428 * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
6429 (wi::shwi): Likewise.
6430 (wi::min_value): Likewise.
6431 (wi::max_value): Likewise.
6432 * dwarf2out.c (loc_descriptor): Likewise.
6433 * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
6434 for CONST_WIDE_INT.
6435
6436 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6437 Alan Hayward <alan.hayward@arm.com>
6438 David Sherwood <david.sherwood@arm.com>
6439
6440 * tree.h (SCALAR_TYPE_MODE): New macro.
6441 * expr.c (expand_expr_addr_expr_1): Use it.
6442 (expand_expr_real_2): Likewise.
6443 * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
6444 (fold_convert_const_fixed_from_int): Likewise.
6445 (fold_convert_const_fixed_from_real): Likewise.
6446 (native_encode_fixed): Likewise
6447 (native_encode_complex): Likewise
6448 (native_encode_vector): Likewise.
6449 (native_interpret_fixed): Likewise.
6450 (native_interpret_real): Likewise.
6451 (native_interpret_complex): Likewise.
6452 (native_interpret_vector): Likewise.
6453 * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
6454 (simd_clone_adjust_argument_types): Likewise.
6455 (simd_clone_init_simd_arrays): Likewise.
6456 (simd_clone_adjust): Likewise.
6457 * stor-layout.c (layout_type): Likewise.
6458 * tree.c (build_minus_one_cst): Likewise.
6459 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
6460 * tree-inline.c (estimate_move_cost): Likewise.
6461 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
6462 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
6463 (vectorizable_reduction): Likewise.
6464 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
6465 (vect_recog_mixed_size_cond_pattern): Likewise.
6466 (check_bool_pattern): Likewise.
6467 (adjust_bool_pattern): Likewise.
6468 (search_type_for_mask_1): Likewise.
6469 * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
6470 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
6471 (vectorizable_load): Likewise.
6472 (vectorizable_store): Likewise.
6473 * ubsan.c (ubsan_encode_value): Likewise.
6474 * varasm.c (output_constant): Likewise.
6475
6476 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6477 Alan Hayward <alan.hayward@arm.com>
6478 David Sherwood <david.sherwood@arm.com>
6479
6480 * coretypes.h (scalar_mode): New class.
6481 * machmode.h (scalar_mode): Likewise.
6482 (scalar_mode::includes_p): New function.
6483 (mode_to_inner): Return a scalar_mode rather than a machine_mode.
6484 * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
6485 * genmodes.c (get_mode_class): Handle remaining scalar modes.
6486 * cfgexpand.c (expand_debug_expr): Use scalar_mode.
6487 * expmed.c (store_bit_field_1): Likewise.
6488 (extract_bit_field_1): Likewise.
6489 * expr.c (write_complex_part): Likewise.
6490 (read_complex_part): Likewise.
6491 (emit_move_complex_push): Likewise.
6492 (expand_expr_real_2): Likewise.
6493 * function.c (assign_parm_setup_reg): Likewise.
6494 (assign_parms_unsplit_complex): Likewise.
6495 * optabs.c (expand_binop): Likewise.
6496 * rtlanal.c (subreg_get_info): Likewise.
6497 * simplify-rtx.c (simplify_immed_subreg): Likewise.
6498 * varasm.c (output_constant_pool_2): Likewise.
6499
6500 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6501 Alan Hayward <alan.hayward@arm.com>
6502 David Sherwood <david.sherwood@arm.com>
6503
6504 * expmed.c (extract_high_half): Use scalar_int_mode and remove
6505 assertion.
6506 (expmed_mult_highpart_optab): Likewise.
6507 (expmed_mult_highpart): Likewise.
6508
6509 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6510 Alan Hayward <alan.hayward@arm.com>
6511 David Sherwood <david.sherwood@arm.com>
6512
6513 * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
6514 instead of a machine_mode.
6515 (builtin_memset_read_str): Likewise.
6516 * builtins.c (c_readstr): Likewise.
6517 (builtin_memcpy_read_str): Likewise.
6518 (builtin_strncpy_read_str): Likewise.
6519 (builtin_memset_read_str): Likewise.
6520 (builtin_memset_gen_str): Likewise.
6521 (expand_builtin_signbit): Use scalar_int_mode for local variables.
6522 * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
6523 instead of a machine_mode.
6524 * combine.c (simplify_if_then_else): Use scalar_int_mode for local
6525 variables.
6526 (make_extraction): Likewise.
6527 (try_widen_shift_mode): Take and return scalar_int_modes instead
6528 of machine_modes.
6529 * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
6530 a scalar_int_mode instead of a machine_mode.
6531 * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
6532 (avr_addr_space_pointer_mode): Likewise.
6533 * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
6534 * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
6535 (msp430_unwind_word_mode): Likewise.
6536 * config/spu/spu.c (spu_unwind_word_mode): Likewise.
6537 (spu_addr_space_pointer_mode): Likewise.
6538 (spu_addr_space_address_mode): Likewise.
6539 (spu_libgcc_cmp_return_mode): Likewise.
6540 (spu_libgcc_shift_count_mode): Likewise.
6541 * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
6542 (rl78_addr_space_pointer_mode): Likewise.
6543 (fl78_unwind_word_mode): Likewise.
6544 (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
6545 machine_mode.
6546 * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
6547 * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
6548 * config/mips/mips.c (mips_mode_rep_extended): Likewise.
6549 (mips_valid_pointer_mode): Likewise.
6550 * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
6551 * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
6552 (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
6553 of a machine_mode.
6554 (ft32_addr_space_address_mode): Likewise.
6555 * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
6556 scalar_int_mode instead of a machine_mode.
6557 (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
6558 of a machine_mode.
6559 (m32c_addr_space_address_mode): Likewise.
6560 * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
6561 (rs6000_eh_return_filter_mode): Likewise.
6562 * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
6563 (rs6000_eh_return_filter_mode): Likewise.
6564 * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
6565 (s390_libgcc_shift_count_mode): Likewise.
6566 (s390_unwind_word_mode): Likewise.
6567 (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
6568 machine_mode.
6569 * target.def (mode_rep_extended): Likewise.
6570 (valid_pointer_mode): Likewise.
6571 (addr_space.valid_pointer_mode): Likewise.
6572 (eh_return_filter_mode): Return a scalar_int_mode rather than
6573 a machine_mode.
6574 (libgcc_cmp_return_mode): Likewise.
6575 (libgcc_shift_count_mode): Likewise.
6576 (unwind_word_mode): Likewise.
6577 (addr_space.pointer_mode): Likewise.
6578 (addr_space.address_mode): Likewise.
6579 * doc/tm.texi: Regenerate.
6580 * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
6581 a machine_mode.
6582 (do_jump): Use scalar_int_mode for local variables.
6583 * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
6584 rather than a machine_mode.
6585 * dwarf2out.c (convert_descriptor_to_mode): Likewise.
6586 (scompare_loc_descriptor_wide): Likewise.
6587 (scompare_loc_descriptor_narrow): Likewise.
6588 * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
6589 variables.
6590 * except.c (sjlj_emit_dispatch_table): Likewise.
6591 (expand_builtin_eh_copy_values): Likewise.
6592 * explow.c (convert_memory_address_addr_space_1): Likewise.
6593 Take a scalar_int_mode rather than a machine_mode.
6594 (convert_memory_address_addr_space): Take a scalar_int_mode rather
6595 than a machine_mode.
6596 (memory_address_addr_space): Use scalar_int_mode for local variables.
6597 * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
6598 rather than a machine_mode.
6599 * expmed.c (mask_rtx): Likewise.
6600 (init_expmed_one_conv): Likewise.
6601 (expand_mult_highpart_adjust): Likewise.
6602 (extract_high_half): Likewise.
6603 (expmed_mult_highpart_optab): Likewise.
6604 (expmed_mult_highpart): Likewise.
6605 (expand_smod_pow2): Likewise.
6606 (expand_sdiv_pow2): Likewise.
6607 (emit_store_flag_int): Likewise.
6608 (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
6609 variables.
6610 (extract_low_bits): Likewise.
6611 * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
6612 a machine_mode.
6613 * expr.c (pieces_addr::adjust): Likewise.
6614 (can_store_by_pieces): Likewise.
6615 (store_by_pieces): Likewise.
6616 (clear_by_pieces_1): Likewise.
6617 (expand_expr_addr_expr_1): Likewise.
6618 (expand_expr_addr_expr): Use scalar_int_mode for local variables.
6619 (expand_expr_real_1): Likewise.
6620 (try_casesi): Likewise.
6621 * final.c (shorten_branches): Likewise.
6622 * fold-const.c (fold_convert_const_int_from_fixed): Change the
6623 type of "mode" to machine_mode.
6624 * internal-fn.c (expand_arith_overflow_result_store): Take a
6625 scalar_int_mode rather than a machine_mode.
6626 (expand_mul_overflow): Use scalar_int_mode for local variables.
6627 * loop-doloop.c (doloop_modify): Likewise.
6628 (doloop_optimize): Likewise.
6629 * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
6630 than a machine_mode.
6631 (expand_doubleword_shift_condmove): Likewise.
6632 (expand_doubleword_shift): Likewise.
6633 (expand_doubleword_clz): Likewise.
6634 (expand_doubleword_popcount): Likewise.
6635 (expand_doubleword_parity): Likewise.
6636 (expand_absneg_bit): Use scalar_int_mode for local variables.
6637 (prepare_float_lib_cmp): Likewise.
6638 * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
6639 rather than a machine_mode.
6640 (convert_memory_address_addr_space): Likewise.
6641 (get_mode_bounds): Likewise.
6642 (get_address_mode): Return a scalar_int_mode rather than a
6643 machine_mode.
6644 * rtlanal.c (get_address_mode): Likewise.
6645 * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
6646 than a machine_mode.
6647 * targhooks.c (default_mode_rep_extended): Likewise.
6648 (default_valid_pointer_mode): Likewise.
6649 (default_addr_space_valid_pointer_mode): Likewise.
6650 (default_eh_return_filter_mode): Return a scalar_int_mode rather
6651 than a machine_mode.
6652 (default_libgcc_cmp_return_mode): Likewise.
6653 (default_libgcc_shift_count_mode): Likewise.
6654 (default_unwind_word_mode): Likewise.
6655 (default_addr_space_pointer_mode): Likewise.
6656 (default_addr_space_address_mode): Likewise.
6657 * targhooks.h (default_eh_return_filter_mode): Likewise.
6658 (default_libgcc_cmp_return_mode): Likewise.
6659 (default_libgcc_shift_count_mode): Likewise.
6660 (default_unwind_word_mode): Likewise.
6661 (default_addr_space_pointer_mode): Likewise.
6662 (default_addr_space_address_mode): Likewise.
6663 (default_mode_rep_extended): Take a scalar_int_mode rather than
6664 a machine_mode.
6665 (default_valid_pointer_mode): Likewise.
6666 (default_addr_space_valid_pointer_mode): Likewise.
6667 * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
6668 local variables.
6669 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
6670 rather than a machine_mode.
6671 * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
6672 for local variables.
6673 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
6674 * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
6675 than a machine_mode.
6676
6677 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6678 Alan Hayward <alan.hayward@arm.com>
6679 David Sherwood <david.sherwood@arm.com>
6680
6681 * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
6682 the mode argument to scalar_int_mode.
6683 (do_jump_by_parts_zero_rtx): Likewise.
6684 (do_jump_by_parts_equality_rtx): Likewise.
6685 (do_jump_by_parts_greater): Take a mode argument.
6686 (do_jump_by_parts_equality): Likewise.
6687 (do_jump_1): Update calls accordingly.
6688
6689 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6690 Alan Hayward <alan.hayward@arm.com>
6691 David Sherwood <david.sherwood@arm.com>
6692
6693 * is-a.h (safe_dyn_cast): New function.
6694 * rtl.h (rtx_jump_table_data::get_data_mode): New function.
6695 (jump_table_for_label): Likewise.
6696 * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
6697 instead of an rtx_insn *.
6698 (shorten_branches): Use dyn_cast instead of LABEL_P and
6699 JUMP_TABLE_DATA_P. Use jump_table_for_label and
6700 rtx_jump_table_data::get_data_mode.
6701 (final_scan_insn): Likewise.
6702
6703 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6704 Alan Hayward <alan.hayward@arm.com>
6705 David Sherwood <david.sherwood@arm.com>
6706
6707 * combine.c (try_combine): Use is_a <scalar_int_mode> when
6708 trying to combine a full-register integer set with a subreg
6709 integer set.
6710
6711 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6712 Alan Hayward <alan.hayward@arm.com>
6713 David Sherwood <david.sherwood@arm.com>
6714
6715 * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
6716 that is always either address_mode or pointer_mode.
6717
6718 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6719 Alan Hayward <alan.hayward@arm.com>
6720 David Sherwood <david.sherwood@arm.com>
6721
6722 * expr.c (expand_expr_real_2): Use word_mode instead of innermode
6723 when the two are known to be equal.
6724
6725 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6726 Alan Hayward <alan.hayward@arm.com>
6727 David Sherwood <david.sherwood@arm.com>
6728
6729 * simplify-rtx.c (simplify_const_unary_operation): Use
6730 is_a <scalar_int_mode> instead of checking for a nonzero
6731 precision. Forcibly convert op_mode to a scalar_int_mode
6732 in that case. More clearly differentiate the operand and
6733 result modes and use the former when deciding what the value
6734 of a count-bits operation should be. Use is_int_mode instead
6735 of checking for a MODE_INT. Remove redundant check for whether
6736 this mode has a zero precision.
6737
6738 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6739 Alan Hayward <alan.hayward@arm.com>
6740 David Sherwood <david.sherwood@arm.com>
6741
6742 * optabs.c (widen_leading): Change the type of the mode argument
6743 to scalar_int_mode. Use opt_scalar_int_mode for the mode iterator.
6744 (widen_bswap): Likewise.
6745 (expand_parity): Likewise.
6746 (expand_ctz): Change the type of the mode argument to scalar_int_mode.
6747 (expand_ffs): Likewise.
6748 (epand_unop): Check for scalar integer modes before calling the
6749 above routines.
6750
6751 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6752 Alan Hayward <alan.hayward@arm.com>
6753 David Sherwood <david.sherwood@arm.com>
6754
6755 * expr.c (const_scalar_mask_from_tree): Add a mode argument.
6756 Expand commentary.
6757 (expand_expr_real_1): Update call accordingly.
6758
6759 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6760 Alan Hayward <alan.hayward@arm.com>
6761 David Sherwood <david.sherwood@arm.com>
6762
6763 * expmed.c (store_bit_field_using_insv): Add op0_mode and
6764 value_mode arguments. Use scalar_int_mode internally.
6765 (store_bit_field_1): Rename the new integer mode from imode
6766 to op0_mode and use it instead of GET_MODE (op0). Update calls
6767 to store_split_bit_field, store_bit_field_using_insv and
6768 store_fixed_bit_field.
6769 (store_fixed_bit_field): Add op0_mode and value_mode arguments.
6770 Use scalar_int_mode internally. Use a bit count rather than a mode
6771 when calculating the largest bit size for get_best_mode.
6772 Update calls to store_split_bit_field and store_fixed_bit_field_1.
6773 (store_fixed_bit_field_1): Add mode and value_mode arguments.
6774 Remove assertion that OP0 has a scalar integer mode.
6775 (store_split_bit_field): Add op0_mode and value_mode arguments.
6776 Update calls to extract_fixed_bit_field.
6777 (extract_bit_field_using_extv): Add an op0_mode argument.
6778 Use scalar_int_mode internally.
6779 (extract_bit_field_1): Rename the new integer mode from imode to
6780 op0_mode and use it instead of GET_MODE (op0). Update calls to
6781 extract_split_bit_field, extract_bit_field_using_extv and
6782 extract_fixed_bit_field.
6783 (extract_fixed_bit_field): Add an op0_mode argument. Update calls
6784 to extract_split_bit_field and extract_fixed_bit_field_1.
6785 (extract_fixed_bit_field_1): Add a mode argument. Remove assertion
6786 that OP0 has a scalar integer mode. Use as_a <scalar_int_mode>
6787 on the target mode.
6788 (extract_split_bit_field): Add an op0_mode argument. Update call
6789 to extract_fixed_bit_field.
6790
6791 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6792 Alan Hayward <alan.hayward@arm.com>
6793 David Sherwood <david.sherwood@arm.com>
6794
6795 * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
6796 * explow.c (hard_function_value): Likewise.
6797 * expmed.c (extract_fixed_bit_field_1): Likewise. Move the
6798 convert_to_mode call outside the loop.
6799 * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
6800 for the mode iterator. Require the mode specified by max_pieces
6801 to exist.
6802 (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
6803 mode iterator.
6804 (copy_blkmode_to_reg): Likewise.
6805 (set_storage_via_setmem): Likewise.
6806 * optabs.c (prepare_cmp_insn): Likewise.
6807 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
6808 * stor-layout.c (finish_bitfield_representative): Likewise.
6809
6810 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6811 Alan Hayward <alan.hayward@arm.com>
6812 David Sherwood <david.sherwood@arm.com>
6813
6814 * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
6815 * expr.c (convert_move): Use them.
6816 (convert_modes): Likewise.
6817 (store_expr_with_bounds): Likewise.
6818
6819 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6820 Alan Hayward <alan.hayward@arm.com>
6821 David Sherwood <david.sherwood@arm.com>
6822
6823 * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
6824 parameter for the mode of "x". Remove the "known_x", "known_mode"
6825 and "known_ret" arguments. Change the type of the mode argument
6826 to scalar_int_mode.
6827 (rtl_hooks:reg_num_sign_bit_copies): Likewise.
6828 * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
6829 (reg_num_sign_bit_copies_for_combine): Likewise.
6830 * rtlanal.c (nonzero_bits1): Likewise.
6831 (num_sign_bit_copies1): Likewise.
6832 * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
6833 (reg_num_sign_bit_copies_general): Likewise.
6834 * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
6835 (reg_nonzero_bits_general): Likewise.
6836
6837 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6838 Alan Hayward <alan.hayward@arm.com>
6839 David Sherwood <david.sherwood@arm.com>
6840
6841 * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
6842 than in subroutines. Return 1 for non-integer modes.
6843 (cached_num_sign_bit_copies): Change the type of the mode parameter
6844 to scalar_int_mode.
6845 (num_sign_bit_copies1): Likewise. Remove early exit for other mode
6846 classes. Handle CONST_INT_P first and then check whether X also
6847 has a scalar integer mode. Check the same thing for inner registers
6848 of a SUBREG and for values that are being extended or truncated.
6849
6850 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6851 Alan Hayward <alan.hayward@arm.com>
6852 David Sherwood <david.sherwood@arm.com>
6853
6854 * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
6855 in subroutines. Return the mode mask for non-integer modes.
6856 (cached_nonzero_bits): Change the type of the mode parameter
6857 to scalar_int_mode.
6858 (nonzero_bits1): Likewise. Remove early exit for other mode
6859 classes. Handle CONST_INT_P first and then check whether X
6860 also has a scalar integer mode.
6861
6862 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6863 Alan Hayward <alan.hayward@arm.com>
6864 David Sherwood <david.sherwood@arm.com>
6865
6866 * expr.c (widest_int_mode_for_size): Make the comment match the code.
6867 Return a scalar_int_mode and assert that the size is greater than
6868 one byte.
6869 (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
6870 (op_by_pieces_d::op_by_pieces_d): Likewise.
6871 (op_by_pieces_d::run): Likewise.
6872 (can_store_by_pieces): Likewise.
6873
6874 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6875 Alan Hayward <alan.hayward@arm.com>
6876 David Sherwood <david.sherwood@arm.com>
6877
6878 * combine.c (extract_left_shift): Add a mode argument and update
6879 recursive calls.
6880 (make_compound_operation_int): Change the type of the mode parameter
6881 to scalar_int_mode and update the call to extract_left_shift.
6882
6883 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6884 Alan Hayward <alan.hayward@arm.com>
6885 David Sherwood <david.sherwood@arm.com>
6886
6887 * combine.c (simplify_and_const_int): Change the type of the mode
6888 parameter to scalar_int_mode.
6889 (simplify_and_const_int_1): Likewise. Update recursive call.
6890
6891 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6892 Alan Hayward <alan.hayward@arm.com>
6893 David Sherwood <david.sherwood@arm.com>
6894
6895 * combine.c (simplify_compare_const): Check that the mode is a
6896 scalar_int_mode (rather than VOIDmode) before testing its
6897 precision.
6898 (simplify_comparison): Move COMPARISON_P handling out of the
6899 loop and restrict the latter part of the loop to scalar_int_modes.
6900 Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
6901 and when considering SUBREG_REGs. Use is_int_mode instead of
6902 checking GET_MODE_CLASS against MODE_INT.
6903
6904 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6905 Alan Hayward <alan.hayward@arm.com>
6906 David Sherwood <david.sherwood@arm.com>
6907
6908 * combine.c (try_widen_shift_mode): Move check for equal modes to...
6909 (simplify_shift_const_1): ...here. Use scalar_int_mode for
6910 shift_unit_mode and for modes involved in scalar shifts.
6911
6912 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6913 Alan Hayward <alan.hayward@arm.com>
6914 David Sherwood <david.sherwood@arm.com>
6915
6916 * combine.c (force_int_to_mode): New function, split out from...
6917 (force_to_mode): ...here. Keep xmode up-to-date and use it
6918 instead of GET_MODE (x).
6919
6920 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6921 Alan Hayward <alan.hayward@arm.com>
6922 David Sherwood <david.sherwood@arm.com>
6923
6924 * optabs-query.h (extraction_insn::struct_mode): Change type to
6925 opt_scalar_int_mode and update comment.
6926 (extraction_insn::field_mode): Change type to scalar_int_mode.
6927 (extraction_insn::pos_mode): Likewise.
6928 * combine.c (make_extraction): Update accordingly.
6929 * optabs-query.c (get_traditional_extraction_insn): Likewise.
6930 (get_optab_extraction_insn): Likewise.
6931 * recog.c (simplify_while_replacing): Likewise.
6932 * expmed.c (narrow_bit_field_mem): Change the type of the mode
6933 parameter to opt_scalar_int_mode.
6934
6935 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6936 Alan Hayward <alan.hayward@arm.com>
6937 David Sherwood <david.sherwood@arm.com>
6938
6939 * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
6940 to a scalar_int_mode instead of a machine_mode.
6941 (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
6942 (get_best_mode): Return a boolean and use a pointer argument to store
6943 the selected mode. Replace the limit mode parameter with a bit limit.
6944 * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
6945 for the values returned by bit_field_mode_iterator::next_mode.
6946 (store_bit_field): Update call to get_best_mode.
6947 (store_fixed_bit_field): Likewise.
6948 (extract_fixed_bit_field): Likewise.
6949 * expr.c (optimize_bitfield_assignment_op): Likewise.
6950 * fold-const.c (optimize_bit_field_compare): Likewise.
6951 (fold_truth_andor_1): Likewise.
6952 * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
6953 Update for new type of m_mode.
6954 (get_best_mode): As above.
6955
6956 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6957 Alan Hayward <alan.hayward@arm.com>
6958 David Sherwood <david.sherwood@arm.com>
6959
6960 * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
6961 to scalar_int_mode. Remove check for SCALAR_INT_MODE_P.
6962 (store_bit_field): Check is_a <scalar_int_mode> before calling
6963 strict_volatile_bitfield_p.
6964 (extract_bit_field): Likewise.
6965
6966 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6967 Alan Hayward <alan.hayward@arm.com>
6968 David Sherwood <david.sherwood@arm.com>
6969
6970 * target.def (cstore_mode): Return a scalar_int_mode.
6971 * doc/tm.texi: Regenerate.
6972 * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
6973 * targhooks.h (default_cstore_mode): Likewise.
6974 * targhooks.c (default_cstore_mode): Likewise, using a forced
6975 conversion.
6976 * expmed.c (emit_cstore): Expect the target of the cstore to be
6977 a scalar_int_mode.
6978
6979 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
6980 Alan Hayward <alan.hayward@arm.com>
6981 David Sherwood <david.sherwood@arm.com>
6982
6983 * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
6984 scalar_int_mode.
6985 (niter_desc): Likewise mode.
6986 (iv_analyze): Add a mode parameter.
6987 (biv_p): Likewise.
6988 (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
6989 and change its type to scalar_int_mode.
6990 * loop-iv.c: Update commentary at head of file.
6991 (iv_constant): Pass the mode paraeter before the rtx it describes
6992 and change its type to scalar_int_mode. Remove VOIDmode handling.
6993 (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
6994 (iv_extend): Likewise.
6995 (shorten_into_mode): Likewise.
6996 (iv_add): Use scalar_int_mode.
6997 (iv_mult): Likewise.
6998 (iv_shift): Likewise.
6999 (canonicalize_iv_subregs): Likewise.
7000 (get_biv_step_1): Pass the outer_mode parameter before the rtx
7001 it describes and change its mode to scalar_int_mode. Also change
7002 the type of the returned inner_mode to scalar_int_mode.
7003 (get_biv_step): Likewise, turning outer_mode from a pointer
7004 into a direct parameter. Update call to get_biv_step_1.
7005 (iv_analyze_biv): Add an outer_mode parameter. Update calls to
7006 iv_constant and get_biv_step.
7007 (iv_analyze_expr): Pass the mode parameter before the rtx it describes
7008 and change its type to scalar_int_mode. Don't initialise iv->mode
7009 to VOIDmode and remove later checks for its still being VOIDmode.
7010 Update calls to iv_analyze_op and iv_analyze_expr. Check
7011 is_a <scalar_int_mode> when changing the mode under consideration.
7012 (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
7013 Update call to iv_analyze_expr.
7014 (iv_analyze_op): Add a mode parameter. Reject subregs whose
7015 inner register is not also a scalar_int_mode. Update call to
7016 iv_analyze_biv.
7017 (iv_analyze): Add a mode parameter. Update call to iv_analyze_op.
7018 (biv_p): Add a mode parameter. Update call to iv_analyze_biv.
7019 (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
7020 separate mode class checks. Update calls to iv_analyze. Remove
7021 fix-up of VOIDmodes after iv_analyze_biv.
7022 * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
7023 don't have a scalar_int_mode. Update call to biv_p.
7024
7025 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7026 Alan Hayward <alan.hayward@arm.com>
7027 David Sherwood <david.sherwood@arm.com>
7028
7029 * cfgexpand.c (convert_debug_memory_address): Use
7030 as_a <scalar_int_mode>.
7031 * combine.c (expand_compound_operation): Likewise.
7032 (make_extraction): Likewise.
7033 (change_zero_ext): Likewise.
7034 (simplify_comparison): Likewise.
7035 * cse.c (cse_insn): Likewise.
7036 * dwarf2out.c (minmax_loc_descriptor): Likewise.
7037 (mem_loc_descriptor): Likewise.
7038 (loc_descriptor): Likewise.
7039 * expmed.c (init_expmed_one_mode): Likewise.
7040 (synth_mult): Likewise.
7041 (emit_store_flag_1): Likewise.
7042 (expand_divmod): Likewise. Use HWI_COMPUTABLE_MODE_P instead
7043 of a comparison with size.
7044 * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
7045 (reduce_to_bit_field_precision): Likewise.
7046 * function.c (expand_function_end): Likewise.
7047 * internal-fn.c (expand_arith_overflow_result_store): Likewise.
7048 * loop-doloop.c (doloop_modify): Likewise.
7049 * optabs.c (expand_binop): Likewise.
7050 (expand_unop): Likewise.
7051 (expand_copysign_absneg): Likewise.
7052 (prepare_cmp_insn): Likewise.
7053 (maybe_legitimize_operand): Likewise.
7054 * recog.c (const_scalar_int_operand): Likewise.
7055 * rtlanal.c (get_address_mode): Likewise.
7056 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7057 (simplify_cond_clz_ctz): Likewise.
7058 * tree-nested.c (get_nl_goto_field): Likewise.
7059 * tree.c (build_vector_type_for_mode): Likewise.
7060 * var-tracking.c (use_narrower_mode): Likewise.
7061
7062 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7063 Alan Hayward <alan.hayward@arm.com>
7064 David Sherwood <david.sherwood@arm.com>
7065
7066 * tree.h (SCALAR_INT_TYPE_MODE): New macro.
7067 * builtins.c (expand_builtin_signbit): Use it.
7068 * cfgexpand.c (expand_debug_expr): Likewise.
7069 * dojump.c (do_jump): Likewise.
7070 (do_compare_and_jump): Likewise.
7071 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
7072 * expmed.c (make_tree): Likewise.
7073 * expr.c (expand_expr_real_2): Likewise.
7074 (expand_expr_real_1): Likewise.
7075 (try_casesi): Likewise.
7076 * fold-const-call.c (fold_const_call_ss): Likewise.
7077 * fold-const.c (unextend): Likewise.
7078 (extract_muldiv_1): Likewise.
7079 (fold_single_bit_test): Likewise.
7080 (native_encode_int): Likewise.
7081 (native_encode_string): Likewise.
7082 (native_interpret_int): Likewise.
7083 * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
7084 * internal-fn.c (expand_addsub_overflow): Likewise.
7085 (expand_neg_overflow): Likewise.
7086 (expand_mul_overflow): Likewise.
7087 (expand_arith_overflow): Likewise.
7088 * match.pd: Likewise.
7089 * stor-layout.c (layout_type): Likewise.
7090 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
7091 * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
7092 * tree-ssanames.c (get_range_info): Likewise.
7093 * tree-switch-conversion.c (array_value_type) Likewise.
7094 * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
7095 (vect_recog_divmod_pattern): Likewise.
7096 (vect_recog_mixed_size_cond_pattern): Likewise.
7097 * tree-vrp.c (extract_range_basic): Likewise.
7098 (simplify_float_conversion_using_ranges): Likewise.
7099 * tree.c (int_fits_type_p): Likewise.
7100 * ubsan.c (instrument_bool_enum_load): Likewise.
7101 * varasm.c (mergeable_string_section): Likewise.
7102 (narrowing_initializer_constant_valid_p): Likewise.
7103 (output_constant): Likewise.
7104
7105 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7106 Alan Hayward <alan.hayward@arm.com>
7107 David Sherwood <david.sherwood@arm.com>
7108
7109 * machmode.h (NARROWEST_INT_MODE): New macro.
7110 * expr.c (alignment_for_piecewise_move): Use it instead of
7111 GET_CLASS_NARROWEST_MODE (MODE_INT).
7112 (push_block): Likewise.
7113 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
7114 Likewise.
7115 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
7116
7117 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7118 Alan Hayward <alan.hayward@arm.com>
7119 David Sherwood <david.sherwood@arm.com>
7120
7121 * postreload.c (move2add_valid_value_p): Change the type of the
7122 mode parameter to scalar_int_mode.
7123 (move2add_use_add2_insn): Add a mode parameter and use it instead
7124 of GET_MODE (reg).
7125 (move2add_use_add3_insn): Likewise.
7126 (reload_cse_move2add): Update accordingly.
7127
7128 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7129 Alan Hayward <alan.hayward@arm.com>
7130 David Sherwood <david.sherwood@arm.com>
7131
7132 * expr.c (expand_expr_real_2): Use scalar_int_mode for the
7133 double-word mode.
7134 * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
7135 * optabs.c (expand_unop): Likewise.
7136
7137 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7138 Alan Hayward <alan.hayward@arm.com>
7139 David Sherwood <david.sherwood@arm.com>
7140
7141 * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
7142 (clz_loc_descriptor): Likewise. Remove SCALAR_INT_MODE_P check.
7143 (popcount_loc_descriptor): Likewise.
7144 (bswap_loc_descriptor): Likewise.
7145 (rotate_loc_descriptor): Likewise.
7146 (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
7147 calling the functions above.
7148
7149 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7150 Alan Hayward <alan.hayward@arm.com>
7151 David Sherwood <david.sherwood@arm.com>
7152
7153 * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
7154 checks.
7155 (try_combine): Likewise.
7156 (simplify_if_then_else): Likewise.
7157 * cse.c (cse_insn): Likewise.
7158 * dwarf2out.c (mem_loc_descriptor): Likewise.
7159 * emit-rtl.c (gen_lowpart_common): Likewise.
7160 * simplify-rtx.c (simplify_truncation): Likewise.
7161 (simplify_binary_operation_1): Likewise.
7162 (simplify_const_relational_operation): Likewise.
7163 (simplify_ternary_operation): Likewise.
7164 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7165
7166 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7167 Alan Hayward <alan.hayward@arm.com>
7168 David Sherwood <david.sherwood@arm.com>
7169
7170 * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
7171 * reload.c (push_reload): Likewise.
7172 (find_reloads): Likewise.
7173
7174 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7175 Alan Hayward <alan.hayward@arm.com>
7176 David Sherwood <david.sherwood@arm.com>
7177
7178 * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
7179 (make_compound_operation_int): Likewise.
7180 (change_zero_ext): Likewise.
7181 * expr.c (convert_move): Likewise.
7182 (convert_modes): Likewise.
7183 * fwprop.c (forward_propagate_subreg): Likewise.
7184 * loop-iv.c (get_biv_step_1): Likewise.
7185 * optabs.c (widen_operand): Likewise.
7186 * postreload.c (move2add_valid_value_p): Likewise.
7187 * recog.c (simplify_while_replacing): Likewise.
7188 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7189 (simplify_binary_operation_1): Likewise. Remove redundant
7190 mode equality check.
7191
7192 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7193 Alan Hayward <alan.hayward@arm.com>
7194 David Sherwood <david.sherwood@arm.com>
7195
7196 * combine.c (combine_simplify_rtx): Add checks for
7197 is_a <scalar_int_mode>.
7198 (simplify_if_then_else): Likewise.
7199 (make_field_assignment): Likewise.
7200 (simplify_comparison): Likewise.
7201 * ifcvt.c (noce_try_bitop): Likewise.
7202 * loop-invariant.c (canonicalize_address_mult): Likewise.
7203 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7204
7205 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7206 Alan Hayward <alan.hayward@arm.com>
7207 David Sherwood <david.sherwood@arm.com>
7208
7209 * gimple-fold.c (gimple_fold_builtin_memory_op): Use
7210 is_a <scalar_int_mode> instead of != BLKmode.
7211
7212 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7213 Alan Hayward <alan.hayward@arm.com>
7214 David Sherwood <david.sherwood@arm.com>
7215
7216 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
7217 instead of != VOIDmode.
7218 * combine.c (if_then_else_cond): Likewise.
7219 (change_zero_ext): Likewise.
7220 * dwarf2out.c (mem_loc_descriptor): Likewise.
7221 (loc_descriptor): Likewise.
7222 * rtlanal.c (canonicalize_condition): Likewise.
7223 * simplify-rtx.c (simplify_relational_operation_1): Likewise.
7224
7225 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7226 Alan Hayward <alan.hayward@arm.com>
7227 David Sherwood <david.sherwood@arm.com>
7228
7229 * simplify-rtx.c (simplify_binary_operation_1): Use
7230 is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
7231
7232 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7233 Alan Hayward <alan.hayward@arm.com>
7234 David Sherwood <david.sherwood@arm.com>
7235
7236 * wide-int.h (int_traits<unsigned char>) New class.
7237 (int_traits<unsigned short>) Likewise.
7238 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
7239 Use GET_MODE_UNIT_PRECISION and remove redundant test for
7240 SCALAR_INT_MODE_P.
7241 * combine.c (set_nonzero_bits_and_sign_copies): Use
7242 is_a <scalar_int_mode>.
7243 (find_split_point): Likewise.
7244 (combine_simplify_rtx): Likewise.
7245 (simplify_logical): Likewise.
7246 (expand_compound_operation): Likewise.
7247 (expand_field_assignment): Likewise.
7248 (make_compound_operation): Likewise.
7249 (extended_count): Likewise.
7250 (change_zero_ext): Likewise.
7251 (simplify_comparison): Likewise.
7252 * dwarf2out.c (scompare_loc_descriptor): Likewise.
7253 (ucompare_loc_descriptor): Likewise.
7254 (minmax_loc_descriptor): Likewise.
7255 (mem_loc_descriptor): Likewise.
7256 (loc_descriptor): Likewise.
7257 * expmed.c (init_expmed_one_mode): Likewise.
7258 * lra-constraints.c (lra_constraint_offset): Likewise.
7259 * optabs.c (prepare_libcall_arg): Likewise.
7260 * postreload.c (move2add_note_store): Likewise.
7261 * reload.c (operands_match_p): Likewise.
7262 * rtl.h (load_extend_op): Likewise.
7263 * rtlhooks.c (gen_lowpart_general): Likewise.
7264 * simplify-rtx.c (simplify_truncation): Likewise.
7265 (simplify_unary_operation_1): Likewise.
7266 (simplify_binary_operation_1): Likewise.
7267 (simplify_const_binary_operation): Likewise.
7268 (simplify_const_relational_operation): Likewise.
7269 (simplify_subreg): Likewise.
7270 * stor-layout.c (bitwise_mode_for_mode): Likewise.
7271 * var-tracking.c (adjust_mems): Likewise.
7272 (prepare_call_arguments): Likewise.
7273
7274 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7275 Alan Hayward <alan.hayward@arm.com>
7276 David Sherwood <david.sherwood@arm.com>
7277
7278 * machmode.h (is_int_mode): New fuction.
7279 * combine.c (find_split_point): Use it.
7280 (combine_simplify_rtx): Likewise.
7281 (simplify_if_then_else): Likewise.
7282 (simplify_set): Likewise.
7283 (simplify_shift_const_1): Likewise.
7284 (simplify_comparison): Likewise.
7285 * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
7286 * cse.c (notreg_cost): Likewise.
7287 (cse_insn): Likewise.
7288 * cselib.c (cselib_lookup_1): Likewise.
7289 * dojump.c (do_jump_1): Likewise.
7290 (do_compare_rtx_and_jump): Likewise.
7291 * dse.c (get_call_args): Likewise.
7292 * dwarf2out.c (rtl_for_decl_init): Likewise.
7293 (native_encode_initializer): Likewise.
7294 * expmed.c (emit_store_flag_1): Likewise.
7295 (emit_store_flag): Likewise.
7296 * expr.c (convert_modes): Likewise.
7297 (store_field): Likewise.
7298 (expand_expr_real_1): Likewise.
7299 * fold-const.c (fold_read_from_constant_string): Likewise.
7300 * gimple-ssa-sprintf.c (get_format_string): Likewise.
7301 * optabs-libfuncs.c (gen_int_libfunc): Likewise.
7302 * optabs.c (expand_binop): Likewise.
7303 (expand_unop): Likewise.
7304 (expand_abs_nojump): Likewise.
7305 (expand_one_cmpl_abs_nojump): Likewise.
7306 * simplify-rtx.c (mode_signbit_p): Likewise.
7307 (val_signbit_p): Likewise.
7308 (val_signbit_known_set_p): Likewise.
7309 (val_signbit_known_clear_p): Likewise.
7310 (simplify_relational_operation_1): Likewise.
7311 * tree.c (vector_type_mode): Likewise.
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 * machmode.h (smallest_mode_for_size): Fix formatting.
7318 (smallest_int_mode_for_size): New function.
7319 * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
7320 instead of smallest_mode_for_size.
7321 * combine.c (make_extraction): Likewise.
7322 * config/arc/arc.c (arc_expand_movmem): Likewise.
7323 * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
7324 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
7325 * config/s390/s390.c (s390_expand_insv): Likewise.
7326 * config/sparc/sparc.c (assign_int_registers): Likewise.
7327 * config/spu/spu.c (spu_function_value): Likewise.
7328 (spu_function_arg): Likewise.
7329 * coverage.c (get_gcov_type): Likewise.
7330 (get_gcov_unsigned_t): Likewise.
7331 * dse.c (find_shift_sequence): Likewise.
7332 * expmed.c (store_bit_field_1): Likewise.
7333 * expr.c (convert_move): Likewise.
7334 (store_field): Likewise.
7335 * internal-fn.c (expand_arith_overflow): Likewise.
7336 * optabs-query.c (get_best_extraction_insn): Likewise.
7337 * optabs.c (expand_twoval_binop_libfunc): Likewise.
7338 * stor-layout.c (layout_type): Likewise.
7339 (initialize_sizetypes): Likewise.
7340 * targhooks.c (default_get_mask_mode): Likewise.
7341 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
7342
7343 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7344 Alan Hayward <alan.hayward@arm.com>
7345 David Sherwood <david.sherwood@arm.com>
7346
7347 * machmode.h (opt_mode::else_blk): New function.
7348 (int_mode_for_mode): Declare.
7349 * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
7350 * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
7351 return type.
7352 * cfgexpand.c (expand_debug_expr): Likewise.
7353 * combine.c (gen_lowpart_or_truncate): Likewise.
7354 (gen_lowpart_for_combine): Likewise.
7355 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
7356 * config/avr/avr.c (avr_to_int_mode): Likewise.
7357 (avr_out_plus_1): Likewise.
7358 (avr_out_plus): Likewise.
7359 (avr_out_round): Likewise.
7360 * config/i386/i386.c (ix86_split_to_parts): Likewise.
7361 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
7362 (s390_expand_vcond): Likewise.
7363 * config/spu/spu.c (spu_split_immediate): Likewise.
7364 (spu_expand_mov): Likewise.
7365 * dse.c (get_stored_val): Likewise.
7366 * expmed.c (store_bit_field_1): Likewise.
7367 (convert_extracted_bit_field): Use int_mode_for_mode instead of
7368 int_mode_for_size.
7369 (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
7370 (extract_low_bits): Likewise.
7371 * expr.c (emit_group_load_1): Likewise. Separate out the BLKmode
7372 handling rather than repeating the check.
7373 (emit_group_store): Likewise.
7374 (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
7375 * optabs.c (expand_absneg_bit): Likewise.
7376 (expand_copysign_absneg): Likewise.
7377 (expand_copysign_bit): Likewise.
7378 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
7379 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
7380 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
7381 * var-tracking.c (prepare_call_arguments): Likewise.
7382 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
7383 int_mode_for_mode instead of mode_for_size.
7384 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
7385
7386 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7387 Alan Hayward <alan.hayward@arm.com>
7388 David Sherwood <david.sherwood@arm.com>
7389
7390 * machmode.h (int_mode_for_size): New function.
7391 * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
7392 instead of mode_for_size.
7393 * calls.c (save_fixed_argument_area): Likewise. Make use of BLKmode
7394 explicit.
7395 * combine.c (expand_field_assignment): Use int_mode_for_size
7396 instead of mode_for_size.
7397 (make_extraction): Likewise.
7398 (simplify_shift_const_1): Likewise.
7399 (simplify_comparison): Likewise.
7400 * dojump.c (do_jump): Likewise.
7401 * dwarf2out.c (mem_loc_descriptor): Likewise.
7402 * emit-rtl.c (init_derived_machine_modes): Likewise.
7403 * expmed.c (flip_storage_order): Likewise.
7404 (convert_extracted_bit_field): Likewise.
7405 * expr.c (copy_blkmode_from_reg): Likewise.
7406 * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
7407 * internal-fn.c (expand_mul_overflow): Likewise.
7408 * lower-subreg.c (simple_move): Likewise.
7409 * optabs-libfuncs.c (init_optabs): Likewise.
7410 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7411 * tree.c (vector_type_mode): Likewise.
7412 * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
7413 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
7414 * tree-vect-generic.c (expand_vector_parallel): Likewise.
7415 * tree-vect-stmts.c (vectorizable_load): Likewise.
7416 (vectorizable_store): Likewise.
7417
7418 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7419 Alan Hayward <alan.hayward@arm.com>
7420 David Sherwood <david.sherwood@arm.com>
7421
7422 * coretypes.h (pod_mode): New type.
7423 (scalar_int_mode_pod): New typedef.
7424 * machmode.h (pod_mode): New class.
7425 (int_n_data_t::m): Change type to scalar_int_mode_pod.
7426 * genmodes.c (emit_mode_int_n): Update accordingly.
7427 * lower-subreg.h (target_lower_subreg): Change type to
7428 scalar_int_mode_pod.
7429 * gdbhooks.py (build_pretty_printer): Handle pod_mode and
7430 scalar_int_mode_pod.
7431
7432 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7433 Alan Hayward <alan.hayward@arm.com>
7434 David Sherwood <david.sherwood@arm.com>
7435
7436 * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
7437 machine_mode to scalar_int_mode.
7438 * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
7439 (rs6000_option_override_internal): Remove cast to int.
7440 * config/rs6000/rs6000.h (rs6000_pmode): Change type from
7441 machine_mode to scalar_int_mode.
7442 * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
7443 (rs6000_option_override_internal): Remove cast to int.
7444 * config/s390/s390.h (Pmode): Remove cast to machine_mode.
7445 * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
7446 to machine_mode.
7447 * config/s390/s390.c (s390_expand_builtin): Likewise.
7448 * coretypes.h (scalar_int_mode): New type.
7449 (opt_scalar_int_mode): New typedef.
7450 * machmode.h (scalar_int_mode): New class.
7451 (scalar_int_mode::includes_p): New function.
7452 (byte_mode): Change type to scalar_int_mode.
7453 (word_mode): Likewise.
7454 (ptr_mode): Likewise.
7455 * emit-rtl.c (byte_mode): Likewise.
7456 (word_mode): Likewise.
7457 (ptr_mode): Likewise.
7458 (init_derived_machine_modes): Update accordingly.
7459 * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
7460 and MODE_PARTIAL_INT.
7461 * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
7462 opt_scalar_int_mode.
7463
7464 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7465 Alan Hayward <alan.hayward@arm.com>
7466 David Sherwood <david.sherwood@arm.com>
7467
7468 * target.def (libgcc_floating_mode_supported_p): Take a
7469 scalar_float_mode.
7470 * doc/tm.texi: Regenerate.
7471 * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
7472 scalar_float_mode.
7473 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
7474 * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
7475 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 * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
7482 * doc/tm.texi: Regenerate.
7483 * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
7484 * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
7485 * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
7486 * targhooks.h (default_floatn_mode): Likewise.
7487 * targhooks.c (default_floatn_mode): Likewise.
7488 * tree.c (build_common_tree_nodes): Update accordingly.
7489
7490 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7491 Alan Hayward <alan.hayward@arm.com>
7492 David Sherwood <david.sherwood@arm.com>
7493
7494 * machmode.h (mode_iterator::start): Provide overload for opt_modes.
7495 (mode_iterator::iterate_p): Likewise.
7496 (mode_iterator::get_wider): Likewise.
7497 * expr.c (init_expr_target): Use opt_scalar_float_mode.
7498
7499 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7500 Alan Hayward <alan.hayward@arm.com>
7501 David Sherwood <david.sherwood@arm.com>
7502
7503 * coretypes.h (opt_scalar_float_mode): New typedef.
7504 * machmode.h (float_mode_for_size): New function.
7505 * emit-rtl.c (double_mode): Delete.
7506 (init_emit_once): Use float_mode_for_size.
7507 * stor-layout.c (layout_type): Likewise.
7508 * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
7509
7510 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7511 Alan Hayward <alan.hayward@arm.com>
7512 David Sherwood <david.sherwood@arm.com>
7513
7514 * output.h (assemble_real): Take a scalar_float_mode.
7515 * config/arm/arm.c (arm_assemble_integer): Update accordingly.
7516 * config/arm/arm.md (consttable_4): Likewise.
7517 (consttable_8): Likewise.
7518 (consttable_16): Likewise.
7519 * config/mips/mips.md (consttable_float): Likewise.
7520 * config/s390/s390.c (s390_output_pool_entry): Likewise.
7521 * varasm.c (assemble_real): Take a scalar_float_mode.
7522 (output_constant_pool_2): Update accordingly.
7523 (output_constant): Likewise.
7524
7525 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7526 Alan Hayward <alan.hayward@arm.com>
7527 David Sherwood <david.sherwood@arm.com>
7528
7529 * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
7530 * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
7531 * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
7532 (native_encode_real): Likewise.
7533 (native_interpret_real): Likewise.
7534 * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
7535 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
7536
7537 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7538 Alan Hayward <alan.hayward@arm.com>
7539 David Sherwood <david.sherwood@arm.com>
7540
7541 * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
7542 <scalar_float_mode>. Simplify.
7543 (gen_extend_conv_libfunc): Likewise.
7544
7545 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7546 Alan Hayward <alan.hayward@arm.com>
7547 David Sherwood <david.sherwood@arm.com>
7548
7549 * coretypes.h (scalar_float_mode): New type.
7550 * machmode.h (mode_traits::from_int): Use machine_mode if
7551 USE_ENUM_MODES is defined.
7552 (is_a): New function.
7553 (as_a): Likewise.
7554 (dyn_cast): Likewise.
7555 (scalar_float_mode): New class.
7556 (scalar_float_mode::includes_p): New function.
7557 (is_float_mode): Likewise.
7558 * gdbhooks.py (MachineModePrinter): New class.
7559 (build_pretty_printer): Use it for scalar_float_mode.
7560 * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
7561 (format_helper::format_helper): Turn into a template.
7562 * genmodes.c (get_mode_class): New function.
7563 (emit_insn_modes_h): Give modes the class returned by get_mode_class,
7564 or machine_mode if none.
7565 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
7566 as_a <scalar_float_mode>.
7567 * dwarf2out.c (mem_loc_descriptor): Likewise.
7568 (insert_float): Likewise.
7569 (add_const_value_attribute): Likewise.
7570 * simplify-rtx.c (simplify_immed_subreg): Likewise.
7571 * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
7572 (expand_unop): Update accordingly.
7573 (expand_abs_nojump): Likewise.
7574 (expand_copysign_absneg): Take a scalar_float_mode.
7575 (expand_copysign_bit): Likewise.
7576 (expand_copysign): Update accordingly.
7577
7578 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7579 Alan Hayward <alan.hayward@arm.com>
7580 David Sherwood <david.sherwood@arm.com>
7581
7582 * coretypes.h (opt_mode): New class.
7583 * machmode.h (opt_mode): Likewise.
7584 (opt_mode::else_void): New function.
7585 (opt_mode::require): Likewise.
7586 (opt_mode::exists): Likewise.
7587 (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
7588 (GET_MODE_2XWIDER_MODE): Likewise.
7589 (mode_iterator::get_wider): Update accordingly.
7590 (mode_iterator::get_2xwider): Likewise.
7591 (mode_iterator::get_known_wider): Likewise, turning into a template.
7592 * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
7593 forcing a wider mode to exist.
7594 * config/cr16/cr16.h (LONG_REG_P): Likewise.
7595 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
7596 * config/c6x/c6x.c (c6x_rtx_costs): Update use of
7597 GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
7598 * lower-subreg.c (init_lower_subreg): Likewise.
7599 * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
7600 on the final iteration.
7601 * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
7602 a wider mode exists before asking for a move pattern.
7603 (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
7604 forcing a wider mode to exist.
7605 (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
7606 returning false if no such mode exists.
7607 * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
7608 * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
7609 * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
7610 Avoid checking for a MODE_INT if we already know the mode is not a
7611 SCALAR_INT_MODE_P.
7612 (extract_high_half): Update use of GET_MODE_WIDER_MODE,
7613 forcing a wider mode to exist.
7614 (expmed_mult_highpart_optab): Likewise.
7615 (expmed_mult_highpart): Likewise.
7616 * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
7617 using else_void.
7618 * lto-streamer-in.c (lto_input_mode_table): Likewise.
7619 * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
7620 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
7621 * internal-fn.c (expand_mul_overflow): Update use of
7622 GET_MODE_2XWIDER_MODE.
7623 * omp-low.c (omp_clause_aligned_alignment): Likewise.
7624 * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
7625 GET_MODE_WIDER_MODE.
7626 (convert_plusminus_to_widen): Likewise.
7627 * tree-switch-conversion.c (array_value_type): Likewise.
7628 * var-tracking.c (emit_note_insn_var_location): Likewise.
7629 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
7630 Return false inside rather than outside the loop if no wider mode
7631 exists
7632 * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
7633 and GET_MODE_2XWIDER_MODE
7634 (can_compare_p): Use else_void.
7635 * gdbhooks.py (OptMachineModePrinter): New class.
7636 (build_pretty_printer): Use it for opt_mode.
7637
7638 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7639 Alan Hayward <alan.hayward@arm.com>
7640 David Sherwood <david.sherwood@arm.com>
7641
7642 * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
7643 once. Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
7644
7645 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7646 Alan Hayward <alan.hayward@arm.com>
7647 David Sherwood <david.sherwood@arm.com>
7648
7649 * machmode.h (mode_traits): New structure.
7650 (get_narrowest_mode): New function.
7651 (mode_iterator::start): Likewise.
7652 (mode_iterator::iterate_p): Likewise.
7653 (mode_iterator::get_wider): Likewise.
7654 (mode_iterator::get_known_wider): Likewise.
7655 (mode_iterator::get_2xwider): Likewise.
7656 (FOR_EACH_MODE_IN_CLASS): New mode iterator.
7657 (FOR_EACH_MODE): Likewise.
7658 (FOR_EACH_MODE_FROM): Likewise.
7659 (FOR_EACH_MODE_UNTIL): Likewise.
7660 (FOR_EACH_WIDER_MODE): Likewise.
7661 (FOR_EACH_2XWIDER_MODE): Likewise.
7662 * builtins.c (expand_builtin_strlen): Use new mode iterators.
7663 * combine.c (simplify_comparison): Likewise
7664 * config/i386/i386.c (type_natural_mode): Likewise.
7665 * cse.c (cse_insn): Likewise.
7666 * dse.c (find_shift_sequence): Likewise.
7667 * emit-rtl.c (init_derived_machine_modes): Likewise.
7668 (init_emit_once): Likewise.
7669 * explow.c (hard_function_value): Likewise.
7670 * expmed.c (extract_fixed_bit_field_1): Likewise.
7671 (extract_bit_field_1): Likewise.
7672 (expand_divmod): Likewise.
7673 (emit_store_flag_1): Likewise.
7674 * expr.c (init_expr_target): Likewise.
7675 (convert_move): Likewise.
7676 (alignment_for_piecewise_move): Likewise.
7677 (widest_int_mode_for_size): Likewise.
7678 (emit_block_move_via_movmem): Likewise.
7679 (copy_blkmode_to_reg): Likewise.
7680 (set_storage_via_setmem): Likewise.
7681 (compress_float_constant): Likewise.
7682 * omp-low.c (omp_clause_aligned_alignment): Likewise.
7683 * optabs-query.c (get_best_extraction_insn): Likewise.
7684 * optabs.c (expand_binop): Likewise.
7685 (expand_twoval_unop): Likewise.
7686 (expand_twoval_binop): Likewise.
7687 (widen_leading): Likewise.
7688 (widen_bswap): Likewise.
7689 (expand_parity): Likewise.
7690 (expand_unop): Likewise.
7691 (prepare_cmp_insn): Likewise.
7692 (prepare_float_lib_cmp): Likewise.
7693 (expand_float): Likewise.
7694 (expand_fix): Likewise.
7695 (expand_sfix_optab): Likewise.
7696 * postreload.c (move2add_use_add2_insn): Likewise.
7697 * reg-stack.c (reg_to_stack): Likewise.
7698 * reginfo.c (choose_hard_reg_mode): Likewise.
7699 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
7700 * stor-layout.c (mode_for_size): Likewise.
7701 (smallest_mode_for_size): Likewise.
7702 (mode_for_vector): Likewise.
7703 (finish_bitfield_representative): Likewise.
7704 * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
7705 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
7706 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7707 * var-tracking.c (prepare_call_arguments): 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 * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
7714 * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
7715 USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
7716 * machmode.h (mode_size): Move earlier in file.
7717 (mode_precision): Likewise.
7718 (mode_inner): Likewise.
7719 (mode_nunits): Likewise.
7720 (mode_unit_size): Likewise.
7721 (unit_unit_precision): Likewise.
7722 (mode_wider): Likewise.
7723 (mode_2xwider): Likewise.
7724 (machine_mode): New class.
7725 (mode_to_bytes): New function.
7726 (mode_to_bits): Likewise.
7727 (mode_to_precision): Likewise.
7728 (mode_to_inner): Likewise.
7729 (mode_to_unit_size): Likewise.
7730 (mode_to_unit_precision): Likewise.
7731 (mode_to_nunits): Likewise.
7732 (GET_MODE_SIZE): Use mode_to_bytes.
7733 (GET_MODE_BITSIZE): Use mode_to_bits.
7734 (GET_MODE_PRECISION): Use mode_to_precision.
7735 (GET_MODE_INNER): Use mode_to_inner.
7736 (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
7737 (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
7738 (GET_MODE_NUNITS): Use mode_to_nunits.
7739 * system.h (ALWAYS_INLINE): New macro.
7740 * config/powerpcspe/powerpcspe-c.c
7741 (altivec_resolve_overloaded_builtin): Use machine_mode instead of
7742 int for arg1_mode and arg2_mode.
7743
7744 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7745 Alan Hayward <alan.hayward@arm.com>
7746 David Sherwood <david.sherwood@arm.com>
7747
7748 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
7749 Prefix mode names with E_ in case statements.
7750 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7751 * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
7752 (aarch64_split_simd_move): Likewise.
7753 (aarch64_gen_storewb_pair): Likewise.
7754 (aarch64_gen_loadwb_pair): Likewise.
7755 (aarch64_gen_store_pair): Likewise.
7756 (aarch64_gen_load_pair): Likewise.
7757 (aarch64_get_condition_code_1): Likewise.
7758 (aarch64_constant_pool_reload_icode): Likewise.
7759 (get_rsqrte_type): Likewise.
7760 (get_rsqrts_type): Likewise.
7761 (get_recpe_type): Likewise.
7762 (get_recps_type): Likewise.
7763 (aarch64_gimplify_va_arg_expr): Likewise.
7764 (aarch64_simd_container_mode): Likewise.
7765 (aarch64_emit_load_exclusive): Likewise.
7766 (aarch64_emit_store_exclusive): Likewise.
7767 (aarch64_expand_compare_and_swap): Likewise.
7768 (aarch64_gen_atomic_cas): Likewise.
7769 (aarch64_emit_bic): Likewise.
7770 (aarch64_emit_atomic_swap): Likewise.
7771 (aarch64_emit_atomic_load_op): Likewise.
7772 (aarch64_evpc_trn): Likewise.
7773 (aarch64_evpc_uzp): Likewise.
7774 (aarch64_evpc_zip): Likewise.
7775 (aarch64_evpc_ext): Likewise.
7776 (aarch64_evpc_rev): Likewise.
7777 (aarch64_evpc_dup): Likewise.
7778 (aarch64_gen_ccmp_first): Likewise.
7779 (aarch64_gen_ccmp_next): Likewise.
7780 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
7781 (alpha_emit_xfloating_libcall): Likewise.
7782 (emit_insxl): Likewise.
7783 (alpha_arg_type): Likewise.
7784 * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
7785 (arc_preferred_simd_mode): Likewise.
7786 (arc_secondary_reload): Likewise.
7787 (get_arc_condition_code): Likewise.
7788 (arc_print_operand): Likewise.
7789 (arc_legitimate_constant_p): Likewise.
7790 * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7791 * config/arc/arc.md (casesi_load): Likewise.
7792 (casesi_compact_jump): Likewise.
7793 * config/arc/predicates.md (proper_comparison_operator): Likewise.
7794 (cc_use_register): Likewise.
7795 * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7796 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
7797 (arm_init_iwmmxt_builtins): Likewise.
7798 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
7799 (neon_expand_vector_init): Likewise.
7800 (arm_attr_length_move_neon): Likewise.
7801 (maybe_get_arm_condition_code): Likewise.
7802 (arm_emit_vector_const): Likewise.
7803 (arm_preferred_simd_mode): Likewise.
7804 (arm_output_iwmmxt_tinsr): Likewise.
7805 (thumb1_output_casesi): Likewise.
7806 (thumb2_output_casesi): Likewise.
7807 (arm_emit_load_exclusive): Likewise.
7808 (arm_emit_store_exclusive): Likewise.
7809 (arm_expand_compare_and_swap): Likewise.
7810 (arm_evpc_neon_vuzp): Likewise.
7811 (arm_evpc_neon_vzip): Likewise.
7812 (arm_evpc_neon_vrev): Likewise.
7813 (arm_evpc_neon_vtrn): Likewise.
7814 (arm_evpc_neon_vext): Likewise.
7815 (arm_validize_comparison): Likewise.
7816 * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
7817 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
7818 * config/avr/avr.c (avr_rtx_costs_1): Likewise.
7819 * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
7820 (c6x_preferred_simd_mode): Likewise.
7821 * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
7822 (epiphany_rtx_costs): Likewise.
7823 * config/epiphany/predicates.md (proper_comparison_operator):
7824 Likewise.
7825 * config/frv/frv.c (condexec_memory_operand): Likewise.
7826 (frv_emit_move): Likewise.
7827 (output_move_single): Likewise.
7828 (output_condmove_single): Likewise.
7829 (frv_hard_regno_mode_ok): Likewise.
7830 (frv_matching_accg_mode): Likewise.
7831 * config/h8300/h8300.c (split_adds_subs): Likewise.
7832 (h8300_rtx_costs): Likewise.
7833 (h8300_print_operand): Likewise.
7834 (compute_mov_length): Likewise.
7835 (output_logical_op): Likewise.
7836 (compute_logical_op_length): Likewise.
7837 (compute_logical_op_cc): Likewise.
7838 (h8300_shift_needs_scratch_p): Likewise.
7839 (output_a_shift): Likewise.
7840 (compute_a_shift_length): Likewise.
7841 (compute_a_shift_cc): Likewise.
7842 (expand_a_rotate): Likewise.
7843 (output_a_rotate): Likewise.
7844 * config/i386/i386.c (classify_argument): Likewise.
7845 (function_arg_advance_32): Likewise.
7846 (function_arg_32): Likewise.
7847 (function_arg_64): Likewise.
7848 (function_value_64): Likewise.
7849 (ix86_gimplify_va_arg): Likewise.
7850 (ix86_legitimate_constant_p): Likewise.
7851 (put_condition_code): Likewise.
7852 (split_double_mode): Likewise.
7853 (ix86_avx256_split_vector_move_misalign): Likewise.
7854 (ix86_expand_vector_logical_operator): Likewise.
7855 (ix86_split_idivmod): Likewise.
7856 (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
7857 (ix86_build_const_vector): Likewise.
7858 (ix86_build_signbit_mask): Likewise.
7859 (ix86_match_ccmode): Likewise.
7860 (ix86_cc_modes_compatible): Likewise.
7861 (ix86_expand_branch): Likewise.
7862 (ix86_expand_sse_cmp): Likewise.
7863 (ix86_expand_sse_movcc): Likewise.
7864 (ix86_expand_int_sse_cmp): Likewise.
7865 (ix86_expand_vec_perm_vpermi2): Likewise.
7866 (ix86_expand_vec_perm): Likewise.
7867 (ix86_expand_sse_unpack): Likewise.
7868 (ix86_expand_int_addcc): Likewise.
7869 (ix86_split_to_parts): Likewise.
7870 (ix86_vectorize_builtin_gather): Likewise.
7871 (ix86_vectorize_builtin_scatter): Likewise.
7872 (avx_vpermilp_parallel): Likewise.
7873 (inline_memory_move_cost): Likewise.
7874 (ix86_tieable_integer_mode_p): Likewise.
7875 (x86_maybe_negate_const_int): Likewise.
7876 (ix86_expand_vector_init_duplicate): Likewise.
7877 (ix86_expand_vector_init_one_nonzero): Likewise.
7878 (ix86_expand_vector_init_one_var): Likewise.
7879 (ix86_expand_vector_init_concat): Likewise.
7880 (ix86_expand_vector_init_interleave): Likewise.
7881 (ix86_expand_vector_init_general): Likewise.
7882 (ix86_expand_vector_set): Likewise.
7883 (ix86_expand_vector_extract): Likewise.
7884 (emit_reduc_half): Likewise.
7885 (ix86_emit_i387_round): Likewise.
7886 (ix86_mangle_type): Likewise.
7887 (ix86_expand_round_sse4): Likewise.
7888 (expand_vec_perm_blend): Likewise.
7889 (canonicalize_vector_int_perm): Likewise.
7890 (ix86_expand_vec_one_operand_perm_avx512): Likewise.
7891 (expand_vec_perm_1): Likewise.
7892 (expand_vec_perm_interleave3): Likewise.
7893 (expand_vec_perm_even_odd_pack): Likewise.
7894 (expand_vec_perm_even_odd_1): Likewise.
7895 (expand_vec_perm_broadcast_1): Likewise.
7896 (ix86_vectorize_vec_perm_const_ok): Likewise.
7897 (ix86_expand_vecop_qihi): Likewise.
7898 (ix86_expand_mul_widen_hilo): Likewise.
7899 (ix86_expand_sse2_abs): Likewise.
7900 (ix86_expand_pextr): Likewise.
7901 (ix86_expand_pinsr): Likewise.
7902 (ix86_preferred_simd_mode): Likewise.
7903 (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
7904 * config/i386/sse.md (*andnot<mode>3): Likewise.
7905 (<mask_codefor><code><mode>3<mask_name>): Likewise.
7906 (*<code><mode>3): Likewise.
7907 * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
7908 (ia64_expand_atomic_op): Likewise.
7909 (ia64_arg_type): Likewise.
7910 (ia64_mode_to_int): Likewise.
7911 (ia64_scalar_mode_supported_p): Likewise.
7912 (ia64_vector_mode_supported_p): Likewise.
7913 (expand_vec_perm_broadcast): Likewise.
7914 * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
7915 (iq2000_function_arg_advance): Likewise.
7916 (iq2000_function_arg): Likewise.
7917 * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
7918 * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
7919 (m68k_libcall_value): Likewise.
7920 (m68k_function_value): Likewise.
7921 (sched_attr_op_type): Likewise.
7922 * config/mcore/mcore.c (mcore_output_move): Likewise.
7923 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
7924 Likewise.
7925 (microblaze_function_arg): Likewise.
7926 * config/mips/mips.c (mips16_build_call_stub): Likewise.
7927 (mips_print_operand): Likewise.
7928 (mips_mode_ok_for_mov_fmt_p): Likewise.
7929 (mips_vector_mode_supported_p): Likewise.
7930 (mips_preferred_simd_mode): Likewise.
7931 (mips_expand_vpc_loongson_even_odd): Likewise.
7932 (mips_expand_vec_unpack): Likewise.
7933 (mips_expand_vi_broadcast): Likewise.
7934 (mips_expand_vector_init): Likewise.
7935 (mips_expand_vec_reduc): Likewise.
7936 (mips_expand_msa_cmp): Likewise.
7937 * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
7938 * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
7939 (cc_flags_for_mode): Likewise.
7940 * config/msp430/msp430.c (msp430_print_operand): Likewise.
7941 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
7942 (nds32_output_casesi_pc_relative): Likewise.
7943 * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7944 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
7945 (nvptx_gen_unpack): Likewise.
7946 (nvptx_gen_pack): Likewise.
7947 (nvptx_gen_shuffle): Likewise.
7948 (nvptx_gen_wcast): Likewise.
7949 (nvptx_preferred_simd_mode): Likewise.
7950 * config/pa/pa.c (pa_secondary_reload): Likewise.
7951 * config/pa/predicates.md (base14_operand): Likewise.
7952 * config/powerpcspe/powerpcspe-c.c
7953 (altivec_resolve_overloaded_builtin): Likewise.
7954 * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
7955 Likewise.
7956 (rs6000_preferred_simd_mode): Likewise.
7957 (output_vec_const_move): Likewise.
7958 (rs6000_expand_vector_extract): Likewise.
7959 (rs6000_split_vec_extract_var): Likewise.
7960 (reg_offset_addressing_ok_p): Likewise.
7961 (rs6000_legitimate_offset_address_p): Likewise.
7962 (rs6000_legitimize_address): Likewise.
7963 (rs6000_emit_set_const): Likewise.
7964 (rs6000_const_vec): Likewise.
7965 (rs6000_emit_move): Likewise.
7966 (spe_build_register_parallel): Likewise.
7967 (rs6000_darwin64_record_arg_recurse): Likewise.
7968 (swap_selector_for_mode): Likewise.
7969 (spe_init_builtins): Likewise.
7970 (paired_init_builtins): Likewise.
7971 (altivec_init_builtins): Likewise.
7972 (do_load_for_compare): Likewise.
7973 (rs6000_generate_compare): Likewise.
7974 (rs6000_expand_float128_convert): Likewise.
7975 (emit_load_locked): Likewise.
7976 (emit_store_conditional): Likewise.
7977 (rs6000_output_function_epilogue): Likewise.
7978 (rs6000_handle_altivec_attribute): Likewise.
7979 (rs6000_function_value): Likewise.
7980 (emit_fusion_gpr_load): Likewise.
7981 (emit_fusion_p9_load): Likewise.
7982 (emit_fusion_p9_store): Likewise.
7983 * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
7984 (fusion_gpr_mem_load): Likewise.
7985 (fusion_addis_mem_combo_load): Likewise.
7986 (fusion_addis_mem_combo_store): Likewise.
7987 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
7988 (fusion_gpr_mem_load): Likewise.
7989 (fusion_addis_mem_combo_load): Likewise.
7990 (fusion_addis_mem_combo_store): Likewise.
7991 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7992 Likewise.
7993 * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
7994 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
7995 (rs6000_preferred_simd_mode): Likewise.
7996 (output_vec_const_move): Likewise.
7997 (rs6000_expand_vector_extract): Likewise.
7998 (rs6000_split_vec_extract_var): Likewise.
7999 (reg_offset_addressing_ok_p): Likewise.
8000 (rs6000_legitimate_offset_address_p): Likewise.
8001 (rs6000_legitimize_address): Likewise.
8002 (rs6000_emit_set_const): Likewise.
8003 (rs6000_const_vec): Likewise.
8004 (rs6000_emit_move): Likewise.
8005 (rs6000_darwin64_record_arg_recurse): Likewise.
8006 (swap_selector_for_mode): Likewise.
8007 (paired_init_builtins): Likewise.
8008 (altivec_init_builtins): Likewise.
8009 (rs6000_expand_float128_convert): Likewise.
8010 (emit_load_locked): Likewise.
8011 (emit_store_conditional): Likewise.
8012 (rs6000_output_function_epilogue): Likewise.
8013 (rs6000_handle_altivec_attribute): Likewise.
8014 (rs6000_function_value): Likewise.
8015 (emit_fusion_gpr_load): Likewise.
8016 (emit_fusion_p9_load): Likewise.
8017 (emit_fusion_p9_store): Likewise.
8018 * config/rx/rx.c (rx_gen_move_template): Likewise.
8019 (flags_from_mode): Likewise.
8020 * config/s390/predicates.md (s390_alc_comparison): Likewise.
8021 (s390_slb_comparison): Likewise.
8022 * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
8023 (s390_vector_mode_supported_p): Likewise.
8024 (s390_cc_modes_compatible): Likewise.
8025 (s390_match_ccmode_set): Likewise.
8026 (s390_canonicalize_comparison): Likewise.
8027 (s390_emit_compare_and_swap): Likewise.
8028 (s390_branch_condition_mask): Likewise.
8029 (s390_rtx_costs): Likewise.
8030 (s390_secondary_reload): Likewise.
8031 (__SECONDARY_RELOAD_CASE): Likewise.
8032 (s390_expand_cs): Likewise.
8033 (s390_preferred_simd_mode): Likewise.
8034 * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
8035 * config/sh/sh.c (sh_print_operand): Likewise.
8036 (dump_table): Likewise.
8037 (sh_secondary_reload): Likewise.
8038 * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8039 * config/sh/sh.md (casesi_worker_1): Likewise.
8040 (casesi_worker_2): Likewise.
8041 * config/sparc/predicates.md (icc_comparison_operator): Likewise.
8042 (fcc_comparison_operator): Likewise.
8043 * config/sparc/sparc.c (sparc_expand_move): Likewise.
8044 (emit_soft_tfmode_cvt): Likewise.
8045 (sparc_preferred_simd_mode): Likewise.
8046 (output_cbranch): Likewise.
8047 (sparc_print_operand): Likewise.
8048 (sparc_expand_vec_perm_bmask): Likewise.
8049 (vector_init_bshuffle): Likewise.
8050 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
8051 (spu_vector_mode_supported_p): Likewise.
8052 (spu_expand_insv): Likewise.
8053 (spu_emit_branch_or_set): Likewise.
8054 (spu_handle_vector_attribute): Likewise.
8055 (spu_builtin_splats): Likewise.
8056 (spu_builtin_extract): Likewise.
8057 (spu_builtin_promote): Likewise.
8058 (spu_expand_sign_extend): Likewise.
8059 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
8060 (tilegx_simd_int): Likewise.
8061 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
8062 (tilepro_simd_int): Likewise.
8063 * config/v850/v850.c (const_double_split): Likewise.
8064 (v850_print_operand): Likewise.
8065 (ep_memory_offset): Likewise.
8066 * config/vax/vax.c (vax_rtx_costs): Likewise.
8067 (vax_output_int_move): Likewise.
8068 (vax_output_int_add): Likewise.
8069 (vax_output_int_subtract): Likewise.
8070 * config/visium/predicates.md (visium_branch_operator): Likewise.
8071 * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
8072 (visium_print_operand_address): Likewise.
8073 * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8074 * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
8075 (xtensa_expand_conditional_branch): Likewise.
8076 (xtensa_copy_incoming_a7): Likewise.
8077 (xtensa_output_literal): Likewise.
8078 * dfp.c (decimal_real_maxval): Likewise.
8079 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
8080
8081 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8082 Alan Hayward <alan.hayward@arm.com>
8083 David Sherwood <david.sherwood@arm.com>
8084
8085 * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
8086 (mode_nunits_inline): Likewise.
8087 (mode_inner_inline): Likewise.
8088 (mode_unit_size_inline): Likewise.
8089 (mode_unit_precision_inline): Likewise.
8090 (emit_insn_modes_h): Likewise. Also emit a #define of the
8091 unprefixed name.
8092 (emit_mode_wider): Add an E_ prefix to mode names.
8093 (emit_mode_complex): Likewise.
8094 (emit_mode_inner): Likewise.
8095 (emit_mode_adjustments): Likewise.
8096 (emit_mode_int_n): Likewise.
8097 * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
8098 (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
8099 (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
8100 (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
8101 (CRC32_BUILTIN, ENTRY): Likewise.
8102 * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
8103 (aarch64_pop_regs): Likewise.
8104 (aarch64_process_components): Likewise.
8105 * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
8106 * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
8107 (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
8108 (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
8109 * config/arm/arm.c (arm_init_libfuncs): Likewise.
8110 * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
8111 Likewise.
8112 * config/i386/i386-builtin.def (pcmpestr): Likewise.
8113 (pcmpistr): Likewise.
8114 * config/microblaze/microblaze.c (double_memory_operand): Likewise.
8115 * config/mmix/mmix.c (mmix_output_condition): Likewise.
8116 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
8117 Likewise.
8118 * config/rl78/rl78.c (mduc_regs): Likewise.
8119 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
8120 (htm_expand_builtin): Likewise.
8121 * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
8122 * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
8123 * config/xtensa/xtensa.c (print_operand): Likewise.
8124 * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
8125 (NUM_MODE_VECTOR_INT): Likewise.
8126 * genoutput.c (null_operand): Likewise.
8127 (output_operand_data): Likewise.
8128 * genrecog.c (print_parameter_value): Likewise.
8129 * lra.c (debug_operand_data): Likewise.
8130
8131 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8132
8133 * dwarf2out.c (scompare_loc_descriptor_wide)
8134 (scompare_loc_descriptor_narrow): New functions, split out from...
8135 (scompare_loc_descriptor): ...here.
8136 * expmed.c (emit_store_flag_int): New function, split out from...
8137 (emit_store_flag): ...here.
8138
8139 2017-08-30 Richard Biener <rguenther@suse.de>
8140
8141 * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
8142 (dwarf2out_early_finish): Move setting of AT_pubnames from
8143 early debug output to early finish.
8144
8145 2017-08-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
8146
8147 * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
8148 and -mdata-region to the assembler.
8149
8150 2017-08-30 Richard Biener <rguenther@suse.de>
8151
8152 * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
8153 attributes.
8154 (gen_subprogram_die): Add DW_AT_object_pointer only early.
8155 (dwarf2out_early_global_decl): Only generate a DIE for the
8156 abstract origin if it doesn't already exist or is a declaration DIE.
8157 (resolve_addr): Do not add the linkage name twice when
8158 generating a stub DIE for the DW_TAG_GNU_call_site target.
8159
8160 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8161
8162 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8163 Use machine_mode rather than int for arg1_mode.
8164
8165 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
8166
8167 PR target/82015
8168 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
8169 that the second argument of the built-in functions to unpack
8170 128-bit scalar types to 64-bit values is 0 or 1. Change to use a
8171 switch statement instead a lot of if statements.
8172 * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
8173 Allow 64-bit values to be in Altivec registers as well as
8174 traditional floating point registers.
8175 (pack<mode>, FMOVE128_VSX iterator): Likewise.
8176
8177 2017-08-29 Alexander Monakov <amonakov@ispras.ru>
8178
8179 * ira-costs.c (record_address_regs): Handle both operands of PLUS for
8180 MAX_REGS_PER_ADDRESS == 1.
8181
8182 2017-08-29 Uros Bizjak <ubizjak@gmail.com>
8183
8184 * config/i386/i386.opt (flag_fentry): Do not init to -1.
8185 * config/i386/i386.c (ix86_option_override_internal): Simplify
8186 setting of opts->x_flag_entry.
8187
8188 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8189 Jakub Jelinek <jakub@redhat.com>
8190 Richard Biener <rguenther@suse.de>
8191
8192 PR tree-optimization/81503
8193 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
8194 folded constant fits in the target type; reorder tests for clarity.
8195
8196 2017-08-29 Martin Liska <mliska@suse.cz>
8197
8198 * passes.def: Include pass_lower_switch.
8199 * stmt.c (dump_case_nodes): Remove and move to
8200 tree-switch-conversion.
8201 (case_values_threshold): Likewise.
8202 (expand_switch_as_decision_tree_p): Likewise.
8203 (emit_case_decision_tree): Likewise.
8204 (expand_case): Likewise.
8205 (balance_case_nodes): Likewise.
8206 (node_has_low_bound): Likewise.
8207 (node_has_high_bound): Likewise.
8208 (node_is_bounded): Likewise.
8209 (emit_case_nodes): Likewise.
8210 (struct simple_case_node): New struct.
8211 (add_case_node): Remove.
8212 (emit_case_dispatch_table): Use vector instead of case_list.
8213 (reset_out_edges_aux): Remove.
8214 (compute_cases_per_edge): Likewise.
8215 (expand_case): Build list of simple_case_node.
8216 (expand_sjlj_dispatch_table): Use it.
8217 * tree-switch-conversion.c (struct case_node): Moved from
8218 stmt.c and adjusted.
8219 (emit_case_nodes): Likewise.
8220 (node_has_low_bound): Likewise.
8221 (node_has_high_bound): Likewise.
8222 (node_is_bounded): Likewise.
8223 (case_values_threshold): Likewise.
8224 (reset_out_edges_aux): Likewise.
8225 (compute_cases_per_edge): Likewise.
8226 (add_case_node): Likewise.
8227 (dump_case_nodes): Likewise.
8228 (balance_case_nodes): Likewise.
8229 (expand_switch_as_decision_tree_p): Likewise.
8230 (emit_jump): Likewise.
8231 (emit_case_decision_tree): Likewise.
8232 (try_switch_expansion): Likewise.
8233 (do_jump_if_equal): Likewise.
8234 (emit_cmp_and_jump_insns): Likewise.
8235 (fix_phi_operands_for_edge): New function.
8236 (record_phi_operand_mapping): Likewise.
8237 (class pass_lower_switch): New pass.
8238 (pass_lower_switch::execute): New function.
8239 (make_pass_lower_switch): Likewise.
8240 (conditional_probability):
8241 * timevar.def: Add TV_TREE_SWITCH_LOWERING.
8242 * tree-pass.h: Add make_pass_lower_switch.
8243
8244 2017-08-29 Jozef Lawrynowicz <jozef.l@somniumtech.com>
8245
8246 PR target/80993
8247 * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
8248 handlers as used.
8249
8250 2017-08-29 Richard Biener <rguenther@suse.de>
8251
8252 * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
8253 we do not add a DW_AT_inline attribute twice.
8254 (gen_subprogram_die): Remove code setting DW_AT_inline on
8255 DECL_ABSTRACT_P nodes.
8256
8257 2017-08-29 Richard Sandiford <richard.sandiford@linaro.org>
8258
8259 * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
8260 calls to internal functions.
8261 (gimplify_modify_expr): Likewise.
8262 * tree-call-cdce.c (use_internal_fn): Likewise.
8263 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
8264 (convert_to_divmod): Set the nothrow flag.
8265 * tree-if-conv.c (predicate_mem_writes): Likewise.
8266 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
8267 (vectorizable_call): Likewise.
8268 (vectorizable_store): Likewise.
8269 (vectorizable_load): Likewise.
8270 * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
8271 (vect_recog_mask_conversion_pattern): Likewise.
8272
8273 2017-08-29 Martin Liska <mliska@suse.cz>
8274
8275 PR other/39851
8276 * gcc.c (driver_handle_option): Add new argument.
8277 * opts-common.c (handle_option): Pass
8278 target_option_override_hook.
8279 * opts-global.c (lang_handle_option): Add new option.
8280 (set_default_handlers): Add new argument.
8281 (decode_options): Likewise.
8282 * opts.c (target_handle_option): Likewise.
8283 (common_handle_option): Call target_option_override_hook.
8284 * opts.h (struct cl_option_handler_func): Add hook for
8285 target option override.
8286 (struct cl_option_handlers): Likewise.
8287 (set_default_handlers): Add new argument.
8288 (decode_options): Likewise.
8289 (common_handle_option): Likewise.
8290 (target_handle_option): Likewise.
8291 * toplev.c (toplev::main): Pass targetm.target_option.override
8292 hook.
8293
8294 2017-08-29 Richard Biener <rguenther@suse.de>
8295 Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
8296
8297 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
8298 life to the active subtree.
8299
8300 2017-08-28 Jeff Law <law@redhat.com>
8301
8302 * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
8303 derive_equivalences.
8304 (derive_equivalences_from_bit_ior, record_temporary_equivalences):
8305 Code moved into....
8306 (edge_info::derive_equivalences): New private member function
8307
8308 * tree-ssa-dom.c (class edge_info): Changed from a struct
8309 to a class. Add ctor/dtor, methods and data members.
8310 (edge_info::edge_info): Renamed from allocate_edge_info.
8311 Initialize additional members.
8312 (edge_info::~edge_info): New.
8313 (free_dom_edge_info): Delete the edge info.
8314 (record_edge_info): Use new class & associated member functions.
8315 Tighten forms for testing for edge equivalences.
8316 (record_temporary_equivalences): Iterate over the simple
8317 equivalences rather than assuming there's only one per edge.
8318 (cprop_into_successor_phis): Iterate over the simple
8319 equivalences rather than assuming there's only one per edge.
8320 (optimize_stmt): Use operand_equal_p rather than pointer
8321 equality for mini-DSE code.
8322
8323 2017-08-28 Nathan Sidwell <nathan@acm.org>
8324
8325 * gcc.c (execute): Fold SIGPIPE handling into switch
8326 statement. Adjust internal error message.
8327
8328 2017-08-28 Richard Biener <rguenther@suse.de>
8329
8330 PR debug/81993
8331 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
8332 Do nothing for removed DIEs.
8333
8334 2017-08-28 Richard Biener <rguenther@suse.de>
8335
8336 PR tree-optimization/81977
8337 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
8338 memcpy.
8339
8340 2017-08-28 Alexander Monakov <amonakov@ispras.ru>
8341
8342 PR target/80640
8343 * doc/md.texi (mem_thread_fence): Remove mention of mode. Rewrite.
8344 * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
8345 using targetm.gen_mem_thread_fence.
8346
8347 2017-08-27 Uros Bizjak <ubizjak@gmail.com>
8348
8349 PR target/81995
8350 * config/i386/i386.md (*<btsc><mode>): Change operand 2
8351 predicate to register_operand. Reorder operands.
8352 (*btr<mode>): Ditto.
8353 (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
8354 (*btr<mode>_mask): Ditto.
8355
8356 2017-08-25 Steven Munroe <munroesj@gcc.gnu.org>
8357
8358 * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
8359 * config/rs6000/xmmintrin.h: New file.
8360 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
8361
8362 2017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8363
8364 PR target/81504
8365 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
8366 parameter and_insn and return it.
8367 (recombine_lvx_pattern): Insert a copy to ensure availability of
8368 the base register of the copied masking operation at the point of
8369 the instruction replacement.
8370 (recombine_stvx_pattern): Likewise.
8371
8372 2017-08-25 Michael Meissner <meissner@linux.vnet.ibm.com>
8373
8374 * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
8375 undocumented switches.
8376 (-mpower9-dform-vector): Likewise.
8377 (-mpower9-dform): Likewise.
8378 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
8379 comments to delete references to -mpower9-dform* switches.
8380 * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
8381 Delete reference to -mpower9-dform* switches, test for
8382 -mpower9-vector instead.
8383 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
8384 (OTHER_P9_VECTOR_MASKS): Likewise.
8385 (POWERPC_MASKS): Likewise.
8386 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
8387 tests against -mpower9-dform* to -mpower9-vector. Delete code
8388 that checked for -mpower9-dform* consistancy with other options.
8389 Add test for -mpower9-misc to enable other power9 switches.
8390 (rs6000_init_hard_regno_mode_ok): Likewise.
8391 (rs6000_option_override_internal): Likewise.
8392 (rs6000_emit_prologue): Likewise.
8393 (rs6000_emit_epilogue): Likewise.
8394 (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
8395 (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
8396 (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
8397 -mpower9-vector.
8398 (emit_fusion_p9_store): Likewise.
8399 * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
8400 resetting these macros if the assembler does not support ISA 3.0
8401 instructions.
8402 (TARGET_P9_DFORM_VECTOR): Likewise.
8403 * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
8404 Change to use -mpower9-vector instead of -mpower9-dform-scalar.
8405
8406 2017-08-25 Alan Modra <amodra@gmail.com>
8407
8408 PR rtl-optimization/81747
8409 * cse.c (cse_extended_basic_block): Don't attempt to record
8410 equivalences for degenerate conditional branches that branch
8411 to their fall-through.
8412
8413 2017-08-24 Martin Sebor <msebor@redhat.com>
8414
8415 PR middle-end/81908
8416 * gimple-fold.c (size_must_be_zero_p): New function.
8417 (gimple_fold_builtin_memory_op): Call it.
8418
8419 2017-08-24 Steven Munroe <munroesj@gcc.gnu.org>
8420
8421 * config/rs6000/mm_malloc.h: New file.
8422
8423 2017-08-24 Bin Cheng <bin.cheng@arm.com>
8424
8425 PR tree-optimization/81913
8426 * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
8427 analysis when either IVs in condition can wrap.
8428
8429 2017-08-24 Uros Bizjak <ubizjak@gmail.com>
8430
8431 * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
8432 * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
8433
8434 2017-08-24 Richard Biener <rguenther@suse.de>
8435
8436 PR target/81921
8437 * targhooks.c (default_target_can_inline_p): Properly
8438 use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
8439 is present and always compare.
8440 * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
8441 infer -mfpmath=sse from TARGET_SSE_P.
8442 (ix86_can_inline_p): Properly use target_option_default_node when
8443 no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
8444
8445 2017-08-24 Richard Biener <rguenther@suse.de>
8446
8447 PR debug/81936
8448 * dwarf2out.c (output_die): Handle flag_generate_offload like
8449 flag_generate_lto.
8450 (output_comp_unit): Likewise.
8451 (gen_array_type_die): Likewise.
8452 (dwarf2out_early_finish): Likewise.
8453 (note_variable_value_in_expr): Likewise.
8454 (dwarf2out_finish): Likewise. Adjust assert.
8455 * cgraphunit.c (symbol_table::compile): Move setting of
8456 flag_generate_offload earlier ...
8457 (symbol_table::finalize_compilation_unit): ... here, before
8458 early debug finalization.
8459
8460 2017-08-24 Richard Biener <rguenther@suse.de>
8461
8462 * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
8463 and ipa-fnsummary.h.
8464 (ix86_can_inline_p): When ix86_fpmath flags do not match
8465 check whether the callee uses FP math at all.
8466
8467 2017-08-24 Aldy Hernandez <aldyh@redhat.com>
8468
8469 PR middle-end/81931
8470 * tree-ssanames.c (get_nonzero_bits): Use element_precision
8471 instead of TYPE_PRECISION.
8472
8473 2017-08-24 Richard Sandiford <richard.sandiford@linaro.org>
8474 Alan Hayward <alan.hayward@arm.com>
8475 David Sherwood <david.sherwood@arm.com>
8476
8477 * combine.c (make_extraction): Use subreg_offset_from_lsb.
8478
8479 2017-08-23 Daniel Santos <daniel.santos@pobox.com>
8480
8481 * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
8482 Remove field.
8483 (ix86_frame::stack_realign_allocate): New field.
8484 (struct machine_frame_state): Modify comments.
8485 (machine_frame_state::sp_realigned_fp_end): New field.
8486 * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
8487 layout calculation.
8488 (sp_valid_at): Add assertion to assure no attempt to access invalid
8489 offset of a realigned stack.
8490 (fp_valid_at): Likewise.
8491 (choose_baseaddr): Modify comments.
8492 (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
8493 ix86_expand_prologue.
8494 (ix86_expand_prologue): Modify stack realignment and allocation.
8495 (ix86_expand_epilogue): Modify comments.
8496 * doc/sourcebuild.texi: Add documentation for target selectors avx2,
8497 avx2_runtime, avx512f, and avx512f_runtime.
8498
8499 2017-08-23 Uros Bizjak <ubizjak@gmail.com>
8500
8501 * config/i386/i386.opt: Remove unneeded Init(0) initializations.
8502 (mstackrealign): Do not init to -1.
8503 * config/i386/i386.c (ix86_option_override_internal):
8504 Check opts_set, not opts when setting default value of
8505 opts->x_ix86_force_align_arg_pointer.
8506
8507 2017-08-23 Richard Biener <rguenther@suse.de>
8508
8509 * function.c (fndecl_name): Use verbosity 1 (no arguments) for
8510 lang_hooks.decl_printable_name.
8511 * print-rtl-function.c (print_rtx_function): Likewise.
8512 * tree-pretty-print.c (dump_function_header): Likewise.
8513
8514 2017-08-23 Richard Biener <rguenther@suse.de>
8515
8516 PR lto/81940
8517 * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
8518 -g0 at compile-time.
8519
8520 2017-08-23 Tamar Christina <tamar.christina@arm.com>
8521
8522 PR middle-end/19706
8523 * doc/sourcebuild.texi (Other hardware attributes):
8524 Document xorsign.
8525
8526 2017-08-23 Tamar Christina <tamar.christina@arm.com>
8527
8528 PR middle-end/19706
8529 * tree-ssa-math-opts.c (convert_expand_mult_copysign):
8530 Fix single-use check.
8531
8532 2017-08-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
8533
8534 * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
8535
8536 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
8537
8538 * doc/install.texi: Modify to add more details on running selected
8539 tests.
8540
8541 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
8542
8543 * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
8544 is combined with -mabi=ms.
8545 (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
8546 ms_abi.
8547
8548 2017-08-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8549
8550 PR tree-optimization/81488
8551 * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
8552 and cached_basis fields.
8553 (MAX_SPREAD): New constant.
8554 (alloc_cand_and_find_basis): Initialize new fields.
8555 (clear_visited): New function.
8556 (create_phi_basis_1): Rename from create_phi_basis, set visited
8557 and cached_basis fields.
8558 (create_phi_basis): New wrapper function.
8559 (phi_add_costs_1): Rename from phi_add_costs, add spread
8560 parameter, set visited field, short-circuit when limits reached.
8561 (phi_add_costs): New wrapper function.
8562 (record_phi_increments_1): Rename from record_phi_increments, set
8563 visited field.
8564 (record_phi_increments): New wrapper function.
8565 (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
8566 (phi_incr_cost): New wrapper function.
8567 (all_phi_incrs_profitable_1): Rename from
8568 all_phi_incrs_profitable, set visited field.
8569 (all_phi_incrs_profitable): New wrapper function.
8570
8571 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
8572 Alan Hayward <alan.hayward@arm.com>
8573 David Sherwood <david.sherwood@arm.com>
8574
8575 * rtl.h (paradoxical_subreg_p): Define inline, and add a version
8576 that takes the outer and inner modes.
8577 * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
8578 comparison as the canonical test for a paradoxical subreg.
8579 * combine.c (simplify_set): Use paradoxical_subreg_p.
8580 (make_extraction): Likewise.
8581 (force_to_mode): Likewise.
8582 (rtx_equal_for_field_assignment_p): Likewise.
8583 (gen_lowpart_for_combine): Likewise.
8584 (simplify_comparison): Likewise.
8585 * cse.c (equiv_constant): Likewise.
8586 * expmed.c (store_bit_field_1): Likewise.
8587 * final.c (alter_subreg): Likewise.
8588 * fwprop.c (propagate_rtx): Likewise.
8589 (forward_propagate_subreg): Likewise.
8590 * ira-conflicts.c (ira_build_conflicts): Likewise.
8591 * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
8592 * lra-constraints.c (curr_insn_transform): Likewise.
8593 (split_reg): Likewise.
8594 * lra-eliminations.c (move_plus_up): Likewise.
8595 (lra_eliminate_regs_1): Likewise.
8596 * recog.c (general_operand): Likewise.
8597 * ree.c (combine_reaching_defs): Likewise.
8598 * reload.c (push_reload): Likewise.
8599 (find_reloads): Likewise.
8600 * reload1.c (elimination_effects): Likewise.
8601 (compute_reload_subreg_offset): Likewise.
8602 (choose_reload_regs): Likewise.
8603 * rtlanal.c (subreg_lsb_1): Likewise.
8604 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8605 (simplify_subreg): Likewise.
8606 * var-tracking.c (track_loc_p): Likewise.
8607 * emit-rtl.c (byte_lowpart_offset): Likewise.
8608 (paradoxical_subreg_p): Delete out-of-line definition.
8609
8610 2017-08-22 Jeff Law <law@redhat.com>
8611
8612 PR tree-optimization/81741
8613 PR tree-optimization/71947
8614 * tree-ssa-dom.c: Include tree-inline.h.
8615 (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
8616 equivalences if one is more expensive to compute than the other.
8617 * tree-ssa-scopedtables.h (class const_or_copies): Make
8618 record_const_or_copy_raw method private.
8619 (class avail_exprs_stack): New method simplify_binary_operation.
8620 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
8621 avail_exprs_stack::simplify_binary_operation as needed.
8622 (avail_exprs_stack::simplify_binary_operation): New function.
8623
8624 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
8625
8626 * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
8627 * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
8628 (DOT_SYMBOLS): Likewise.
8629 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
8630 (RELOCATABLE_NEEDS_FIXUP): Likewise.
8631 (RS6000_ABI_NAME): Likewise.
8632 (TARGET_CMODEL): Likewise.
8633 (TOC_SECTION_ASM_OP): Likewise.
8634 (SET_CMODEL): New macro.
8635 (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
8636
8637 2017-08-22 Richard Biener <rguenther@suse.de>
8638
8639 * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
8640 to allow for free-lang-data replacements similar to verify_type_variant.
8641
8642 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
8643 Alan Hayward <alan.hayward@arm.com>
8644 David Sherwood <david.sherwood@arm.com>
8645
8646 * config/aarch64/aarch64.md (casesi): Use DImode rather than
8647 VOIDmode for the LABEL_REF.
8648
8649 2017-08-22 Richard Biener <rguenther@suse.de>
8650
8651 * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
8652
8653 2017-08-22 Richard Biener <rguenther@suse.de>
8654
8655 * common.opt (feliminate-dwarf2-dups): Ignore.
8656 * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
8657 * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
8658 same_die_p_wrap, compute_section_prefix,
8659 is_symbol_die, assign_symbol_names, break_out_includes): Remove.
8660 (comdat_symbol_id, comdat_symbol_number): Likewise.
8661 (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
8662 Likewise.
8663 (check_duplicate_cu, record_comdat_symbol_number): Likewise.
8664 (output_die): Mark unreachable path unreachable.
8665 (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
8666 (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
8667 (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
8668 (dwarf2out_early_finish): Likewise.
8669
8670 2017-08-22 Aldy Hernandez <aldyh@redhat.com>
8671
8672 * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
8673
8674 2017-08-22 Georg-Johann Lay <avr@gjlay.de>
8675
8676 PR target/81910
8677 * config/avr/avr.c (avr_handle_addr_attribute): Early return if
8678 not VAR_P. Filter attribute warnings with OPT_Wattributes.
8679 (avr_attribute_table) <io, io_low, address>: Initialize
8680 .decl_required with true.
8681
8682 2017-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8683
8684 * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
8685 undocumented debugging options.
8686 (-mvsx-scalar-double): Likewise.
8687 (-mallow-df-permute): Likewise.
8688 (-mvectorize-builtins): Likewise.
8689 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
8690 (rs6000_builtin_vectorized_function): Likewise.
8691 (rs6000_builtin_md_vectorized_function): Likewise.
8692 (rs6000_opt_vars): Likewise.
8693
8694 2017-08-21 Uros Bizjak <ubizjak@gmail.com>
8695
8696 PR target/46091
8697 * config/i386/i386.md (*btsq_imm): Rename from *btsq.
8698 (*btrq_imm): Rename from *btrq.
8699 (*btcq_imm): Rename from *btcq.
8700 (btsc): New code attribute.
8701 (*<btsc><mode>): New insn pattern.
8702 (*btr<mode>): Ditto.
8703 (*<btsc><mode>_mask): New insn_and_split pattern.
8704 (*btr<mode>_mask): Ditto.
8705
8706 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
8707 Alan Hayward <alan.hayward@arm.com>
8708 David Sherwood <david.sherwood@arm.com>
8709
8710 * function.c (pad_below): Simplify padding calculation.
8711
8712 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
8713 Alan Hayward <alan.hayward@arm.com>
8714 David Sherwood <david.sherwood@arm.com>
8715
8716 * target.def (function_prologue): Remove frame size argument.
8717 (function_epilogue): Likewise.
8718 * doc/tm.texi: Regenerate.
8719 * final.c (final_start_function): Update call to function_prologue.
8720 (final_end_function): Update call to function_epilogue.
8721 (default_function_pro_epilogue): Remove frame size argument.
8722 * output.h (default_function_pro_epilogue): Likewise.
8723 * config/arm/arm.c (arm_output_function_epilogue): Likewise.
8724 (arm_output_function_prologue): Likewise.
8725 * config/frv/frv.c (frv_function_prologue): Likewise.
8726 (frv_function_epilogue): Likewise.
8727 * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
8728 * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
8729 (ia64_output_function_epilogue): Likewise.
8730 * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
8731 (m32r_output_function_epilogue): Likewise.
8732 * config/microblaze/microblaze.c (microblaze_function_prologue)
8733 (microblaze_function_epilogue): Likewise.
8734 * config/mips/mips.c (mips_output_function_prologue): Likewise.
8735 (mips_output_function_epilogue): Likewise.
8736 * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
8737 (mmix_target_asm_function_epilogue): Likewise.
8738 * config/msp430/msp430.c (msp430_start_function): Likewise.
8739 * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
8740 (nds32_asm_function_epilogue): Likewise.
8741 * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
8742 * config/pa/pa.c (pa_output_function_prologue): Likewise.
8743 (pa_output_function_epilogue): Likewise.
8744 * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
8745 (rs6000_output_function_epilogue): Likewise.
8746 * config/rl78/rl78.c (rl78_start_function): Likewise.
8747 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
8748 (rs6000_output_function_epilogue): Likewise.
8749 * config/rx/rx.c (rx_output_function_prologue): Likewise.
8750 * config/sh/sh.c (sh_output_function_epilogue): Likewise.
8751 * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
8752 (sparc_asm_function_epilogue): Likewise.
8753
8754 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
8755
8756 * tree.h (type_has_mode_precision_p): New function.
8757 * convert.c (convert_to_integer_1): Use it.
8758 * expr.c (expand_expr_real_2): Likewise.
8759 (expand_expr_real_1): Likewise.
8760 * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
8761 * match.pd: Likewise.
8762 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
8763 * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
8764 * tree-tailcall.c (process_assignment): Likewise.
8765 * tree-vect-loop.c (vectorizable_reduction): Likewise.
8766 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
8767 (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
8768 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8769 (vectorizable_assignment): Likewise.
8770 (vectorizable_shift): Likewise.
8771 (vectorizable_operation): Likewise.
8772 * tree-vrp.c (register_edge_assert_for_2): Likewise.
8773
8774 2017-08-21 Wilco Dijkstra <wdijkstr@arm.com>
8775
8776 * match.pd: Add pow (C, x) simplification.
8777
8778 2017-08-21 Richard Biener <rguenther@suse.de>
8779
8780 PR tree-optimization/81900
8781 * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
8782 for blocks with abnormal predecessors.
8783 (compute_antic): Do not set visited flag prematurely.
8784
8785 2017-08-21 Georg-Johann Lay <avr@gjlay.de>
8786
8787 PR target/79883
8788 * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
8789
8790 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
8791
8792 * stor-layout.h (vector_type_mode): Move to...
8793 * tree.h (vector_type_mode): ...here.
8794 * stor-layout.c (vector_type_mode): Move to...
8795 * tree.c (vector_type_mode): ...here. Include rtl.h and regs.h.
8796
8797 2017-08-21 Richard Biener <rguenther@suse.de>
8798
8799 * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
8800 register_external_die hooks.
8801 (debug_false_tree_charstarstar_uhwistar): Declare.
8802 (debug_nothing_tree_charstar_uhwi): Likewise.
8803 * debug.c (do_nothing_debug_hooks): Adjust.
8804 (debug_false_tree_charstarstar_uhwistar): New do nothing.
8805 (debug_nothing_tree_charstar_uhwi): Likewise.
8806 * dbxout.c (dbx_debug_hooks): Adjust.
8807 (xcoff_debug_hooks): Likewise.
8808 * sdbout.c (sdb_debug_hooks): Likewise.
8809 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8810 * dwarf2out.c (macinfo_label_base): New global.
8811 (dwarf2out_register_external_die): New function for the
8812 register_external_die hook.
8813 (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
8814 (dwarf2_debug_hooks): Use them.
8815 (dwarf2_lineno_debug_hooks): Adjust.
8816 (struct die_struct): Add with_offset flag.
8817 (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
8818 DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
8819 DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
8820 DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
8821 DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
8822 DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
8823 defining section names for the early LTO debug variants.
8824 (reset_indirect_string): New helper.
8825 (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
8826 (print_dw_val): Add support for offsetted symbol references.
8827 (get_ultimate_context): Split out from is_cxx.
8828 (is_cxx): Use get_ultimate_context.
8829 (is_fortran): Add decl overload.
8830 (compute_comp_unit_symbol): Split out worker from
8831 compute_section_prefix.
8832 (compute_section_prefix): Call compute_comp_unit_symbol and
8833 set comdat_type_p here.
8834 (output_die): Skip DIE symbol output for the LTO added one.
8835 Handle DIE symbol references with offset.
8836 (output_comp_unit): Guard section name mangling properly.
8837 For LTO debug sections emit a symbol at the section beginning
8838 which we use to refer to its DIEs.
8839 (add_abstract_origin_attribute): For DIEs registered via
8840 dwarf2out_register_external_die directly refer to the early
8841 DIE rather than indirectly through the shadow one we created.
8842 Remove obsolete call to dwarf2out_abstract_function for
8843 non-function/block origins.
8844 (gen_array_type_die): When generating early LTO debug do
8845 not emit DW_AT_string_length.
8846 (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
8847 late when in LTO. As suggested place a gcc_unreachable for
8848 the DECL_ABSTRACT_P case.
8849 (gen_subprogram_die): Avoid another specification DIE
8850 for early built declarations/definitions for the late LTO case.
8851 (gen_variable_die): Add type references for late duplicated VLA dies
8852 when in late LTO.
8853 (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
8854 we have the abstract instance already.
8855 (process_scope_var): Adjust decl DIE contexts in LTO which
8856 first puts them in limbo.
8857 (gen_decl_die): Do not generate type DIEs late apart from
8858 types for VLAs or for decls we do not yet have a DIE. Do not
8859 call dwarf2out_abstract_function late.
8860 (dwarf2out_early_global_decl): Make sure to create DIEs
8861 for abstract instances of a decl first.
8862 (dwarf2out_late_global_decl): Adjust comment.
8863 (output_macinfo_op): With multiple macro sections use
8864 macinfo_label_base to distinguish labels.
8865 (output_macinfo): Likewise. Update macinfo_label_base.
8866 Pass in the line info label.
8867 (note_variable_value_in_expr): When generating LTO resolve
8868 all variable values here by generating DIEs as needed.
8869 (init_sections_and_labels): Add early LTO debug flag parameter
8870 and generate different sections and names if set. Add generation
8871 counter for the labels so we can have multiple of them.
8872 (reset_dies): Helper to allow DIEs to be output multiple times.
8873 (dwarf2out_finish): When outputting DIEs to the fat part of an
8874 LTO object first reset DIEs.
8875 (dwarf2out_early_finish): Output early DIEs when generating LTO.
8876 (modified_type_die): Check for decl_ultimate_origin being self
8877 before recursing.
8878 (gen_type_die_with_usage): Likewise.
8879 (gen_typedef_die): Allow decl_ultimate_origin being self.
8880 (set_decl_abstract_flags): Remove.
8881 (set_block_abstract_flags): Likewise.
8882 (dwarf2out_abstract_function): Treat the early generated DIEs
8883 as the abstract copy and only add DW_AT_inline and
8884 DW_AT_artificial here and call set_decl_origin_self.
8885 If the DIE has an abstract origin don't do anything.
8886 * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
8887 if we have none yet (Go fails to build one, PR78628).
8888 (variably_modified_type_p): Prevent endless recursion for Ada
8889 cyclic pointer types.
8890 * lto-streamer-in.c: Include debug.h.
8891 (dref_queue): New global.
8892 (lto_read_tree_1): Stream in DIE references.
8893 (lto_input_tree): Register DIE references.
8894 (input_function): Stream DECL_DEBUG_ARGS.
8895 * lto-streamer-out.c: Include debug.h.
8896 (lto_write_tree_1): Output DIE references.
8897 (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
8898 Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
8899 (output_function): Stream DECL_DEBUG_ARGS.
8900 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
8901 Stream DECL_ABSTRACT_ORIGIN.
8902 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
8903 (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
8904 DECL_CONTEXT for file-scope decls.
8905 * lto-streamer.h (struct dref_entry): Declare.
8906 (dref_queue): Likewise.
8907 * cfgexpand.c (pass_expand::execute): Do not call the
8908 outlining_inline_function hook here.
8909 * lto-wrapper.c (debug_obj): New global.
8910 (tool_cleanup): Unlink it if required.
8911 (debug_objcopy): New function.
8912 (run_gcc): Handle early debug sections in the IL files by
8913 extracting them to separate files, partially linkin them and
8914 feeding the result back as result to the linker.
8915 * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
8916 DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
8917 DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
8918 sections into a separate segment.
8919 * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
8920 segments.
8921 (darwin_asm_dwarf_section): Likewise.
8922 (darwin_asm_output_dwarf_offset): Likewise.
8923 * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
8924
8925 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
8926 Alan Hayward <alan.hayward@arm.com>
8927 David Sherwood <david.sherwood@arm.com>
8928
8929 * read-md.h (md_reader::record_potential_iterator_use): Replace
8930 pointer argument with an rtx and an index.
8931 * read-rtl.c (iterator_group::apply_iterator): Likewise.
8932 (apply_mode_iterator): Likewise.
8933 (apply_code_iterator): Likewise.
8934 (apply_int_iterator): Likewise.
8935 (apply_subst_iterator): Likewise.
8936 (record_iterator_use): Likewise.
8937 (record_attribute_use): Likewise.
8938 (md_reader::record_potential_iterator_use): Likewise. Update calls
8939 to record_iterator_use and apply_iterator.
8940 (iterator_use): Replace ptr with x and index.
8941 (attribute_use): Likewise.
8942 (apply_attribute_uses): Update calls to apply_iterator.
8943 (apply_iterators): Likewise. Update initialization of iterator_use.
8944 (rtx_reader::read_rtx_code): Update calls to record_iterator_use
8945 and record_potential_iterator_use.
8946 (rtx_reader::read_rtx_operand): Likewise.
8947
8948 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
8949 Alan Hayward <alan.hayward@arm.com>
8950 David Sherwood <david.sherwood@arm.com>
8951
8952 * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
8953 CONST_WIDE_INT.
8954
8955 2017-08-21 Richard Biener <rguenther@suse.de>
8956
8957 PR middle-end/81884
8958 * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
8959 at struct end conservatively when comparing common bases.
8960
8961 2017-08-21 Richard Biener <rguenther@suse.de>
8962
8963 * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
8964 (mem_ref_in_stmt): Remove.
8965 (determine_max_movement): Use ref index to get at the reference.
8966 (invariantness_dom_walker::before_dom_children): Deal with
8967 lim data already initialized.
8968 (gather_mem_refs_stmt): Initialize lim data and record ref index.
8969
8970 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
8971
8972 * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
8973 (TARGET_ISA_ROUND): Ditto.
8974 (TARGET_ROUND): Ditto.
8975 * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
8976 * config/i386/i386.md: Ditto.
8977 * config/i386/sse.md: Ditto.
8978 * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
8979 with OPTION_MASK_ISA_SSE4_1.
8980
8981 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
8982
8983 PR target/81894
8984 * doc/extend.texi (x86 Built-in Functions): Correct the name of
8985 __builtin_ia32_lzcnt_u16.
8986
8987 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
8988
8989 PR target/80210
8990 * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
8991 (rs6000_set_current_function): Rewrite function to use it.
8992
8993 2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
8994
8995 PR c/53037
8996 * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
8997 and TYPE_WARN_IF_NOT_ALIGN.
8998 * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
8999 (handle_warn_if_not_align): New.
9000 (place_union_field): Call handle_warn_if_not_align.
9001 (place_field): Call handle_warn_if_not_align.
9002 Copy TYPE_WARN_IF_NOT_ALIGN.
9003 (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
9004 (layout_type): Likewise.
9005 * tree-core.h (tree_type_common): Add warn_if_not_align. Set
9006 spare to 18.
9007 (tree_decl_common): Add warn_if_not_align.
9008 * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
9009 * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
9010 (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
9011 (DECL_WARN_IF_NOT_ALIGN): Likewise.
9012 (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
9013 * doc/extend.texi: Document warn_if_not_aligned attribute.
9014 * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
9015
9016 2017-08-17 Martin Liska <mliska@suse.cz>
9017
9018 PR bootstrap/81864
9019 * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
9020 (get_data_dependence): Use it as pointer type.
9021 (distribute_loop): Likewise.
9022
9023 2017-08-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9024
9025 * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
9026 (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
9027 (p8_vmrgow_<mode>_direct): New define_insn.
9028 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
9029 handle endianness for vmrgew and vmrgow permute patterns.
9030
9031 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
9032
9033 * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
9034 * config/rs6000/rs6000-cpus.def: Remove comment.
9035 (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
9036 (POWERPC_MASKS): Likewise.
9037 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
9038 use of TARGET_VSX_TIMODE.
9039 (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
9040 (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
9041 TARGET_VSX_TIMODE. Change use of TARGET_VSX_TIMODE to TARGET_VSX.
9042 (rs6000_option_override_internal): Remove dead code.
9043 (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
9044 (rs6000_legitimize_reload_address): Likewise.
9045 (rs6000_legitimate_address_p): Likewise.
9046 (rs6000_opt_masks): Delete "vsx-timode".
9047 (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
9048 from function comment.
9049 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
9050 * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
9051 (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
9052 condition.
9053 * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
9054 * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
9055 * config/rs6000/vsx.md (VSX_LE_128): Likewise.
9056 (VSX_TI): Likewise.
9057 (VSX_M): Likewise.
9058 (define_peephole2): Likewise.
9059
9060 2017-08-17 Martin Sebor <msebor@redhat.com>
9061
9062 PR c/81859
9063 * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
9064 past the end of an array.
9065 (test_pp_format): Add test cases.
9066
9067 2017-08-17 Richard Sandiford <richard.sandiford@linaro.org>
9068
9069 * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
9070 missing ECF_NOTHROW flags.
9071
9072 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
9073
9074 PR target/72804
9075 * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
9076 operands residing in integer registers.
9077 (*vsx_le_perm_load_<mode>): Likewise.
9078 (*vsx_le_perm_store_<mode>): Likewise.
9079 (define_peephole2): Add peepholes to optimize the above.
9080
9081 2017-08-17 Marek Polacek <polacek@redhat.com>
9082
9083 PR middle-end/81814
9084 * fold-const.c (operand_equal_for_comparison_p): Remove code that used
9085 to mimic what shorten_compare did. Change the return type to bool.
9086 (fold_cond_expr_with_comparison): Update call to
9087 operand_equal_for_comparison_p.
9088 (fold_ternary_loc): Likewise.
9089
9090 2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com>
9091
9092 * aarch64-simd.md (mov<mode>): No longer force zero immediate into
9093 register.
9094 (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
9095
9096 2017-08-17 Richard Biener <rguenther@suse.de>
9097
9098 * tree-ssa-structalias.c (solve_graph): When propagating
9099 to successors update the graphs succ edges and avoid duplicate work.
9100
9101 2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com>
9102
9103 PR target/81861
9104 * config/i386/i386.c (ix86_option_override_internal): Save target
9105 specific options after ix86_stack_protector_guard_reg was changed.
9106
9107 2017-08-17 Richard Biener <rguenther@suse.de>
9108
9109 PR tree-optimization/81827
9110 * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
9111 (new_var_info): Initialize it conservatively.
9112 (get_call_vi): Mark register vars.
9113 (new_scalar_tmp_constraint_exp): Likewise.
9114 (handle_rhs_call): Likewise.
9115 (handle_const_call): Likewise.
9116 (create_function_info_for): Likewise.
9117 (solve_constraints): Sort varinfos to separate register from
9118 non-register vars to pack points-to solution bitmaps during
9119 iteration.
9120
9121 2017-08-17 Marek Polacek <polacek@redhat.com>
9122
9123 * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
9124
9125 2017-08-17 Richard Biener <rguenther@suse.de>
9126
9127 * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
9128 to true when overflow is undefined and we saturated the result.
9129
9130 2017-08-17 Alan Modra <amodra@gmail.com>
9131
9132 PR target/80938
9133 * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
9134 Don't use store multiple if only one reg needs saving.
9135 (interesting_frame_related_regno): New function.
9136 (rs6000_frame_related): Don't emit frame info for regs that
9137 don't need saving.
9138 (rs6000_emit_epilogue): Likewise.
9139
9140 2017-08-16 Nathan Sidwell <nathan@acm.org>
9141
9142 * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
9143 * tree.h (TYPE_BINFO): Use type_non_common.maxval.
9144 (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
9145 * tree.c (free_lang_data_in_type): Use else-if chain. Always
9146 clear TYPE_LANG_1. Remove obsolete member-function stripping.
9147 (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
9148 (verify_type): Adjust for TYPE_BINFO move.
9149 * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
9150 process TYPE_BINFO directly.
9151 (hash_tree): Likewise.
9152 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
9153 Likewise.
9154 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
9155 Likewise.
9156
9157 2017-08-16 David Malcolm <dmalcolm@redhat.com>
9158
9159 * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
9160
9161 2017-08-16 Uros Bizjak <ubizjak@gmail.com>
9162
9163 PR target/46091
9164 * config/i386/i386.md (*anddi_1_btr): Change predicates of
9165 operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
9166 Add ix86_binary_operator_ok to insn constraint.
9167 (*iordi_1_bts): Ditto.
9168 (*xordi_1_btc): Ditto.
9169 (*btsq): Change predicate of operand 0 to nonimmediate_operand.
9170 Update corresponding peephole2 pattern.
9171 (*btrq): Ditto.
9172 (*btcq): Ditto.
9173
9174 2017-08-16 Bin Cheng <bin.cheng@arm.com>
9175
9176 PR tree-optimization/81832
9177 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
9178 copy loop header which has IFN_LOOP_DIST_ALIAS call.
9179
9180 2017-08-16 Marek Polacek <polacek@redhat.com>
9181
9182 PR middle/81695
9183 * fold-const.c (fold_indirect_ref_1): Restore original behavior
9184 regarding size_zero_node.
9185
9186 2017-08-16 Martin Liska <mliska@suse.cz>
9187
9188 PR target/81753
9189 * config.gcc: Respect previously set extra_objs in case
9190 of darwin target.
9191
9192 2017-08-16 Richard Sandiford <richard.sandiford@linaro.org>
9193
9194 PR tree-optimization/81835
9195 * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
9196 the phi SSA_NAME. Check that the condition in a COND_EXPR does
9197 not depend on the phi.
9198
9199 2017-08-16 Alan Modra <amodra@gmail.com>
9200
9201 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
9202 dead code.
9203
9204 2017-08-16 Alan Modra <amodra@gmail.com>
9205
9206 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
9207 (save_reg_p): ..into this. Update all callers.
9208 (first_reg_to_save): Simplify.
9209
9210 2017-08-16 Alan Modra <amodra@gmail.com>
9211
9212 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
9213 fixed regs.
9214
9215 2017-08-15 Joseph Myers <joseph@codesourcery.com>
9216
9217 PR target/78460
9218 PR target/67712
9219 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
9220 constant count if that count is less than 32.
9221
9222 2017-08-15 Nathan Sidwell <nathan@acm.org>
9223
9224 * gcc.c (execute): Emit friendlier message if inferior is killed
9225 by an external cause.
9226
9227 2017-08-15 Richard Biener <rguenther@suse.de>
9228
9229 PR tree-optimization/81790
9230 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
9231 CONSTRUCTORs from simplifying and VN.
9232
9233 2017-08-14 Martin Sebor <msebor@redhat.com>
9234
9235 * builtin-attrs.def: Add comments.
9236
9237 2017-08-14 Martin Sebor <msebor@redhat.com>
9238
9239 PR c/81117
9240 * doc/extend.texi (attribute nonstring): Document new attribute.
9241
9242 2017-08-14 Martin Sebor <msebor@redhat.com>
9243
9244 PR c/81117
9245 * tree-diagnostic.c (default_tree_printer): Handle %G.
9246 * gimple-pretty-print.h (percent_G_format): Declare new function.
9247 * gimple-pretty-print.c (percent_G_format): Define.
9248 * tree-pretty-print.c (percent_K_format): Add argument.
9249
9250 2017-08-14 Martin Sebor <msebor@redhat.com>
9251
9252 PR translation/79998
9253 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
9254 Remove a stray space.
9255
9256 2017-08-14 Uros Bizjak <ubizjak@gmail.com>
9257
9258 PR target/46091
9259 * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
9260 (*iordi_1_bts): Ditto.
9261 (*xordi_1_btc): Ditto.
9262
9263 2017-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9264
9265 PR target/79845
9266 * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
9267 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9268 Likewise.
9269 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
9270 quoted strings, and make more translator-friendly.
9271 (darwin_rs6000_override_options): Likewise.
9272 (rs6000_option_override_internal): Likewise.
9273 (rs6000_return_in_memory): Fix overlong line.
9274 (init_cmulative_args): Use quoted strings, and make more
9275 translator-friendly.
9276 (rs6000_pass_by_reference): Fix overlong line.
9277 (def_builtin): Use quoted strings.
9278 (altivec_expand_predicate_builtin): Use quoted strings, and make
9279 more translator-friendly.
9280 (htm_expand_builtin): Use quoted strings.
9281 (cpu_expand_builtin): Use quoted strings, and make more
9282 translator-friendly.
9283 (altivec_expand_builtin): Likewise.
9284 (paired_expand_predicate_builtin): Likewise.
9285 (rs6000_invalid_builtin): Likewise.
9286 (builtin_function_type): Use quoted strings.
9287 (rs6000_expand_split_stack_prologue): Use quoted strings, and make
9288 more translator-friendly.
9289 (rs6000_trampoline_init): Likewise.
9290 (rs6000_handle_altivec_attribute): Likewise.
9291 (rs6000_inner_target_options): Use quoted strings.
9292 (rs6000_disable_incompatible_switches): Likewise.
9293 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
9294 strings, and make more translator-friendly.
9295 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
9296
9297 2017-08-14 Bin Cheng <bin.cheng@arm.com>
9298
9299 PR tree-optimization/81799
9300 * tree-loop-distribution.c (version_loop_by_alias_check): Force
9301 cond_expr to simple gimple operand.
9302
9303 2017-08-14 Wilco Dijkstra <wdijkstr@arm.com>
9304
9305 PR middle-end/46932
9306 * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
9307
9308 2017-08-14 Georg-Johann Lay <avr@gjlay.de>
9309
9310 PR target/81754
9311 PR target/81268
9312 * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
9313 * config/avr/avr.md (gasisr, *gasisr): Use it instead of
9314 TARGET_GASISR_PROLOGUES.
9315 * config/avr/avr.c (avr_option_override): Same.
9316 (avr_pass_pre_proep::execute): Same.
9317
9318 2017-08-13 H.J. Lu <hongjiu.lu@intel.com>
9319
9320 PR target/81820
9321 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
9322 frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
9323
9324 2017-08-13 Uros Bizjak <ubizjak@gmail.com>
9325
9326 * config/i386/i386.md (*load_tp_<mode>): Redefine as
9327 define_insn_and_split. Split to a memory load from 0 in
9328 DEFAULT_TLS_SEG_REG address space. Merge with *load_tp_x32
9329 using PTR mode iterator.
9330 (*load_tp_x32_zext"): Redefine as define_insn_and_split.
9331 Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
9332 (*add_tp_<mode>): Redefine as define_insn_and_split.
9333 Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
9334 address space. Merge with *add_tp_x32 using PTR mode iterator.
9335 (*add_tp_x32_zext"): Redefine as define_insn_and_split.
9336 Split to an add with a memory load from 0 in
9337 DEFAULT_TLS_SEG_REG address space.
9338
9339 2017-08-12 Andrew Pinski <apinski@cavium.com>
9340
9341 * config/aarch64/aarch64-option-extensions.def (rdma):
9342 Fix feature string to what Linux prints out in /proc/cpuinfo.
9343
9344 2017-08-12 Pierre-Marie de Rodat <derodat@adacore.com>
9345
9346 PR ada/79542
9347 * dwarf2out.c (modified_type_die): For C typedef types that have
9348 an ultimate origin, process the ultimate origin instead of the
9349 input type.
9350 (gen_typedef_die): Assert that input DECLs have no ultimate
9351 origin.
9352 (gen_type_die_with_usage): For typedef variants that have an
9353 ultimate origin, just call gen_decl_die on the original DECL.
9354 (process_scope_var): Avoid creating DIEs for local typedefs and
9355 concrete static variables.
9356
9357 2017-08-12 Alan Modra <amodra@gmail.com>
9358
9359 PR target/81170
9360 PR target/81295
9361 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
9362 match gnu-user.h startfile.
9363 (ENDFILE_LINUX_SPEC): Similarly.
9364
9365 2017-08-11 Thomas Schwinge <thomas@codesourcery.com>
9366
9367 PR lto/81430
9368 * config/nvptx/nvptx.c (nvptx_override_options_after_change):
9369 Remove function.
9370 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
9371
9372 2017-08-11 Tamar Christina <tamar.christina@arm.com>
9373 * config/aarch64/aarch64.md (mov<mode>): Change.
9374 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
9375 aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
9376 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
9377
9378 2017-08-11 Eric Botcazou <ebotcazou@adacore.com>
9379
9380 * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
9381 for storage order barriers.
9382
9383 2017-08-11 Martin Liska <mliska@suse.cz>
9384
9385 PR tree-opt/79987
9386 * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
9387 variables of void type.
9388
9389 2017-08-11 Martin Liska <mliska@suse.cz>
9390
9391 * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
9392 TARGET_SUPPORTS_ALIASES.
9393 * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
9394 * ipa-visibility.c (can_replace_by_local_alias): Likewise.
9395 (optimize_weakref): Likewise.
9396 * symtab.c (symtab_node::noninterposable_alias): Likewise.
9397 * varpool.c (varpool_node::create_extra_name_alias): Likewise.
9398 * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
9399
9400 2017-08-11 Martin Liska <mliska@suse.cz>
9401
9402 PR ipa/81213
9403 * config/i386/i386.c (make_resolver_func): Do complete
9404 refactoring of the function.
9405
9406 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
9407
9408 PR target/81708
9409 * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
9410 * config/i386/i386.c (ix86_stack_protect_guard): Use
9411 ix86_stack_protect_guard_symbol_str to generate varible declaration.
9412 * doc/invoke.texi (x86 Options): Document
9413 -mstack-protector-guard-symbol= option.
9414
9415 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
9416
9417 * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
9418 * config/i386/i386.c (ix86_split_stack_guard): New function.
9419 (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
9420 (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
9421 (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
9422 (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
9423 * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
9424 (split_stack_space_check): Call ix86_split_stack_guard.
9425
9426 2017-08-10 Martin Sebor <msebor@redhat.com>
9427
9428 * print-tree.c (print_node): Print location using the established
9429 format %s:%i%i.
9430 Replace spaces with colons.
9431 (debug_raw, debug): Ditto.
9432
9433 2017-08-10 Martin Sebor <msebor@redhat.com>
9434
9435 PR c++/81586
9436 * pretty-print.c (pp_format): Correct the handling of %s precision.
9437
9438 2017-08-10 H.J. Lu <hongjiu.lu@intel.com>
9439
9440 PR target/81736
9441 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
9442 to ...
9443 (ix86_finalize_stack_frame_flags): This. Also clear
9444 frame_pointer_needed if -fno-omit-frame-pointer is used without
9445 stack access.
9446 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
9447 with ix86_finalize_stack_frame_flags.
9448 (ix86_expand_epilogue): Likewise.
9449 (ix86_expand_split_stack_prologue): Likewise.
9450 * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
9451
9452 2017-08-10 Martin Liska <mliska@suse.cz>
9453
9454 PR c++/81355
9455 * c-attribs.c (handle_target_attribute):
9456 Report warning for an empty string argument of target attribute.
9457
9458 2017-08-09 Jakub Jelinek <jakub@redhat.com>
9459
9460 PR c/81687
9461 * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
9462 LABEL_DECLs.
9463 * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
9464 or DECL_NONLOCAL labels.
9465 (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
9466 or DECL_NONLOCAL labels here.
9467
9468 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com>
9469
9470 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
9471 to indicate when early gimple folding has been disabled.
9472 (rs6000_gimple_fold_builtin): Add debug content.
9473 (rs6000_invalid_builtin): Fix whitespace.
9474 (rs6000_expand_builtin): Fix whitespace.
9475 * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
9476
9477 2017-08-09 Segher Boessenkool <segher@kernel.crashing.org>
9478
9479 PR target/80938
9480 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
9481 SAVE_MULTIPLE if not all the registers that saves, should be saved.
9482
9483 2017-08-09 Jim Wilson <jim.wilson@linaro.org>
9484
9485 * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
9486 (qdf24xx): Likewise.
9487 * config/aarch64/aarch64.md: Include falkor.md.
9488 * config/aarch64/falkor.md: New.
9489
9490 2017-08-09 Marek Polacek <polacek@redhat.com>
9491
9492 PR c/81233
9493 * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
9494 * diagnostic.c (emit_diagnostic): Add a comment.
9495 (emit_diagnostic_valist): New function.
9496
9497 2017-08-09 Marek Polacek <polacek@redhat.com>
9498
9499 PR c/81417
9500 * input.c (make_location): New overload.
9501 * input.h (make_location): Declare.
9502
9503 2017-08-08 Alan Modra <amodra@gmail.com>
9504 H.J. Lu <hongjiu.lu@intel.com>
9505
9506 PR driver/81523
9507 * gcc.c (NO_PIE_SPEC): Delete.
9508 (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r
9509 exclusion..
9510 (LINK_PIE_SPEC): ..to here.
9511 (LINK_COMMAND_SPEC): Support -no-pie.
9512 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
9513 chain of crtbegin*.o selection, update for PIE_SPEC changes and
9514 format.
9515 (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
9516 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
9517 (ENDFILE_CRTEND_SPEC): Similarly.
9518
9519 2017-08-08 Uros Bizjak <ubizjak@gmail.com>
9520
9521 PR target/81708
9522 * config/i386/i386.opt (mstack-protector-guard-reg=): New option
9523 (mstack-protector-guard-offset=): Ditto.
9524 * config/i386/i386.c (ix86_option_override): Handle
9525 -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
9526 options.
9527 (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
9528 ix86_stack_protect_guard_offset variables.
9529 (TARGET_STACK_PROTECT_GUARD): Always define.
9530 * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
9531 and -mstack-protector-guard-offset= options.
9532
9533 2017-08-08 Bin Cheng <bin.cheng@arm.com>
9534
9535 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
9536 boundary case for the last candidate.
9537
9538 2017-08-08 Bin Cheng <bin.cheng@arm.com>
9539
9540 * doc/invoke.texi: Document -ftree-loop-distribution for O3.
9541 * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
9542
9543 2017-08-08 Tamar Christina <tamar.christina@arm.com>
9544
9545 PR middle-end/19706
9546 * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
9547 * config/aarch64/aarch64-builtins.c
9548 (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
9549 * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
9550 * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
9551
9552 2017-08-08 Tamar Christina <tamar.christina@arm.com>
9553 Andrew Pinski <pinskia@gmail.com>
9554
9555 PR middle-end/19706
9556 * internal-fn.def (XORSIGN): New.
9557 * optabs.def (xorsign_optab): New.
9558 * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
9559 (convert_expand_mult_copysign): New.
9560 (pass_optimize_widening_mul::execute): Call
9561 convert_expand_mult_copysign.
9562
9563 2017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9564
9565 PR tree-optimization/81354
9566 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
9567 Insert on edges rather than explicitly creating landing pads.
9568 (analyze_candidates_and_replace): Commit edge inserts.
9569
9570 2017-08-08 Richard Biener <rguenther@suse.de>
9571
9572 PR middle-end/81719
9573 * tree-ssa-loop-niter.c: Include tree-dfa.h.
9574 (expand_simple_operations): Also look through ADDR_EXPRs with
9575 MEM_REF bases treating them as POINTER_PLUS_EXPR.
9576
9577 2017-08-08 Richard Biener <rguenther@suse.de>
9578
9579 PR tree-optimization/81723
9580 * tree-vect-slp.c (struct bst_traits): New hash traits.
9581 (bst_fail): New global.
9582 (vect_build_slp_tree_2): New worker, split out from ...
9583 (vect_build_slp_tree): ... this now wrapping it with using
9584 bst_fail set to cache SLP tree build fails. Properly handle
9585 max_tree_size.
9586 (vect_analyze_slp_instance): Allocate and free bst_fail.
9587
9588 2017-08-08 Martin Liska <mliska@suse.cz>
9589
9590 PR tree-opt/81696
9591 * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
9592 LABEL_DECLs that can be from a different function.
9593
9594 2017-08-08 Bin Cheng <bin.cheng@arm.com>
9595
9596 PR tree-optimization/81744
9597 * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
9598 loop's number of iterations.
9599
9600 2017-08-08 Martin Liska <mliska@suse.cz>
9601
9602 * asan.c: Include header files.
9603 * attribs.c (build_decl_attribute_variant): New function moved
9604 from tree.[ch].
9605 (build_type_attribute_qual_variant): Likewise.
9606 (cmp_attrib_identifiers): Likewise.
9607 (simple_cst_list_equal): Likewise.
9608 (omp_declare_simd_clauses_equal): Likewise.
9609 (attribute_value_equal): Likewise.
9610 (comp_type_attributes): Likewise.
9611 (build_type_attribute_variant): Likewise.
9612 (lookup_ident_attribute): Likewise.
9613 (remove_attribute): Likewise.
9614 (merge_attributes): Likewise.
9615 (merge_type_attributes): Likewise.
9616 (merge_decl_attributes): Likewise.
9617 (merge_dllimport_decl_attributes): Likewise.
9618 (handle_dll_attribute): Likewise.
9619 (attribute_list_equal): Likewise.
9620 (attribute_list_contained): Likewise.
9621 * attribs.h (lookup_attribute): New function moved from tree.[ch].
9622 (lookup_attribute_by_prefix): Likewise.
9623 * bb-reorder.c: Include header files.
9624 * builtins.c: Likewise.
9625 * calls.c: Likewise.
9626 * cfgexpand.c: Likewise.
9627 * cgraph.c: Likewise.
9628 * cgraphunit.c: Likewise.
9629 * convert.c: Likewise.
9630 * dwarf2out.c: Likewise.
9631 * final.c: Likewise.
9632 * fold-const.c: Likewise.
9633 * function.c: Likewise.
9634 * gimple-expr.c: Likewise.
9635 * gimple-fold.c: Likewise.
9636 * gimple-pretty-print.c: Likewise.
9637 * gimple.c: Likewise.
9638 * gimplify.c: Likewise.
9639 * hsa-common.c: Likewise.
9640 * hsa-gen.c: Likewise.
9641 * internal-fn.c: Likewise.
9642 * ipa-chkp.c: Likewise.
9643 * ipa-cp.c: Likewise.
9644 * ipa-devirt.c: Likewise.
9645 * ipa-fnsummary.c: Likewise.
9646 * ipa-inline.c: Likewise.
9647 * ipa-visibility.c: Likewise.
9648 * ipa.c: Likewise.
9649 * lto-cgraph.c: Likewise.
9650 * omp-expand.c: Likewise.
9651 * omp-general.c: Likewise.
9652 * omp-low.c: Likewise.
9653 * omp-offload.c: Likewise.
9654 * omp-simd-clone.c: Likewise.
9655 * opts-global.c: Likewise.
9656 * passes.c: Likewise.
9657 * predict.c: Likewise.
9658 * sancov.c: Likewise.
9659 * sanopt.c: Likewise.
9660 * symtab.c: Likewise.
9661 * toplev.c: Likewise.
9662 * trans-mem.c: Likewise.
9663 * tree-chkp.c: Likewise.
9664 * tree-eh.c: Likewise.
9665 * tree-into-ssa.c: Likewise.
9666 * tree-object-size.c: Likewise.
9667 * tree-parloops.c: Likewise.
9668 * tree-profile.c: Likewise.
9669 * tree-ssa-ccp.c: Likewise.
9670 * tree-ssa-live.c: Likewise.
9671 * tree-ssa-loop.c: Likewise.
9672 * tree-ssa-sccvn.c: Likewise.
9673 * tree-ssa-structalias.c: Likewise.
9674 * tree-ssa.c: Likewise.
9675 * tree-streamer-in.c: Likewise.
9676 * tree-vectorizer.c: Likewise.
9677 * tree-vrp.c: Likewise.
9678 * tsan.c: Likewise.
9679 * ubsan.c: Likewise.
9680 * varasm.c: Likewise.
9681 * varpool.c: Likewise.
9682 * tree.c: Remove functions moved to attribs.[ch].
9683 * tree.h: Likewise.
9684 * config/aarch64/aarch64.c: Add attrs.h header file.
9685 * config/alpha/alpha.c: Likewise.
9686 * config/arc/arc.c: Likewise.
9687 * config/arm/arm.c: Likewise.
9688 * config/avr/avr.c: Likewise.
9689 * config/bfin/bfin.c: Likewise.
9690 * config/c6x/c6x.c: Likewise.
9691 * config/cr16/cr16.c: Likewise.
9692 * config/cris/cris.c: Likewise.
9693 * config/darwin.c: Likewise.
9694 * config/epiphany/epiphany.c: Likewise.
9695 * config/fr30/fr30.c: Likewise.
9696 * config/frv/frv.c: Likewise.
9697 * config/ft32/ft32.c: Likewise.
9698 * config/h8300/h8300.c: Likewise.
9699 * config/i386/winnt.c: Likewise.
9700 * config/ia64/ia64.c: Likewise.
9701 * config/iq2000/iq2000.c: Likewise.
9702 * config/lm32/lm32.c: Likewise.
9703 * config/m32c/m32c.c: Likewise.
9704 * config/m32r/m32r.c: Likewise.
9705 * config/m68k/m68k.c: Likewise.
9706 * config/mcore/mcore.c: Likewise.
9707 * config/microblaze/microblaze.c: Likewise.
9708 * config/mips/mips.c: Likewise.
9709 * config/mmix/mmix.c: Likewise.
9710 * config/mn10300/mn10300.c: Likewise.
9711 * config/moxie/moxie.c: Likewise.
9712 * config/msp430/msp430.c: Likewise.
9713 * config/nds32/nds32-isr.c: Likewise.
9714 * config/nds32/nds32.c: Likewise.
9715 * config/nios2/nios2.c: Likewise.
9716 * config/nvptx/nvptx.c: Likewise.
9717 * config/pa/pa.c: Likewise.
9718 * config/pdp11/pdp11.c: Likewise.
9719 * config/powerpcspe/powerpcspe.c: Likewise.
9720 * config/riscv/riscv.c: Likewise.
9721 * config/rl78/rl78.c: Likewise.
9722 * config/rx/rx.c: Likewise.
9723 * config/s390/s390.c: Likewise.
9724 * config/sh/sh.c: Likewise.
9725 * config/sol2.c: Likewise.
9726 * config/sparc/sparc.c: Likewise.
9727 * config/spu/spu.c: Likewise.
9728 * config/stormy16/stormy16.c: Likewise.
9729 * config/tilegx/tilegx.c: Likewise.
9730 * config/tilepro/tilepro.c: Likewise.
9731 * config/v850/v850.c: Likewise.
9732 * config/vax/vax.c: Likewise.
9733 * config/visium/visium.c: Likewise.
9734 * config/xtensa/xtensa.c: Likewise.
9735
9736 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com>
9737
9738 PR target/81593
9739 * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
9740 constraints since the -mupper-regs-* switches have been
9741 eliminated.
9742 (vsx_concat_<mode>_1): New combiner insns to recognize inserting
9743 into a vector from a double word element that was extracted from
9744 another vector, and eliminate extra XXPERMDI instructions.
9745 (vsx_concat_<mode>_2): Likewise.
9746 (vsx_concat_<mode>_3): Likewise.
9747 (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
9748 concat to allow optimizing inserts from previous extracts.
9749
9750 2017-08-07 Uros Bizjak <ubizjak@gmail.com>
9751
9752 * config/i386/i386.c (ix86_stack_protect_guard): Generate
9753 memory reference to a SSP offset in TLS address space.
9754 (ix86_print_operand) <case '@'>: Remove.
9755 (ix86_print_operand_punct_valid_p): Remove '@' code.
9756 * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
9757 UNSPEC_SP_TLS_TEST.
9758 (stack_tls_protect_set_<mode>): Remove.
9759 (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
9760 (stack_tls_protect_test_<mode>): Remove.
9761 (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
9762
9763 2017-08-07 Olivier Hainque <hainque@adacore.com>
9764
9765 PR target/81755
9766 * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
9767
9768 2017-08-07 Douglas Rupp <rupp@adacore.com>
9769
9770 * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
9771 variable was referenced as multidir in command.
9772
9773 2017-08-07 Jakub Jelinek <jakub@redhat.com>
9774
9775 PR c/69389
9776 * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
9777 BIT_FIELD_REF.
9778
9779 2017-08-07 Martin Liska <mliska@suse.cz>
9780
9781 * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
9782 * config/rl78/rl78.c: Add include of attribs.h.
9783 * config/sh/sh.c: Likewise.
9784 * config/v850/v850.c: Likewise.
9785
9786 2017-08-07 Tom de Vries <tom@codesourcery.com>
9787
9788 PR middle-end/78266
9789 * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
9790
9791 2017-08-07 Martin Liska <mliska@suse.cz>
9792
9793 * config/mips/mips.c: Include attribs.h.
9794
9795 2017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
9796
9797 PR fortran/68829
9798 * doc/invoke.texi: Document change in behvaior for -Ofast for
9799 Fortran.
9800
9801 2017-08-07 Wilco Dijkstra <wdijkstr@arm.com>
9802
9803 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
9804 Use gen_frame_mem.
9805 (aarch64_pop_regs): Likewise.
9806 (aarch64_gen_load_pair): Likewise.
9807 (aarch64_save_callee_saves): Likewise.
9808 (aarch64_restore_callee_saves): Likewise.
9809
9810 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
9811
9812 * config/i386/i386.c: Revert the last change.
9813
9814 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
9815
9816 PR target/81736
9817 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
9818 to ...
9819 (ix86_finalize_stack_frame_flags): This. Also clear
9820 frame_pointer_needed if -fno-omit-frame-pointer is used without
9821 stack access.
9822 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
9823 with ix86_finalize_stack_frame_flags.
9824 (ix86_expand_epilogue): Likewise.
9825 (ix86_expand_split_stack_prologue): Likewise.
9826
9827 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
9828
9829 PR target/81743
9830 * config/i386/i386.c (get_builtin_code_for_version): Set priority
9831 to P_AES for Westmere.
9832
9833 2017-08-07 Jonathan Yong <10walls@gmail.com>
9834
9835 * config/i386/mingw.opt (fset-stack-executable): Removed.
9836 * config/i386/cygming.opt (fset-stack-executable): Moved
9837 from mingw.opt.
9838 * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
9839
9840 2017-08-07 Segher Boessenkool <segher@kernel.crashing.org>
9841
9842 * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
9843
9844 2017-08-07 Marek Polacek <polacek@redhat.com>
9845
9846 PR middle-end/81737
9847 * fold-const.c (fold_indirect_ref_1): Check type_domain.
9848
9849 2017-08-07 Martin Liska <mliska@suse.cz>
9850
9851 * attribs.h (canonicalize_attr_name): New function.
9852 (cmp_attribs): Move from c-format.c and adjusted.
9853 (is_attribute_p): Moved from tree.h.
9854 * tree-inline.c: Add new includes.
9855 * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
9856 (private_is_attribute_p): Remove.
9857 (private_lookup_attribute): Likewise.
9858 (private_lookup_attribute_by_prefix): Simplify.
9859 (remove_attribute): Use is_attribute_p.
9860 * tree.h: Remove removed declarations.
9861
9862 2017-08-07 Jakub Jelinek <jakub@redhat.com>
9863
9864 PR middle-end/81698
9865 * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
9866 instead of computing it in the function. Formatting fix.
9867 (expand_case): Don't rely on default_edge being the first edge,
9868 clear it if removing it, pass default_edge to
9869 emit_case_dispatch_table.
9870 (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
9871 fix.
9872
9873 2017-08-06 Uros Bizjak <ubizjak@gmail.com>
9874
9875 * config/alpha/alpha.c (alpha_reorg): If trap is the last active
9876 insn in the function, emit NOP after the insn.
9877
9878 2017-08-06 Tom de Vries <tom@codesourcery.com>
9879
9880 * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
9881 and element loops.
9882
9883 2017-08-06 Tom de Vries <tom@codesourcery.com>
9884
9885 * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
9886 loop.
9887
9888 2017-08-04 Yury Gribov <tetra2005@gmail.com>
9889
9890 PR tree-optimization/57371
9891 * match.pd: New pattern.
9892
9893 2017-08-04 Marek Polacek <polacek@redhat.com>
9894
9895 PR middle-end/81695
9896 * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
9897 perform the computation in offset_int.
9898
9899 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
9900
9901 PR tree-optimization/81136
9902 * tree-vectorizer.h: Include tree-hash-traits.h.
9903 (vec_base_alignments): New typedef.
9904 (vec_info): Add a base_alignments field.
9905 (vect_record_base_alignments): Declare.
9906 * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
9907 field.
9908 (DR_IS_CONDITIONAL_IN_STMT): New macro.
9909 (create_data_ref): Add an is_conditional_in_stmt argument.
9910 * tree-data-ref.c (create_data_ref): Likewise. Use it to initialize
9911 the is_conditional_in_stmt field.
9912 (data_ref_loc): Add an is_conditional_in_stmt field.
9913 (get_references_in_stmt): Set the is_conditional_in_stmt field.
9914 (find_data_references_in_stmt): Update call to create_data_ref.
9915 (graphite_find_data_references_in_stmt): Likewise.
9916 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
9917 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
9918 (vect_record_base_alignment): New function.
9919 (vect_record_base_alignments): Likewise.
9920 (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
9921 for nested statements even if we fail to compute a misalignment.
9922 Use pooled base alignments for unconditional references.
9923 (vect_find_same_alignment_drs): Compare base addresses instead
9924 of base objects.
9925 (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
9926 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
9927
9928 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
9929
9930 * tree-vectorizer.h (vec_info): Add a constructor and destructor.
9931 Add an explicit name for the enum. Use auto_vec for slp_instances
9932 and grouped_stores.
9933 (_loop_vec_info): Add a constructor and destructor. Use auto_vec
9934 for all vectors.
9935 (_bb_vec_info): Add a constructor and destructor.
9936 (vinfo_for_stmt): Return NULL for uids of -1 as well.
9937 (destroy_loop_vec_info): Delete.
9938 (vect_destroy_datarefs): Likewise.
9939 * tree-vectorizer.c (vect_destroy_datarefs): Delete.
9940 (vec_info::vec_info): New function.
9941 (vec_info::~vec_info): Likewise.
9942 (vectorize_loops): Use delete instead of destroy_loop_vec_info.
9943 * tree-parloops.c (gather_scalar_reductions): Use delete instead of
9944 destroy_loop_vec_info.
9945 * tree-vect-loop.c (new_loop_vec_info): Replace with...
9946 (_loop_vec_info::_loop_vec_info): ...this.
9947 (destroy_loop_vec_info): Replace with...
9948 (_loop_vec_info::~_loop_vec_info): ...this. Unconditionally delete
9949 the stmt_vec_infos. Leave handling of vec_info information to its
9950 destructor. Remove explicit vector releases.
9951 (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
9952 (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
9953 * tree-vect-slp.c (new_bb_vec_info): Replace with...
9954 (_bb_vec_info::_bb_vec_info): ...this. Don't reserve space in
9955 BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
9956 (destroy_bb_vec_info): Replace with...
9957 (_bb_vec_info::~_bb_vec_info): ...this. Leave handling of vec_info
9958 information to its destructor.
9959 (vect_slp_analyze_bb_1): Use new and delete instead of
9960 new_bb_vec_info and destroy_bb_vec_info.
9961 (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
9962 single delete.
9963
9964 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
9965
9966 * tree-data-ref.h (subscript): Add access_fn field.
9967 (data_dependence_relation): Add could_be_independent_p.
9968 (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
9969 (same_access_functions): Move to tree-data-ref.c.
9970 * tree-data-ref.c (ref_contains_union_access_p): New function.
9971 (access_fn_component_p): Likewise.
9972 (access_fn_components_comparable_p): Likewise.
9973 (dr_analyze_indices): Add a reference to access_fn_component_p.
9974 (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
9975 DR_ACCESS_FN.
9976 (constant_access_functions): Likewise.
9977 (add_other_self_distances): Likewise.
9978 (same_access_functions): Likewise. (Moved from tree-data-ref.h.)
9979 (initialize_data_dependence_relation): Use XCNEW and remove
9980 explicit zeroing of DDR_REVERSED_P. Look for a subsequence
9981 of access functions that have the same type. Allow the
9982 subsequence to end with different bases in some circumstances.
9983 Record the chosen access functions in SUB_ACCESS_FN.
9984 (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
9985 a_index and b_index. Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
9986 (subscript_dependence_tester_1): Likewise dra and drb.
9987 (build_classic_dist_vector): Update calls accordingly.
9988 (subscript_dependence_tester): Likewise.
9989 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
9990 DDR_COULD_BE_INDEPENDENT_P.
9991 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
9992 comp_alias_ddrs instead of may_alias_ddrs.
9993 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
9994 New function.
9995 (vect_analyze_data_ref_dependence): Use it if
9996 DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
9997 distance vectors if that fails.
9998 (dependence_distance_ge_vf): New function.
9999 (vect_prune_runtime_alias_test_list): Use it. Don't clear
10000 LOOP_VINFO_MAY_ALIAS_DDRS.
10001
10002 2017-08-04 Richard Biener <rguenther@suse.de>
10003
10004 PR middle-end/81705
10005 * fold-const.c (fold_binary_loc): Properly restrict
10006 minus_var0 && minus_var1 case when associating undefined overflow
10007 entities.
10008
10009 2017-08-04 Tom de Vries <tom@codesourcery.com>
10010
10011 * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
10012
10013 2017-08-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10014
10015 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10016 Don't start diagnostic messages with a capital letter.
10017 * config/rs6000/rs6000.c (rs6000_option_override_internal):
10018 Likewise.
10019 (rs6000_invalid_builtin): Likewise.
10020 (rs6000_trampoline_init): Likewise.
10021
10022 2017-08-03 Jakub Jelinek <jakub@redhat.com>
10023
10024 PR target/81621
10025 * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
10026 after setting changeable df flags.
10027
10028 2017-08-03 Richard Biener <rguenther@suse.de>
10029
10030 * tree-ssa-reassoc.c (should_break_up_subtract): Also break
10031 up if the use is in USE - X.
10032
10033 2017-08-03 Alexander Monakov <amonakov@ispras.ru>
10034
10035 * toplev.c (dumpfile.h): New include.
10036 (internal_error_reentered): New static function. Use it...
10037 (internal_error_function): ...here to handle reentered internal_error.
10038
10039 2017-08-03 Richard Biener <rguenther@suse.de>
10040
10041 PR middle-end/81148
10042 * fold-const.c (split_tree): Add minus_var and minus_con
10043 arguments, remove unused loc arg. Never generate NEGATE_EXPRs
10044 here but always use minus_*.
10045 (associate_trees): Assert we never associate with MINUS_EXPR
10046 and NULL first operand. Do not recurse for PLUS_EXPR operands
10047 when associating as MINUS_EXPR either.
10048 (fold_binary_loc): Track minus_var and minus_con.
10049
10050 2017-08-03 Tom de Vries <tom@codesourcery.com>
10051
10052 PR lto/81430
10053 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
10054 ACCEL_COMPILER, apply finish_options on
10055 DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
10056
10057 2017-08-03 Tom de Vries <tom@codesourcery.com>
10058
10059 PR target/81662
10060 * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
10061 function_entry_patch_area_size > 0.
10062
10063 2017-08-03 Jakub Jelinek <jakub@redhat.com>
10064
10065 PR driver/81650
10066 * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
10067 instead of 10??LU, perform unit multiplication in wide_int,
10068 don't change alloc_object_size_limit if the limit is larger
10069 than SSIZE_MAX.
10070
10071 PR tree-optimization/81655
10072 PR tree-optimization/81588
10073 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
10074 the case when ranges[i].low and high are 1 for unsigned type with
10075 precision 1.
10076
10077 PR middle-end/81052
10078 * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
10079 (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
10080
10081 2017-08-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10082
10083 * tree-vrp.h: Add include guard.
10084
10085 2017-08-02 Uros Bizjak <ubizjak@gmail.com>
10086
10087 PR target/81644
10088 * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
10089 (ud2): New insn pattern.
10090 * config/i386/i386.c (ix86_expand_epilogue):
10091 For naked functions, generate ud2 instead of trap insn.
10092
10093 2017-08-02 Marek Polacek <polacek@redhat.com>
10094
10095 PR other/81667
10096 * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
10097
10098 2017-08-02 Tom de Vries <tom@codesourcery.com>
10099 Cesar Philippidis <cesar@codesourcery.com>
10100
10101 * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
10102 Add missing edge probabilities.
10103
10104 2017-08-02 Tamar Christina <tamar.christina@arm.com>
10105
10106 * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
10107 Correct endianness.
10108
10109 2017-08-02 Jakub Jelinek <jakub@redhat.com>
10110
10111 PR middle-end/79499
10112 * function.c (thread_prologue_and_epilogue_insns): Determine blocks
10113 for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
10114 of first NONDEBUG_INSN_P in each of the split_prologue_seq and
10115 prologue_seq sequences - if any.
10116
10117 2017-08-02 Richard Biener <rguenther@suse.de>
10118
10119 * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
10120 via vectors if supported, integer extracts via punning if supported
10121 or otherwise vector extracts.
10122
10123 2017-08-02 Richard Biener <rguenther@suse.de>
10124
10125 * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
10126 into ...
10127 (bitmap_insert_into_set): ... this.
10128
10129 2017-08-02 Richard Biener <rguenther@suse.de>
10130
10131 PR tree-optimization/81633
10132 Revert
10133 2015-08-17 Alan Hayward <alan.hayward@arm.com>
10134
10135 PR tree-optimization/71752
10136 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
10137
10138 2017-08-01 Daniel Santos <daniel.santos@pobox.com>
10139
10140 * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
10141 (machine_function::call_ms2sysv_pad_out): Remove field.
10142 * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
10143 (ix86_compute_frame_layout): Likewise.
10144
10145 2017-08-01 H.J. Lu <hongjiu.lu@intel.com>
10146
10147 PR target/81654
10148 * config/i386/i386.c (ix86_set_func_type): Disallow naked
10149 attribute with interrupt attribute.
10150
10151 2017-08-01 Andrew Pinski <apinski@cavium.com>
10152
10153 * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
10154 BIT_INSERT_EXPR's operand 1
10155 to see if the types precision matches.
10156
10157 2017-08-01 Martin Liska <mliska@suse.cz>
10158
10159 PR middle-end/70140
10160 * builtins.c (expand_builtin_memcpy_args): Remove.
10161 (expand_builtin_memcpy): Call newly added function
10162 expand_builtin_memory_copy_args.
10163 (expand_builtin_memcpy_with_bounds): Likewise.
10164 (expand_builtin_mempcpy): Remove last argument.
10165 (expand_builtin_mempcpy_with_bounds): Likewise.
10166 (expand_builtin_memory_copy_args): New function created from
10167 expand_builtin_mempcpy_args with small modifications.
10168 (expand_builtin_mempcpy_args): Remove.
10169 (expand_builtin_stpcpy): Remove unused argument.
10170 (expand_builtin): Likewise.
10171 (expand_builtin_with_bounds): Likewise.
10172
10173 2017-08-01 Martin Liska <mliska@suse.cz>
10174
10175 Revert r250771
10176 Make mempcpy more optimal (PR middle-end/70140).
10177
10178 2017-08-01 Jakub Jelinek <jakub@redhat.com>
10179
10180 PR target/81622
10181 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
10182 __builtin_vec_cmpne verify both arguments are compatible vectors
10183 before looking at TYPE_MODE on the element type. For __builtin_vec_ld
10184 verify arg1_type is a pointer or array type. For __builtin_vec_st,
10185 move computation of aligned to after checking the argument types.
10186 Formatting fixes.
10187
10188 PR target/80846
10189 * config/rs6000/vsx.md (vextract_fp_from_shorth,
10190 vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
10191 calls.
10192
10193 2017-08-01 Jerome Lambourg <lambourg@adacore.com>
10194 Doug Rupp <rupp@adacore.com>
10195 Olivier Hainque <hainque@adacore.com>
10196
10197 * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
10198 well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
10199 arm8 (arch v4).
10200 * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
10201 for TARGET_OS_CPP_BUILTIN.
10202 (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
10203 refine CPU definitions for arm_arch5 and add those for arm_arch6 and
10204 arm_arch7.
10205 (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
10206 passing required abi options to the assembler for EABI configurations.
10207 (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
10208 of .text.hot and .text.unlikely sections for kernel modules when
10209 using ARM style exceptions.
10210 (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
10211 options. Add EXTRA_CC1_SPEC.
10212 (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
10213 toolchain options.
10214 (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
10215 transition.
10216 (ARM_TARGET2_DWARF_FORMAT): Define.
10217 * config/arm/t-vxworks: Adjust multilib control to removal of the
10218 Diab command line options.
10219
10220 2017-08-01 Martin Liska <mliska@suse.cz>
10221
10222 PR gcov-profile/81561
10223 * gcov.c (unblock): Make unblocking safe as we need to preserve
10224 index correspondence of blocks and block_lists.
10225
10226 2017-08-01 Richard Biener <rguenther@suse.de>
10227
10228 PR tree-optimization/81181
10229 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
10230 (compute_antic): ... end of iteration here.
10231
10232 2017-08-01 James Greenhalgh <james.greenhalgh@arm.com>
10233
10234 * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
10235 (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
10236 (ftree-slp-vectorize): Likewise.
10237 * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
10238 can no longer be set independent of flag_tree_loop_vectorize.
10239 * omp-general.c (emp_max_vf): Likewise.
10240 * opts.c (enable_fdo_optimizations): Remove references to
10241 flag_tree_vectorize, these are now implicit.
10242 (common_handle_option): Remove handling for OPT_ftree_vectorize,
10243 and leave it for the options machinery.
10244
10245 2017-08-01 Martin Liska <mliska@suse.cz>
10246
10247 PR middle-end/70140
10248 * builtins.c (expand_builtin_memcpy_args): Remove.
10249 (expand_builtin_memcpy): Call newly added function
10250 expand_builtin_memory_copy_args.
10251 (expand_builtin_memcpy_with_bounds): Likewise.
10252 (expand_builtin_mempcpy): Remove last argument.
10253 (expand_builtin_mempcpy_with_bounds): Likewise.
10254 (expand_builtin_memory_copy_args): New function created from
10255 expand_builtin_mempcpy_args with small modifications.
10256 (expand_builtin_mempcpy_args): Remove.
10257 (expand_builtin_stpcpy): Remove unused argument.
10258 (expand_builtin): Likewise.
10259 (expand_builtin_with_bounds): Likewise.
10260
10261 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
10262
10263 PR target/81641
10264 * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
10265 print "ds:" only for immediates in generic address space.
10266
10267 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
10268
10269 PR target/81639
10270 * config/i386/i386.c (ix86_funciton_naked): New prototype.
10271 (ix86_function_ok_for_sibcall): Return false for naked functions.
10272
10273 2017-08-01 Richard Biener <rguenther@suse.de>
10274
10275 * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
10276 (compute_antic): Seed worklist with exit block predecessors.
10277 * cfganal.c (dfs_find_deadend): For a cycle return the source
10278 of the edge closing it.
10279
10280 2017-08-01 Tamar Christina <tamar.christina@arm.com>
10281
10282 * config/aarch64/aarch64.c
10283 (aarch64_can_const_movi_rtx_p): Move 0 check.
10284
10285 2017-08-01 Bin Cheng <bin.cheng@arm.com>
10286
10287 * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
10288 * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
10289 above macro.
10290 * match.pd: Ditto in address comparison pattern.
10291
10292 2017-08-01 Bin Cheng <bin.cheng@arm.com>
10293
10294 PR tree-optimization/81627
10295 * tree-predcom.c (prepare_finalizers): Always rewrite into loop
10296 closed ssa form for store-store chain.
10297
10298 2017-08-01 Bin Cheng <bin.cheng@arm.com>
10299
10300 PR tree-optimization/81620
10301 * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
10302 for store-store chain.
10303
10304 2017-08-01 Jakub Jelinek <jakub@redhat.com>
10305
10306 PR tree-optimization/81588
10307 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
10308 ranges[i].in_p, invert comparison code ccode. For >/>=,
10309 swap rhs1 and rhs2 and comparison code unconditionally,
10310 for </<= don't do that. Don't swap rhs1/rhs2 again if
10311 ranges[i].in_p, instead invert comparison code ccode if
10312 opcode or oe->rank is BIT_IOR_EXPR.
10313
10314 PR target/80846
10315 * optabs.def (vec_extract_optab, vec_init_optab): Change from
10316 a direct optab to conversion optab.
10317 * optabs.c (expand_vector_broadcast): Use convert_optab_handler
10318 with GET_MODE_INNER as last argument instead of optab_handler.
10319 * expmed.c (extract_bit_field_1): Likewise. Use vector from
10320 vector extraction if possible and optab is available.
10321 * expr.c (store_constructor): Use convert_optab_handler instead
10322 of optab_handler. Use vector initialization from smaller
10323 vectors if possible and optab is available.
10324 * tree-vect-stmts.c (vectorizable_load): Likewise.
10325 * doc/md.texi (vec_extract, vec_init): Document that the optabs
10326 now have two modes.
10327 * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
10328 of vec_init from half-sized vectors with the same element mode.
10329 * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
10330 (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
10331 (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
10332 reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
10333 reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
10334 after mode in gen_vec_extract* calls.
10335 (vec_extract<mode>): Renamed to ...
10336 (vec_extract<mode><ssescalarmodelower>): ... this.
10337 (vec_extract<mode><ssehalfvecmodelower>): New expander.
10338 (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
10339 element mode after mode in gen_vec_init* calls.
10340 (VEC_INIT_HALF_MODE): New mode iterator.
10341 (vec_init<mode>): Renamed to ...
10342 (vec_init<mode><ssescalarmodelower>): ... this.
10343 (vec_init<mode><ssehalfvecmodelower>): New expander.
10344 * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
10345 (vec_extractv2sfsf): ... this.
10346 (vec_initv2sf): Renamed to ...
10347 (vec_initv2sfsf): ... this.
10348 (vec_extractv2si): Renamed to ...
10349 (vec_extractv2sisi): ... this.
10350 (vec_initv2si): Renamed to ...
10351 (vec_initv2sisi): ... this.
10352 (vec_extractv4hi): Renamed to ...
10353 (vec_extractv4hihi): ... this.
10354 (vec_initv4hi): Renamed to ...
10355 (vec_initv4hihi): ... this.
10356 (vec_extractv8qi): Renamed to ...
10357 (vec_extractv8qiqi): ... this.
10358 (vec_initv8qi): Renamed to ...
10359 (vec_initv8qiqi): ... this.
10360 * config/rs6000/vector.md (VEC_base_l): New mode attribute.
10361 (vec_init<mode>): Renamed to ...
10362 (vec_init<mode><VEC_base_l>): ... this.
10363 (vec_extract<mode>): Renamed to ...
10364 (vec_extract<mode><VEC_base_l>): ... this.
10365 * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
10366 (vec_initv2sfsf): ... this.
10367 * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
10368 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
10369 vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
10370 element mode after mode in gen_vec_init* calls.
10371 * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
10372 (vec_init<mode><Vel>): ... this.
10373 (vec_extract<mode>): Renamed to ...
10374 (vec_extract<mode><Vel>): ... this.
10375 * config/aarch64/iterators.md (Vel): New mode attribute.
10376 * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
10377 Add element mode after mode in gen_vec_extract* calls.
10378 * config/s390/vector.md (non_vec_l): New mode attribute.
10379 (vec_extract<mode>): Renamed to ...
10380 (vec_extract<mode><non_vec_l>): ... this.
10381 (vec_init<mode>): Renamed to ...
10382 (vec_init<mode><non_vec_l>): ... this.
10383 * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
10384 s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
10385 vec_extract mode.
10386 * config/arm/iterators.md (V_elem_l): New mode attribute.
10387 * config/arm/neon.md (vec_extract<mode>): Renamed to ...
10388 (vec_extract<mode><V_elem_l>): ... this.
10389 (vec_extractv2di): Renamed to ...
10390 (vec_extractv2didi): ... this.
10391 (vec_init<mode>): Renamed to ...
10392 (vec_init<mode><V_elem_l>): ... this.
10393 (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
10394 reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
10395 reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
10396 Add element mode after gen_vec_extract* calls.
10397 * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
10398 (vec_init<mode><unitmode>): ... this.
10399 (vec_extract<mode>): Renamed to ...
10400 (vec_extract<mode><unitmode>): ... this.
10401 * config/mips/loongson.md (vec_init<mode>): Renamed to ...
10402 (vec_init<mode><unitmode>): ... this.
10403 * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
10404 (vec_initv2sfsf): ... this.
10405 (vec_extractv2sf): Renamed to ...
10406 (vec_extractv2sfsf): ... this.
10407 (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
10408 Add element mode after gen_vec_extract* calls.
10409 * config/mips/mips.md (unitmode): New mode iterator.
10410 * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
10411 spu_builtin_extract): Add element mode after gen_vec_extract* calls.
10412 * config/spu/spu.md (inner_l): New mode attribute.
10413 (vec_init<mode>): Renamed to ...
10414 (vec_init<mode><inner_l>): ... this.
10415 (vec_extract<mode>): Renamed to ...
10416 (vec_extract<mode><inner_l>): ... this.
10417 * config/sparc/sparc.md (veltmode): New mode iterator.
10418 (vec_init<VMALL:mode>): Renamed to ...
10419 (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
10420 * config/ia64/vect.md (vec_initv2si): Renamed to ...
10421 (vec_initv2sisi): ... this.
10422 (vec_initv2sf): Renamed to ...
10423 (vec_initv2sfsf): ... this.
10424 (vec_extractv2sf): Renamed to ...
10425 (vec_extractv2sfsf): ... this.
10426 * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
10427 (vec_init<mode>): Renamed to ...
10428 (vec_init<mode><VEC_base_l>): ... this.
10429 (vec_extract<mode>): Renamed to ...
10430 (vec_extract<mode><VEC_base_l>): ... this.
10431 * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
10432 (vec_initv2sfsf): ... this.
10433 * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
10434 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
10435 vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
10436 gen_vec_init* calls.
10437
10438 2017-08-01 Richard Biener <rguenther@suse.de>
10439
10440 PR tree-optimization/81297
10441 * tree-vrp.c (get_single_symbol): Remove assert, instead drop
10442 TREE_OVERFLOW from INTEGER_CSTs.
10443
10444 2017-07-31 Segher Boessenkool <segher@kernel.crashing.org>
10445
10446 * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
10447
10448 2017-07-31 Carl Love <cel@us.ibm.com>
10449
10450 * config/rs6000/rs6000-c: Add support for built-in functions
10451 vector signed char vec_xl_be (signed long long, signed char *);
10452 vector unsigned char vec_xl_be (signed long long, unsigned char *);
10453 vector signed int vec_xl_be (signed long long, signed int *);
10454 vector unsigned int vec_xl_be (signed long long, unsigned int *);
10455 vector signed long long vec_xl_be (signed long long, signed long long *);
10456 vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
10457 vector signed short vec_xl_be (signed long long, signed short *);
10458 vector unsigned short vec_xl_be (signed long long, unsigned short *);
10459 vector double vec_xl_be (signed long long, double *);
10460 vector float vec_xl_be (signed long long, float *);
10461 * config/rs6000/altivec.h (vec_xl_be): Add #define.
10462 * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
10463 XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
10464 for the builtins.
10465 * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
10466 (altivec_expand_builtin): Add switch statement to call
10467 altivec_expand_xl_be for each builtin.
10468 (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
10469 __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
10470 __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
10471 __builtin_vsx_le_be_v16qi.
10472 * doc/extend.texi: Update the built-in documentation file for the
10473 new built-in functions.
10474
10475 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
10476
10477 PR target/25967
10478 * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
10479 New function.
10480 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
10481
10482 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10483
10484 * config.gcc: Add z14.
10485 * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
10486 CPU model numbers for z13s and z14.
10487 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
10488 arch12 with z14.
10489 * config/s390/s390-opts.h (enum processor_type): Rename
10490 PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
10491 * config/s390/s390.c (processor_table): Add field for CPU name to
10492 be passed to Binutils.
10493 (s390_asm_output_machine_for_arch): Use the new field in
10494 processor_table for Binutils.
10495 (s390_expand_builtin): Replace arch12 with z14.
10496 (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
10497 (s390_get_sched_attrmask): Likewise.
10498 (s390_get_unit_mask): Likewise.
10499 * config/s390/s390.opt: Add z14 to processor_type enum.
10500
10501 2017-07-31 Martin Jambor <mjambor@suse.cz>
10502
10503 PR hsa/81477
10504 * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
10505 regardless of optimization level.
10506
10507 2017-07-31 Jan Hubicka <hubicka@ucw.cz>
10508 Martin Liska <mliska@suse.cz>
10509
10510 * predict.def: Remove old comment and adjust probability.
10511 * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
10512 PREDICT statements.
10513
10514 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
10515
10516 PR target/25967
10517 * config/i386/i386.c (ix86_function_naked): New function.
10518 (ix86_can_use_return_insn_p): Return false for naked functions.
10519 (ix86_expand_prologue): Skip prologue for naked functions.
10520 (ix86_expand_epilogue): Skip epilogue for naked functions
10521 and emit trap instruction.
10522 (ix86_warn_func_return): New function.
10523 (ix86_attribute_table): Add "naked" attribute specification.
10524 (TARGET_WARN_FUNC_RETURN): Define.
10525 * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
10526
10527 2017-07-31 Martin Liska <mliska@suse.cz>
10528
10529 * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
10530 (dump_gimple_bb_header): Always dump BB info.
10531 (pp_cfg_jump): Do not append info about BB when dumping a jump.
10532
10533 2017-07-31 Martin Liska <mliska@suse.cz>
10534
10535 PR sanitize/81530
10536 * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
10537 also with current_function_decl non-null equality.
10538
10539 2017-07-31 Jakub Jelinek <jakub@redhat.com>
10540
10541 PR sanitizer/81604
10542 * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
10543 change type to the element type, instead add eltype variable and
10544 use it where we are interested in the element type.
10545
10546 PR tree-optimization/81603
10547 * ipa-polymorphic-call.c
10548 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
10549 offset arithmetic in offset_int, bail out if the resulting bit offset
10550 doesn't fit into shwi.
10551
10552 2017-07-31 Martin Liska <mliska@suse.cz>
10553
10554 * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
10555 (gimplify_save_expr): Fix comment.
10556
10557 2017-07-30 H.J. Lu <hongjiu.lu@intel.com>
10558
10559 PR target/79793
10560 * config/i386/i386.c (ix86_function_arg): Update arguments for
10561 exception handler.
10562 (ix86_compute_frame_layout): Set the initial stack offset to
10563 INCOMING_FRAME_SP_OFFSET. Update red-zone offset with
10564 INCOMING_FRAME_SP_OFFSET.
10565 (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
10566 stack before exception handler returns.
10567 * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
10568 the 'ERROR_CODE' for exception handler.
10569
10570 2017-07-30 Uros Bizjak <ubizjak@gmail.com>
10571
10572 * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
10573 (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
10574 (ASM_OUTPUT_REG_POP): Ditto.
10575 * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
10576 instead of asm_fprintf to output pure string.
10577
10578 2017-07-29 Jakub Jelinek <jakub@redhat.com>
10579
10580 * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
10581 to imported_module_or_decl hook.
10582 (debug_nothing_tree_tree_tree_bool): Remove.
10583 (debug_nothing_tree_tree_tree_bool_bool): New declaration.
10584 * debug.c (do_nothing_debug_hooks): Use
10585 debug_nothing_tree_tree_tree_bool_bool instead of
10586 debug_nothing_tree_tree_tree_bool.
10587 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10588 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
10589 * sdbout.c (sdb_debug_hooks): Likewise.
10590 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
10591 (gen_namespace_die): Add DW_AT_export_symbols attribute if
10592 langhook wants it.
10593 (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
10594 if true, -gdwarf-5 and decl will have DW_AT_export_symbols
10595 attribute, don't add anything.
10596
10597 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10598
10599 * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
10600 (fold_build2_stat_loc): Likewise.
10601 (fold_build3_stat_loc): Likewise.
10602 * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
10603 (fold_build1_loc): Remove macro.
10604 (fold_build2_loc): Likewise.
10605 (fold_build3_loc): Likewise.
10606
10607 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10608
10609 * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
10610 (gimple_build_debug_bind_source_stat): Likewise.
10611 * gimple.h (gimple_build_debug_bind): Remove macro.
10612 (gimple_build_debug_bind_source): Likewise.
10613
10614 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10615
10616 * bitmap.c (bitmap_alloc): Adjust.
10617 (bitmap_gc_alloc): Likewise.
10618 * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
10619
10620 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10621
10622 * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
10623 (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
10624 * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
10625 (bitmap_gc_alloc_stat): Likewise.
10626 (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
10627
10628 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10629
10630 * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
10631 * rtl.h (shallow_copy_rtx): Remove macro.
10632
10633 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10634
10635 * emit-rtl.c (gen_raw_REG): Adjust.
10636 * gengenrtl.c (gendef): Likewise.
10637 * rtl.c (rtx_alloc_stat): Remove _stat from name.
10638 * rtl.h (rtx_alloc): Remove macro.
10639
10640 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10641
10642 * tree.c (build_tree_list_vec_stat): Remove _stat from name.
10643 (build_tree_list_stat): Likewise.
10644 * tree.h (build_tree_list): Remove macro.
10645 (build_tree_list_vec): Likewise.
10646
10647 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10648
10649 * tree.c (make_vector_stat): Remove _stat from name.
10650 (build_vector_stat): Likewise.
10651 * tree.h (make_vector_stat): Remove macro.
10652 (build_vector_stat): Likewise.
10653
10654 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10655
10656 * tree.h (build_var_debug_value): Remove prototype.
10657
10658 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10659
10660 * tree.c (tree_cons_stat): Remove _stat from name.
10661 * tree.h (tree_cons): Remove macro.
10662
10663 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10664
10665 * tree.c (build_vl_exp_stat): Remove _stat from name.
10666 * tree.h (build_vl_exp): Remove macro.
10667
10668 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10669
10670 * tree.c (build_decl_stat): Remove _stat from name.
10671 * tree.h (build_decl): Remove macro.
10672
10673 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10674
10675 * gimple.c (gimple_build_with_ops_stat): Adjust.
10676 (gimple_alloc_stat): Remove _stat from name.
10677 * gimple.h (gimple_alloc): Remove macro.
10678
10679 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10680
10681 * tree.c (make_tree_vec_stat): Remove _stat from name.
10682 (grow_tree_vec_stat): Likewise.
10683 * tree.h (make_tree_vec_stat): Adjust prototype.
10684 (grow_tree_vec_stat): Likewise.
10685 (make_tree_vec): Remove macro.
10686 (grow_tree_vec): Likewise.
10687
10688 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10689
10690 * fold-const.c (fold_build1_stat_loc): Adjust.
10691 (fold_build2_stat_loc): Likewise.
10692 (fold_build3_stat_loc): Likewise.
10693 * tree.c (build0_stat): Remove _stat from name.
10694 (build1_stat): Likewise.
10695 (build2_stat): Likewise.
10696 (build3_stat): Likewise.
10697 (build4_stat): Likewise.
10698 (build5_stat): Likewise.
10699 * tree.h (build1_loc): Remove macro, and rename _stat function
10700 to this.
10701 (build2_loc): Likewise.
10702 (build3_loc): Likewise.
10703 (build4_loc): Likewise.
10704 (build5_loc): Likewise.
10705
10706 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10707
10708 * tree.c (make_int_cst_stat): Remove _stat from name.
10709 * tree.h (make_int_cst_stat): Adjust prototype.
10710 (make_int_cst): Remove macro.
10711
10712 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10713
10714 * tree.c (make_tre_binfo_stat): Remove _stat from name.
10715 * tree.h (make_tree_binfo_stat): Adjust prototype.
10716 (make_tree_binfo): Remove.
10717
10718 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10719
10720 * tree.c (copy_node_stat): Rename to copy_node.
10721 (build_distinct_type_copy): Adjust.
10722 * tree.h (copy_node_stat): Adjust prototype.
10723 (copy_node): Remove macro.
10724
10725 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10726
10727 * tree.c (make_node_stat): rename to make_node.
10728 (build_tree_list_stat): Adjust.
10729 (build0_stat): Likewise.
10730 (build2_stat): Likewise.
10731 (build3_stat): Likewise.
10732 (build4_stat): Likewise.
10733 (build5_stat): Likewise.
10734 (build_decl_stat): Likewise.
10735 * tree.h (make_node_stat): Adjust prototype.
10736 (make_node): remove macro.
10737
10738 2017-07-28 Peter Bergner <bergner@vnet.ibm.com>
10739
10740 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
10741 (PPC_FEATURE2_SCV): Likewise.
10742 * config/rs6000/rs6000.c (cpu_supports_info): Use them.
10743
10744 2017-07-28 Tamar Christina <tamar.christina@arm.com>
10745
10746 * config/aarch64/aarch64.c
10747 (aarch64_internal_mov_immediate): Add new special pattern.
10748 * config/aarch64/aarch64.md (*movdi_aarch64):
10749 Add reg/32bit const mov case.
10750
10751 2017-07-28 Tamar Christina <tamar.christina@arm.com>
10752 Richard Sandiford <richard.sandiford@linaro.org>
10753
10754 * config/aarch64/aarch64.md (mov<mode>): Generalize.
10755 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
10756 Add integer and movi cases.
10757 (movi-split-hf-df-sf split, fp16): New.
10758 (enabled): Added TARGET_FP_F16INST.
10759 * config/aarch64/iterators.md (GPF_HF): New.
10760 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
10761
10762 2017-07-28 Tamar Christina <tamar.christina@arm.com>
10763
10764 * config/aarch64/aarch64.c
10765 (aarch64_simd_container_mode): Add prototype.
10766 (aarch64_expand_mov_immediate): Add HI support.
10767 (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
10768 (aarch64_can_const_movi_rtx_p): New.
10769 (aarch64_preferred_reload_class):
10770 Remove restrictions of using FP registers for certain SIMD operations.
10771 (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
10772 (aarch64_valid_floating_const): Add integer move validation.
10773 (aarch64_simd_imm_scalar_p): Remove.
10774 (aarch64_output_scalar_simd_mov_immediate): Generalize function.
10775 (aarch64_legitimate_constant_p): Expand list of supported cases.
10776 * config/aarch64/aarch64-protos.h
10777 (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
10778 (aarch64_reinterpret_float_as_int): New.
10779 (aarch64_simd_imm_scalar_p): Remove.
10780 * config/aarch64/constraints.md (Uvi): New.
10781 (Dd): Split into Ds and new Dd.
10782 * config/aarch64/aarch64.md (*movsi_aarch64):
10783 Add SIMD mov case.
10784 (*movdi_aarch64): Add SIMD mov case.
10785
10786 2017-07-28 Bin Cheng <bin.cheng@arm.com>
10787
10788 * tree-predcom.c: (struct chain): Handle store-store chain in which
10789 stores for elimination only store loop invariant values.
10790 (execute_pred_commoning_chain): Ditto.
10791 (prepare_initializers_chain_store_elim): Ditto.
10792 (prepare_finalizers): Ditto.
10793 (is_inv_store_elimination_chain): New function.
10794 (initialize_root_vars_store_elim_1): New function.
10795
10796 2017-07-28 Bin Cheng <bin.cheng@arm.com>
10797
10798 * tree-predcom.c: Revise general description of the pass.
10799 (enum chain_type): New enum type for store elimination.
10800 (struct chain): New field supporting store elimination.
10801 (struct component): Ditto.
10802 (dump_chain): Dump store-stores chain.
10803 (release_chain): Release resources.
10804 (split_data_refs_to_components): Compute and create component
10805 contains only stores for elimination.
10806 (get_chain_last_ref_at): New function.
10807 (make_invariant_chain): Initialization.
10808 (make_rooted_chain): Specify chain type in parameter and record it.
10809 (add_looparound_copies): Skip for store-stores chain.
10810 (determine_roots_comp): Compute type of chain and pass it to
10811 make_rooted_chain.
10812 (initialize_root_vars_store_elim_2): New function.
10813 (finalize_eliminated_stores): New function.
10814 (remove_stmt): Handle store for elimination.
10815 (execute_pred_commoning_chain): Execute predictive commoning on
10816 store-store chains.
10817 (determine_unroll_factor): Skip unroll for store-stores chain.
10818 (prepare_initializers_chain_store_elim): New function.
10819 (prepare_initializers_chain): Hanlde store-store chain.
10820 (prepare_finalizers_chain, prepare_finalizers): New function.
10821 (tree_predictive_commoning_loop): Return integer value indicating
10822 if loop is unrolled or lcssa form is corrupted.
10823 (tree_predictive_commoning): Rewrite for lcssa form if necessary.
10824
10825 2017-07-28 Bin Cheng <bin.cheng@arm.com>
10826
10827 * tree-predcom.c (initialize_root): Delete.
10828 (execute_pred_commoning_chain): Initialize root vars and replace
10829 reference of non-combined chain directly, rather than call above
10830 function.
10831
10832 2017-07-28 Bin Cheng <bin.cheng@arm.com>
10833
10834 * tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute
10835 memory reference to DR at (NITERS + ITERS)-th iteration of loop.
10836
10837 2017-07-28 Bin Cheng <bin.cheng@arm.com>
10838
10839 * tree-predcom.c (struct chain): New field init_seq.
10840 (release_chain): Release init_seq.
10841 (prepare_initializers_chain): Record intialization stmts in above
10842 field.
10843 (insert_init_seqs): New function.
10844 (tree_predictive_commoning_loop): Call insert_init_seqs.
10845
10846 2017-07-28 Bin Cheng <bin.cheng@arm.com>
10847
10848 * tree-predcom.c (determine_roots_comp): Skip trivial components.
10849
10850 2017-07-28 Richard Biener <rguenther@suse.de>
10851
10852 * match.pd: Remove superfluous :c.
10853 * genmatch.c (simplify::id): Add member.
10854 (lower_commutative, lower_opt_convert, lower_cond, lower_for):
10855 Copy id.
10856 (current_id): New global.
10857 (dt_node::parent): Move from ...
10858 (dt_operand::parent): ... here. Add for_id member.
10859 (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
10860 (decision_tree::find_node): Relax order requirement when
10861 merging DT_TRUE nodes to ones inbetween the current simplify
10862 and the one we try to merge with. Add diagnostic whenever
10863 we need to enforce pattern order by not merging.
10864 (decision_tree::insert): Set current_id.
10865 (decision_tree::print_node): Dump parent node and for_id.
10866 (parser::last_id): Add member.
10867 (parser::push_simplify): Assign unique id.
10868 (parser::parser): Initialize last_id.
10869
10870 2017-07-28 Martin Liska <mliska@suse.cz>
10871
10872 PR sanitizer/81340
10873 * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
10874 gimple_build_debug_bind.
10875
10876 2017-07-28 Richard Biener <rguenther@suse.de>
10877
10878 PR tree-optimization/81502
10879 * match.pd: Add pattern combining BIT_INSERT_EXPR with
10880 BIT_FIELD_REF.
10881 * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
10882 size/pos operands.
10883 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
10884 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
10885 for BIT_FIELD_REF args.
10886 * fold-const.c (make_bit_field_ref): Likewise.
10887 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
10888
10889 2017-07-28 Jakub Jelinek <jakub@redhat.com>
10890
10891 PR sanitizer/80998
10892 * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
10893 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
10894 * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
10895 Or it into SANITIZER_UNDEFINED.
10896 * ubsan.c: Include gimple-fold.h and varasm.h.
10897 (ubsan_expand_ptr_ifn): New function.
10898 (instrument_pointer_overflow): New function.
10899 (maybe_instrument_pointer_overflow): New function.
10900 (instrument_object_size): Formatting fix.
10901 (pass_ubsan::execute): Call instrument_pointer_overflow
10902 and maybe_instrument_pointer_overflow.
10903 * internal-fn.c (expand_UBSAN_PTR): New function.
10904 * ubsan.h (ubsan_expand_ptr_ifn): Declare.
10905 * sanitizer.def (__ubsan_handle_pointer_overflow,
10906 __ubsan_handle_pointer_overflow_abort): New builtins.
10907 * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
10908 * internal-fn.def (UBSAN_PTR): New internal function.
10909 * opts.c (sanitizer_opts): Add pointer-overflow.
10910 * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
10911 * fold-const.c (build_range_check): Compute pointer range check in
10912 integral type if pointer arithmetics would be needed. Formatting
10913 fixes.
10914
10915 2017-07-28 Martin Liska <mliska@suse.cz>
10916
10917 PR sanitizer/81460
10918 * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
10919 parameters that are of a variable-length.
10920
10921 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
10922
10923 * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add
10924 rs6000/biarch64.h.
10925 * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
10926 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
10927 (CRT_CALL_STATIC_FUNCTION): Likewise.
10928 (ASM_DEFAULT_SPEC): New define.
10929 (ASM_SPEC32): Likewise.
10930 (ASM_SPEC64): Likewise.
10931 (ASM_SPEC_COMMON): Likewise.
10932 (ASM_SPEC): Likewise.
10933 (INVALID_64BIT): Likewise.
10934 (LINK_OS_DEFAULT_SPEC): Likewise.
10935 (LINK_OS_SPEC32): Likewise.
10936 (LINK_OS_SPEC64): Likewise.
10937 (POWERPC_LINUX): Likewise.
10938 (PTRDIFF_TYPE): Likewise.
10939 (RESTORE_FP_PREFIX): Likewise.
10940 (RESTORE_FP_SUFFIX): Likewise.
10941 (SAVE_FP_PREFIX): Likewise.
10942 (SAVE_FP_SUFFIX): Likewise.
10943 (SIZE_TYPE): Likewise.
10944 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
10945 (TARGET_64BIT): Likewise.
10946 (TARGET_64BIT): Likewise.
10947 (TARGET_AIX): Likewise.
10948 (WCHAR_TYPE_SIZE): Likewise.
10949 (WCHAR_TYPE): Undefine.
10950 (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
10951 (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
10952 (CPP_OS_RTEMS_SPEC): Delete.
10953 (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add
10954 asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
10955 link_os_spec64.
10956 * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
10957
10958 2017-07-28 Jakub Jelinek <jakub@redhat.com>
10959
10960 PR tree-optimization/81578
10961 * tree-parloops.c (build_new_reduction): Bail out if
10962 reduction_code isn't one of the standard OpenMP reductions.
10963 Move the details printing after that decision.
10964
10965 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
10966
10967 * config/rs6000/predicates.md (volatile_mem_operand): Remove code
10968 related to reload_in_progress.
10969 (splat_input_operand): Likewise.
10970 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
10971 Delete prototype.
10972 * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
10973 field.
10974 (TARGET_EXPAND_TO_RTL_HOOK): Delete.
10975 (TARGET_INSTANTIATE_DECLS): Likewise.
10976 (legitimate_indexed_address_p): Delete reload_in_progress code.
10977 (rs6000_debug_legitimate_address_p): Likewise.
10978 (rs6000_eliminate_indexed_memrefs): Likewise.
10979 (rs6000_emit_le_vsx_store): Likewise.
10980 (rs6000_emit_move_si_sf_subreg): Likewise.
10981 (rs6000_emit_move): Likewise.
10982 (register_to_reg_type): Likewise.
10983 (rs6000_pre_atomic_barrier): Likewise.
10984 (rs6000_machopic_legitimize_pic_address): Likewise.
10985 (rs6000_allocate_stack_temp): Likewise.
10986 (rs6000_address_for_fpconvert): Likewise.
10987 (rs6000_address_for_altivec): Likewise.
10988 (rs6000_secondary_memory_needed_rtx): Delete function.
10989 (rs6000_check_sdmode): Likewise.
10990 (rs6000_alloc_sdmode_stack_slot): Likewise.
10991 (rs6000_instantiate_decls): Likewise.
10992 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
10993 * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
10994 Delete reload_in_progress.
10995 (*vec_reload_and_plus_<mptrsize>): Likewise.
10996 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
10997 (vsx_div_v2di): Likewise.
10998 (vsx_udiv_v2di): Likewise.
10999
11000 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
11001
11002 * config/rs6000/rs6000.opt (mlra): Replace with stub.
11003 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
11004 * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
11005 (rs6000_debug_reg_global): Delete print of LRA status.
11006 (rs6000_option_override_internal): Delete dead LRA related code.
11007 (rs6000_lra_p): Delete function.
11008 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
11009
11010 2017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
11011
11012 * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
11013 * config/riscv/rtems.h: New file.
11014
11015 2017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11016 Sudakshina Das <sudi.das@arm.com>
11017
11018 * config/aarch64/aarch64.md
11019 (define_split for and<mode>3nr_compare): Move
11020 non aarch64_logical_operand to a register.
11021 (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
11022 register immediate operand to a register.
11023 * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
11024
11025 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
11026
11027 PR middle-end/81564
11028 * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
11029
11030 2017-07-27 Richard Biener <rguenther@suse.de>
11031
11032 PR tree-optimization/81573
11033 PR tree-optimization/81494
11034 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
11035 multi defuse cycle case.
11036
11037 2017-07-27 Richard Biener <rguenther@suse.de>
11038
11039 PR tree-optimization/81571
11040 * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
11041 PHIs.
11042
11043 2017-07-27 Eric Botcazou <ebotcazou@adacore.com>
11044
11045 * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
11046 earlier and only if MASK_FPU is set. Adjust formatting.
11047
11048 2017-07-27 Martin Liska <mliska@suse.cz>
11049
11050 * opt-functions.awk: Add validation of value of Init.
11051 * optc-gen.awk: Pass new argument.
11052
11053 2017-07-27 Martin Liska <mliska@suse.cz>
11054
11055 * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
11056 Fix wrong condition.
11057
11058 2017-07-27 Martin Liska <mliska@suse.cz>
11059
11060 * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
11061 BBs and edges seen by autoFDO.
11062
11063 2017-07-27 Richard Biener <rguenther@suse.de>
11064
11065 PR tree-optimization/81502
11066 * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
11067 with incompatible but same sized type.
11068 (execute_update_addresses_taken): Likewise.
11069
11070 2017-07-27 James Greenhalgh <james.greenhalgh@arm.com>
11071
11072 * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
11073 flag_tree_loop_vectorize rather than flag_tree_vectorize.
11074
11075 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11076
11077 PR target/81534
11078 * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
11079 ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
11080 Change s_operand to memory_operand.
11081
11082 2017-07-27 Richard Sandiford <richard.sandiford@linaro.org>
11083
11084 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
11085 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
11086 (rs6000_emit_le_vsx_permute): ...this. Take the destination as input.
11087 Emit instructions rather than returning an expression. Handle TFmode
11088 and KFmode by casting to TImode.
11089 (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
11090 (rs6000_emit_le_vsx_store): Likewise.
11091 * config/rs6000/vsx.md (VSX_TI): New iterator.
11092 (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
11093 (*vsx_le_undo_permute_<mode>): Likewise.
11094 (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
11095 emit the split sequence.
11096 (*vsx_le_perm_store_<mode>): Likewise.
11097
11098 2017-07-27 Jakub Jelinek <jakub@redhat.com>
11099
11100 PR tree-optimization/81555
11101 PR tree-optimization/81556
11102 * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
11103 if true, force CHANGED for the recursive invocation.
11104 (reassociate_bb): Remember original length of ops array, pass
11105 len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
11106
11107 * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
11108 attributes for noipa attribute. For naked attribute use
11109 lookup_attribute first before lookup_attribute_spec.
11110 * final.c (rest_of_handle_final): Disable IPA RA for functions with
11111 noipa attribute.
11112 * ipa-visibility.c (non_local_p): Fix comment typos. Return true
11113 for functions with noipa attribute.
11114 (cgraph_externally_visible_p): Return true for functions with noipa
11115 attribute.
11116 * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
11117 for functions with noipa attribute.
11118 * doc/extend.texi: Document noipa function attribute.
11119 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
11120 also for functions with noipa attribute.
11121 (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
11122
11123 2017-07-26 Andrew Pinski <apinski@cavium.com>
11124
11125 * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
11126 vec_unalign_load_cost and vec_unalign_store_cost.
11127
11128 2017-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
11129
11130 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
11131 -mvsx-small-integer option.
11132 (ISA_3_0_MASKS_IEEE): Likewise.
11133 (OTHER_VSX_VECTOR_MASKS): Likewise.
11134 (POWERPC_MASKS): Likewise.
11135 * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
11136 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
11137 code, only testing for DImode being allowed in non-VSX floating
11138 point registers.
11139 (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
11140 to TARGET_P8_VECTOR test. Remove redundant VSX test inside of
11141 another VSX test.
11142 (rs6000_option_override_internal): Delete -mvsx-small-integer.
11143 (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
11144 TARGET_P8_VECTOR test.
11145 (rs6000_secondary_reload_simple_move): Likewise.
11146 (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
11147 since TARGET_P9_VECTOR was already tested.
11148 (rs6000_opt_masks): Remove -mvsx-small-integer.
11149 * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
11150 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
11151 used.
11152 (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
11153 test for TARGET_VEXTRACTUB was used, and that uses
11154 TARGET_P9_VECTOR.
11155 (p9 extract splitter): Likewise.
11156 (vsx_extract_<mode>_di_p9): Likewise.
11157 (vsx_extract_<mode>_store_p9): Likewise.
11158 (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
11159 for TARGET_P9_VECTOR was used. Delete code that is now dead with
11160 the elimination of TARGET_VSX_SMALL_INTEGER.
11161 (vsx_extract_<mode>_p8): Likewise.
11162 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
11163 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
11164 (vsx_set_<mode>_p9): Likewise.
11165 (vsx_set_v4sf_p9): Likewise.
11166 (vsx_set_v4sf_p9_zero): Likewise.
11167 (vsx_insert_extract_v4sf_p9): Likewise.
11168 (vsx_insert_extract_v4sf_p9_2): Likewise.
11169 * config/rs6000/rs6000.md (sign extend splitter): Change
11170 TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
11171 (floatsi<mode>2_lfiwax_mem): Likewise.
11172 (floatunssi<mode>2_lfiwzx_mem): Likewise.
11173 (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
11174 since a test for TARGET_P9_VECTOR was used.
11175 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
11176 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
11177 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
11178 (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
11179 TARGET_P8_VECTOR test.
11180 (fix_trunc<mode>si2_stfiwx): Likewise.
11181 (fix_trunc<mode>si2_internal): Likewise.
11182 (fix_trunc<SFDF:mode><QHI:mode>2): Delete
11183 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
11184 used.
11185 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
11186 (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
11187 TARGET_P8_VECTOR test.
11188 (fixuns_trunc<mode>si2_stfiwx): Likewise.
11189 (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
11190 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
11191 used.
11192 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
11193 (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
11194 since a test for TARGET_P9_VECTOR was used.
11195 (splitter for loading small constants): Likewise.
11196
11197 2017-07-26 Andrew Pinski <apinski@cavium.com>
11198
11199 * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
11200 vec_fp_stmt_cost.
11201
11202 2017-07-26 H.J. Lu <hongjiu.lu@intel.com>
11203
11204 PR target/81563
11205 * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
11206 (fp_valid_at): Likewise.
11207
11208 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
11209
11210 * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
11211 (qdf24xx_addrcost_table): Likewise.
11212 (cortexa57_tunings): Update to use generic_branch_cost.
11213 (cortexa72_tunings): Likewise.
11214 (cortexa73_tunings): Likewise.
11215 (qdf24xx_tunings): Likewise.
11216
11217 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
11218
11219 * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
11220 (thunderx2t99_branch_cost): Likewise.
11221 (cortexa35_tunings): Update to use generic_branch_cost.
11222 (cortexa53_tunings): Likewise.
11223 (cortexa57_tunings): Likewise.
11224 (cortexa72_tunings): Likewise.
11225 (cortexa73_tunings): Likewise.
11226 (thunderx2t99_tunings): Likewise.
11227
11228 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
11229
11230 * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
11231 (sparc_option_override): Honour MASK_FSMULD.
11232 * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
11233 * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
11234 * config/sparc/sparc.opt (mfsmuld): New option.
11235 * doc/invoke.texi (mfsmuld): Document option.
11236
11237 2017-07-26 Marek Polacek <polacek@redhat.com>
11238
11239 PR middle-end/70992
11240 * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
11241
11242 2017-07-26 Richard Biener <rguenther@suse.de>
11243
11244 * gimple-match-head.c (do_valueize): Return OP if valueize
11245 returns NULL_TREE.
11246 (get_def): New helper to get at the def stmt of a SSA name
11247 if valueize allows.
11248 * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
11249 do_valueize to get at the def stmt.
11250 (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
11251
11252 2017-07-26 Wilco Dijkstra <wdijkstr@arm.com>
11253
11254 PR middle-end/46932
11255 * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
11256
11257 2017-07-26 Martin Liska <mliska@suse.cz>
11258
11259 PR sanitize/81186
11260 * function.c (expand_function_start): Make expansion of
11261 nonlocal_goto_save_area after parm_birth_insn.
11262
11263 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
11264
11265 * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
11266 from all CPU target flags enable members.
11267
11268 2017-07-26 Richard Biener <rguenther@suse.de>
11269
11270 * genmatch.c (dt_simplify::gen): Make iterator vars const.
11271 (decision_tree::gen): Make 'type' const.
11272 (write_predicate): Likewise.
11273
11274 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
11275
11276 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
11277 Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
11278 (rs6000_option_override_internal): Likewise.
11279 (rs6000_expand_vector_set): Likewise.
11280 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
11281 (TARGET_UPPER_REGS_SF): Likewise.
11282 (TARGET_UPPER_REGS_DI): Likewise.
11283 (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
11284 (TARGET_DIRECT_MOVE_64BIT): Likewise.
11285 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
11286 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
11287 (Splitters for DI constants in Altivec registers): Likewise.
11288 * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
11289 (vsx_set_v4sf_p9): Likewise.
11290 (vsx_set_v4sf_p9_zero): Likewise.
11291 (vsx_insert_extract_v4sf_p9): Likewise.
11292 (vsx_insert_extract_v4sf_p9_2): Likewise.
11293
11294 2017-07-25 Carl Love <cel@us.ibm.com>
11295
11296 * doc/extend.texi: Update the built-in documentation file for the
11297 existing built-in functions
11298 vector signed char vec_cnttz (vector signed char);
11299 vector unsigned char vec_cnttz (vector unsigned char);
11300 vector signed short vec_cnttz (vector signed short);
11301 vector unsigned short vec_cnttz (vector unsigned short);
11302 vector signed int vec_cnttz (vector signed int);
11303 vector unsigned int vec_cnttz (vector unsigned int);
11304 vector signed long long vec_cnttz (vector signed long long);
11305 vector unsigned long long vec_cnttz (vector unsigned long long);
11306
11307 2017-07-25 Andrew Pinski <apinski@cavium.com>
11308
11309 * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
11310 accesses where the use is for the first operand of a BIT_INSERT.
11311
11312 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
11313
11314 PR bootstrap/81521
11315 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
11316 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
11317
11318 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
11319
11320 * config/i386/gstabs.h: Delete.
11321 * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
11322
11323 2017-07-25 Uros Bizjak <ubizjak@gmail.com>
11324
11325 * config/i386/i386.c (ix86_decompose_address): Do not check for
11326 register RTX when looking at index_reg or base_reg.
11327 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
11328
11329 2017-07-25 Eric Botcazou <ebotcazou@adacore.com>
11330
11331 * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
11332 to update EH info here.
11333
11334 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
11335
11336 * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
11337
11338 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
11339
11340 * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
11341
11342 2017-07-25 Torsten Duwe <duwe@suse.de>
11343
11344 * common.opt: Introduce -fpatchable-function-entry
11345 command line option, and its variables function_entry_patch_area_size
11346 and function_entry_patch_area_start.
11347 * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
11348 including a two-value parser.
11349 * target.def (print_patchable_function_entry): New target hook.
11350 * targhooks.h (default_print_patchable_function_entry): New function.
11351 * targhooks.c (default_print_patchable_function_entry): Likewise.
11352 * toplev.c (process_options): Switch off IPA-RA if
11353 patchable function entries are being generated.
11354 * varasm.c (assemble_start_function): Look at the
11355 patchable-function-entry command line switch and current
11356 function attributes and maybe generate NOP instructions by
11357 calling the print_patchable_function_entry hook.
11358 * doc/extend.texi: Document patchable_function_entry attribute.
11359 * doc/invoke.texi: Document -fpatchable_function_entry
11360 command line option.
11361 * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
11362 New target hook.
11363 * doc/tm.texi: Re-generate.
11364
11365 2017-07-25 Jakub Jelinek <jakub@redhat.com>
11366
11367 PR target/81532
11368 * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
11369 TARGET_AVX512DQ rather than TARGET_AVX512BW.
11370
11371 2017-07-25 Tamar Christina <tamar.christina@arm.com>
11372
11373 * config/arm/parsecpu.awk (all_cores): Remove duplicates.
11374
11375 2017-07-25 Richard Biener <rguenther@suse.de>
11376
11377 PR tree-optimization/81455
11378 * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
11379 not walk in cycles when looking for guards.
11380
11381 2017-07-25 Richard Biener <rguenther@suse.de>
11382
11383 PR tree-optimization/81529
11384 * tree-vect-stmts.c (process_use): Disregard live induction PHIs
11385 when optimizing backedge uses.
11386
11387 2017-07-25 David Edelsohn <dje.gcc@gmail.com>
11388
11389 * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
11390 character for AIX.
11391 * dwarf2out.c (output_macinfo): Copy debug_line_section_label
11392 to dl_section_ref. On AIX, append an expression to subtract
11393 the size of the section length to dl_section_ref.
11394
11395 2017-07-25 Segher Boessenkool <segher@kernel.crashing.org>
11396
11397 * configure.ac: If any of the config.* scripts fail, exit 1.
11398 * configure: Regenerate.
11399
11400 2017-07-25 Richard Biener <rguenther@suse.de>
11401
11402 PR middle-end/81546
11403 * tree-ssa-operands.c (verify_imm_links): Remove cap on number
11404 of immediate uses, be more verbose on errors.
11405
11406 2017-07-25 Richard Biener <rguenther@suse.de>
11407
11408 PR tree-optimization/81510
11409 * tree-vect-loop.c (vect_is_simple_reduction): When the
11410 reduction stmt is not inside the loop bail out.
11411
11412 2017-07-25 Richard Biener <rguenther@suse.de>
11413
11414 PR tree-optimization/81303
11415 * tree-vect-loop-manip.c (vect_loop_versioning): Build
11416 profitability check against LOOP_VINFO_NITERSM1.
11417
11418 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
11419
11420 * domwalk.c (cmp_bb_postorder): Simplify.
11421 (sort_bbs_postorder): New function. Use it...
11422 (dom_walker::walk): ...here to optimize common cases.
11423
11424 2017-07-25 Martin Liska <mliska@suse.cz>
11425
11426 PR ipa/81520
11427 * ipa-visibility.c (function_and_variable_visibility): Make the
11428 redirection just on target that supports aliasing.
11429 Fix GNU coding style.
11430
11431 2017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
11432
11433 PR libgcc/61152
11434 * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
11435 Format changes.
11436 * config/arm/rtems.h: Likewise.
11437 * config/bfin/rtems.h: Likewise.
11438 * config/i386/rtemself.h: Likewise.
11439 * config/lm32/rtems.h: Likewise.
11440 * config/m32c/rtems.h: Likewise.
11441 * config/m68k/rtemself.h: Likewise.
11442 * config/microblaze/rtems.h: Likewise.
11443 * config/mips/rtems.h: Likewise.
11444 * config/moxie/rtems.h: Likewise.
11445 * config/nios2/rtems.h: Likewise.
11446 * config/powerpcspe/rtems.h: Likewise.
11447 * config/rs6000/rtems.h: Likewise.
11448 * config/rtems.h: Likewise.
11449 * config/sh/rtems.h: Likewise.
11450 * config/sh/rtemself.h: Likewise.
11451 * config/sparc/rtemself.h: Likewise.
11452
11453 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
11454
11455 PR 81487
11456 * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
11457 * gimple-pretty-print.c (dump_profile, dump_probability): Same.
11458 * tree-ssa-structalias.c (alias_get_name): Same.
11459
11460 2017-07-25 Bin Cheng <bin.cheng@arm.com>
11461
11462 PR target/81414
11463 * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
11464 instructions if no du chain is found.
11465
11466 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
11467
11468 * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
11469
11470 2017-07-25 Richard Biener <rguenther@suse.de>
11471
11472 PR middle-end/81505
11473 * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
11474 sticky.
11475
11476 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
11477
11478 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
11479 upper-regs options.
11480 (ISA_2_7_MASKS_SERVER): Likewise.
11481 (ISA_3_0_MASKS_IEEE): Likewise.
11482 (OTHER_P8_VECTOR_MASKS): Likewise.
11483 (OTHER_VSX_VECTOR_MASKS): Likewise.
11484 (POWERPC_MASKS): Likewise.
11485 (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
11486 duplicate list of options.
11487 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
11488 explicit -mupper-regs options.
11489 * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
11490 -mupper-regs* options. Delete -mvsx-scalar-memory, which was an
11491 alias for -mupper-regs-df.
11492 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
11493 (rs6000_init_hard_regno_mode_ok): Likewise.
11494 (rs6000_option_override_internal): Likewise.
11495 (rs6000_opt_masks): Likewise.
11496 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
11497 options in terms of whether -mvsx or -mpower8-vector was used.
11498 (TARGET_UPPER_REGS_DI): Likewise.
11499 (TARGET_UPPER_REGS_SF): Likewise.
11500 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
11501 -mupper-regs-* options.
11502
11503 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
11504
11505 * passes.c (emergency_dump_function): Print some empty lines and a
11506 header before the RTL dump.
11507
11508 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
11509
11510 * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
11511
11512 2017-07-24 Wilco Dijkstra <wdijkstr@arm.com>
11513
11514 PR target/79041
11515 * config/aarch64/aarch64.c (aarch64_classify_symbol):
11516 Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
11517
11518 2017-07-24 Carl Love <cel@us.ibm.com>
11519
11520 * config/rs6000/rs6000-c.c: Add support for built-in functions
11521 vector float vec_extract_fp32_from_shorth (vector unsigned short);
11522 vector float vec_extract_fp32_from_shortl (vector unsigned short);
11523 * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
11524 vec_extract_fp_from_shortl): Add defines for the two builtins.
11525 * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
11526 VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
11527 new builtins.
11528 * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
11529 (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
11530 * doc/extend.texi: Update the built-in documentation file for the
11531 new built-in function.
11532
11533 2017-07-24 Jakub Jelinek <jakub@redhat.com>
11534
11535 PR bootstrap/81521
11536 * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
11537 documentation.
11538 * doc/generic.texi: Likewise.
11539 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
11540 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
11541
11542 2017-07-24 Jackson Woodruff <jackson.woodruff@arm.com>
11543
11544 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
11545 (aarch64_mls_elt_merge<mode>): Likewise.
11546
11547 2017-07-23 Krister Walfridsson <krister.walfridsson@gmail.com>
11548
11549 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
11550 having __cxa_atexit.
11551
11552 2017-07-23 Michael Collison <michael.collison@arm.com>
11553
11554 * config/arm/arm.c (arm_option_override): Deprecate
11555 use of -mstructure-size-boundary.
11556 * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
11557 * doc/invoke.texi: Deprecate -mstructure-size-boundary.
11558
11559 2017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11560
11561 PR target/80695
11562 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
11563 Reduce cost estimate for direct moves.
11564
11565 2017-07-23 Uros Bizjak <ubizjak@gmail.com>
11566
11567 PR target/80569
11568 * config/i386/i386.c (ix86_option_override_internal): Disable
11569 BMI, BMI2 and TBM instructions for -m16.
11570
11571 2017-07-21 Carl Love <cel@us.ibm.com>
11572
11573 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11574 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
11575 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
11576 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
11577 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
11578 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
11579 VMULOSW): New enum "unspec" values.
11580 (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
11581 altivec_vmulosw): New patterns.
11582 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
11583 VMULOSW): Add definitions.
11584
11585 2017-07-21 Jim Wilson <jim.wilson@linaro.org>
11586
11587 * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
11588 (qdf24xx): Likewise.
11589 * config/aarch64/aarch64-options-extensions.def (rdma); New.
11590 * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
11591 (AARCH64_FL_V8_1): Renumber.
11592 (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
11593 (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
11594 * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
11595 * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs. Add
11596 rdma to feature modifiers list.
11597
11598 2017-07-21 Yury Gribov <tetra2005@gmail.com>
11599
11600 PR middle-end/56727
11601 * ipa-visibility (function_and_variable_visibility): Convert
11602 recursive PLT call to direct call if appropriate.
11603
11604 2017-07-21 Andrew Pinski <apinski@cavium.com>
11605
11606 * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
11607 operand 1 to see if the types precision matches.
11608 * fold-const.c (operand_equal_p): Likewise.
11609
11610 2017-07-21 Richard Biener <rguenther@suse.de>
11611
11612 PR tree-optimization/81303
11613 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
11614 in datarefs vector. Allow NULL dr0 for no peeling cost estimate.
11615 (vect_peeling_hash_get_lowest_cost): Adjust.
11616 (vect_enhance_data_refs_alignment): Likewise. Use
11617 vect_get_peeling_costs_all_drs to compute the penalty for no
11618 peeling to match up costs.
11619
11620 2017-07-21 Richard Biener <rguenther@suse.de>
11621
11622 PR tree-optimization/81500
11623 * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
11624 we didn't identify a reduction path.
11625
11626 2017-07-21 Tom de Vries <tom@codesourcery.com>
11627 Cesar Philippidis <cesar@codesourcery.com>
11628
11629 PR gcov-profile/81442
11630 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
11631 probabilities.
11632
11633 2017-07-21 Tom de Vries <tom@codesourcery.com>
11634
11635 PR lto/81430
11636 * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
11637 function.
11638 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
11639 nvptx_override_options_after_change.
11640
11641 2017-07-21 Ulrich Drepper <drepper@redhat.com>
11642
11643 * dwarf2out.c (output_file_names): Avoid double testing for
11644 dwarf_version >= 5.
11645
11646 2017-07-21 Georg-Johann Lay <avr@gjlay.de>
11647
11648 * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
11649
11650 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
11651
11652 * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
11653 hot/cold regions.
11654 (try_crossjump_to_edge): Do not punt on partitioned functions.
11655
11656 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
11657
11658 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
11659 Put all BBs reachable only via paths crossing cold region to cold
11660 region.
11661 * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
11662
11663 2016-07-21 Richard Biener <rguenther@suse.de>
11664
11665 PR tree-optimization/81303
11666 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
11667 into account prologue and epilogue iterations when raising
11668 min_profitable_iters to sth at least covering one vector iteration.
11669
11670 2017-07-21 Tamar Christina <tamar.christina@arm.com>
11671
11672 * config/arm/arm.c (arm_test_cpu_arch_dat):
11673 Check for overlap.
11674
11675 2017-07-20 Nathan Sidwell <nathan@acm.org>
11676
11677 Remove TYPE_METHODS.
11678 * tree.h (TYPE_METHODS): Delete.
11679 * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
11680 * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
11681 (dbxout_type_methods): Scan TYPE_FIELDS.
11682 (dbxout_type): Don't check TYPE_METHODS here.
11683 * function.c (use_register_for_decl): Always ignore register for
11684 class types when not optimizing.
11685 * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
11686 * tree.c (free_lang_data_in_type): Stitch out member functions and
11687 templates from TYPE_FIELDS.
11688 (build_distinct_type_copy, verify_type_variant,
11689 verify_type): Member fns are on TYPE_FIELDS.
11690 * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
11691 * tree-pretty-print.c (dump_generic_node): Likewise.
11692
11693 2017-07-20 Jakub Jelinek <jakub@redhat.com>
11694
11695 PR target/80846
11696 * config/i386/i386.c (ix86_expand_vector_init_general): Handle
11697 V2TImode and V4TImode.
11698 (ix86_expand_vector_extract): Likewise.
11699 * config/i386/sse.md (VMOVE): Enable V4TImode even for just
11700 TARGET_AVX512F, instead of only for TARGET_AVX512BW.
11701 (ssescalarmode): Handle V4TImode and V2TImode.
11702 (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
11703 (*vec_extractv2ti, *vec_extractv4ti): New insns.
11704 (VEXTRACTI128_MODE): New mode iterator.
11705 (splitter for *vec_extractv?ti first element): New.
11706 (VEC_INIT_MODE): New mode iterator.
11707 (vec_init<mode>): Consolidate 3 expanders into one using
11708 VEC_INIT_MODE mode iterator.
11709
11710 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
11711
11712 * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
11713 non_spilled_static_chain_regno_p.
11714
11715 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
11716
11717 * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
11718
11719 2017-07-20 Jan Hubicka <hubicka@ucw.cz>
11720
11721 * bb-reorder.c (connect_traces): Allow copying of blocks within
11722 single partition.
11723
11724 2017-07-20 Richard Biener <rguenther@suse.de>
11725
11726 * gimple.h (gimple_phi_result): Add gphi * overload.
11727 (gimple_phi_result_ptr): Likewise.
11728 (gimple_phi_arg): Likewise. Adjust index assert to only
11729 allow actual argument accesses rather than all slots available
11730 by capacity.
11731 (gimple_phi_arg_def): Add gphi * overload.
11732 * tree-phinodes.c (make_phi_node): Initialize only actual
11733 arguments.
11734 (resize_phi_node): Clear memory not covered by old node,
11735 do not initialize excess argument slots.
11736 (reserve_phi_args_for_new_edge): Initialize new argument slot
11737 completely.
11738
11739 2017-07-20 Bin Cheng <bin.cheng@arm.com>
11740
11741 PR tree-optimization/81388
11742 Revert r238585:
11743 2016-07-21 Bin Cheng <bin.cheng@arm.com>
11744
11745 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
11746 by removing computation of may_be_zero.
11747
11748 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
11749 Tom de Vries <tom@codesourcery.com>
11750
11751 PR middle-end/81030
11752 * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
11753 when gimple level profile disagrees with what RTL expander did.
11754
11755 2017-07-20 Richard Biener <rguenther@suse.de>
11756
11757 PR tree-optimization/61171
11758 * tree-vectorizer.h (slp_instance): Add reduc_phis member.
11759 (vect_analyze_stmt): Add slp instance parameter.
11760 (vectorizable_reduction): Likewise.
11761 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
11762 (vect_is_simple_reduction): Deal with chains not detected
11763 as SLP reduction chain, specifically not properly associated
11764 chains containing a mix of plus/minus.
11765 (get_reduction_op): Remove.
11766 (get_initial_defs_for_reduction): Simplify, pass in whether
11767 this is a reduction chain, pass in the SLP node for the PHIs.
11768 (vect_create_epilog_for_reduction): Get the SLP instance as
11769 arg and adjust.
11770 (vectorizable_reduction): Get the SLP instance as arg.
11771 During analysis remember the SLP node with the PHIs in the
11772 instance. Simplify getting at the vectorized reduction PHIs.
11773 * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
11774 through SLP instance.
11775 (vect_slp_analyze_operations): Likewise.
11776 * tree-vect-stms.c (vect_analyze_stmt): Likewise.
11777 (vect_transform_stmt): Likewise.
11778
11779 2017-07-20 Tom de Vries <tom@codesourcery.com>
11780
11781 PR tree-optimization/81489
11782 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
11783 read of phi arg location to before loop that modifies phi.
11784
11785 2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
11786
11787 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
11788 New pattern.
11789
11790 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
11791
11792 PR middle-end/81331
11793 * except.c (execute): Fix ordering issue.
11794
11795 2018-07-19 Segher Boessenkool <segher@kernel.crashing.org>
11796
11797 PR rtl-optimization/81423
11798 * combine.c (make_compound_operation_int): Don't try to optimize
11799 the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
11800
11801 2017-07-19 Segher Boessenkool <segher@kernel.crashing.org>
11802
11803 PR rtl-optimization/81423
11804 * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
11805 with a constant that is -1 in the truncated to mode.
11806
11807 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
11808
11809 * predict.c (propagate_unlikely_bbs_forward): Break out from ...
11810 (determine_unlikely_bbs): ... here.
11811 * predict.h (propagate_unlikely_bbs_forward): Declare.
11812 * cfgexpand.c (pass_expand::execute): Use it.
11813 * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
11814 unlikely edges.
11815 (find_rarely_executed_basic_blocks_and_crossing_edges): Use
11816 propagate_unlikely_bbs_forward.
11817
11818 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
11819
11820 PR middle-end/81331
11821 * except.c (maybe_add_nop_after_section_switch): New function.
11822 (execute): Use it.
11823
11824 2017-07-19 Tom de Vries <tom@codesourcery.com>
11825
11826 * gimple.h (gimple_phi_set_arg): Make assert more strict.
11827
11828 2017-07-19 Tom de Vries <tom@codesourcery.com>
11829
11830 * gimple.h (gimple_phi_arg): Make assert more strict.
11831
11832 2017-07-19 Steven Munroe <munroesj@gcc.gnu.org>
11833
11834 * config.gcc (powerpc*-*-*): Add mmintrin.h.
11835 * config/rs6000/mmintrin.h: New file.
11836 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
11837
11838 2017-07-19 Jakub Jelinek <jakub@redhat.com>
11839
11840 PR tree-optimization/81346
11841 * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
11842
11843 2017-07-19 Tom de Vries <tom@codesourcery.com>
11844
11845 * config/nvptx/nvptx.md (VECIM): Add V2DI.
11846
11847 2017-07-19 Tom de Vries <tom@codesourcery.com>
11848
11849 * config/nvptx/nvptx-modes.def: Add V2DImode.
11850 * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
11851 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
11852 (nvptx_output_mov_insn): Handle lack of mov.b128.
11853 (nvptx_print_operand): Handle 'H' and 'L' codes.
11854 (nvptx_vector_mode_supported): Allow V2DImode.
11855 (nvptx_preferred_simd_mode): New function.
11856 (nvptx_data_alignment): New function.
11857 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
11858 nvptx_preferred_simd_mode.
11859 * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
11860 64 to 128 bits.
11861 (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment.
11862
11863 2017-07-19 Tom de Vries <tom@codesourcery.com>
11864
11865 * config/nvptx/nvptx-modes.def: New file. Add V2SImode.
11866 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
11867 (nvptx_vector_mode_supported): New function. Allow V2SImode.
11868 (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
11869 * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
11870 (mov<VECIM>_insn): New define_insn.
11871 (define_expand "mov<VECIM>): New define_expand.
11872
11873 2017-07-19 Tom de Vries <tom@codesourcery.com>
11874
11875 * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
11876
11877 2017-07-19 Jakub Jelinek <jakub@redhat.com>
11878
11879 PR tree-optimization/81346
11880 * fold-const.h (fold_div_compare, range_check_type): Declare.
11881 * fold-const.c (range_check_type): New function.
11882 (build_range_check): Use range_check_type.
11883 (fold_div_compare): No longer static, rewritten into
11884 a match.pd helper function.
11885 (fold_comparison): Don't call fold_div_compare here.
11886 * match.pd (X / C1 op C2): New optimization using fold_div_compare
11887 as helper function.
11888
11889 2017-07-19 Nathan Sidwell <nathan@acm.org>
11890
11891 * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
11892 (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
11893 * tree.c (find_decls_types_r, verify_type): Use
11894 TYPE_{MIN,MAX}_VALUE_RAW.
11895 * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
11896 (hash_tree): Likewise.
11897 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
11898 Likewise.
11899 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
11900 Likewise.
11901
11902 2017-07-18 Tom de Vries <tom@codesourcery.com>
11903
11904 PR middle-end/81464
11905 * omp-expand.c (expand_omp_for_static_chunk): Handle
11906 equal-argument loop exit phi.
11907
11908 2017-07-18 Uros Bizjak <ubizjak@gmail.com>
11909
11910 PR target/81471
11911 * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
11912 (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
11913 operand 2 predicate.
11914 (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
11915 operand 2 predicate.
11916 (ror,rol -> rorx splitters): Use const_int_operand as
11917 operand 2 predicate.
11918
11919 2017-06-18 Richard Biener <rguenther@suse.de>
11920
11921 PR tree-optimization/81410
11922 * tree-vect-stmts.c (vectorizable_load): Properly adjust for
11923 the gap in the ! slp_perm SLP case after each group.
11924
11925 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
11926
11927 PR middle-end/81463
11928 * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
11929 again.
11930
11931 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
11932
11933 PR middle-end/81462
11934 * predict.c (set_even_probabilities): Cleanup; do not affect
11935 probabilities that are already known.
11936 (combine_predictions_for_bb): Call even when count is set.
11937
11938 2017-07-18 Nathan Sidwell <nathan@acm.org>
11939
11940 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
11941 TYPE_MAX_VALUE.
11942
11943 2017-07-18 Bin Cheng <bin.cheng@arm.com>
11944
11945 PR target/81408
11946 * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
11947 optimization for loop niter analysis.
11948
11949 2017-07-18 Georg-Johann Lay <avr@gjlay.de>
11950
11951 PR target/81473
11952 * config/avr/avr.c (avr_optimize_casesi): Don't use
11953 INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
11954
11955 2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
11956
11957 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
11958 body_cost_vec from _vect_peel_extended_info.
11959 (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
11960 (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
11961 npeel.
11962
11963 2017-07-18 Bin Cheng <bin.cheng@arm.com>
11964
11965 * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
11966
11967 2017-07-18 Richard Biener <rguenther@suse.de>
11968
11969 PR tree-optimization/80620
11970 PR tree-optimization/81403
11971 * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
11972 info when re-using a VN table entry.
11973
11974 2017-07-18 Richard Biener <rguenther@suse.de>
11975
11976 PR tree-optimization/81418
11977 * tree-vect-loop.c (vectorizable_reduction): Properly compute
11978 vectype_in. Verify that with lane-reducing reduction operations
11979 we have a single def-use cycle.
11980
11981 2017-07-17 Carl Love <cel@us.ibm.com>
11982
11983 Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com>
11984
11985 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11986 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
11987 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
11988 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
11989 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
11990 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
11991 VMULOSW): New enum "unspec" values.
11992 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
11993 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
11994 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
11995 altivec_vmulosw): New patterns.
11996 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
11997 VMULOSW): Add definitions.
11998 2017-07-17 Uros Bizjak <ubizjak@gmail.com>
11999
12000 * config/alpha/alpha.c: Include predict.h.
12001
12002 2017-07-17 Yury Gribov <tetra2005@gmail.com>
12003
12004 * tree-vrp.c (compare_assert_loc): Fix comparison function
12005 to return predictable results.
12006
12007 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
12008
12009 * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
12010 option.
12011 (subdi3): Likewise.
12012 * config/arc/arc.opt (mexpand-adddi): Deprecate it.
12013 * doc/invoke.texi (mexpand-adddi): Update text.
12014
12015 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
12016
12017 * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
12018 that also clobbers the CC register. The old expand code is moved
12019 to ...
12020 (*arc_clzsi2): ... here.
12021 (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
12022 the CC register. The old expand code is moved to ...
12023 (arc_ctzsi2): ... here.
12024
12025 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
12026
12027 * config/arc/arc.opt (mindexed-loads): Use initial value
12028 TARGET_INDEXED_LOADS_DEFAULT.
12029 (mauto-modify-reg): Use initial value
12030 TARGET_AUTO_MODIFY_REG_DEFAULT.
12031 * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
12032 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
12033 * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
12034 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
12035
12036 2017-07-17 Martin Liska <mliska@suse.cz>
12037
12038 PR sanitizer/81302
12039 * opts.c (finish_options): Do not allow -fgnu-tm
12040 w/ -fsanitize={kernel-,}address. Say sorry.
12041
12042 2017-07-17 Bin Cheng <bin.cheng@arm.com>
12043
12044 PR target/81369
12045 * tree-loop-distribution.c (classify_partition): Only assert on
12046 numer of iterations.
12047 (merge_dep_scc_partitions): Delete prameter. Update function call.
12048 (distribute_loop): Remove code handling loop with unknown niters.
12049 (pass_loop_distribution::execute): Skip loop with unknown niters.
12050
12051 2017-07-17 Bin Cheng <bin.cheng@arm.com>
12052
12053 PR target/81369
12054 * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
12055 function sort_partitions_by_post_order.
12056
12057 2017-07-17 Bin Cheng <bin.cheng@arm.com>
12058
12059 PR tree-optimization/81374
12060 * tree-loop-distribution.c (pass_loop_distribution::execute): Record
12061 the max index of basic blocks, rather than number of basic blocks.
12062
12063 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
12064
12065 * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
12066 proto.
12067 (arc_legitimate_pic_operand_p): Likewise.
12068 * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
12069 function.
12070 (arc_needs_pcl_p): Likewise.
12071 (arc_legitimate_pc_offset_p): Likewise.
12072 (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
12073 function is also used in constrains.md.
12074 (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
12075 validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
12076 PLUS. Only return true/false in known cases, otherwise assert.
12077 (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
12078 is already called in arc_legitimate_constant_p.
12079 * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
12080 pic addresses.
12081 (LEGITIMATE_PIC_OPERAND_P): Use
12082 arc_raw_symbolic_reference_mentioned_p function.
12083 * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
12084 function.
12085 (Cal): Likewise.
12086 (C32): Likewise.
12087
12088 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
12089 Andrew Burgess <andrew.burgess@embecosm.com>
12090
12091 * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
12092 (arc_return_address_register): New function.
12093 * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
12094 (arc_handle_fndecl_attribute): Add naked attribute.
12095 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
12096 (TARGET_WARN_FUNC_RETURN): Likewise.
12097 (arc_allocate_stack_slots_for_args): New function.
12098 (arc_warn_func_return): Likewise.
12099 (machine_function): Change type fn_type.
12100 (arc_compute_function_type): Consider new naked function type,
12101 change function return type.
12102 (arc_must_save_register): Adapt to handle new
12103 arc_compute_function_type's return type.
12104 (arc_expand_prologue): Likewise.
12105 (arc_expand_epilogue): Likewise.
12106 (arc_return_address_regs): Delete.
12107 (arc_return_address_register): New function.
12108 (arc_epilogue_uses): Use above function.
12109 * config/arc/arc.h (arc_return_address_regs): Delete prototype.
12110 (arc_function_type): Change encoding, add naked type.
12111 (ARC_INTERRUPT_P): Change to handle the new encoding.
12112 (ARC_FAST_INTERRUPT_P): Likewise.
12113 (ARC_NORMAL_P): Define.
12114 (ARC_NAKED_P): Likewise.
12115 (arc_compute_function_type): Delete prototype.
12116 * config/arc/arc.md (in_ret_delay_slot): Use
12117 arc_return_address_register function.
12118 (simple_return): Likewise.
12119 (p_return_i): Likewise.
12120
12121 2017-07-17 Jakub Jelinek <jakub@redhat.com>
12122
12123 PR tree-optimization/81428
12124 * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
12125 can't be built for those types.
12126
12127 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
12128
12129 Remove stuff dead since r239246.
12130
12131 * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
12132 * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
12133 (avr_inform_devices): Remove dead stuff.
12134
12135 2017-07-17 Tamar Christina <tamar.christina@arm.com>
12136
12137 * config/arm/arm_neon.h: Fix softp typo.
12138
12139 2017-07-17 Jakub Jelinek <jakub@redhat.com>
12140
12141 PR tree-optimization/81365
12142 * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
12143 aggregate moves onto bb predecessor edges, make sure there are no
12144 loads that could alias the lhs in between the start of bb and the
12145 loads from *phi.
12146
12147 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
12148
12149 PR 80929
12150 * config/avr/avr.c (avr_mul_highpart_cost): New static function.
12151 (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
12152 [LSHIFTRT, outer_code = TRUNCATE]: Same.
12153
12154 2017-07-17 Jakub Jelinek <jakub@redhat.com>
12155
12156 PR tree-optimization/81396
12157 * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
12158 (init_symbolic_number): Initialize it to 1.
12159 (perform_symbolic_merge): Add n_ops from both operands into the new
12160 n_ops.
12161 (find_bswap_or_nop): Don't consider n->n == cmpnop computations
12162 without base_addr as useless if they need more than one operation.
12163 (bswap_replace): Handle !bswap case for NULL base_addr.
12164
12165 2017-07-17 Tom de Vries <tom@codesourcery.com>
12166
12167 PR target/81069
12168 * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
12169 as possible.
12170
12171 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
12172
12173 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
12174 conditional builtin define __FIX_LEON3FT_B2BST.
12175
12176 2017-07-17 Daniel Cederman <cederman@gaisler.com>
12177
12178 * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
12179 MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
12180 with -mfix-ut700.
12181
12182 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
12183
12184 PR rtl-optimization/81424
12185 * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
12186 to remove potential trapping from operands if -fnon-call-exceptions.
12187
12188 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
12189
12190 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
12191 profile_proability for scalling.
12192 * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
12193
12194 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
12195
12196 * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
12197
12198 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
12199
12200 * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
12201 fixpoint arithmetics.
12202
12203 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
12204
12205 * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
12206 fixpoint arithmetics.
12207
12208 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
12209
12210 * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
12211 fixpoint arithmetics.
12212
12213 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
12214
12215 * profile-count.h (profile_probability::from_reg_br_prob_note,
12216 profile_probability::to_reg_br_prob_note): New functions.
12217 * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
12218 * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
12219 * predict.c (probability_reliable_p): Update.
12220 (edge_probability_reliable_p): Update.
12221 (br_prob_note_reliable_p): Update.
12222 (invert_br_probabilities): Update.
12223 (add_reg_br_prob_note): New function.
12224 (combine_predictions_for_insn): Update.
12225 * asan.c (asan_clear_shadow): Update.
12226 * cfgbuild.c (compute_outgoing_frequencies): Update.
12227 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
12228 (update_br_prob_note): Update.
12229 (rtl_verify_edges): Update.
12230 (purge_dead_edges): Update.
12231 (fixup_reorder_chain): Update.
12232 * emit-rtl.c (try_split): Update.
12233 * ifcvt.c (cond_exec_process_insns): Update.
12234 (cond_exec_process_if_block): Update.
12235 (dead_or_predicable): Update.
12236 * internal-fn.c (expand_addsub_overflow): Update.
12237 (expand_neg_overflow): Update.
12238 (expand_mul_overflow): Update.
12239 * loop-doloop.c (doloop_modify): Update.
12240 * loop-unroll.c (compare_and_jump_seq): Update.
12241 * optabs.c (emit_cmp_and_jump_insn_1): Update.
12242 * predict.h: Update.
12243 * reorg.c (mostly_true_jump): Update.
12244 * rtl.h: Update.
12245 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
12246 * config/alpha/alpha.c (emit_unlikely_jump): Update.
12247 * config/arc/arc.c: (emit_unlikely_jump): Update.
12248 * config/arm/arm.c: (emit_unlikely_jump): Update.
12249 * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
12250 * config/frv/frv.c (frv_print_operand_jump_hint): Update.
12251 * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
12252 (ix86_print_operand): Update.
12253 (ix86_split_fp_branch): Update.
12254 (predict_jump): Update.
12255 * config/ia64/ia64.c (ia64_print_operand): Update.
12256 * config/mmix/mmix.c (mmix_print_operand): Update.
12257 * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
12258 (rs6000_expand_split_stack_prologue): Update.
12259 * config/rs6000/rs6000.c: Update.
12260 * config/s390/s390.c (s390_expand_vec_strlen): Update.
12261 (s390_expand_vec_movstr): Update.
12262 (s390_expand_cs_tdsi): Update.
12263 (s390_expand_split_stack_prologue): Update.
12264 * config/sh/sh.c (sh_print_operand): Update.
12265 (expand_cbranchsi4): Update.
12266 (expand_cbranchdi4): Update.
12267 * config/sparc/sparc.c (output_v9branch): Update.
12268 * config/spu/spu.c (get_branch_target): Update.
12269 (ea_load_store_inline): Update.
12270 * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
12271 * config/tilepro/tilepro.c: Update.
12272
12273 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
12274
12275 * gimplify.c (mostly_copy_tree_r): Revert latest change.
12276 (gimplify_save_expr): Likewise.
12277
12278 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
12279
12280 * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
12281
12282 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
12283
12284 * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
12285 TV_IPA_FNSUMMARY.
12286 * timevar.def (TV_IPA_FNSUMMARY): Define.
12287
12288 2017-07-16 Daniel Cederman <cederman@gaisler.com>
12289
12290 * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
12291 to back store errata sensitive sequence from being generated.
12292 (sqrtdf2_fix): Likewise.
12293
12294 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
12295
12296 * tree-ssa-threadupdate.c (compute_path_counts,
12297 update_joiner_offpath_counts): Use profile_probability.
12298
12299 2017-07-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
12300
12301 Revert:
12302 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
12303
12304 * config/arm/arm-c.c (arm_cpu_builtins): Define
12305 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
12306
12307 2017-07-14 Kelvin Nilsen <kelvin@gcc.gnu.org>
12308
12309 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12310 array entries to represent __ieee128 versions of the
12311 scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
12312 scalar_extract_sig, and scalar_insert_exp built-in functions.
12313 (altivec_resolve_overloaded_builtin): Add special case handling
12314 for the __builtin_scalar_insert_exp function, as represented by
12315 the P9V_BUILTIN_VEC_VSIEDP constant.
12316 * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
12317 exponent support for __ieee128 argument.
12318 (VSESQP): Add scalar extract signature support for __ieee128
12319 argument.
12320 (VSTDCNQP): Add scalar test negative support for __ieee128
12321 argument.
12322 (VSIEQP): Add scalar insert exponent support for __int128 argument
12323 with __ieee128 result.
12324 (VSIEQPF): Add scalar insert exponent support for __ieee128
12325 argument with __ieee128 result.
12326 (VSTDCQP): Add scalar test data class support for __ieee128
12327 argument.
12328 (VSTDCNQP): Add overload support for scalar test negative with
12329 __ieee128 argument.
12330 (VSTDCQP): Add overload support for scalar test data class
12331 __ieee128 argument.
12332 * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
12333 UNSPEC_VSX_SXSIGDP.
12334 (UNSPEC_VSX_SIEXPQP): New constant.
12335 (xsxexpqp): New insn for VSX scalar extract exponent quad
12336 precision.
12337 (xsxsigqp): New insn for VSX scalar extract significand quad
12338 precision.
12339 (xsiexpqpf): New insn for VSX scalar insert exponent quad
12340 precision with floating point argument.
12341 (xststdcqp): New expand for VSX scalar test data class quad
12342 precision.
12343 (xststdcnegqp): New expand for VSX scalar test negative quad
12344 precision.
12345 (xststdcqp): New insn to match expansions for VSX scalar test data
12346 class quad precision and VSX scalar test negative quad precision.
12347 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
12348 special case operand checking to enforce that second operand of
12349 VSX scalar test data class with quad precision argument is a 7-bit
12350 unsigned literal.
12351 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
12352 prototypes and descriptions of __ieee128 versions of
12353 scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
12354 scalar_test_data_class, and scalar_test_neg built-in functions.
12355
12356 2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12357
12358 PR tree-optimization/81162
12359 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
12360 replace a negate with an add.
12361
12362 2017-07-14 James Greenhalgh <james.greenhalgh@arm.com>
12363
12364 * doc/invoke.texi (arm/-mcpu): Document +crypto.
12365
12366 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
12367
12368 * config/arm/arm-c.c (arm_cpu_builtins): Define
12369 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
12370
12371 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
12372
12373 * config/arm/arm-cpus.in (cortex-r52): Add new entry.
12374 (armv8-r): Set ARM Cortex-R52 as default CPU.
12375 * config/arm/arm-tables.opt: Regenerate.
12376 * config/arm/arm-tune.md: Regenerate.
12377 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
12378 Cortex-R52.
12379 * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
12380 extension for -mcpu=cortex-r52.
12381
12382 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
12383
12384 * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
12385 (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
12386 * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
12387 (fp-armv8): Define it as FP_ARMv8 only.
12388 config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
12389 (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
12390 TARGET_FPU_ARMV8.
12391 config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
12392 TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
12393 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
12394 first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
12395 than TARGET_FPU_ARMV8.
12396 * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
12397 __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
12398 * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
12399 TARGET_FPU_ARMV8.
12400 * config/arm/neon.md (neon_vrint): Likewise.
12401 (neon_vcvt): Likewise.
12402 (neon_<fmaxmin_op><mode>): Likewise.
12403 (<fmaxmin><mode>3): Likewise.
12404 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
12405 * config/arm/predicates.md (arm_cond_move_operator): Check against
12406 TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
12407
12408 2017-07-14 Jackson Woodruff <jackson.woodruff@arm.com>
12409
12410 * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
12411 to top of function.
12412
12413 2017-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12414
12415 * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
12416 loop in comment with memset.
12417
12418 2017-07-14 Martin Liska <mliska@suse.cz>
12419
12420 * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
12421 * dwarf2out.c (is_java): Remove the function.
12422 (output_pubname): Remove usage of the function.
12423 (lower_bound_default): Remove usage of DW_LANG_Java.
12424 (gen_compile_unit_die): Likewise.
12425 * gcc.c: Remove compiler defaults for .java and .zip files.
12426 * gimple-expr.c (remove_suffix): Change as there's no longer
12427 extension than 4-letter one.
12428 * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
12429 (gimplify_save_expr): Likewise.
12430 * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
12431 as it's possible even for other languages than Java.
12432 * langhooks.h (struct lang_hooks): Remove Java from a comment.
12433 * lto-opts.c (lto_write_options): Remove reference to Java.
12434 * opts.c (strip_off_ending): Update file extension handling.
12435 * tree-cfg.c (verify_gimple_call): Remove comment with Java.
12436 * tree-eh.c (lower_resx): Likewise.
12437 * tree.c (free_lang_data_in_type): Remove dead code.
12438 (find_decls_types_r): Likewise.
12439 (build_common_builtin_nodes): Remove Java from a comment.
12440 (verify_type): Remove dead code.
12441 * varasm.c (assemble_external): Remove Java from a comment.
12442
12443 2017-07-14 Martin Liska <mliska@suse.cz>
12444
12445 * opts.c (finish_options): Add quotes.
12446 (common_handle_option): Likewise.
12447
12448 2017-07-14 Martin Liska <mliska@suse.cz>
12449
12450 * dbxout.c (get_lang_number): Do not handle GNU Pascal.
12451 * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
12452 Remove N_SO_PASCAL.
12453 * dwarf2out.c (lower_bound_default): Do not handle
12454 DW_LANG_Pascal83.
12455 (gen_compile_unit_die): Likewise.
12456 * gcc.c: Remove default extension binding for GNU Pascal.
12457 * stmt.c: Remove Pascal language from a comment.
12458 * xcoffout.c: Likewise.
12459
12460 2017-07-13 David Malcolm <dmalcolm@redhat.com>
12461
12462 PR c/81405
12463 * diagnostic-show-locus.c (fixit_cmp): New function.
12464 (layout::layout): Sort m_fixit_hints.
12465 (column_range::column_range): Assert that the values are valid.
12466 (struct char_span): New struct.
12467 (correction::overwrite): New method.
12468 (struct source_line): New struct.
12469 (line_corrections::add_hint): Add assertions. Reimplement memcpy
12470 calls in terms of classes source_line and char_span, and
12471 correction::overwrite.
12472 (selftest::test_overlapped_fixit_printing_2): New function.
12473 (selftest::diagnostic_show_locus_c_tests): Call it.
12474
12475 2017-07-13 Will Schmidt <will_schmidt@vnet.ibm.com>
12476
12477 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
12478 early if there is no lhs.
12479
12480 2017-07-13 Martin Liska <mliska@suse.cz>
12481
12482 * dwarf2out.c (gen_pointer_type_die): Remove dead code.
12483 (gen_reference_type_die): Likewise.
12484 * stor-layout.c: Remove Pascal-related comment.
12485
12486 2017-07-13 Martin Liska <mliska@suse.cz>
12487
12488 * opts.c (finish_options): Add quotes to error messages.
12489 (parse_sanitizer_options): Likewise.
12490
12491 2017-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
12492
12493 * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
12494
12495 2017-07-13 Richard Earnshaw <rearnsha@arm.com>
12496
12497 * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
12498
12499 2017-07-13 Maxim Ostapenko <m.ostapenko@samsung.com>
12500
12501 * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
12502 during expansion.
12503 * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
12504
12505 2017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12506
12507 PR target/81193
12508 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
12509 provides the hardware capability bits, define the macro
12510 __BUILTIN_CPU_SUPPORTS__.
12511 * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
12512 if GLIBC does not provide the hardware capability bits. Add a
12513 gcc_unreachable call if the built-in cpu function is neither
12514 __builtin_cpu_is nor __builtin_cpu_supports.
12515 (rs6000_get_function_versions_dispatcher): Change the warning
12516 that an old GLIBC is used which does not export the capability
12517 bits to be an error.
12518 * doc/extend.texi (target_clones attribute): Document the
12519 restriction that GLIBC 2.23 or newer is needed on the PowerPC.
12520 (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
12521 needed by __builtin_cpu_is and __builtin_cpu_supports. Document
12522 the macros defined by GCC if the newer GLIBC is available.
12523
12524 2017-07-12 Jeff Law <law@redhat.com>
12525
12526 * config/riscv/riscv.c: Remove unnecessary includes. Reorder
12527 remaining includes slightly.
12528 * config/riscv/riscv-builtins.c: Include profile-count.h.
12529
12530 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
12531
12532 PR target/79883
12533 * config/avr/avr.c (avr_set_current_function): In diagnostic
12534 messages: Quote keywords and (parts of) identifiers.
12535 [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
12536 "INTERUPT".
12537
12538 2017-07-12 Carl Love <cel@us.ibm.com>
12539
12540 * config/rs6000/rs6000-c.c: Add support for built-in functions
12541 vector bool char vec_revb (vector bool char);
12542 vector bool short vec_revb (vector short char);
12543 vector bool int vec_revb (vector bool int);
12544 vector bool long long vec_revb (vector bool long long);
12545 * doc/extend.texi: Update the built-in documentation file for the
12546 new built-in functions.
12547
12548 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12549
12550 * config/s390/s390.md: Remove movcc splitter.
12551
12552 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12553
12554 * config/s390/s390.c (s390_rtx_costs): Return proper costs for
12555 load/store on condition.
12556
12557 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
12558
12559 PR target/81407
12560 * config/avr/avr.c (avr_encode_section_info)
12561 [progmem && !TREE_READONLY]: Error if progmem object needs
12562 constructing.
12563
12564 2017-07-11 Michael Collison <michael.collison@arm.com>
12565
12566 * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
12567 New pattern.
12568
12569 2017-07-11 Carl Love <cel@us.ibm.com>
12570
12571 * config/rs6000/rs6000-c.c: Add support for builtins
12572 vector unsigned int vec_parity_lsbb (vector signed int);
12573 vector unsigned int vec_parity_lsbb (vector unsigned int);
12574 vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
12575 vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
12576 vector unsigned long long vec_parity_lsbb (vector signed long long);
12577 vector unsigned long long vec_parity_lsbb (vector unsigned long long);
12578 * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
12579 * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
12580 * doc/extend.texi: Update the built-in documentation file for the
12581 new built-in functions.
12582
12583 2017-07-11 David Malcolm <dmalcolm@redhat.com>
12584
12585 * diagnostic-show-locus.c: Include "gcc-rich-location.h".
12586 (layout::m_primary_loc): New field.
12587 (layout::layout): Initialize new field. Move location filtering
12588 logic from here to...
12589 (layout::maybe_add_location_range): ...this new method. Add
12590 support for filtering to just the lines already specified by other
12591 locations.
12592 (layout::will_show_line_p): New method.
12593 (gcc_rich_location::add_location_if_nearby): New method.
12594 (selftest::test_add_location_if_nearby): New test function.
12595 (selftest::diagnostic_show_locus_c_tests): Call it.
12596 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
12597 New method.
12598
12599 2017-07-11 Tom de Vries <tom@codesourcery.com>
12600
12601 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
12602 (bb_first_real_insn): New function.
12603 (nvptx_single): Add extra initialization of broadcasted condition
12604 variables.
12605
12606 2017-07-11 Nathan Sidwell <nathan@acm.org>
12607
12608 * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
12609
12610 2017-07-11 Georg-Johann Lay <avr@gjlay.de>
12611
12612 * doc/extend.texi (AVR Function Attributes): Remove weblink to
12613 Binutils doc as TEXI will mess them up.
12614 * doc/invoke.texi (AVR Options): Same here.
12615
12616 2017-07-11 Daniel Cederman <cederman@gaisler.com>
12617
12618 * config/sparc/sparc.opt (mfix-ut700): New option.
12619 (mfix-gr712rc): Likewise.
12620 (sparc_fix_b2bst): New variable.
12621 * doc/invoke.texi (SPARC options): Document them.
12622 (ARM options): Fix warnings.
12623 * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
12624 instructions to prevent sequences that can trigger the store-store
12625 errata for certain LEON3FT processors.
12626 (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
12627 (sparc_option_override): Set sparc_fix_b2bst appropriately.
12628 * config/sparc/sparc.md (fix_b2bst): New attribute.
12629 (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
12630
12631 2017-07-10 Uros Bizjak <ubizjak@gmail.com>
12632
12633 PR target/81375
12634 * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
12635 (rcpps): Ditto.
12636 (*rsqrtsf2_sse): Ditto.
12637 (rsqrtsf2): Ditto.
12638 (div<mode>3): Macroize insn from divdf3 and divsf3
12639 using MODEF mode iterator.
12640
12641 2017-07-10 Martin Sebor <msebor@redhat.com>
12642
12643 PR tree-optimization/80397
12644 * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
12645 instead of testing for equality to INTEGER_TYPE.
12646
12647 2017-07-10 Vineet Gupta <vgupta@synopsys.com>
12648
12649 * config.gcc: Remove uclibc from arc target spec.
12650
12651 2017-07-10 Claudiu Zissulescu <claziss@synopsys.com>
12652
12653 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
12654
12655 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
12656
12657 PR lto/80838
12658 * lto-wrapper.c (remove_option): New function.
12659 (merge_and_complain): Merge PIC/PIE options more realistically.
12660
12661 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
12662
12663 Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
12664
12665 PR target/20296
12666 PR target/81268
12667 * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
12668 (HAVE_AS_AVR_MGCCISR_OPTION): If so, AC_DEFINE it.
12669 * config.in: Regenerate.
12670 * configure: Regenerate.
12671 * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
12672 * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
12673 * config/avr/avr.opt (-mgas-isr-prologues): New option and...
12674 (TARGET_GASISR_PROLOGUES): ...target mask.
12675 * common/config/avr/avr-common.c
12676 (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
12677 Set -mgas-isr-prologues.
12678 * config/avr/avr-passes.def (avr_pass_pre_proep): Add
12679 INSERT_PASS_BEFORE for it.
12680 * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
12681 * config/avr/avr.c (avr_option_override)
12682 [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
12683 (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
12684 (avr_attribute_table) <no_gccisr>: Add new function attribute.
12685 (avr_set_current_function) <is_no_gccisr>: Init machine field.
12686 (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
12687 and rtl_opt_pass.
12688 (make_avr_pass_pre_proep): New function.
12689 (emit_push_sfr) <treg>: Add argument to function and use it
12690 instead of TMP_REG.
12691 (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
12692 and set machine->gasisr.yes.
12693 (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
12694 (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
12695 __gcc_isr.n_pushed to .L__stack_usage.
12696 (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
12697 (avr_asm_final_postscan_insn): ...this new static function.
12698 * config/avr/avr.h (machine_function)
12699 <is_no_gccisr, use_L__stack_usage>: New fields.
12700 <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
12701 * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
12702 (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
12703 (gasisr, *gasisr): New expander and insn.
12704 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
12705 [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
12706 * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
12707
12708 2017-07-10 Richard Earnshaw <rearnsha@arm.com>
12709
12710 * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
12711 in quoted strings.
12712
12713 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
12714
12715 Move jump-tables out of .text again.
12716
12717 PR target/81075
12718 * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
12719 (ASM_OUTPUT_ADDR_VEC): New function.
12720 (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
12721 (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
12722 INSN_ADDRESSes as asm comment.
12723 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
12724 (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
12725 (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
12726 * config/avr/avr.md (*tablejump): Adjust comment.
12727 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
12728 * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
12729 New detail.
12730 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
12731 (avr_output_addr_vec): New proto.
12732 (avr_log_t) <insn_addresses>: New field.
12733
12734 2017-07-09 H.J. Lu <hongjiu.lu@intel.com>
12735
12736 PR target/81313
12737 * config/i386/i386.c (ix86_function_arg_advance): Set
12738 outgoing_args_on_stack to true if there are outgoing arguments
12739 on stack.
12740 (ix86_function_arg): Likewise.
12741 (ix86_get_drap_rtx): Use DRAP only if there are outgoing
12742 arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
12743 * config/i386/i386.h (machine_function): Add
12744 outgoing_args_on_stack.
12745
12746 2017-07-09 Krister Walfridsson <krister.walfridsson@gmail.com>
12747
12748 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
12749 supporting pthreds.
12750 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
12751
12752 2017-07-08 Richard Sandiford <richard.sandiford@linaro.org>
12753
12754 * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
12755 (REAL_H): Remove $(MACHMODE_H).
12756 (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
12757 double-int.h.
12758 (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
12759 $(MACHMODE_H) and double-int.h.
12760 (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
12761 $(MACHMODE_H).
12762 (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
12763 double-int.h.
12764
12765 2017-07-07 Andrew Pinski <apinski@cavium.com>
12766
12767 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
12768 prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
12769
12770 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com>
12771
12772 * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
12773 Add warning if GCC was not configured to link against a GLIBC that
12774 exports the hardware capability bits.
12775 (make_resolver_func): Make resolver function private and not a
12776 COMDAT function. Create the name with clone_function_name instead
12777 of make_unique_name.
12778
12779 PR target/81348
12780 * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
12781 correct operand in doing the split.
12782
12783 2017-07-07 Carl Love <cel@us.ibm.com>
12784
12785 * config/rs6000/rs6000-c: Add support for built-in function
12786 vector unsigned short vec_pack_to_short_fp32 (vector float,
12787 vector float).
12788 * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
12789 BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
12790 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
12791 * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
12792 (convert_4f32_8i16): Add define_expand.
12793 * doc/extend.texi: Update the built-in documentation file for the
12794 new built-in function.
12795
12796 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
12797
12798 * config/sparc/m8.md: New file.
12799 * config/sparc/sparc.md: Include m8.md.
12800
12801 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
12802
12803 * config/sparc/sparc.opt: New option -mvis4b.
12804 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
12805 (sparc_option_override): Handle VIS4B.
12806 (enum sparc_builtins): Define
12807 SPARC_BUILTIN_DICTUNPACK{8,16,32},
12808 SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
12809 SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
12810 SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
12811 SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
12812 (check_constant_argument): New function.
12813 (sparc_vis_init_builtins): Define builtins
12814 __builtin_vis_dictunpack{8,16,32},
12815 __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
12816 __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
12817 __builtin_vis_fpcmpde{8,16,32}shl and
12818 __builtin_vis_fpcmpur{8,16,32}shl.
12819 (sparc_expand_builtin): Check that the constant operands to
12820 __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
12821 constant and in range.
12822 * config/sparc/sparc-c.c (sparc_target_macros): Handle
12823 TARGET_VIS4B.
12824 * config/sparc/sparc.h (SPARC_IMM2_P): Define.
12825 (SPARC_IMM5_P): Likewise.
12826 * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
12827 (enabled): Handle vis4b.
12828 (UNSPEC_DICTUNPACK): New unspec.
12829 (UNSPEC_FPCMPSHL): Likewise.
12830 (UNSPEC_FPUCMPSHL): Likewise.
12831 (UNSPEC_FPCMPDESHL): Likewise.
12832 (UNSPEC_FPCMPURSHL): Likewise.
12833 (cpu_feature): New CPU feature `vis4b'.
12834 (dictunpack{8,16,32}): New insns.
12835 (FPCSMODE): New mode iterator.
12836 (fpcscond): New code iterator.
12837 (fpcsucond): Likewise.
12838 (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
12839 (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
12840 (fpcmpde{8,16,32}{si,di}shl): Likewise.
12841 (fpcmpur{8,16,32}{si,di}shl): Likewise.
12842 * config/sparc/constraints.md: Define constraints `q' for unsigned
12843 2-bit integer constants and `t' for unsigned 5-bit integer
12844 constants.
12845 * config/sparc/predicates.md (imm5_operand_dictunpack8): New
12846 predicate.
12847 (imm5_operand_dictunpack16): Likewise.
12848 (imm5_operand_dictunpack32): Likewise.
12849 (imm2_operand): Likewise.
12850 * doc/invoke.texi (SPARC Options): Document -mvis4b.
12851 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
12852 ditunpack* and fpcmp*shl builtins.
12853
12854 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
12855
12856 * config.gcc: Handle m8 in --with-{cpu,tune} options.
12857 * config.in: Add HAVE_AS_SPARC6 define.
12858 * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
12859 M8.
12860 * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
12861 TARGET_CPU_m8.
12862 (ASM_CPU32_DEFAUILT_SPEC): Likewise.
12863 (CPP_CPU_SPEC): Handle m8.
12864 (ASM_CPU_SPEC): Likewise.
12865 * config/sparc/sparc-opts.h (enum processor_type): Add
12866 PROCESSOR_M8.
12867 * config/sparc/sparc.c (m8_costs): New struct.
12868 (sparc_option_override): Handle TARGET_CPU_m8.
12869 (sparc32_initialize_trampoline): Likewise.
12870 (sparc64_initialize_trampoline): Likewise.
12871 (sparc_issue_rate): Likewise.
12872 (sparc_register_move_cost): Likewise.
12873 * config/sparc/sparc.h (TARGET_CPU_m8): Define.
12874 (CPP_CPU64_DEFAULT_SPEC): Define for M8.
12875 (ASM_CPU64_DEFAULT_SPEC): Likewise.
12876 (CPP_CPU_SPEC): Handle M8.
12877 (ASM_CPU_SPEC): Likewise.
12878 (AS_M8_FLAG): Define.
12879 * config/sparc/sparc.md: Add m8 to the cpu attribute.
12880 * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
12881 * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
12882 M8 instructions.
12883 * configure: Regenerate.
12884 * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
12885 -mtune=m8.
12886
12887 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
12888
12889 * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
12890 subtypes.
12891 * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
12892 ("*movdi_insn_sp32"): Do not set v3pipe.
12893 ("*movsi_insn"): Likewise.
12894 ("*movdi_insn_sp64"): Likewise.
12895 ("*movsf_insn"): Likewise.
12896 ("*movdf_insn_sp32"): Likewise.
12897 ("*movdf_insn_sp64"): Likewise.
12898 ("*zero_extendsidi2_insn_sp64"): Likewise.
12899 ("*sign_extendsidi2_insn"): Likewise.
12900 ("*mov<VM32:mode>_insn"): Likewise.
12901 ("*mov<VM64:mode>_insn_sp64"): Likewise.
12902 ("*mov<VM64:mode>_insn_sp32"): Likewise.
12903 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
12904 ("<vlop:code><VL:mode>3"): Likewise.
12905 ("*not_<vlop:code><VL:mode>3"): Likewise.
12906 ("*nand<VL:mode>_vis"): Likewise.
12907 ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
12908 ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
12909 ("one_cmpl<VL:mode>2"): Likewise.
12910 ("faligndata<VM64:mode>_vis"): Likewise.
12911 ("alignaddrsi_vis"): Likewise.
12912 ("alignaddrdi_vis"): Likweise.
12913 ("alignaddrlsi_vis"): Likewise.
12914 ("alignaddrldi_vis"): Likewise.
12915 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
12916 ("bmaskdi_vis"): Likewise.
12917 ("bmasksi_vis"): Likewise.
12918 ("bshuffle<VM64:mode>_vis"): Likewise.
12919 ("cmask8<P:mode>_vis"): Likewise.
12920 ("cmask16<P:mode>_vis"): Likewise.
12921 ("cmask32<P:mode>_vis"): Likewise.
12922 ("pdistn<P:mode>_vis"): Likewise.
12923 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
12924
12925 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
12926
12927 * config/sparc/sparc.md ("subtype"): New insn attribute.
12928 ("*wrgsr_sp64"): Set insn subtype.
12929 ("*rdgsr_sp64"): Likewise.
12930 ("alignaddrsi_vis"): Likewise.
12931 ("alignaddrdi_vis"): Likewise.
12932 ("alignaddrlsi_vis"): Likewise.
12933 ("alignaddrldi_vis"): Likewise.
12934 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
12935 ("fexpand_vis"): Likewise.
12936 ("fpmerge_vis"): Likewise.
12937 ("faligndata<VM64:mode>_vis"): Likewise.
12938 ("bshuffle<VM64:mode>_vis"): Likewise.
12939 ("cmask8<P:mode>_vis"): Likewise.
12940 ("cmask16<P:mode>_vis"): Likewise.
12941 ("cmask32<P:mode>_vis"): Likewise.
12942 ("fchksm16_vis"): Likewise.
12943 ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
12944 ("fmean16_vis"): Likewise.
12945 ("fp<plusminus_insn>64_vis"): Likewise.
12946 ("<plusminus_insn>v8qi3"): Likewise.
12947 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
12948 ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
12949 ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
12950 ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
12951 ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
12952 ("*movqi_insn"): Likewise.
12953 ("*movhi_insn"): Likewise.
12954 ("*movsi_insn"): Likewise.
12955 ("movsi_pic_gotdata_op"): Likewise.
12956 ("*movdi_insn_sp32"): Likewise.
12957 ("*movdi_insn_sp64"): Likewise.
12958 ("movdi_pic_gotdata_op"): Likewise.
12959 ("*movsf_insn"): Likewise.
12960 ("*movdf_insn_sp32"): Likewise.
12961 ("*movdf_insn_sp64"): Likewise.
12962 ("*zero_extendhisi2_insn"): Likewise.
12963 ("*zero_extendqihi2_insn"): Likewise.
12964 ("*zero_extendqisi2_insn"): Likewise.
12965 ("*zero_extendqidi2_insn"): Likewise.
12966 ("*zero_extendhidi2_insn"): Likewise.
12967 ("*zero_extendsidi2_insn_sp64"): Likewise.
12968 ("ldfsr"): Likewise.
12969 ("prefetch_64"): Likewise.
12970 ("prefetch_32"): Likewise.
12971 ("tie_ld32"): Likewise.
12972 ("tie_ld64"): Likewise.
12973 ("*tldo_ldub_sp32"): Likewise.
12974 ("*tldo_ldub1_sp32"): Likewise.
12975 ("*tldo_ldub2_sp32"): Likewise.
12976 ("*tldo_ldub_sp64"): Likewise.
12977 ("*tldo_ldub1_sp64"): Likewise.
12978 ("*tldo_ldub2_sp64"): Likewise.
12979 ("*tldo_ldub3_sp64"): Likewise.
12980 ("*tldo_lduh_sp32"): Likewise.
12981 ("*tldo_lduh1_sp32"): Likewise.
12982 ("*tldo_lduh_sp64"): Likewise.
12983 ("*tldo_lduh1_sp64"): Likewise.
12984 ("*tldo_lduh2_sp64"): Likewise.
12985 ("*tldo_lduw_sp32"): Likewise.
12986 ("*tldo_lduw_sp64"): Likewise.
12987 ("*tldo_lduw1_sp64"): Likewise.
12988 ("*tldo_ldx_sp64"): Likewise.
12989 ("*mov<VM32:mode>_insn"): Likewise.
12990 ("*mov<VM64:mode>_insn_sp64"): Likewise.
12991 ("*mov<VM64:mode>_insn_sp32"): Likewise.
12992
12993 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
12994
12995 * config/sparc/sparc.md ("type"): New insn type viscmp.
12996 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
12997 viscmp.
12998 ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
12999 ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
13000 ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
13001 * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
13002 viscmp.
13003 ("n7_vis_logical_11cycle"): Likewise.
13004 * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
13005 * config/sparc/niagara2.md ("niag3_vis": Likewise.
13006 * config/sparc/niagara.md ("niag_vis"): Likewise.
13007 * config/sparc/ultra3.md ("us3_fga"): Likewise.
13008 * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
13009
13010 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
13011
13012 * config/sparc/sparc.md: New instruction type `bmask'.
13013 (bmaskdi_vis): Use the `bmask' type.
13014 (bmasksi_vis): Likewise.
13015 * config/sparc/ultra3.md (us3_array): Likewise.
13016 * config/sparc/niagara7.md (n7_array): Likewise.
13017 * config/sparc/niagara4.md (n4_array): Likewise.
13018 * config/sparc/niagara2.md (niag2_vis): Likewise.
13019 (niag3_vis): Likewise.
13020 * config/sparc/niagara.md (niag_vis): Likewise.
13021
13022 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
13023
13024 * ipa-comdats.c: Remove optimize check from gate.
13025 * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
13026 for functions not optimized.
13027 (ipa_fn_summary_read): Skip optimize check.
13028 (ipa_fn_summary_write): Likewise.
13029 * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
13030 is optimized.
13031 * ipa-inline.c (can_inline_edge_p): Not optimized functions are
13032 uninlinable.
13033 (can_inline_edge_p): Check flag_pcc_struct_return for match.
13034 (check_callers): Give up on caller which is not optimized.
13035 (inline_small_functions): Likewise.
13036 (ipa_inline): Do not give up when not optimizing.
13037 * ipa-visbility.c (function_and_variable_visibility): Do not optimize
13038 away unoptimizes cdtors.
13039 (whole_program_function_and_variable_visibility): Do
13040 ipa_discover_readonly_nonaddressable_vars in LTO mode.
13041 * ipa.c (process_references): Do not check optimize.
13042 (symbol_table::remove_unreachable_nodes): Update optimize check.
13043 (set_writeonly_bit): Update optimize check.
13044 (pass_ipa_cdtor_merge::gate): Do not check optimize.
13045 (pass_ipa_single_use::gate): Remove.
13046
13047 2017-07-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
13048
13049 * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
13050 insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
13051 rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
13052 mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
13053 permute_load, permute_store, adjust_extract, adjust_splat,
13054 adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
13055 replace_swap_with_copy, dump_swap_insn_table,
13056 alignment_with_canonical_addr, alignment_mask, find_alignment_op,
13057 recombine_lvx_pattern, recombine_stvx_pattern,
13058 recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
13059 make_pass_analyze_swaps): Move all code related to p8 swap optimizations
13060 to file rs6000-p8swap.c.
13061 * config/rs6000/rs6000-p8swap.c: New file.
13062 * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
13063 * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
13064 and rs6000*-*-* targets.
13065
13066 2017-07-06 David Malcolm <dmalcolm@redhat.com>
13067
13068 * Makefile.in (selftest): Remove dependency on s-selftest-c++.
13069
13070 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
13071
13072 * lto-wrapper.c (merge_and_complain): Do not merge
13073 fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
13074 fsigned_zeros, ftrapping_math, fwrapv.
13075 (append_compiler_options): Do not track these options.
13076 (append_linker_options): Likewie
13077
13078 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
13079
13080 * cgraphunit.c (cgraph_node::finalize_function): When
13081 !flag_toplevel_reorde set no_reorder flag.
13082 (varpool_node::finalize_decl): Likewise.
13083 (symbol_table::compile): Drop no toplevel reorder path.
13084
13085 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
13086
13087 * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
13088 edges; zero probability is not better than uninitialized.
13089
13090 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
13091
13092 * asan.h (asan_sanitize_allocas_p): Declare.
13093 * asan.c (asan_sanitize_allocas_p): New function.
13094 (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
13095 (handle_builtin_alloca): Likewise.
13096 * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
13097 if !asan_sanitize_allocas_p.
13098 * params.def (asan-instrument-allocas): Add new option.
13099 * params.h (ASAN_PROTECT_ALLOCAS): Define.
13100 * opts.c (common_handle_option): Disable allocas sanitization for
13101 KASan by default.
13102
13103 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
13104
13105 * asan.c: Include gimple-fold.h.
13106 (get_last_alloca_addr): New function.
13107 (handle_builtin_stackrestore): Likewise.
13108 (handle_builtin_alloca): Likewise.
13109 (asan_emit_allocas_unpoison): Likewise.
13110 (get_mem_refs_of_builtin_call): Add new parameter, remove const
13111 quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
13112 BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
13113 (instrument_builtin_call): Pass gimple iterator to
13114 get_mem_refs_of_builtin_call.
13115 (last_alloca_addr): New global.
13116 * asan.h (asan_emit_allocas_unpoison): Declare.
13117 * builtins.c (expand_asan_emit_allocas_unpoison): New function.
13118 (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
13119 * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
13120 if function calls alloca.
13121 * gimple-fold.c (replace_call_with_value): Remove static keyword.
13122 * gimple-fold.h (replace_call_with_value): Declare.
13123 * internal-fn.c: Include asan.h.
13124 * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
13125 BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
13126
13127 2017-07-06 David Malcolm <dmalcolm@redhat.com>
13128
13129 * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
13130 (C_SELFTEST_FLAGS): New.
13131 (CPP_SELFTEST_FLAGS): New.
13132 (SELFTEST_DEPS): New, from deps of s-selftest.
13133 (C_SELFTEST_DEPS): New, from deps of s-selftest.
13134 (CPP_SELFTEST_DEPS): New.
13135 (selftest): Add dependency on s-selftest-c++.
13136 (s-selftest): Rename to...
13137 (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
13138 and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
13139 than SELFTEST_FLAGS.
13140 (selftest-gdb): Rename to...
13141 (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
13142 C_SELFTEST_FLAGS.
13143 (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
13144 (selftest-valgrind): Rename to...
13145 (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
13146 C_SELFTEST_FLAGS.
13147 (selftest-valgrind): Reintroduce as an alias for
13148 selftest-c-valgrind.
13149 (s-selftest-c++): New.
13150 (selftest-c++-gdb): New.
13151 (selftest-c++-valgrind): New.
13152
13153 2017-07-06 Olivier Hainque <hainque@adacore.com>
13154
13155 * gcc.c (process_command): When deciding if undefined variables
13156 should be ignored when processing specs, accept "gcc -v" as well.
13157
13158 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
13159
13160 * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
13161 afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
13162
13163 2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
13164
13165 * config/arm/arm-cpus.in (armv8-r): Add new entry.
13166 * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
13167 * config/arm/arm-tables.opt: Regenerate.
13168 * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
13169 enumerator.
13170 * doc/invoke.texi: Mention -march=armv8-r and its extensions.
13171
13172 2017-07-06 Carl Love <cel@us.ibm.com>
13173
13174 * ChangeLog: Clean up from mid air collision
13175
13176 2017-07-06 Carl Love <cel@us.ibm.com>
13177
13178 * config/rs6000/rs6000-c.c: Add support for built-in functions
13179 vector signed int vec_subc (vector signed int, vector signed int);
13180 vector signed __int128 vec_subc (vector signed __int128,
13181 vector signed __int128);
13182 vector unsigned __int128 vec_subc (vector unsigned __int128,
13183 vector unsigned __int128);
13184 vector signed int vec_sube (vector signed int, vector signed int,
13185 vector signed int);
13186 vector unsigned int vec_sube (vector unsigned int,
13187 vector unsigned int,
13188 vector unsigned int);
13189 vector signed __int128 vec_sube (vector signed __int128,
13190 vector signed __int128,
13191 vector signed__int128);
13192 vector unsigned __int128 vec_sube (vector unsigned __int128,
13193 vector unsigned __int128,
13194 vector unsigned __int128);
13195 vector signed int vec_subec (vector signed int, vector signed int,
13196 vector signed int);
13197 vector unsigned int vec_subec (vector unsigned int,
13198 vector unsigned int,
13199 vector unsigned int);
13200 vector signed __int128 vec_subec (vector signed __int128,
13201 vector signed __int128,
13202 vector signed__int128);
13203 vector unsigned __int128 vec_subec (vector unsigned __int128,
13204 vector unsigned __int128,
13205 vector unsigned __int128);
13206 * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
13207 ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
13208 * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
13209 BU_ALTIVEC_OVERLOAD_X definitions.
13210 * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
13211 * doc/extend.texi: Update the built-in documentation file for the new
13212 built-in functions.
13213
13214 2017-07-06 David Malcolm <dmalcolm@redhat.com>
13215
13216 PR c++/79300
13217 * diagnostic-show-locus.c (layout::layout): Use start and finish
13218 spelling location for the start and finish of each range.
13219 * genmatch.c (linemap_client_expand_location_to_spelling_point):
13220 Add unused aspect param.
13221 * input.c (expand_location_1): Add "aspect" param, and use it
13222 to access the correct part of the location.
13223 (expand_location): Pass LOCATION_ASPECT_CARET to new param of
13224 expand_location_1.
13225 (expand_location_to_spelling_point): Likewise.
13226 (linemap_client_expand_location_to_spelling_point): Add "aspect"
13227 param, and pass it to expand_location_1.
13228
13229 2017-07-06 Sebastian Peryt <sebastian.peryt@intel.com>
13230
13231 * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
13232 _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
13233 _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
13234 _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
13235 _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
13236 _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
13237 _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
13238 _mm_maskz_getmant_ss): New intrinsics.
13239 (__builtin_ia32_getexpss128_mask): Changed to ...
13240 __builtin_ia32_getexpss128_round ... this.
13241 (__builtin_ia32_getexpsd128_mask): Changed to ...
13242 __builtin_ia32_getexpsd128_round ... this.
13243 * config/i386/i386-builtin-types.def
13244 ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
13245 (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
13246 * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
13247 __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round,
13248 __builtin_ia32_getmantss_mask_round): New builtins.
13249 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
13250 V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
13251 (CODE_FOR_avx512f_vgetmantv2df_mask_round,
13252 CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
13253 * config/i386/sse.md
13254 (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
13255 avx512f_sgetexp<mode><mask_scalar_name>
13256 <round_saeonly_scalar_name> ... this.
13257 (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
13258 %0, %1, %2<round_saeonly_op3>}): Changed to ...
13259 vgetexp<ssescalarmodesuffix>
13260 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
13261 %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
13262 (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
13263 avx512f_vgetmant<mode><mask_scalar_name>
13264 <round_saeonly_scalar_name> ... this.
13265 (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
13266 %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
13267 vgetmant<ssescalarmodesuffix>
13268 \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
13269 %0<mask_scalar_operand4>, %1, %2
13270 <round_saeonly_scalar_mask_op4>, %3} ... this.
13271 * config/i386/subst.md (mask_scalar_operand4,
13272 round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4,
13273 round_saeonly_scalar_nimm_predicate): New subst attributes.
13274
13275 2017-07-06 Julia Koval <julia.koval@intel.com>
13276
13277 * config/i386/i386.c (ix86_erase_embedded_rounding):
13278 Remove code for old rounding pattern.
13279
13280 2017-07-06 Richard Earnshaw <rearnsha@arm.com>
13281
13282 * config/arm/t-arm (GTM_H): Add arm-cpu.h.
13283
13284 2017-07-06 Christophe Lyon <christophe.lyon@linaro.org>
13285
13286 * doc/sourcebuild.texi (Test Directives, Variants of
13287 dg-require-support): Add documentation for dg-require-stack-check.
13288
13289 2017-07-05 Sebastian Peryt <sebastian.peryt@intel.com>
13290
13291 * config/i386/subst.md (mask_scalar, round_scalar,
13292 round_saeonly_scalar): New meta-templates.
13293 (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
13294 round_scalar_mask_operand3, round_scalar_mask_op3,
13295 round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
13296 round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
13297 round_saeonly_scalar_constraint,
13298 round_saeonly_scalar_prefix): New subst attribute.
13299 * config/i386/sse.md
13300 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
13301 <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
13302 <round_scalar_name> ... this.
13303 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
13304 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
13305 <round_scalar_name> ... this.
13306 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
13307 <sse>_vm<code><mode>3<mask_scalar_name>
13308 <round_saeonly_scalar_name> ... this.
13309 (v<plusminus_mnemonic><ssescalarmodesuffix>
13310 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
13311 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
13312 v<plusminus_mnemonic><ssescalarmodesuffix>
13313 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
13314 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
13315 (v<multdiv_mnemonic><ssescalarmodesuffix>
13316 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
13317 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
13318 v<multdiv_mnemonic><ssescalarmodesuffix>
13319 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
13320 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
13321 (v<maxmin_float><ssescalarmodesuffix>
13322 \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
13323 %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
13324 v<maxmin_float><ssescalarmodesuffix>
13325 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
13326 %0<mask_scalar_operand3>, %1, %<iptr>2
13327 <round_saeonly_scalar_mask_op3>} ... this.
13328
13329 2017-07-05 Richard Earnshaw <rearnsha@arm.com>
13330
13331 * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
13332 (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
13333
13334 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
13335 Alan Hayward <alan.hayward@arm.com>
13336 David Sherwood <david.sherwood@arm.com>
13337
13338 * combine.c (simplify_if_then_else): Remove "enum" before
13339 "machine_mode".
13340 * compare-elim.c (can_eliminate_compare): Likewise.
13341 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
13342 Likewise.
13343 (aarch64_lookup_simd_builtin_type): Likewise.
13344 (aarch64_simd_builtin_type): Likewise.
13345 (aarch64_init_simd_builtin_types): Likewise.
13346 (aarch64_simd_expand_args): Likewise.
13347 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
13348 Likewise.
13349 (aarch64_reverse_mask): Likewise.
13350 (aarch64_simd_emit_reg_reg_move): Likewise.
13351 (aarch64_gen_adjusted_ldpstp): Likewise.
13352 (aarch64_ccmp_mode_to_code): Likewise.
13353 (aarch64_operands_ok_for_ldpstp): Likewise.
13354 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
13355 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
13356 Likewise.
13357 (aarch64_min_divisions_for_recip_mul): Likewise.
13358 (aarch64_reassociation_width): Likewise.
13359 (aarch64_get_condition_code_1): Likewise.
13360 (aarch64_simd_emit_reg_reg_move): Likewise.
13361 (aarch64_simd_attr_length_rglist): Likewise.
13362 (aarch64_reverse_mask): Likewise.
13363 (aarch64_operands_ok_for_ldpstp): Likewise.
13364 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
13365 (aarch64_gen_adjusted_ldpstp): Likewise.
13366 * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
13367 Likewise.
13368 * config/arc/arc.c (legitimate_offset_address_p): Likewise.
13369 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
13370 (arm_lookup_simd_builtin_type): Likewise.
13371 (arm_simd_builtin_type): Likewise.
13372 (arm_init_simd_builtin_types): Likewise.
13373 (arm_expand_builtin_args): Likewise.
13374 * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
13375 * config/ft32/ft32.c (ft32_libcall_value): Likewise.
13376 (ft32_setup_incoming_varargs): Likewise.
13377 (ft32_function_arg): Likewise.
13378 (ft32_function_arg_advance): Likewise.
13379 (ft32_pass_by_reference): Likewise.
13380 (ft32_arg_partial_bytes): Likewise.
13381 (ft32_valid_pointer_mode): Likewise.
13382 (ft32_addr_space_pointer_mode): Likewise.
13383 (ft32_addr_space_legitimate_address_p): Likewise.
13384 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
13385 Likewise.
13386 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
13387 (ix86_emit_outlined_ms2sysv_restore): Likewise.
13388 (iamcu_alignment): Likewise.
13389 (canonicalize_vector_int_perm): Likewise.
13390 (ix86_noce_conversion_profitable_p): Likewise.
13391 (ix86_mpx_bound_mode): Likewise.
13392 (ix86_operands_ok_for_move_multiple): Likewise.
13393 * config/microblaze/microblaze-protos.h
13394 (microblaze_expand_conditional_branch_reg): Likewise.
13395 * config/microblaze/microblaze.c
13396 (microblaze_expand_conditional_branch_reg): Likewise.
13397 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
13398 Likewise.
13399 (rs6000_reassociation_width): Likewise.
13400 (rs6000_invalid_binary_op): Likewise.
13401 (fusion_p9_p): Likewise.
13402 (emit_fusion_p9_load): Likewise.
13403 (emit_fusion_p9_store): Likewise.
13404 * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
13405 Likewise.
13406 (riscv_hard_regno_mode_ok_p): Likewise.
13407 (riscv_address_insns): Likewise.
13408 (riscv_split_symbol): Likewise.
13409 (riscv_legitimize_move): Likewise.
13410 (riscv_function_value): Likewise.
13411 (riscv_hard_regno_nregs): Likewise.
13412 (riscv_expand_builtin): Likewise.
13413 * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
13414 (riscv_build_integer): Likewise.
13415 (riscv_split_integer): Likewise.
13416 (riscv_legitimate_constant_p): Likewise.
13417 (riscv_cannot_force_const_mem): Likewise.
13418 (riscv_regno_mode_ok_for_base_p): Likewise.
13419 (riscv_valid_base_register_p): Likewise.
13420 (riscv_valid_offset_p): Likewise.
13421 (riscv_valid_lo_sum_p): Likewise.
13422 (riscv_classify_address): Likewise.
13423 (riscv_legitimate_address_p): Likewise.
13424 (riscv_address_insns): Likewise.
13425 (riscv_load_store_insns): Likewise.
13426 (riscv_force_binary): Likewise.
13427 (riscv_split_symbol): Likewise.
13428 (riscv_force_address): Likewise.
13429 (riscv_legitimize_address): Likewise.
13430 (riscv_move_integer): Likewise.
13431 (riscv_legitimize_const_move): Likewise.
13432 (riscv_legitimize_move): Likewise.
13433 (riscv_address_cost): Likewise.
13434 (riscv_subword): Likewise.
13435 (riscv_output_move): Likewise.
13436 (riscv_canonicalize_int_order_test): Likewise.
13437 (riscv_emit_int_order_test): Likewise.
13438 (riscv_function_arg_boundary): Likewise.
13439 (riscv_pass_mode_in_fpr_p): Likewise.
13440 (riscv_pass_fpr_single): Likewise.
13441 (riscv_pass_fpr_pair): Likewise.
13442 (riscv_get_arg_info): Likewise.
13443 (riscv_function_arg): Likewise.
13444 (riscv_function_arg_advance): Likewise.
13445 (riscv_arg_partial_bytes): Likewise.
13446 (riscv_function_value): Likewise.
13447 (riscv_pass_by_reference): Likewise.
13448 (riscv_setup_incoming_varargs): Likewise.
13449 (riscv_print_operand): Likewise.
13450 (riscv_elf_select_rtx_section): Likewise.
13451 (riscv_save_restore_reg): Likewise.
13452 (riscv_for_each_saved_reg): Likewise.
13453 (riscv_register_move_cost): Likewise.
13454 (riscv_hard_regno_mode_ok_p): Likewise.
13455 (riscv_hard_regno_nregs): Likewise.
13456 (riscv_class_max_nregs): Likewise.
13457 (riscv_memory_move_cost): Likewise.
13458 * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
13459 * config/rl78/rl78.c (rl78_split_movsi): Likewise.
13460 (rl78_addr_space_address_mode): Likewise.
13461 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13462 Likewise.
13463 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
13464 (rs6000_reassociation_width): Likewise.
13465 (rs6000_invalid_binary_op): Likewise.
13466 (fusion_p9_p): Likewise.
13467 (emit_fusion_p9_load): Likewise.
13468 (emit_fusion_p9_store): Likewise.
13469 * config/visium/visium-protos.h (prepare_move_operands): Likewise.
13470 (ok_for_simple_move_operands): Likewise.
13471 (ok_for_simple_move_strict_operands): Likewise.
13472 (ok_for_simple_arith_logic_operands): Likewise.
13473 (visium_legitimize_reload_address): Likewise.
13474 (visium_select_cc_mode): Likewise.
13475 (output_cbranch): Likewise.
13476 (visium_split_double_move): Likewise.
13477 (visium_expand_copysign): Likewise.
13478 (visium_expand_int_cstore): Likewise.
13479 (visium_expand_fp_cstore): Likewise.
13480 * config/visium/visium.c (visium_pass_by_reference): Likewise.
13481 (visium_function_arg): Likewise.
13482 (visium_function_arg_advance): Likewise.
13483 (visium_libcall_value): Likewise.
13484 (visium_setup_incoming_varargs): Likewise.
13485 (visium_legitimate_constant_p): Likewise.
13486 (visium_legitimate_address_p): Likewise.
13487 (visium_legitimize_address): Likewise.
13488 (visium_secondary_reload): Likewise.
13489 (visium_register_move_cost): Likewise.
13490 (visium_memory_move_cost): Likewise.
13491 (prepare_move_operands): Likewise.
13492 (ok_for_simple_move_operands): Likewise.
13493 (ok_for_simple_move_strict_operands): Likewise.
13494 (ok_for_simple_arith_logic_operands): Likewise.
13495 (visium_function_value_1): Likewise.
13496 (rtx_ok_for_offset_p): Likewise.
13497 (visium_legitimize_reload_address): Likewise.
13498 (visium_split_double_move): Likewise.
13499 (visium_expand_copysign): Likewise.
13500 (visium_expand_int_cstore): Likewise.
13501 (visium_expand_fp_cstore): Likewise.
13502 (visium_split_cstore): Likewise.
13503 (visium_select_cc_mode): Likewise.
13504 (visium_split_cbranch): Likewise.
13505 (output_cbranch): Likewise.
13506 (visium_print_operand_address): Likewise.
13507 * expmed.c (flip_storage_order): Likewise.
13508 * expmed.h (emit_cstore): Likewise.
13509 (flip_storage_order): Likewise.
13510 * genrecog.c (validate_pattern): Likewise.
13511 * hsa-gen.c (gen_hsa_addr): Likewise.
13512 * internal-fn.c (expand_arith_overflow): Likewise.
13513 * ira-color.c (allocno_copy_cost_saving): Likewise.
13514 * lra-assigns.c (find_hard_regno_for_1): Likewise.
13515 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
13516 (process_invariant_for_inheritance): Likewise.
13517 * lra-eliminations.c (move_plus_up): Likewise.
13518 * omp-low.c (lower_oacc_reductions): Likewise.
13519 * simplify-rtx.c (simplify_subreg): Likewise.
13520 * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
13521 (TARGET_CHKP_BOUND_MODE): Likewise..
13522 * targhooks.c (default_chkp_bound_mode): Likewise.
13523 (default_setup_incoming_vararg_bounds): Likewise.
13524 * targhooks.h (default_chkp_bound_mode): Likewise.
13525 (default_setup_incoming_vararg_bounds): Likewise.
13526 * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
13527 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
13528 (have_whole_vector_shift): Likewise.
13529 * tree-vect-stmts.c (vectorizable_load): Likewise.
13530 * doc/tm.texi: Regenerate.
13531
13532 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
13533
13534 Graceful degrade if Binutils PR21472 is not available.
13535
13536 PR target/81072
13537 * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
13538 .rodata in flash test fails.
13539 (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
13540 * confgure: Regenerate.
13541 * config.in: Regenerate.
13542 * config/avr/avr.c (avr_asm_named_section)
13543 [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
13544 __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
13545 (avr_asm_init_sections): Same.
13546
13547 2017-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13548
13549 * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
13550 (fma<VH:mode>4_intrinsic): Likewise.
13551 (*fmsub<VCVTF:mode>4): Likewise.
13552 (*fmsub<VH:mode>4_intrinsic): Likewise.
13553
13554 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
13555
13556 PR target/81305
13557 * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
13558 Don't depend on "optimize > 0".
13559 (out_movhi_r_mr, out_movqi_mr_r): Same.
13560 (out_movhi_mr_r, out_movqi_r_mr): Same.
13561 (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
13562 io_address_operand on "optimize > 0".
13563
13564 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13565
13566 * tree-loop-distribution.c: Add general explanantion on the pass.
13567 (generate_loops_for_partition): Mark distributed loop.
13568 (pg_add_dependence_edges): New parameter. Handle alias data
13569 dependence specially and record it in the parameter if asked.
13570 (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
13571 (init_partition_graph_vertices, add_partition_graph_edge): New.
13572 (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
13573 (free_partition_graph_vdata, build_partition_graph): New.
13574 (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
13575 (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
13576 (data_ref_segment_size, latch_dominated_by_data_ref): New.
13577 (compute_alias_check_pairs, version_loop_by_alias_check): New.
13578 (version_for_distribution_p, finalize_partitions): New.
13579 (distribute_loop): Handle alias data dependence specially. Factor
13580 out loop fusion code as functions and call these functions.
13581
13582 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13583
13584 * tree-loop-distribution.c (classify_partition): New parameter and
13585 better handle reduction statement.
13586 (rdg_build_partitions): Revise comment.
13587 (distribute_loop): Compute statements in all partitions and pass it
13588 to classify_partition.
13589
13590 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13591
13592 * tree-loop-distribution.c (enum partition_type): New.
13593 (struct partition): New field type.
13594 (partition_merge_into): Add parameter. Update partition type.
13595 (data_dep_in_cycle_p, update_type_for_merge): New functions.
13596 (build_rdg_partition_for_vertex): Compute partition type.
13597 (rdg_build_partitions): Dump partition type.
13598 (distribute_loop): Update calls to partition_merge_into.
13599
13600 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13601
13602 * tree-loop-distribution.c (struct ddr_hasher): New.
13603 (ddr_hasher::hash, ::equal, get_data_dependence): New function.
13604 (ddrs_table): New.
13605 (classify_partition): Call get_data_dependence.
13606 (pg_add_dependence_edges): Ditto.
13607 (distribute_loop): Release data dependence hash table.
13608
13609 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13610
13611 * tree-loop-distribution.c (ref_base_address): Delete.
13612 (similar_memory_accesses): Rename ...
13613 (share_memory_accesses): ... to this. Check if partitions access
13614 the same memory reference.
13615 (distribute_loop): Call share_memory_accesses.
13616
13617 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13618
13619 * tree-loop-distribution.c (struct partition): New field recording
13620 its data reference.
13621 (partition_alloc, partition_free): Init and release data refs.
13622 (partition_merge_into): Merge data refs.
13623 (build_rdg_partition_for_vertex): Collect data refs for partition.
13624 (pg_add_dependence_edges): Change parameters from vector to bitmap.
13625 Update uses.
13626 (distribute_loop): Remve data refs from vertice data of partition
13627 graph.
13628
13629 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13630
13631 * tree-loop-distribution.c (params.h): Include header file.
13632 (MAX_DATAREFS_NUM, DR_INDEX): New macro.
13633 (datarefs_vec): New global var.
13634 (create_rdg_vertices): Use datarefs_vec directly.
13635 (free_rdg): Don't free data references.
13636 (build_rdg): Update use. Don't free data references.
13637 (distribute_loop): Compute global variable for data references.
13638 Bail out if there are too many data references.
13639
13640 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13641
13642 * tree-loop-distribution.c (loop_nest): New global var.
13643 (build_rdg): Use loop directly, rather than loop nest.
13644 (pg_add_dependence_edges): Remove loop nest parameter. Use global
13645 variable directly.
13646 (distribute_loop): Compute global variable loop nest. Update use.
13647
13648 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13649
13650 * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
13651 (partition_merge_into): New parameter. Dump reason for fusion.
13652 (distribute_loop): Update use of partition_merge_into.
13653
13654 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13655
13656 * tree-loop-distribution.c (bb_top_order_index): New.
13657 (bb_top_order_index_size, bb_top_order_cmp): New.
13658 (stmts_from_loop): Use topological order.
13659 (pass_loop_distribution::execute): Compute and release topological
13660 order for basic blocks.
13661
13662 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13663
13664 * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
13665 if no loops.
13666
13667 2017-07-05 Bin Cheng <bin.cheng@arm.com>
13668
13669 * cfgloop.h (struct loop): Add comment. New field orig_loop_num.
13670 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
13671 * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
13672 * internal-fn.def (LOOP_DIST_ALIAS): New.
13673 * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
13674 (fold_loop_internal_call): ... this.
13675 (vect_loop_dist_alias_call): New function.
13676 (set_uid_loop_bbs): Call fold_loop_internal_call.
13677 (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
13678 internal calls.
13679
13680 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
13681
13682 PR target/81300
13683 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
13684 Require dead FLAGS_REG at the beginning of a peephole.
13685
13686 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
13687
13688 PR target/81294
13689 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
13690 arguments in the call to __builtin_ia32_sbb_u32.
13691 (_subborrow_u64): Swap _X and _Y arguments in the call to
13692 __builtin_ia32_sbb_u64.
13693
13694 2017-07-04 Jakub Jelinek <jakub@redhat.com>
13695
13696 PR debug/81278
13697 * tree-vrp.c (compare_assert_loc): Turn into a function template
13698 with stable template parameter. Only test if a->e is NULL,
13699 !a->e == !b->e has been verified already. Use e == NULL or
13700 e != NULL instead of e or ! e tests. If stable is true, don't use
13701 iterative_hash_expr, on the other side allow a or b or both NULL
13702 and sort the NULLs last.
13703 (process_assert_insertions): Sort using compare_assert_loc<false>
13704 instead of compare_assert_loc, later sort using
13705 compare_assert_loc<true> before calling process_assert_insertions_for
13706 in a loop. Use break instead of continue once seen NULL pointer.
13707
13708 2017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
13709
13710 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
13711 Cortex-R7 and Cortex-R8 processors.
13712
13713 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
13714
13715 * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
13716 uninitialized while src is not.
13717
13718 2017-07-04 Richard Earnshaw <rearnsha@arm.com>
13719
13720 * common/config/arm/arm-common.c: Adjust include path for
13721 arm-cpu-cdata.h
13722 * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
13723 (arm-cpu.h): Create in build directory. Adjust dependency rules.
13724 (arm-cpu-data.h): Likewise.
13725 (arm-cpu-cdata.h): Likewise.
13726 * config/arm/arm-cpu.h: Delete.
13727 * config/arm/arm-cpu-cdata.h: Delete.
13728 * config/arm/arm-cpu-data.h: Delete.
13729
13730 2017-07-04 James Greenhalgh <james.greenhalgh@arm.com>
13731
13732 * config/arm/arm-cpus.in (cortex-a55): New.
13733 (cortex-a75): Likewise.
13734 (cortex-a75.cortex-a55): Likewise.
13735 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
13736 cortex-a75.
13737 * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
13738 * config/arm/arm-cpu-cdata.h: Regenerate.
13739 * config/arm/arm-cpu-data.h: Regenerate.
13740 * config/arm/arm-cpu.h: Regenerate.
13741 * config/arm/arm-tables.opt: Regenerate.
13742 * config/arm/arm-tune.md: Regenerate.
13743
13744 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
13745
13746 * haifa-sched.c (sched_create_recovery_edges): Update profile.
13747
13748 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
13749
13750 * bb-reorder.c (better_edge_p): Fix handling of uninitialized
13751 probability.
13752
13753 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org>
13754
13755 PR tree-optimization/81292
13756 * tree-ssa-strlen.c (handle_builtin_strlen): When setting
13757 full_string_p, also call adjust_related_strinfos if the adjustment
13758 is simple, otherwise invalidate related strinfos.
13759
13760 2017-07-04 Martin Liska <mliska@suse.cz>
13761
13762 PR sanitizer/81040
13763 * sanopt.c (sanitize_rewrite_addressable_params): Mark the
13764 newly created variable as DECL_IGNORED_P.
13765
13766 2017-07-04 Martin Liska <mliska@suse.cz>
13767
13768 PR ipa/81293
13769 * ipa-inline.c (inline_small_functions):
13770 Use xstrdup_for_dump.
13771
13772 2017-07-04 Tom de Vries <tom@codesourcery.com>
13773
13774 * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
13775
13776 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
13777
13778 PR target/81033
13779 * config/darwin.c (darwin_function_switched_text_sections):
13780 Fix spaces.
13781
13782 2017-07-03 Jan Hubicka <hubicka@ucw.cz>
13783
13784 * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
13785
13786 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
13787
13788 * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
13789
13790 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
13791
13792 * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
13793 min_profitable_iters, and th as inclusive lower bounds.
13794 Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
13795 (vect_estimate_min_profitable_iters): Return inclusive lower bounds
13796 for min_profitable_iters and min_profitable_estimate.
13797 (vect_transform_loop): Treat th as an inclusive lower bound.
13798 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
13799
13800 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
13801
13802 PR target/81033
13803 * config/darwin.c (darwin_function_switched_text_sections):
13804 Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
13805 in two pieces, and suppress the use of buf.
13806
13807 2017-07-03 Nathan Sidwell <nathan@acm.org>
13808
13809 * hash-table.h (hash_table_mod1): Fix indentation.
13810
13811 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
13812
13813 PR middle-end/81290
13814 * predict.c (force_edge_cold): Be more careful about propagation
13815 backward.
13816 * profile-count.h (profile_probability::guessed,
13817 profile_probability::fdo, profile_count::guessed, profile_count::fdo):
13818 New.
13819 * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
13820
13821 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com>
13822
13823 * doc/invoke.texi (rcpc architecture extension): Document it.
13824
13825 2017-07-03 Richard Biener <rguenther@suse.de>
13826
13827 PR tree-optimization/60510
13828 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
13829 the scalar reduction PHI and use it.
13830 (vectorizable_reduction): Properly guard the single_defuse_cycle
13831 path for non-SLP reduction chains where we cannot use it.
13832 Rework reduc_def/index and vector type deduction. Rework
13833 vector operand gathering during reduction op code-gen.
13834 * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
13835 chains dissolve the chain and leave it to non-SLP reduction
13836 handling.
13837
13838 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
13839
13840 * tree-data-ref.h (dr_alignment): Declare.
13841 * tree-data-ref.c (dr_alignment): New function.
13842 * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
13843 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
13844 set it.
13845 * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
13846
13847 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
13848
13849 * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
13850 and base_misalignment fields.
13851 (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
13852 * tree-data-ref.c: Include builtins.h.
13853 (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
13854 * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
13855 (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
13856 * tree-vect-data-refs.c: Include tree-cfg.h.
13857 (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
13858 fields instead of calculating an alignment here.
13859 (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new
13860 innermost_loop_behavior fields.
13861
13862 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
13863
13864 * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
13865 field.
13866 (DR_STEP_ALIGNMENT): New macro.
13867 * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
13868 * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
13869 (create_data_ref): Print it.
13870 * tree-vect-stmts.c (vectorizable_load): Use the step alignment
13871 to tell whether the step preserves vector (mis)alignment.
13872 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
13873 Move the check for an integer step and generalise to all INTEGER_CST.
13874 (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
13875 Print the outer step alignment.
13876
13877 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
13878
13879 * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
13880 with offset_alignment.
13881 (DR_ALIGNED_TO): Delete.
13882 (DR_OFFSET_ALIGNMENT): New macro.
13883 * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
13884 (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
13885 * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
13886 (create_data_ref): Likewise.
13887 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
13888 (vect_analyze_data_refs): Likewise.
13889 * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
13890 creating dummy innermost behavior.
13891
13892 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
13893
13894 * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
13895 with a "innermost_loop_behavior *" and refeence tree.
13896 * tree-data-ref.c (dr_analyze_innermost): Likewise.
13897 (create_data_ref): Update call accordingly.
13898 * tree-predcom.c (find_looparound_phi): Likewise.
13899
13900 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
13901
13902 * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
13903 fields with dr_wrt_vec_loop.
13904 (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
13905 (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
13906 (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
13907 (vect_dr_behavior): New function.
13908 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
13909 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
13910 vect_dr_behavior. Use a step_preserves_misalignment_p boolean to
13911 track whether the step preserves the misalignment.
13912 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
13913 Use vect_dr_behavior.
13914 (vect_setup_realignment): Update call accordingly.
13915 (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior.
13916 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
13917 call to vect_create_addr_base_for_vector_ref.
13918 (vect_create_cond_for_align_checks): Likewise.
13919 * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
13920 STMT_VINFO_DR_WRT_VEC_LOOP as a block.
13921 (vect_recog_mask_conversion_pattern): Likewise.
13922 * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
13923 (new_stmt_vec_info): Remove redundant zeroing.
13924
13925 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
13926
13927 * common/config/arm/arm-common.c (arm_be8_option): New function.
13928 * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
13929 (ISA_ARMv6): Add isa_bit_be8.
13930 * config/arm/arm.h (arm_be8_option): Add prototype.
13931 (BE8_SPEC_FUNCTION): New define.
13932 (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
13933 * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
13934 (mlittle-endian): Similarly.
13935 (mbe8, mbe32): New options.
13936 * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
13937 * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
13938
13939 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
13940
13941 * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
13942
13943 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
13944
13945 * tree-cfgcleanup.c (want_merge_blocks_p): New function.
13946 (cleanup_tree_cfg_bb): Use it.
13947 * profile-count.h (profile_count::of_for_merging, profile_count::merge):
13948 New functions.
13949 * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
13950
13951 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
13952
13953 PR bootstrap/81285
13954 * loop-doloop.c (add_test): Update profile.
13955
13956 2017-07-03 Martin Liska <mliska@suse.cz>
13957
13958 PR sanitize/81040
13959 * sanopt.c (rewrite_usage_of_param): New function.
13960 (sanitize_rewrite_addressable_params): Likewise.
13961 (pass_sanopt::execute): Call rewrite_usage_of_param.
13962
13963 2017-07-03 Richard Biener <rguenther@suse.de>
13964
13965 * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
13966 back to using VIEW_CONVERT_EXPR.
13967
13968 2017-07-03 Martin Liska <mliska@suse.cz>
13969
13970 PR other/78366
13971 * doc/extend.texi: Document when a resolver function is
13972 generated for target_clones.
13973
13974 2017-07-03 Martin Liska <mliska@suse.cz>
13975
13976 * asan.c (asan_emit_stack_protection): Unpoison just red zones
13977 and shadow memory of auto variables which are subject of
13978 use-after-scope sanitization.
13979 (asan_expand_mark_ifn): Add do set only when is_poison.
13980
13981 2016-07-03 Richard Biener <rguenther@suse.de>
13982
13983 * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
13984 reduction PHIs.
13985 (vect_force_simple_reduction): Record reduction def -> phi mapping.
13986 (vectorizable_reduction): Perform reduction PHI creation when
13987 visiting a reduction PHI and adjust and simplify code generation
13988 phase of the reduction op. Cache dts, use fold_binary, not fold_build2.
13989 (vect_transform_loop): Visit reduction PHIs.
13990 * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
13991 defs into the SLP tree.
13992 (vect_build_slp_tree): Reduction defs terminate the recursion.
13993 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
13994 of reduction defs.
13995 (vect_get_vec_defs_for_stmt_copy): Export.
13996 (vect_get_vec_defs): Likewise.
13997 * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
13998 purpose.
13999 (vect_get_vec_defs_for_stmt_copy): Declare.
14000 (vect_get_vec_defs): Likewise.
14001
14002 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
14003
14004 * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
14005 parameter with a "loop" parameter and use it instead of the
14006 loop containing DR_STMT. Don't check simple_iv when doing
14007 BB analysis. Describe the two analysis modes in the comment.
14008
14009 2017-07-03 Tom de Vries <tom@codesourcery.com>
14010
14011 PR tree-optimization/69468
14012 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
14013 (find_same_succ_bb): Handle ignore_edge_flags.
14014
14015 2017-07-03 Tom de Vries <tom@codesourcery.com>
14016
14017 PR tree-optimization/81192
14018 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
14019 hash.
14020 (same_succ::equal): Don't find bbs to be equal if bb->loop_father
14021 differs.
14022 (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
14023
14024 2017-07-03 Tom de Vries <tom@codesourcery.com>
14025
14026 PR tree-optimization/81192
14027 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
14028 BB_SAME_SUCC (bb) == NULL.
14029
14030 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
14031
14032 * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
14033 consistency.
14034
14035 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
14036
14037 * dumpfile.c: Include profile-count.h
14038 * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
14039 update profile.
14040 (insert_cond_bb): Update profile.
14041 * tree-cfg.h (insert_cond_bb): Update prototype.
14042 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
14043 * tree-dump.c: Do not include tree-cfg.
14044
14045 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
14046
14047 * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
14048
14049 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
14050
14051 * expect.c (dw2_build_landing_pads): Update profile of the landing pad
14052 bb.
14053
14054 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
14055
14056 * tree-complex.c (expand_complex_div_wide): update profile.
14057
14058 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
14059 Alan Hayward <alan.hayward@arm.com>
14060 David Sherwood <david.sherwood@arm.com>
14061
14062 * Makefile.in (MACHMODE_H): Remove insn-modes.h
14063 (CORETYPES_H): New define.
14064 (MOSTLYCLEANFILES): Add insn-modes-inline.h.
14065 (insn-modes-inline.h, s-modes-inline-h): New rules.
14066 (generated_files): Add insn-modes-inline.h.
14067 (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
14068 (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
14069 (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
14070 (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
14071 (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
14072 (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
14073 (build/gencodes.o, build/genconditions.o): Likewise.
14074 (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
14075 (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
14076 (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
14077 (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
14078 (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
14079 (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
14080 * coretypes.h: Include everything up to real.h for generators.
14081 Include insn-modes.h first. Include wide-int-print.h after
14082 wide-int.h. Include insn-modes-inline.h and then machmode.h.
14083 * machmode.h: Don't include insn-modes.h here.
14084 * function-tests.c: Remove includes of signop.h, machmode.h,
14085 double-int.h and wide-int.h.
14086 * rtl.h: Likewise.
14087 * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
14088 and wide-int.h.
14089 * optc-save-gen.awk: Likewise.
14090 * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
14091 * godump.c: Remove include of wide-int-print.h.
14092 * pretty-print.h: Likewise.
14093 * wide-int-print.cc: Likewise.
14094 * wide-int.cc: Likewise.
14095 * hash-map-tests.c: Remove include of signop.h.
14096 * hash-set-tests.c: Likewise.
14097 * rtl-tests.c: Likewise.
14098 * mkconfig.sh: Remove include of machmode.h.
14099 * genmodes.c (emit_insn_modes_h): Split emission of inline functions
14100 into...
14101 (emit_insn_modes_inline_h): ...this new function. Emit the code
14102 into an insn-modes-inline.h header file, adding appropriate
14103 include guards and end comments.
14104 (emit_insn_modes_c_header): Remove include of machmode.h.
14105 (emit_min_insn_modes_c_header): Include coretypes.h rather than
14106 machmode.h.
14107 (main): Handle -i flag and call emit_insn_modes_inline_h when
14108 it is passed.
14109
14110 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
14111
14112 * tree-ssa-strlen.c (strinfo): Rename the length field to
14113 nonzero_chars. Add a full_string_p field.
14114 (compare_nonzero_chars, zero_length_string_p): New functions.
14115 (get_addr_stridx): Add an offset_out parameter.
14116 Use compare_nonzero_chars.
14117 (get_stridx): Update accordingly. Use compare_nonzero_chars.
14118 (new_strinfo): Update after above changes to strinfo.
14119 (set_endptr_and_length): Set full_string_p.
14120 (get_string_length): Update after above changes to strinfo.
14121 (unshare_strinfo): Update call to new_strinfo.
14122 (maybe_invalidate): Likewise.
14123 (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
14124 Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars
14125 as a uhwi instead of an shwi. Update after above changes to
14126 strinfo and new_strinfo.
14127 (zero_length_string): Assert that chainsi contains full strings.
14128 Use zero_length_string_p. Update call to new_strinfo.
14129 (adjust_related_strinfos): Update after above changes to strinfo.
14130 Copy full_string_p from origsi.
14131 (adjust_last_stmt): Use zero_length_string_p.
14132 (handle_builtin_strlen): Update after above changes to strinfo and
14133 new_strinfo. Install the lhs as the string length if the previous
14134 entry didn't describe a full string.
14135 (handle_builtin_strchr): Update after above changes to strinfo
14136 and new_strinfo.
14137 (handle_builtin_strcpy): Likewise.
14138 (handle_builtin_strcat): Likewise.
14139 (handle_builtin_malloc): Likewise.
14140 (handle_pointer_plus): Likewise.
14141 (handle_builtin_memcpy): Likewise. Track nonzero characters
14142 that aren't necessarily followed by a nul terminator.
14143 (handle_char_store): Likewise.
14144
14145 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
14146
14147 PR tree-optimization/80769
14148 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
14149 for malloc and calloc. Document the new invariant that all related
14150 strinfos have delayed lengths or none do.
14151 (verify_related_strinfos): Move earlier in file.
14152 (set_endptr_and_length): New function, split out from...
14153 (get_string_length): ...here. Also set the lengths of related
14154 strinfos.
14155 (zero_length_string): Assert that chainsi has known (rather than
14156 delayed) lengths.
14157 (adjust_related_strinfos): Likewise.
14158
14159 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
14160
14161 PR tree-optimization/81136
14162 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
14163 assert that two references with the same misalignment have the same
14164 compile-time misalignment if those compile-time misalignments
14165 are known.
14166
14167 2017-07-01 Andi Kleen <ak@linux.intel.com>
14168
14169 * print-tree.c (print_node): Print all attributes.
14170
14171 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
14172
14173 * cfg.c (scale_bbs_frequencies): New function.
14174 * cfg.h (scale_bbs_frequencies): Declare it.
14175 * cfgloopanal.c (single_likely_exit): Cleanup.
14176 * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
14177 as parameter.
14178 (scale_loop_profile): Likewise.
14179 (loop_version): Likewise.
14180 (create_empty_loop_on_edge): Update.
14181 * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
14182 scale_loop_frequencies, scale_loop_profile, loopify,
14183 loop_version): Update prototypes.
14184 * modulo-sched.c (sms_schedule): Update.
14185 * predict.c (unlikely_executed_edge_p): Also check probability.
14186 (probably_never_executed_edge_p): Fix typo.
14187 * tree-if-conv.c (version_loop_for_if_conversion): Update.
14188 * tree-parloops.c (gen_parallel_loop): Update.
14189 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
14190 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
14191 * tree-ssa-loop-split.c (split_loop): Update.
14192 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
14193 * tree-vect-loop-manip.c (vect_do_peeling): Update.
14194 (vect_loop_versioning): Update.
14195 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
14196
14197 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
14198
14199 * trans-mem.c (split_bb_make_tm_edge): Update profile.
14200
14201 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
14202
14203 * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
14204 to keep profile consistent.
14205
14206 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
14207
14208 * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
14209 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
14210 * profile-count.h (max_safe_multiplier): Make unsigned.
14211 (profile_count::guessed_zero): New.
14212
14213 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
14214
14215 * bb-reorder.c (fix_up_crossing_landing_pad,
14216 fix_crossing_conditional_branches): Use make_single_succ_edge
14217 to keep profile consistent.
14218
14219 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
14220
14221 * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
14222 to update profile.
14223
14224 2017-07-01 Jakub Jelinek <jakub@redhat.com>
14225
14226 PR sanitizer/81262
14227 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
14228 the right scopes, make sure cond_jump isn't preserved between multiple
14229 iterations. Search for fallthru edge whenever there are 3+ edges and
14230 use find_fallthru_edge for it.
14231
14232 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
14233
14234 Patch by Alexander Monakov <amonakov@ispras.ru>
14235 * sel-sched-ir.c (compute_succs_info): Handle uninitialized
14236 probabilities consistently.
14237
14238 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
14239
14240 * pa.c (pa_expand_compare_and_swap_loop): Update call of
14241 emit_cmp_and_jump_insns.
14242
14243 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
14244
14245 PR ipa/81261
14246 * tree-inline.c (expand_call_inline): Combine profile statuses.
14247
14248 2017-06-30 Andrew Pinski <apinski@cavium.com>
14249
14250 * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
14251 fold_stmt returned true.
14252
14253 2017-06-30 Nathan Sidwell <nathan@acm.org>
14254
14255 * ggc.h (empty_string): Delete.
14256 * cfgexpand.c (expand_asm_stmt): Use plain "".
14257 * optabs.c (expand_asm_memory_barrier): Likewise.
14258 * stringpool.c (empty_string): Delete.
14259 (digit_vector, digit_string): Delete.
14260 (ggc_alloc_string): Use plain "", don't optimize single digit
14261 strings. Use ggc_alloc_atomic.
14262
14263 2017-06-30 Richard Earnshaw <rearnsha@arm.com>
14264
14265 * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
14266 comparison set and one other set, use the cost of the non-comparison
14267 set.
14268
14269 2017-06-30 Nathan Sidwell <nathan@acm.org>
14270
14271 * ggc.h: Replace all 'static inline' with plain 'inline'. Fix
14272 some formatting.
14273
14274 2017-06-30 Peter Bergner <bergner@vnet.ibm.com>
14275
14276 * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
14277 loops. Remove now unneeded calls to gimple_switch_set_label() that
14278 just set removed labels to NULL_TREE.
14279
14280 2017-06-30 Aldy Hernandez <aldyh@redhat.com>
14281
14282 * tree-ssanames.c (set_range_info_raw): Abstract from ...
14283 (set_range_info): ...here. Only call set_range_info_raw if domain
14284 is useful.
14285 (set_nonzero_bits): Call set_range_info_raw.
14286 * tree-ssanames.h (set_range_info_raw): New.
14287
14288 2017-06-30 Jakub Jelinek <jakub@redhat.com>
14289
14290 PR target/81225
14291 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
14292 V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
14293 of nonimmediate_operand and <store_mask_constraint> instead of m
14294 for the input operand. For V8FI iterator, always split if input
14295 is a MEM. For V16FI and V8SF_256 iterators, don't test if both
14296 operands are MEM if <mask_applied>. For VI4F_256 iterator, use
14297 <store_mask_predicate> instead of register_operand and
14298 <store_mask_constraint> instead of v for the input operand. Make
14299 sure both operands aren't MEMs for if not <mask_applied>.
14300
14301 2017-06-30 Sylvestre Ledru <sylvestre@debian.org>
14302
14303 * lto-wrapper.c (copy_file) Close both file descriptors before
14304 exiting normally.
14305
14306 2017-06-30 Martin Liska <mliska@suse.cz>
14307
14308 PR ipa/81214
14309 * multiple_target.c (create_dispatcher_calls): Make ifunc
14310 also for function that don't have calls or are not referenced.
14311
14312 2017-06-30 Richard Biener <rguenther@suse.de>
14313
14314 * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
14315 analyze the first scalar stmt. Move vector type computation
14316 for the BB case here from ...
14317 * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard
14318 live operation processing in the SLP case properly.
14319
14320 2017-06-30 Richard Biener <rguenther@suse.de>
14321
14322 * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
14323
14324 2017-06-30 Martin Liska <mliska@suse.cz>
14325
14326 PR sanitizer/81021
14327 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
14328 before BUILT_IN_UNWIND_RESUME when ASAN is used.
14329
14330 2017-06-30 Yvan Roux <yvan.roux@linaro.org>
14331
14332 * doc/invoke.texi (AArch64): Add missing options and remove redundant
14333 ones.
14334
14335 2017-06-30 Richard Biener <rguenther@suse.de>
14336
14337 PR tree-optimization/81249
14338 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
14339 condition reduction result to original scalar type.
14340
14341 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14342
14343 * profile-count.h (enum profile_quality): Fix typos and whitespace
14344 issues.
14345
14346 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14347
14348 * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
14349 type for branch probabilities.
14350
14351 2017-06-29 Julian Brown <julian@codesourcery.com>
14352 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
14353
14354 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
14355 * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
14356 (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
14357 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
14358
14359 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
14360
14361 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
14362 check for CC usage into AARCH64_FUSE_CMP_BRANCH.
14363 * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
14364 CC usage from generic code to here.
14365 * sched-deps.c (sched_macro_fuse_insns): Move the condition for
14366 CC usage into the target macros.
14367
14368 2017-06-29 Maya Rashish <coypu@sdf.org>
14369
14370 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
14371 objects.
14372
14373 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
14374
14375 * arm/arm-builtins.c: Include profile-count.h
14376 * except.c (sjlj_emit_function_enter): Use
14377 profile_probability::unlikely.
14378
14379 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
14380
14381 * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
14382 and tocrel_offset be pointer args rather than implicitly using
14383 static versions.
14384 (legitimate_constant_pool_address_p, rs6000_emit_move,
14385 const_load_sequence_p, adjust_vperm): Add local tocrel_base and
14386 tocrel_offset and use in toc_relative_expr_p call.
14387 (print_operand, print_operand_address): Use static tocrel_base_oac
14388 and tocrel_offset_oac.
14389 (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
14390 tocrel_offset_oac.
14391
14392 2017-06-29 Maya Rashish <coypu@sdf.org>
14393
14394 * config/vax/builtins.md (ffssi2_internal): Correct constraint.
14395
14396 2017-06-29 Eric Botcazou <ebotcazou@adacore.com>
14397
14398 * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
14399 objects, take into account only the alignment of 'op0' and 'mode1' if
14400 'op0' is a MEM.
14401
14402 2017-06-29 Steve Ellcey <sellcey@cavium.com>
14403
14404 * ccmp.c (ccmp_tree_comparison_p): New function.
14405 (ccmp_candidate_p): Update to use above function.
14406 (get_compare_parts): New function.
14407 (expand_ccmp_next): Update to use new functions.
14408 (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
14409 new functions.
14410 (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
14411 take mode as argument.
14412 * ccmp.h (expand_ccmp_expr): Add mode as argument.
14413 * expr.c (expand_expr_real_1): Pass mode as argument.
14414
14415 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org>
14416
14417 * combine.c (combine_instructions): Print insns to dump_file, together
14418 with their costs.
14419
14420 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
14421
14422 * asan.c (asan_emit_stack_protection): Update.
14423 (create_cond_insert_point): Update.
14424 * auto-profile.c (afdo_propagate_circuit): Update.
14425 * basic-block.h (struct edge_def): Turn probability to
14426 profile_probability.
14427 (EDGE_FREQUENCY): Update.
14428 * bb-reorder.c (find_traces_1_round): Update.
14429 (better_edge_p): Update.
14430 (sanitize_hot_paths): Update.
14431 * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
14432 (make_single_succ_edge): Update.
14433 (check_bb_profile): Update.
14434 (dump_edge_info): Update.
14435 (update_bb_profile_for_threading): Update.
14436 * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
14437 probabilitycount to 0.
14438 * cfgbuild.c (compute_outgoing_frequencies): Update.
14439 * cfgcleanup.c (try_forward_edges): Update.
14440 (outgoing_edges_match): Update.
14441 (try_crossjump_to_edge): Update.
14442 * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
14443 (expand_gimple_tailcall): Update.
14444 (construct_init_block): Use make_single_succ_edge.
14445 (construct_exit_block): Use make_single_succ_edge.
14446 * cfghooks.c (verify_flow_info): Update.
14447 (redirect_edge_succ_nodup): Update.
14448 (split_edge): Update.
14449 (account_profile_record): Update.
14450 * cfgloopanal.c (single_likely_exit): Update.
14451 * cfgloopmanip.c (scale_loop_profile): Update.
14452 (set_zero_probability): Remove.
14453 (duplicate_loop_to_header_edge): Update.
14454 * cfgloopmanip.h (loop_version): Update prototype.
14455 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
14456 (force_nonfallthru_and_redirect): Update.
14457 (update_br_prob_note): Update.
14458 (rtl_verify_edges): Update.
14459 (purge_dead_edges): Update.
14460 (rtl_lv_add_condition_to_bb): Update.
14461 * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
14462 * cgraphunit.c (init_lowered_empty_function): Update.
14463 (cgraph_node::expand_thunk): Update.
14464 * cilk-common.c: Include profile-count.h
14465 * dojump.c (inv): Remove.
14466 (jumpifnot): Update.
14467 (jumpifnot_1): Update.
14468 (do_jump_1): Update.
14469 (do_jump): Update.
14470 (do_jump_by_parts_greater_rtx): Update.
14471 (do_compare_rtx_and_jump): Update.
14472 * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
14473 do_jump_1. do_compare_rtx_and_jump): Update prototype.
14474 * dwarf2cfi.c: Include profile-count.h
14475 * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
14476 (sjlj_emit_dispatch_table): Likewise.
14477 * explow.c: Include profile-count.h
14478 * expmed.c (emit_store_flag_force): Update.
14479 (do_cmp_and_jump): Update.
14480 * expr.c (compare_by_pieces_d::generate): Update.
14481 (compare_by_pieces_d::finish_mode): Update.
14482 (emit_block_move_via_loop): Update.
14483 (store_expr_with_bounds): Update.
14484 (store_constructor): Update.
14485 (expand_expr_real_2): Update.
14486 (expand_expr_real_1): Update.
14487 * expr.h (try_casesi, try_tablejump): Update prototypes.
14488 * gimple-pretty-print.c (dump_probability): Update.
14489 (dump_profile): New.
14490 (dump_gimple_label): Update.
14491 (dump_gimple_bb_header): Update.
14492 * graph.c (draw_cfg_node_succ_edges): Update.
14493 * hsa-gen.c (convert_switch_statements): Update.
14494 * ifcvt.c (cheap_bb_rtx_cost_p): Update.
14495 (find_if_case_1): Update.
14496 (find_if_case_2): Update.
14497 * internal-fn.c (expand_arith_overflow_result_store): Update.
14498 (expand_addsub_overflow): Update.
14499 (expand_neg_overflow): Update.
14500 (expand_mul_overflow): Update.
14501 (expand_vector_ubsan_overflow): Update.
14502 * ipa-cp.c (good_cloning_opportunity_p): Update.
14503 * ipa-split.c (split_function): Use make_single_succ_edge.
14504 * ipa-utils.c (ipa_merge_profiles): Update.
14505 * loop-doloop.c (add_test): Update.
14506 (doloop_modify): Update.
14507 * loop-unroll.c (compare_and_jump_seq): Update.
14508 (unroll_loop_runtime_iterations): Update.
14509 * lra-constraints.c (lra_inheritance): Update.
14510 * lto-streamer-in.c (input_cfg): Update.
14511 * lto-streamer-out.c (output_cfg): Update.
14512 * mcf.c (adjust_cfg_counts): Update.
14513 * modulo-sched.c (sms_schedule): Update.
14514 * omp-expand.c (expand_omp_for_init_counts): Update.
14515 (extract_omp_for_update_vars): Update.
14516 (expand_omp_ordered_sink): Update.
14517 (expand_omp_for_ordered_loops): Update.
14518 (expand_omp_for_generic): Update.
14519 (expand_omp_for_static_nochunk): Update.
14520 (expand_omp_for_static_chunk): Update.
14521 (expand_cilk_for): Update.
14522 (expand_omp_simd): Update.
14523 (expand_omp_taskloop_for_outer): Update.
14524 (expand_omp_taskloop_for_inner): Update.
14525 * omp-simd-clone.c (simd_clone_adjust): Update.
14526 * optabs.c (expand_doubleword_shift): Update.
14527 (expand_abs): Update.
14528 (emit_cmp_and_jump_insn_1): Update.
14529 (expand_compare_and_swap_loop): Update.
14530 * optabs.h (emit_cmp_and_jump_insns): Update prototype.
14531 * predict.c (predictable_edge_p): Update.
14532 (edge_probability_reliable_p): Update.
14533 (set_even_probabilities): Update.
14534 (combine_predictions_for_insn): Update.
14535 (combine_predictions_for_bb): Update.
14536 (propagate_freq): Update.
14537 (estimate_bb_frequencies): Update.
14538 (force_edge_cold): Update.
14539 * profile-count.c (profile_count::dump): Add missing space into dump.
14540 (profile_count::debug): Add newline.
14541 (profile_count::differs_from_p): Explicitly convert to unsigned.
14542 (profile_count::stream_in): Update.
14543 (profile_probability::dump): New member function.
14544 (profile_probability::debug): New member function.
14545 (profile_probability::differs_from_p): New member function.
14546 (profile_probability::differs_lot_from_p): New member function.
14547 (profile_probability::stream_in): New member function.
14548 (profile_probability::stream_out): New member function.
14549 * profile-count.h (profile_count_quality): Rename to ...
14550 (profile_quality): ... this one.
14551 (profile_probability): New.
14552 (profile_count): Update.
14553 * profile.c (compute_branch_probabilities): Update.
14554 * recog.c (peep2_attempt): Update.
14555 * sched-ebb.c (schedule_ebbs): Update.
14556 * sched-rgn.c (find_single_block_region): Update.
14557 (compute_dom_prob_ps): Update.
14558 (schedule_region): Update.
14559 * sel-sched-ir.c (compute_succs_info): Update.
14560 * stmt.c (struct case_node): Update.
14561 (do_jump_if_equal): Update.
14562 (get_outgoing_edge_probs): Update.
14563 (conditional_probability): Update.
14564 (emit_case_dispatch_table): Update.
14565 (expand_case): Update.
14566 (expand_sjlj_dispatch_table): Update.
14567 (emit_case_nodes): Update.
14568 * targhooks.c: Update.
14569 * tracer.c (better_p): Update.
14570 (find_best_successor): Update.
14571 * trans-mem.c (expand_transaction): Update.
14572 * tree-call-cdce.c: Update.
14573 * tree-cfg.c (gimple_split_edge): Upate.
14574 (move_sese_region_to_fn): Upate.
14575 * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
14576 * tree-eh.c (lower_resx): Upate.
14577 (cleanup_empty_eh_move_lp): Upate.
14578 * tree-if-conv.c (version_loop_for_if_conversion): Update.
14579 * tree-inline.c (copy_edges_for_bb): Update.
14580 (copy_cfg_body): Update.
14581 * tree-parloops.c (gen_parallel_loop): Update.
14582 * tree-profile.c (gimple_gen_ic_func_profiler): Update.
14583 (gimple_gen_time_profiler): Update.
14584 * tree-ssa-dce.c (remove_dead_stmt): Update.
14585 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
14586 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
14587 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
14588 (unloop_loops): Update.
14589 (try_peel_loop): Update.
14590 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
14591 * tree-ssa-loop-split.c (connect_loops): Update.
14592 (split_loop): Update.
14593 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
14594 (hoist_guard): Update.
14595 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
14596 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
14597 (value_replacement): Update.
14598 * tree-ssa-reassoc.c (branch_fixup): Update.
14599 * tree-ssa-tail-merge.c (replace_block_by): Update.
14600 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
14601 (create_edge_and_update_destination_phis): Update.
14602 (compute_path_counts): Update.
14603 (recompute_probabilities): Update.
14604 (update_joiner_offpath_counts): Update.
14605 (freqs_to_counts_path): Update.
14606 (duplicate_thread_path): Update.
14607 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
14608 (struct switch_conv_info): Update.
14609 (gen_inbound_check): Update.
14610 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
14611 (vect_do_peeling): Update.
14612 (vect_loop_versioning): Update.
14613 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
14614 (optimize_mask_stores): Update.
14615 * ubsan.c (ubsan_expand_null_ifn): Update.
14616 * value-prof.c (gimple_divmod_fixed_value): Update.
14617 (gimple_divmod_fixed_value_transform): Update.
14618 (gimple_mod_pow2): Update.
14619 (gimple_mod_pow2_value_transform): Update.
14620 (gimple_mod_subtract): Update.
14621 (gimple_mod_subtract_transform): Update.
14622 (gimple_ic): Update.
14623 (gimple_stringop_fixed_value): Update.
14624 (gimple_stringops_transform): Update.
14625 * value-prof.h: Update.
14626
14627 2017-06-29 Carl Love <cel@us.ibm.com>
14628
14629 * config/rs6000/rs6000-c.c: Add support for built-in functions
14630 vector signed int vec_signed (vector float);
14631 vector signed long long vec_signed (vector double);
14632 vector signed int vec_signed2 (vector double, vector double);
14633 vector signed int vec_signede (vector double);
14634 vector signed int vec_signedo (vector double);
14635 * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
14636 instruction generator.
14637 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
14638 UNSPEC_VSX_VSIGNED2): Add UNSPECS.
14639 (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
14640 Add define_insn.
14641 (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
14642 vunsignede_v2df): Add define_expands.
14643 * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
14644 VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
14645 VEC_UNSIGNEDO): Add definitions.
14646 * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
14647 UNSPEC_VSX_VSIGNED2): Add UNSPECs.
14648 (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
14649 (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
14650 vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
14651 * config/rs6000/altivec.h (vec_signed, vec_signed2,
14652 vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
14653 vec_unsignede, vec_unsignedo): Add builtin defines.
14654 * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
14655 declaration.
14656 * doc/extend.texi: Update the built-in documentation file for the
14657 new built-in functions.
14658
14659 2017-06-29 Richard Biener <rguenther@suse.de>
14660
14661 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
14662 reduction chains to LOOP_VINFO_REDUCTIONS.
14663 * tree-vect-slp.c (vect_analyze_slp): Continue looking for
14664 SLP reductions after processing reduction chains.
14665
14666 2017-06-29 Nathan Sidwell <nathan@acm.org>
14667
14668 * builtins.c (fold_builtin_FUNCTION): Use
14669 lang_hooks.decl_printable_name.
14670
14671 2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
14672
14673 PR middle-end/81194
14674 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
14675 with only one label.
14676 * stmt.c (expand_case): Assert NCASES is greater than one.
14677
14678 2017-06-29 Richard Biener <rguenther@suse.de>
14679
14680 * tree-cfg.c (group_case_labels_stmt): Return whether we changed
14681 anything.
14682 (group_case_labels): Likewise.
14683 (find_taken_edge): Push sanity checking on val to workers...
14684 (find_taken_edge_cond_expr): ... here
14685 (find_taken_edge_switch_expr): ... and here, handle cases
14686 with just a default label.
14687 * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
14688 (group_case_labels): Likewise.
14689 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
14690 group_case_labels does anything cleanup the CFG again.
14691
14692 2017-06-29 Bin Cheng <bin.cheng@arm.com>
14693
14694 PR tree-optimization/81196
14695 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
14696 exit condition comparing two IVs.
14697
14698 2017-06-29 Richard Earnshaw <rearnsha@arm.com>
14699
14700 * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
14701 profile to the dummy entry at the end of the list of architectures.
14702 * config/arm/arm-cpu-cdata.h: Regenerated.
14703
14704 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14705 Michael Collison <michael.collison@arm.com>
14706
14707 PR target/70119
14708 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
14709 New pattern.
14710 (*aarch64_reg_<mode>3_neg_mask2): New pattern.
14711 (*aarch64_reg_<mode>3_minus_mask): New pattern.
14712 (*aarch64_<optab>_reg_di3_mask2): New pattern.
14713 * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
14714 of shift when the shift amount is masked with constant equal to
14715 the size of the mode.
14716 * config/aarch64/predicates.md (subreg_lowpart_operator): New
14717 predicate.
14718
14719 2017-06-29 Martin Liska <mliska@suse.cz>
14720
14721 * config/i386/i386.opt: Change range from [1,5] to [0,5].
14722
14723 2017-06-29 Yury Gribov <tetra2005@gmail.com>
14724
14725 PR bootstrap/80565
14726 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
14727 code.
14728 * ipa-inline.h
14729 (edge_growth_cache_entry::edge_growth_cache_entry): New
14730 function.
14731 (reset_edge_growth_cache): Update to use constructor.
14732
14733 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14734
14735 * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
14736 (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
14737 (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
14738
14739 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com>
14740
14741 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
14742 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
14743
14744 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
14745
14746 * config.gcc (*-linux-musl*): Add t-musl tmake_file.
14747 (*-linux-uclibc*): Add t-uclibc tmake_file.
14748 * config/t-musl: New.
14749 * config/t-uclibc: New.
14750
14751 2017-06-28 Richard Earnshaw <rearnsha@arm.com>
14752
14753 * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
14754 context.
14755 (gen_comm_data): Emit architectural setting of arch_prof.
14756 * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
14757 profile.
14758 (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
14759 (armv8-m.base, armv8-m.main): Likewise.
14760 * arm-protos.h (arm_build_target): Add profile field.
14761 (arch_option): Likewise.
14762 * config/arm/arm.c (arm_configure_build_target): Copy the profile to
14763 the active target.
14764 * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
14765 arm_active_target.profile.
14766
14767 2017-06-28 Richard Biener <rguenther@suse.de>
14768
14769 PR middle-end/81227
14770 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
14771 TYPE_OVERFLOW_WRAPS.
14772 * match.pd (negate_expr_p): Likewise.
14773 * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
14774 fold_build2, not fold_binary.
14775
14776 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
14777
14778 * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
14779 Convert memory address to Pmode.
14780 (aarch64_print_operand): Assert MEM operands are always Pmode.
14781
14782 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
14783
14784 PR target/79665
14785 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
14786 Remove redundant if.
14787 (aarch_forward_to_shift_is_not_shifted_reg): Remove.
14788 * config/arm/aarch-common-protos.h
14789 (aarch_forward_to_shift_is_not_shifted_re): Remove.
14790 * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
14791
14792 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
14793
14794 PR ipa/81238
14795 * multiple_target.c (create_dispatcher_calls): Set the default
14796 clone to be static, not public.
14797
14798 2017-06-28 Richard Biener <rguenther@suse.de>
14799
14800 * tree-vect-loop.c (vectorizable_reduction): Move special
14801 cond reduction IV var creation ...
14802 (vect_create_epilog_for_reduction): ... here. Remove induction_index
14803 parameter. Use STMT_VINFO_VECTYPE.
14804 * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
14805 constant_p.
14806
14807 2017-06-28 Martin Liska <mliska@suse.cz>
14808
14809 PR ipa/81128
14810 * ipa-visibility.c (non_local_p): Handle visibility.
14811
14812 2017-06-28 Martin Liska <mliska@suse.cz>
14813
14814 PR driver/79659
14815 * common.opt: Add IntegerRange to various options.
14816 * opt-functions.awk (integer_range_info): New function.
14817 * optc-gen.awk: Add integer_range_info to cl_options struct.
14818 * opts-common.c (decode_cmdline_option): Handle
14819 CL_ERR_INT_RANGE_ARG.
14820 (cmdline_handle_error): Likewise.
14821 * opts.c (print_filtered_help): Show valid interval in
14822 when --help is provided.
14823 * opts.h (struct cl_option): Add range_min and range_max fields.
14824 * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
14825
14826 2017-06-28 Marc Glisse <marc.glisse@inria.fr>
14827
14828 * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
14829 (x * C EQ/NE y * C): New transformation.
14830
14831 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org>
14832
14833 * genmultilib (combination_space): Accept '+' in option names.
14834
14835 2017-06-28 Martin Liska <mliska@suse.cz>
14836
14837 PR sanitizer/81224
14838 * asan.c (instrument_derefs): Bail out inner references
14839 that are hard register variables.
14840
14841 2017-06-28 Jakub Jelinek <jakub@redhat.com>
14842
14843 PR target/81175
14844 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
14845 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
14846
14847 2017-06-28 Richard Biener <rguenther@suse.de>
14848
14849 * tree-vectorizer.h (vect_get_vec_defs): Remove.
14850 (vect_get_slp_defs): Adjust.
14851 * tree-vect-loop.c (get_initial_defs_for_reduction): Split
14852 out from ...
14853 * tree-vect-slp.c (vect_get_constant_vectors): ... here and
14854 simplify.
14855 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
14856 get_initial_defs_for_reduction instead of vect_get_vec_defs.
14857 (vectorizable_reduction): Adjust.
14858 * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
14859 handling.
14860 (vect_get_slp_defs): Likewise.
14861 * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
14862 (vectorizable_bswap): Adjust.
14863 (vectorizable_call): Likewise.
14864 (vectorizable_conversion): Likewise.
14865 (vectorizable_assignment): Likewise.
14866 (vectorizable_shift): Likewise.
14867 (vectorizable_operation): Likewise.
14868 (vectorizable_store): Likewise.
14869 (vectorizable_condition): Likewise.
14870 (vectorizable_comparison): Likewise.
14871
14872 2017-06-28 Michael Collison <michael.collison@arm.com>
14873
14874 PR target/68535
14875 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
14876 set of base_reg
14877 (arm_gen_movmemqi): Removed unused variable 'i'.
14878 Convert 'for' loop into 'while' loop.
14879 (arm_expand_prologue): Remove last unnecessary set of insn.
14880 (thumb_pop): Remove unused variable 'pushed_words'.
14881 (thumb_exit): Remove last unnecessary set of regs_to_pop.
14882
14883 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14884
14885 * config/s390/predicates.md: Use s390_rel_address_ok_p.
14886 * config/s390/s390-protos.h: Add prototype of
14887 s390_rel_address_ok_p.
14888 * config/s390/s390.c (s390_got_symbol): New function.
14889 (s390_rel_address_ok_p): New function.
14890 (legitimize_pic_address): Use s390_rel_address_ok_p.
14891 (s390_load_got): Use s390_got_symbol.
14892 (s390_option_override): Issue error if
14893 -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
14894 * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
14895 New macro.
14896 * config/s390/s390.opt: New option mpic-data-is-text-relative.
14897
14898 2017-06-27 Andrew Pinski <apinski@cavium.com>
14899
14900 * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
14901 (X * copysign (1.0, X)): New pattern.
14902 (X * copysign (1.0, -X)): New pattern.
14903 (copysign (-1.0, CST)): New pattern.
14904
14905 2017-06-27 Joseph Myers <joseph@codesourcery.com>
14906
14907 * genmultilib (combination_space): Remove variable.
14908 Validate reuse rules against regular expression for any sequence
14909 of multilib options in any order.
14910
14911 2017-06-27 Michael Collison <michael.collison@arm.com>
14912
14913 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
14914 call aarch64_split_simd_combine.
14915 * (aarch64_combine_internal<mode>): Delete pattern.
14916 * config/aarch64/aarch64.c (aarch64_split_simd_combine):
14917 Allow register and subreg operands.
14918
14919 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
14920
14921 * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
14922 specific need, just fallback on defaults.
14923 (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
14924
14925 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
14926 Olivier Hainque <hainque@adacore.com>
14927
14928 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
14929 map for 64bits.
14930 (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
14931 targets. Pick a default if no particular attempt applied.
14932 (STACK_CHECK_PROTECT): Double for 64bit targets, which have
14933 larger contexts.
14934
14935 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
14936
14937 * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
14938 (x86_64-wrs-vxworks7): Likewise.
14939
14940 2017-06-27 Marek Polacek <polacek@redhat.com>
14941
14942 PR sanitizer/81223
14943 * ubsan.c (instrument_null): Check get_base_address's result for null.
14944
14945 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
14946
14947 * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
14948
14949 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
14950
14951 * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
14952 BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
14953 (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
14954 BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
14955 New function types.
14956 * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
14957 BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
14958 BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
14959 BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
14960 BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
14961 BUILT_IN_FEUPDATEENV): New builtins.
14962 * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
14963 TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
14964 * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
14965 fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
14966 macros.
14967 (builtin_structptr_types): Adjust size.
14968 * tree.c (builtin_structptr_types): Add four entries.
14969
14970 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
14971 Olivier Hainque <hainque@adacore.com>
14972
14973 * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
14974 (TLS_SYM): New local macro, forcing reference to __tls__ on
14975 link command lines for VxWorks 7 RTPs, triggering initialization
14976 of tlsLib.
14977 (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
14978 OS features TLS support, true for RTPs on VxWorks 7.
14979 * config/vxworks.c (vxworks_override_options): Setup emutls
14980 accordingly.
14981
14982 2017-06-27 Jakub Jelinek <jakub@redhat.com>
14983
14984 * predict.c (test_prediction_value_range): Use -1U instead of -1
14985 to avoid narrowing conversion warning.
14986 * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
14987 to avoid narrowing conversion warning.
14988 * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
14989 -1.
14990 * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
14991
14992 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
14993
14994 * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
14995 64bit configurations.
14996 (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
14997 (SIZE_TYPE): Likewise.
14998 * config/vxworks.c (vxworks_emutls_var_fields): Use
14999 long_unsigned_type_node instead of unsigned_type_node as the offset
15000 field type, which is "pointer" mode in emutls.c.
15001
15002 2017-06-27 Jakub Jelinek <jakub@redhat.com>
15003
15004 PR sanitizer/81209
15005 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
15006
15007 PR middle-end/81207
15008 * gimple-fold.c (replace_call_with_call_and_fold): Handle
15009 gimple_vuse copying separately from gimple_vdef copying.
15010
15011 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15012
15013 * value-prof.c (free_hist): Remove call to memset and the enclosing if
15014 condition.
15015
15016 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
15017 Olivier Hainque <hainque@adacore.com>
15018
15019 * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
15020 for all vxworks7 targets.
15021 * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
15022 (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
15023 (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
15024 variations for VX6/VX7 and 32/64bits later on in ...
15025 (VXWORKS_LIB_SPEC): Leverage new macros.
15026 (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
15027 as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
15028
15029 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
15030
15031 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
15032 _VX_TOOL_FAMILY and _VX_TOOL to gnu.
15033
15034 2017-06-26 Carl Love <cel@us.ibm.com>
15035
15036 * config/rs6000/rs6000-c.c: Add support for built-in functions
15037 vector bool char vec_reve (vector bool char);
15038 vector signed char vec_reve (vector signed char);
15039 vector unsigned char vec_reve (vector unsigned char);
15040 vector bool int vec_reve (vector bool int);
15041 vector signed int vec_reve (vector signed int);
15042 vector unsigned int vec_reve (vector unsigned int);
15043 vector bool long long vec_reve (vector bool long long);
15044 vector signed long long vec_reve (vector signed long long);
15045 vector unsigned long long vec_reve (vector unsigned long long);
15046 vector bool short vec_reve (vector bool short);
15047 vector signed short vec_reve (vector signed short);
15048 vector double vec_reve (vector double);
15049 vector float vec_reve (vector float);
15050 * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
15051 VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
15052 * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
15053 (altivec_vreve): New pattern.
15054 * config/rs6000/altivec.h (vec_reve): New define.
15055 * doc/extend.texi (vec_rev): Update the built-in documentation file
15056 for the new built-in functions.
15057
15058 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15059
15060 PR tree-optimization/71815
15061 * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
15062 function.
15063 (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
15064 has_single_use.
15065 (slsr_process_phi): Likewise.
15066 (replace_uncond_cands_and_profitable_phis): Don't replace a
15067 multiply candidate with a stride of 1 (copy or cast).
15068 (phi_incr_cost): Call uses_consumed_by_stmt rather than
15069 has_single_use.
15070 (lowest_cost_path): Likewise.
15071 (total_savings): Likewise.
15072
15073 2017-06-26 Richard Biener <rguenther@suse.de>
15074
15075 PR target/81175
15076 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
15077 Use def_builtin_pure for all gather builtins.
15078
15079 2017-06-26 Richard Biener <rguenther@suse.de>
15080
15081 PR tree-optimization/81203
15082 * tree-tailcall.c (find_tail_calls): Do not move stmts into
15083 non-dominating BBs.
15084
15085 2017-06-26 Marek Polacek <polacek@redhat.com>
15086
15087 PR c/80116
15088 * doc/invoke.texi: Document -Wmultistatement-macros.
15089
15090 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
15091
15092 * doc/sourcebuild.texi (ARM-specific attributes): Document new
15093 arm_neon_ok_no_float_abi effective target.
15094
15095 2017-06-26 Richard Biener <rguenther@suse.de>
15096
15097 PR tree-optimization/80928
15098 * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
15099 (copy_bbs): Set BB_DUPLICATED flag early.
15100 (execute_on_growing_pred): Do not execute for BB_DUPLICATED
15101 marked blocks.
15102 (execute_on_shrinking_pred): Likewise.
15103 * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
15104 BB_DUPLICATED blocks.
15105 * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
15106 iterate over all PHIs considering removal of *gsi.
15107
15108 2017-06-23 Jim Wilson <jim.wilson@linaro.org>
15109
15110 * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
15111 qdf24xx.
15112
15113 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
15114
15115 * config/rs6000/rs6000-string.c: (expand_block_clear,
15116 do_load_for_compare, select_block_compare_mode,
15117 compute_current_alignment, expand_block_compare,
15118 expand_strncmp_align_check, expand_strn_compare,
15119 expand_block_move, rs6000_output_load_multiple)
15120 Move functions related to string/block move/compare
15121 to a separate file.
15122 * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
15123 * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
15124 for this function which is now used in two files.
15125 * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
15126 * config.gcc: Add rs6000-string.o to extra_objs for
15127 targets powerpc*-*-* and rs6000*-*-*.
15128
15129 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
15130
15131 PR target/80510
15132 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
15133 32-bit, since indexed is not valid for DImode.
15134 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
15135 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
15136 (define_peephole2 for Altivec d-form load): Add 32-bit support.
15137 (define_peephole2 for Altivec d-form store): Likewise.
15138
15139 PR ipa/81185
15140 * multiple_target.c (create_dispatcher_calls): Only create the
15141 dispatcher call if the function is the default clone of a
15142 versioned function.
15143
15144 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
15145
15146 PR middle-end/80902
15147 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
15148 a call, force the call to not be a tail call.
15149
15150 2017-06-23 Jeff Law <law@redhat.com>
15151
15152 * doc/contrib.texi: Add entry for Steven Pemberton's work on
15153 enquire.
15154
15155 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com>
15156
15157 * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
15158 update_call_from_tree(). (rs6000_gimple_fold_builtin): Add
15159 handling for early expansion of vector shifts (sl,sr,sra,rl).
15160 (builtin_function_type): Add vector shift right instructions
15161 to the unsigned argument list.
15162
15163 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
15164
15165 rtl-optimizatoin/79286
15166 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
15167 * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
15168 trap. PIC register plus a const unspec without offset can never trap.
15169
15170 2017-06-23 Marc Glisse <marc.glisse@inria.fr>
15171
15172 * tree.h (builtin_structptr_type): New type.
15173 (builtin_structptr_types): Declare new array.
15174 * tree.c (builtin_structptr_types): New array.
15175 (free_lang_data, build_common_tree_nodes): Use it.
15176
15177 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
15178
15179 PR c++/81187
15180 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
15181 -Wnoexcept.
15182
15183 2017-06-22 Matt Turner <mattst88@gmail.com>
15184
15185 * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
15186 Lake models to skylake case. Assume skylake for unknown
15187 models with clflushopt.
15188
15189 2017-06-22 Jeff Law <law@redhat.com>
15190
15191 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
15192 frame sizes that do not satisfy aarch64_uimm12_shift.
15193
15194 2017-06-22 Jan Hubicka <hubicka@ucw.cz>
15195
15196 * profile-count.h (apply_probability,
15197 apply_scale, probability_in): Fix checks for zero.
15198
15199 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15200
15201 * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
15202 * doc/cppdiropts.texi (-I @var{dir}): Document it.
15203
15204 2016-06-22 Richard Biener <rguenther@suse.de>
15205
15206 * tree-vect-loop.c (vect_model_reduction_cost): Handle
15207 COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
15208 REDUC_MAX_EXPR support.
15209 (vectorizable_reduction): Likewise.
15210 (vect_create_epilog_for_reduction): Likewise.
15211
15212 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com>
15213
15214 * match.pd (A / (1 << B) -> A >> B): New.
15215 * generic-match-head.c: Include optabs-tree.h.
15216 * gimple-match-head.c: Likewise.
15217 * optabs-tree.h (target_supports_op_p): New.
15218 * optabs-tree.c (target_supports_op_p): New.
15219
15220 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15221
15222 * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
15223 $gcc_cv_ld --help output.
15224 (gcc_cv_ld_demangle): Likewise.
15225 (gcc_cv_ld_eh_frame_hdr): Likewise.
15226 (gcc_cv_ld_pie): Likewise.
15227 (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld.
15228 (gcc_cv_ld_buildid): Likewise.
15229 (gcc_cv_ld_sysroot): Likewise.
15230 (ld_bndplt_support): Likewise.
15231 (ld_pushpopstate_support): Likewise.
15232 * configure: Regenerate.
15233 * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
15234
15235 2017-06-21 Jakub Jelinek <jakub@redhat.com>
15236
15237 PR target/81151
15238 * config/i386/sse.md (round<mode>2): Renumber match_dup and
15239 operands indexes to avoid gap between operands and match_dups.
15240
15241 2017-06-21 Andrew Pinski <apinski@cavium.com>
15242
15243 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
15244 Increment Arith_shift and Arith_shift_reg by 1.
15245 * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
15246 New tuning flag.
15247 * config/aarch64/aarch64.c (thunderx_tunings): Enable
15248 AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
15249 (aarch64_strip_extend): Add new argument and test for it.
15250 (aarch64_cheap_mult_shift_p): New function.
15251 (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
15252 add a cost if it is true.
15253 Update calls to aarch64_strip_extend.
15254 (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
15255
15256 2017-06-21 Andrew Pinski <apinski@cavium.com>
15257
15258 * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
15259 tunings.
15260 (thunderxt88): Likewise.
15261 * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
15262 (thunderx_prefetch_tune): New variable.
15263 (thunderx2t99_prefetch_tune): Update for the correct values.
15264 (thunderxt88_tunings): New variable.
15265 (thunderx_tunings): Use thunderx_prefetch_tune instead of
15266 generic_prefetch_tune.
15267 (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
15268
15269 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15270
15271 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
15272 SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
15273 (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
15274 (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
15275 (aarch64_atomic_cas<mode>, GPI): Likewise.
15276
15277 2017-06-21 Martin Liska <mliska@suse.cz>
15278
15279 * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
15280 statements on cold and hot labels.
15281 * predict.c (tree_estimate_probability_bb): Remove the
15282 prediction from this place.
15283
15284 2017-06-21 Martin Liska <mliska@suse.cz>
15285
15286 PR tree-optimization/79489
15287 * gimplify.c (maybe_add_early_return_predict_stmt): New
15288 function.
15289 (gimplify_return_expr): Call the function.
15290 * predict.c (tree_estimate_probability_bb): Remove handling
15291 of early return.
15292 * predict.def: Update comment about early return predictor.
15293 * gimple-predict.h (is_gimple_predict): New function.
15294 * predict.def: Change default value of early return to 66.
15295 * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
15296 statements.
15297 * passes.def: Put pass_strip_predict_hints to the beginning of
15298 IPA passes.
15299
15300 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com>
15301
15302 * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
15303 FUNCTION_DECL declarations.
15304 (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
15305 declarations.
15306 (dwaf2out_decl): Likewise.
15307 * godump.c (go_early_global_decl): Skip call to the real debug hook
15308 for FUNCTION_DECL declarations.
15309 * passes.c (rest_of_decl_compilation): Skip call to the
15310 early_global_decl debug hook for FUNCTION_DECL declarations, unless
15311 -fdump-go-spec is passed.
15312
15313 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
15314
15315 * config/i386/i386.c (struct builtin_isa): New field pure_p.
15316 Reorder for compactness.
15317 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
15318 (def_builtin_pure, def_builtin_pure2): New functions.
15319 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
15320
15321 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
15322
15323 * match.pd (nop_convert): New predicate.
15324 ((A +- CST1) +- CST2): Allow some NOP conversions.
15325
15326 2017-06-21 Jakub Jelinek <jakub@redhat.com>
15327
15328 PR c++/81130
15329 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
15330 with ctors/dtors if GOVD_SHARED is set.
15331
15332 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
15333
15334 * config/aarch64/aarch64.md (movti_aarch64):
15335 Emit mov rather than orr.
15336 (movtf_aarch64): Likewise.
15337 * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
15338 Emit mov rather than orr.
15339
15340 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
15341
15342 * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
15343 Swap alternatives, make integer dup more expensive.
15344
15345 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
15346
15347 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
15348 Return true for non-tls symbols.
15349
15350 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com>
15351
15352 * config/aarch64/aarch64-cores.def (cortex-a55): New.
15353 (cortex-a75): Likewise.
15354 (cortex-a75.cortex-a55): Likewise.
15355 * config/aarch64/aarch64-tune.md: Regenerate.
15356 * doc/invoke.texi (-mtune): Document new values for -mtune.
15357
15358 2017-06-21 Tom de Vries <tom@codesourcery.com>
15359
15360 * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
15361 stack_size feature.
15362 (Effective-Target Keywords, Other attributes): Suggest using
15363 dg-add-options stack_size feature to get stack limit in stack_size
15364 effective target documentation.
15365
15366 2017-06-21 Julian Brown <julian@codesourcery.com>
15367 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
15368
15369 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
15370 (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
15371 * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
15372 reservation.
15373 * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
15374 attribute type list for neon_multiply.
15375 * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
15376 attribute type list for neon_multiply.
15377 * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
15378 * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
15379 attribute type list for neon_multiply.
15380 * config/arm/types.md (crypto_pmull): Add.
15381 * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
15382 attribute type list.
15383
15384 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org>
15385
15386 * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
15387 arm1176jzf-s.
15388
15389 2017-06-20 Jakub Jelinek <jakub@redhat.com>
15390
15391 * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
15392 to make sure not to dereference a NULL cost_classes_ptr pointer.
15393
15394 2017-06-20 Carl Love <cel@us.ibm.com>
15395
15396 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15397 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
15398 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
15399 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
15400 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
15401 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
15402 VMULOSW): New enum "unspec" values.
15403 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
15404 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
15405 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
15406 altivec_vmulosw): New patterns.
15407 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
15408 VMULOSW): Add definitions.
15409
15410 2017-06-20 Julia Koval <julia.koval@intel.com>
15411
15412 * config/i386/i386.c: Fix rounding expand for new pattern.
15413 * config/i386/subst.md: Fix pattern (parallel -> unspec).
15414
15415 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
15416
15417 * config/aarch64/aarch64-option-extensions.def (rcpc): New.
15418 * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
15419
15420 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
15421
15422 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
15423 feature string.
15424
15425 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
15426
15427 * config/aarch64/aarch64-cores.def: Rearrange to sort by
15428 architecture, then by implementer ID.
15429 * config/aarch64/aarch64-tune.md: Regenerate.
15430
15431 2017-06-20 Richard Biener <rguenther@suse.de>
15432
15433 PR middle-end/81097
15434 * fold-const.c (split_tree): Fold to type before negating.
15435
15436 2017-06-20 David Malcolm <dmalcolm@redhat.com>
15437
15438 * diagnostic-show-locus.c
15439 (selftest::test_fixit_deletion_affecting_newline): New function.
15440 (selftest::diagnostic_show_locus_c_tests): Call it.
15441
15442 2017-06-20 Andreas Schwab <schwab@suse.de>
15443
15444 PR target/80970
15445 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
15446 instead of "+d".
15447
15448 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
15449
15450 * config/arm/arm-c.c (arm_cpu_builtins): New block to define
15451 __ARM_FEATURE_COPROC according to support.
15452
15453 2017-06-20 Jakub Jelinek <jakub@redhat.com>
15454
15455 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
15456 Rewritten to avoid overflow for > 32-bit pointers.
15457
15458 PR sanitizer/81125
15459 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
15460 by removing enum keyword.
15461 (ubsan_type_descriptor): Likewise. Formatting fix.
15462
15463 PR target/81121
15464 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
15465 splitter): Require TARGET_SSE2 in the condition.
15466
15467 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
15468
15469 PR target/79799
15470 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
15471 for doing vector set of SFmode on ISA 3.0.
15472 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
15473 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
15474 element.
15475 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
15476 SFmode value into a V4SF variable that was extracted from another
15477 V4SF variable without converting the element to double precision
15478 and back to single precision vector format.
15479 (vsx_insert_extract_v4sf_p9_2): Likewise.
15480
15481 2017-06-19 Jakub Jelinek <jakub@redhat.com>
15482
15483 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
15484 in UWHI to avoid undefined overflow.
15485
15486 PR sanitizer/81125
15487 * ubsan.h (enum ubsan_encode_value_phase): New.
15488 (ubsan_encode_value): Change second argument to
15489 enum ubsan_encode_value_phase with default value of
15490 UBSAN_ENCODE_VALUE_GENERIC.
15491 * ubsan.c (ubsan_encode_value): Change second argument to
15492 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
15493 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
15494 create_tmp_var_raw instead of create_tmp_var and use a
15495 TARGET_EXPR.
15496 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
15497 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
15498 ubsan_encode_value callers.
15499
15500 PR sanitizer/81111
15501 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
15502 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
15503 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
15504
15505 2017-06-19 Richard Biener <rguenther@suse.de>
15506
15507 PR middle-end/81118
15508 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
15509 estimates if we changed anything.
15510
15511 2017-06-19 Richard Biener <rguenther@suse.de>
15512
15513 PR tree-optimization/80887
15514 * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
15515 (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
15516 simplified lookups, then reset mprts_hook.
15517 (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
15518 simplifying.
15519 (try_to_simplify): Likewise.
15520
15521 2017-06-19 Martin Liska <mliska@suse.cz>
15522
15523 PR sanitizer/80879
15524 * gimplify.c (gimplify_switch_expr):
15525 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
15526
15527 2017-06-19 Martin Liska <mliska@suse.cz>
15528
15529 * doc/install.texi: Document that PGO runs in 4 stages.
15530
15531 2017-06-19 Martin Liska <mliska@suse.cz>
15532
15533 PR ipa/80732
15534 * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
15535 to dispatcher function name.
15536 * multiple_target.c (replace_function_decl): New function.
15537 (create_dispatcher_calls): Redirect both edges and references.
15538
15539 2017-06-19 Jan Hubicka <hubicka@ucw.cz>
15540
15541 * profile-count.c (profile_count::dump): Dump quality.
15542 (profile_count::differs_from_p): Update for unsigned val.
15543 * profile-count.h (profile_count_quality): New enum.
15544 (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
15545
15546 2017-06-19 Richard Biener <rguenther@suse.de>
15547
15548 * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
15549 struct function as arg.
15550 (estimate_numbers_of_iterations): Export overload with loop arg.
15551 (free_numbers_of_iterations_estimates_loop): Use an overload of
15552 free_numbers_of_iterations_estimates instead.
15553 * tree-cfg.c (remove_bb): Adjust.
15554 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
15555 * tree-parloops.c (gen_parallel_loop): Likewise.
15556 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
15557 Likewise.
15558 (tree_unroll_loops_completely): Likewise.
15559 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
15560 Use an overload instead and export.
15561 (estimated_loop_iterations): Adjust.
15562 (max_loop_iterations): Likewise.
15563 (likely_max_loop_iterations): Likewise.
15564 (estimate_numbers_of_iterations): Take struct function as arg
15565 and adjust.
15566 (loop_exits_before_overflow): Adjust.
15567 (free_numbers_of_iterations_estimates_loop): Use an overload.
15568 * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
15569 * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
15570
15571 2017-06-19 Richard Biener <rguenther@suse.de>
15572
15573 PR ipa/81112
15574 * ipa-prop.c (find_constructor_constant_at_offset): Handle
15575 RANGE_EXPR conservatively.
15576
15577 2017-06-16 Carl Love <cel@us.ibm.com>
15578
15579 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15580 definitions for vec_float, vec_float2, vec_floato,
15581 vec_floate built-ins.
15582 * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
15583 for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
15584 floate.
15585 * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
15586 FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
15587 UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
15588 * config/altivec.md (define_insn "p8_vmrgew_<mode>",
15589 define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
15590 * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
15591 vec_floato): Add builtin defines.
15592 * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
15593 Update the built-in documentation file for the new built-in
15594 functions.
15595
15596 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15597
15598 * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
15599 (mthumb): Mark as the negative of -marm.
15600
15601 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15602
15603 * doc/invoke.texi (ARM Options, -mcpu): Document supported
15604 extension options.
15605 (ARM Options, -mtune): Document that this accepts the same
15606 extension options as -mcpu.
15607 (ARM Options, -mfpu): Document addition of -mfpu=auto.
15608
15609 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15610
15611 * doc/invoke.texi (ARM Options, -march=): Document new syntax and
15612 permitted extensions.
15613
15614 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15615
15616 * config/arm/arm-cpus.in (armv7): Add extension +nofp.
15617 (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
15618 (armv8-m.main): Add option +nodsp.
15619 * config/arm/arm-cpu-cdata.h: Regenerated.
15620
15621 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15622
15623 * config/arm/t-fuchsia: New file.
15624 * config.gcc (arm*-*-fuchsia*): Use it.
15625
15626 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15627
15628 * config/arm/t-symbian: Rewrite for new option infrastructure.
15629
15630 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15631
15632 * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
15633 (MULTILIB_REQUIRED): Likewise.
15634
15635 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15636
15637 * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
15638 (MULTILIB_RESUE): Likewise.
15639 (MULTILIB_MATCHES): Likewise.
15640 (MULTLIB_REQUIRED): Likewise.
15641
15642 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15643
15644 * config/arm/t-rtems: Rewrite for new option framework.
15645
15646 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15647
15648 * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
15649 (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
15650 (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
15651 (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
15652 * config/arm/t-multilib: ... here.
15653 (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
15654 (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for
15655 armv7-a and armv8*-a when A-profile libraries have not been built.
15656 * config/arm/t-rmprofile: Rewrite.
15657
15658 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15659
15660 * genmultilib (multilib_reuse): Allow an explicit period to be escaped
15661 with a backslash. Remove the backslash after substituting unescaped
15662 periods.
15663 * doc/fragments.texi (MULTILIB_REUSE): Document it.
15664
15665 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15666
15667 * config.gcc: (arm*-*-*): When building a-profile libraries, force
15668 the driver to pass through the default setting of -mfloat-abi.
15669 * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
15670 rather than NULL.
15671 * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
15672 (all_feat_combs): New rule.
15673 (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework
15674 default libraries.
15675 * config/arm/t-aprofile: Rewrite.
15676
15677 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15678
15679 * config/arm/arm.h (FPUTYPE_AUTO): Define.
15680 * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
15681 fpu is not specified by the user/command-line.
15682 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
15683 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
15684 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
15685 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
15686 * common/config/arm/arm-common.c (arm_canon_arch_option): Use
15687 FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
15688
15689 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15690
15691 * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
15692 * config/arm/t-arm-elf: Rewritten.
15693
15694 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15695
15696 * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
15697 have some floating-point instructions.
15698 (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
15699 (TARGET_MAYBE_HARD_FLOAT): New macro.
15700 * config/arm/arm-builtins.c (arm_init_builtins): Use
15701 TARGET_MAYBE_HARD_FLOAT.
15702 * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
15703
15704 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15705
15706 * common/config/arm/arm-common.c: Define INCLUDE_LIST.
15707 (configargs.h): Include it.
15708 (arm_print_hint_for_fpu_option): New function.
15709 (arm_parse_fpu_option): New function.
15710 (candidate_extension): New class.
15711 (arm_canon_for_multilib): New function.
15712 * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
15713 (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
15714 (ARCH_CANONICAL_SPECS): New macro.
15715 (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
15716
15717 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15718
15719 * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
15720 are set after handling multilib fragments. Set target_cpu_default2
15721 from with_cpu.
15722
15723 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15724
15725 * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
15726 cpu name.
15727 (arm*-*-*): Set target_cpu_default2 to a quoted string.
15728 * config/arm/parsecpu.awk (check_cpu): Validate any extension
15729 options.
15730 (check_arch): Likewise.
15731 * config/arm/arm.c (arm_configure_build_target): Handle
15732 TARGET_CPU_DEFAULT being a string constant. Scan any feature
15733 options in the default.
15734
15735 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15736
15737 * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
15738 when an option is an alias of another.
15739 * config/arm/parsecpu.awk (optalias): New parser token.
15740 (gen_comm_data): Mark non-alias options as such. Emit entries
15741 for extension aliases.
15742 * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
15743 (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
15744 (armv6kz, armv6zk, armv6t2): Likewise.
15745 (armv7): Make vfpv3-d16 an alias.
15746 (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in
15747 canonical order.
15748 (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
15749 Sort in canonical order.
15750 (armv8-a): Sort in canonical order.
15751 (armv8.1-a, armv8.2-a): Likewise.
15752 (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in
15753 canonical order.
15754 (cortex-a9): Sort in canonical order.
15755 * config/arm/arm.c (selftests.h): Include it.
15756 (arm_test_cpu_arch_data): New function.
15757 (arm_run_self_tests): New function.
15758 (TARGET_RUN_TARGET_SELFTESTS): Redefine.
15759 (targetm): Move declaration to the end of the file.
15760 * arm-cpu-cdata.h: Regenerated.
15761
15762 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15763
15764 * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
15765 call to target_mode_check describing the type of option passed.
15766 * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
15767 (arm_target_thumb_only): Use arm_parse_arch_option_name or
15768 arm_parse_cpu_option_name to match parameters against list of
15769 available targets.
15770 * config/arm/parsecpu.awk (gen_comm_data): Don't generate
15771 arm_arch_core_flags data structure.
15772 * config/arm/arm-cpu_cdata.h: Regenerated.
15773
15774 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15775
15776 * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
15777 config/arm/arm.c.
15778 (arm_print_hint_for_cpu_option): Likewise.
15779 (arm_print_hint_for_arch_option): Likewise.
15780 (arm_parse_cpu_option_name): Likewise.
15781 (arm_parse_arch_option_name): Likewise.
15782 * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
15783 of entries in the all_fpus list.
15784 * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
15785 (arm_parse_cpu_option_name): Declare.
15786 (arm_parse_arch_option_name): Declare.
15787 (arm_parse_option_features): Declare.
15788 (arm_intialize_isa): Declare.
15789 * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
15790 data tables to ...
15791 (gen_comm_data): ... here. Make definitions non-static.
15792 * config/arm/arm-cpu-data.h: Regenerated.
15793 * config/arm/arm-cpu-cdata.h: Regenerated.
15794
15795 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15796
15797 * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
15798 (cpu_arch_extension): New structure.
15799 (cpu_arch_option, arch_option, cpu_option): New structures.
15800 * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
15801 architecture types.
15802 (gen_data): Generate new format data tables.
15803 * config/arm/arm.c (cpu_tune): New structure.
15804 (cpu_option, processors): Delete.
15805 (arm_print_hint_for_core_or_arch): Delete. Replace with ...
15806 (arm_print_hint_for_cpu_option): ... this and ...
15807 (arm_print_hint_for_arch_option): ... this.
15808 (arm_parse_arch_cpu_name): Delete. Replace with ...
15809 (arm_parse_cpu_option_name): ... this and ...
15810 (arm_parse_arch_option_name): ... this.
15811 (arm_unrecognized_feature): Change type of target parameter to
15812 cpu_arch_option.
15813 (arm_parse_arch_cpu_features): Delete. Replace with ...
15814 (arm_parse_option_features): ... this.
15815 (arm_configure_build_target): Rework to use new configuration data
15816 tables.
15817 (arm_print_tune_info): Rework for new configuration data tables.
15818 * config/arm/arm-cpu-data.h: Regenerated.
15819 * config/arm/arm-cpu.h: Regenerated.
15820
15821 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15822
15823 * Makefile.in (OBJS): Move sbitmap.o from here ...
15824 (OBJS-libcommon): ... to here.
15825
15826 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15827
15828 * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
15829 (ISA_ALL_CRYPTO): New macro.
15830 (ISA_ALL_SIMD): New macro
15831 (ISA_ALL_FP): New macro.
15832 * config/arm/arm.c (fpu_bitlist): Update initializer.
15833 * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
15834 simd or fp.
15835 (arm9e): Add fpu. Add option for nofp
15836 (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
15837 (arm926ej-s, arm1026ej-s): Likewise.
15838 (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16,
15839 vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
15840 neon-fp16, neon-vfpv4, nofp and nosimd.
15841 (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp.
15842 (cortex-a8): Add fpu. Add option for nofp.
15843 (cortex-a9): Add fpu. Add options for nosimd and nofp.
15844 (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp.
15845 (cortex-r4f): Add fpu.
15846 (cortex-r5): Add fpu. Add options for nofp.dp and nofp.
15847 (cortex-r7): Use idiv option from architecture. Add fpu. Add option
15848 for nofp.
15849 (cortex-r8): Likewise.
15850 (cortex-m4): Add fpu. Add option for nofp.
15851 (cortex-a15.cortex-a7): Add fpu. Add option for nofp.
15852 (cortex-a17.cortex-a7): Likewise.
15853 (cortex-a32): Add fpu. Add options for crypto and nofp.
15854 (cortex-a35, cortex-a53): Likewise.
15855 (cortex-a57): Add fpu. Add option for crypto.
15856 (cortex-a72, cortex-a73): Likewise.
15857 (exynos-m1): Likewise.
15858 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
15859 (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
15860 (cortex-m33): Add fpu. Add option for nofp.
15861 * config/arm/arm-cpu-cdata.h: Regenerated
15862 * config/arm/arm-cpu-data.h: Regenerated.
15863
15864 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15865
15866 * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
15867 (armv5te, armv5tej): Likewise.
15868 (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
15869 (armv7): Add options fp and vfpv3-d16.
15870 (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
15871 vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
15872 nofp and nosimd.
15873 (armv7ve): Likewise.
15874 (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
15875 (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
15876 (armv8-a): Add nocrypto option.
15877 (armv8.1-a, armv8.2-a): Likewise.
15878 (armv8-m.main): add options fp, fp.dp and nofp.
15879
15880 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15881
15882 * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
15883 nofp.
15884 (armv8-a+crc): Delete.
15885 (armv8.1-a): Add options simd, crypto and nofp.
15886 (armv8.2-a): Add options fp16, simd, crypto and nofp.
15887 (armv8.2-a+fp16): Delete.
15888 (armv8-m.main): Add option dsp.
15889 (armv8-m.main+dsp): Delete.
15890 (cortex-a8): Add fpu. Add nofp option.
15891 (cortex-a9): Add fpu. Add nofp and nosimd options.
15892 * config/arm/parsecpu.awk (gen_data): Generate option tables and
15893 link to main cpu and architecture data structures.
15894 (gen_comm_data): Only put isa attributes from the main architecture
15895 in common tables.
15896 (option): New statement for architecture and CPU entries.
15897 * arm.c (struct cpu_option): New structure.
15898 (struct processors): Add entry for options.
15899 (arm_unrecognized_feature): New function.
15900 (arm_parse_arch_cpu_name): Ignore any characters after the first
15901 '+' character.
15902 (arm_parse_arch_cpu_feature): New function.
15903 (arm_configure_build_target): Separate out any CPU and architecture
15904 features and parse separately. Don't error out if -mfpu=auto is
15905 used with only an architecture string.
15906 (arm_print_asm_arch_directives): New function.
15907 (arm_file_start): Call it.
15908 * config/arm/arm-cpu-cdata.h: Regenerated.
15909 * config/arm/arm-cpu-data.h: Likewise.
15910 * config/arm/arm-tables.opt: Likewise.
15911
15912 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15913
15914 * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
15915 assembler when it is not -mfpu=auto.
15916
15917 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15918
15919 * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
15920 (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
15921 (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
15922 (ASM_CPU_SPEC): Rewrite.
15923 (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
15924 (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use
15925 MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove
15926 reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
15927 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
15928 copied string is NUL-terminated. Also strip any characters prefixed
15929 by '+'.
15930 (arm_rewrite_selected_arch): New function.
15931 (arm_rewrite_march): New function.
15932
15933 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
15934
15935 * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
15936 (x_arm_cpu_string, x_arm_tune_string): Likewise.
15937 (march, mcpu, mtune): Convert to string-based options.
15938 * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
15939 (arm_parse_arch_cpu_name): New function.
15940 (arm_configure_build_target): Use arm_parse_arch_cpu_name to
15941 identify selected architecture or CPU.
15942 (arm_option_save): New function.
15943 (TARGET_OPTION_SAVE): Redefine.
15944 (arm_option_restore): Restore string options.
15945 (arm_option_print): Print string options.
15946
15947 2017-06-16 Martin Sebor <msebor@redhat.com>
15948
15949 PR tree-optimization/80933
15950 PR tree-optimization/80934
15951 * builtins.c (fold_builtin_3): Do not handle bcmp here.
15952 * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
15953 (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
15954 (gimple_fold_builtin): Call them.
15955
15956 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
15957
15958 * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
15959 as unlikely; update profile.
15960
15961 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
15962
15963 * predict.c (force_edge_cold): Handle declaring edges impossible
15964 more aggresively.
15965
15966 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
15967
15968 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
15969 profile.
15970 (try_unroll_loop_completely): Fix reporting.
15971
15972 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
15973
15974 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
15975
15976 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com>
15977
15978 PR target/71778
15979 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
15980 if given a non-constant argument for an intrinsic which requires a
15981 constant.
15982
15983 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
15984
15985 * profile.c (compare_freqs): New function.
15986 (branch_prob): Sort edge list.
15987 (find_spanning_tree): Assume that the list is priority sorted.
15988
15989 2017-06-16 Richard Biener <rguenther@suse.de>
15990
15991 PR tree-optimization/81090
15992 * passes.def (pass_record_bounds): Remove.
15993 * tree-pass.h (make_pass_record_bounds): Likewise.
15994 * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
15995 make_pass_record_bounds): Likewise.
15996 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
15997 not free niter estimates at the beginning but at the end.
15998 * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
15999
16000 2017-06-16 Richard Biener <rguenther@suse.de>
16001
16002 * tree-switch-conversion.c (emit_case_bit_tests): Adjust
16003 initializer to workaround ICE in host GCC 4.8.
16004
16005 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
16006
16007 * ipa-inline-transform.c (update_noncloned_frequencies): Update also
16008 counts.
16009 (clone_inlined_nodes): Update.
16010
16011 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
16012
16013 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
16014 prefetch settings, and enable prefetching by default at -O3.
16015
16016 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
16017
16018 * config/aarch64/aarch64.c (aarch64_override_options_internal):
16019 Set flag_prefetch_loop_arrays according to tuning data.
16020
16021 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
16022
16023 * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
16024 New tune structure.
16025 (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
16026 [Unrelated to main purpose of the patch] Place the pointer field last
16027 to enable type checking errors when tune structure are wrongly merged.
16028 * config/aarch64/aarch64.c (generic_prefetch_tune,)
16029 (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
16030 (thunderx2t99_prefetch_tune): New tune constants.
16031 (tune_params *_tunings): Update all tunings (no functional change).
16032 (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
16033 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
16034 from tunings structures.
16035
16036 2017-06-16 Jakub Jelinek <jakub@redhat.com>
16037
16038 PR sanitizer/81094
16039 * ubsan.c (instrument_null): Add T argument, use it instead
16040 of computing it based on IS_LHS.
16041 (instrument_object_size): Likewise.
16042 (pass_ubsan::execute): Adjust instrument_null and
16043 instrument_object_size callers to pass gimple_get_lhs or
16044 gimple_assign_rhs1 result to it. Use instrument_null instead of
16045 calling get_base_address and instrument_mem_ref. Handle
16046 aggregate call arguments for object-size sanitization.
16047
16048 2017-06-16 Yury Gribov <tetra2005@gmail.com>
16049
16050 PR tree-optimization/81089
16051 * tree-vrp.c (is_masked_range_test): Validate operands of
16052 subexpression.
16053
16054 2017-06-15 Martin Sebor <msebor@redhat.com>
16055
16056 PR c++/80560
16057 * dumpfile.c (dump_register): Avoid calling memset to initialize
16058 a class with a default ctor.
16059 * gcc.c (struct compiler): Remove const qualification.
16060 * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
16061 * hash-table.h: Ditto.
16062 * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
16063 assignment.
16064 * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
16065 * omp-low.c (lower_omp_ordered_clauses): Replace memset with
16066 default ctor.
16067 * params.h (struct param_info): Make struct members non-const.
16068 * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
16069 with default initialization.
16070 * vec.h (vec_copy_construct, vec_default_construct): New helper
16071 functions.
16072 (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
16073 with vec_copy_construct.
16074 (vect<T>::quick_grow_cleared): Replace memset with default ctor.
16075 (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
16076 * doc/invoke.texi (-Wclass-memaccess): Document.
16077
16078 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16079
16080 * emit-rtl.h (is_leaf): Update comment about local
16081 register allocator.
16082
16083 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com>
16084
16085 PR target/78818
16086 * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
16087 for a variable to have a section before checking if the section has a
16088 name.
16089 Set section to.persistent if persistent attribute is set.
16090 Warn if .persistent attribute is used on an automatic variable.
16091
16092 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
16093
16094 PR rtl-optimization/80474
16095 * reorg.c (update_block): Do not ignore instructions in a delay slot.
16096
16097 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
16098
16099 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
16100 of REGNO.
16101
16102 2017-06-14 Maciej W. Rozycki <macro@imgtec.com>
16103
16104 * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
16105 (casesi): Emit bounds checking as RTL.
16106 (casesi_internal_mips16_<mode>): Remove bounds checking.
16107
16108 2017-06-14 Max Filippov <jcmvbkbc@gmail.com>
16109
16110 * config/xtensa/xtensa.c (xtensa_option_override): Append
16111 MASK_CONST16 to target_flags in the absence of TARGET_L32R.
16112 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
16113 xtensa_doloop_hooks): Define unconditionally.
16114 (xtensa_reorg_loops): Only call reorg_loops in the presence of
16115 TARGET_LOOPS.
16116 * config/xtensa/xtensa.h (TARGET_L32R): New definition.
16117 (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
16118 for it in xtensa_option_override.
16119 (HARD_FRAME_POINTER_IS_FRAME_POINTER,
16120 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
16121
16122 2017-06-14 Boris Kolpackov <boris@codesynthesis.com>
16123
16124 * doc/cppopts.texi: Document '-' special value to -MF.
16125
16126 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com>
16127
16128 * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
16129 (cortex_a53_fconst): Likewise.
16130 (cortex_a53_fpmul): Likewise.
16131 (cortex_a53_f_load_64): Likewise.
16132 (cortex_a53_f_load_many): Likewise.
16133 (cortex_a53_advsimd_alu): Likewise.
16134 (cortex_a53_advsimd_alu_q): Likewise.
16135 (cortex_a53_advsimd_mul): Likewise.
16136 (cortex_a53_advsimd_mul_q): Likewise.
16137 (fpmac bypass): Add new bypass for fpmac-fpmac case.
16138 Add missing fmul, r2f_cvt and fconst cases.
16139
16140 2017-06-14 Richard Biener <rguenther@suse.de>
16141
16142 PR middle-end/81088
16143 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
16144 literal constants.
16145 (fold_binary_loc): When associating do not treat pre-existing
16146 TREE_OVERFLOW on literal constants as a reason to allow
16147 TREE_OVERFLOW on associated literal constants.
16148
16149 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
16150
16151 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
16152 (MASK_FEATURES): New macro.
16153 * config/sparc/sparc.c (sparc_option_override): Remove the special
16154 handling of -mfpu and generalize it to all MASK_FEATURES switches.
16155
16156 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
16157
16158 * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
16159 a division of 0 if non-call exceptions are enabled.
16160
16161 2017-06-14 Andrew Pinski <apinski@cavium.com>
16162 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
16163
16164 PR target/71663
16165 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
16166 Improve vector initialization code gen for only variable case.
16167
16168 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
16169
16170 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
16171
16172 2017-06-14 Richard Biener <rguenther@suse.de>
16173
16174 PR tree-optimization/81083
16175 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
16176 as values.
16177
16178 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16179
16180 * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
16181 (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
16182 * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
16183 * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use.
16184 * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
16185 * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
16186
16187 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16188
16189 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
16190 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
16191
16192 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16193
16194 * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
16195
16196 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16197
16198 * config/rs6000/t-rtems: Don't handle SPE.
16199
16200 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16201
16202 * config/rs6000/t-linux: Don't handle SPE.
16203
16204 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16205
16206 * config/rs6000/eabispe.h: Delete file.
16207
16208 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16209
16210 * config/rs6000/t-spe: Delete file.
16211
16212 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16213
16214 * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
16215 (rs6000_legitimate_offset_address_p): Return false for anything in
16216 V2SImode or V2SFmode.
16217
16218 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
16219
16220 * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
16221 except V2SF and V2SI. Rearrange the vector modes, and add comments.
16222 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
16223 and V4HImode.
16224 (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
16225 (rs6000_legitimate_offset_address_p): Ditto.
16226 (rs6000_emit_move): Ditto.
16227 (rs6000_init_builtins): Remove V4HI_type_node.
16228
16229 2017-06-13 Martin Liska <mliska@suse.cz>
16230
16231 PR sanitize/78204
16232 * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
16233 (gate_asan): Likewise.
16234 * asan.h (asan_no_sanitize_address_p): Remove the function.
16235 (sanitize_flags_p): New function.
16236 * builtins.def: Fix coding style.
16237 * common.opt: Use renamed enum value.
16238 * convert.c (convert_to_integer_1): Use sanitize_flags_p.
16239 * doc/extend.texi: Document no_sanitize attribute.
16240 * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
16241 to SANITIZE_UNDEFINED_NONDEFAULT.
16242 * gcc.c (sanitize_spec_function): Use the renamed enum value.
16243 * gimple-fold.c (optimize_atomic_compare_exchange_p):
16244 Use sanitize_flags_p.
16245 * gimplify.c (gimplify_function_tree): Likewise.
16246 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
16247 * opts.c (parse_no_sanitize_attribute): New function.
16248 (common_handle_option): Use renamed enum value.
16249 * opts.h (parse_no_sanitize_attribute): Declare.
16250 * tree.c (sanitize_flags_p): New function.
16251 * tree.h: Declared here.
16252 * tsan.c: Use sanitize_flags_p.
16253 * ubsan.c (ubsan_expand_null_ifn): Likewise.
16254 (instrument_mem_ref): Likewise.
16255 (instrument_bool_enum_load): Likewise.
16256 (do_ubsan_in_current_function): Remove the function.
16257 (pass_ubsan::execute): Use sanitize_flags_p.
16258 * ubsan.h: Remove do_ubsan_in_current_function
16259 * tree-cfg.c (print_no_sanitize_attr_value): New function.
16260 (dump_function_to_file): Use it here.
16261
16262 2017-06-13 Martin Jambor <mjambor@suse.cz>
16263
16264 PR tree-optimization/80803
16265 PR tree-optimization/81063
16266 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
16267 (propagate_subaccesses_across_link): Enqueue subtree whenever
16268 necessary instead of relying on the caller.
16269
16270 2017-06-13 Martin Jambor <mjambor@suse.cz>
16271
16272 * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
16273 that have a first_link.
16274 (sort_and_splice_var_accesses): Do not check first_link before
16275 enquing.
16276 (subtree_mark_written_and_enqueue): Likewise.
16277 (propagate_all_subaccesses): Likewise and do not stop at first
16278 parent with a first_link.
16279
16280 2017-06-13 Martin Jambor <mjambor@suse.cz>
16281
16282 * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
16283 instead of f.
16284
16285 2017-06-13 Yury Gribov <tetra2005@gmail.com>
16286
16287 * match.pd: New pattern.
16288
16289 2017-06-13 Yury Gribov <tetra2005@gmail.com>
16290
16291 * tree-vrp.c (is_masked_range_test): New function.
16292 (register_edge_assert_for): Determine ranges for
16293 some bit tests.
16294
16295 2017-06-13 Yury Gribov <tetra2005@gmail.com>
16296
16297 PR tree-optimization/67328
16298 * fold-const.c (maskable_range_p): New function.
16299 (build_range_check): Generate bittests if possible.
16300
16301 2017-06-13 Martin Liska <mliska@suse.cz>
16302
16303 * gimple-pretty-print.c (dump_probability): Add new argument.
16304 (dump_edge_probability): Dump both probability and count.
16305 (dump_gimple_label): Likewise.
16306 (dump_gimple_bb_header): Likewise.
16307
16308 2017-06-13 Georg-Johann Lay <avr@gjlay.de>
16309
16310 PR target/81072
16311 * config/avr/avr-devices.c: Fix indentation.
16312 * config/avr/gen-avr-mmcu-specs.c: Dito.
16313
16314 2017-06-13 Richard Biener <rguenther@suse.de>
16315
16316 * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
16317 instead get vector type from stmt_info.
16318 (vectorizable_reduction): Adjust. Remove dead code.
16319
16320 2017-06-13 Richard Biener <rguenther@suse.de>
16321
16322 PR middle-end/81065
16323 * fold-const.c (extract_muldiv_1): Remove bogus distribution
16324 case of C * (x * C2 + C3).
16325 (fold_addr_of_array_ref_difference): Properly fold index difference.
16326
16327 2017-06-12 David S. Miller <davem@davemloft.net>
16328
16329 PR target/80968
16330 * config/sparc/sparc.md (return expander): Emit frame blockage if
16331 function uses alloca.
16332
16333 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org>
16334
16335 * combine.c (make_field_assignment): Check len rather than the mode
16336 precision when calling force_to_mode.
16337
16338 2017-06-12 Georg-Johann Lay <avr@gjlay.de>
16339
16340 Support multilibs and devices that see flash in RAM address range.
16341
16342 PR target/81072
16343 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
16344 (avr_mcu_t) <flash_pm_offset>: New field.
16345 (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
16346 * config/avr/avr.h (AVR_SHORT_CALLS): New define.
16347 (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
16348 (AVR_TINY_PM_OFFSET): Remove macro.
16349 * config/avr/avr.opt (-mshort-calls): New option.
16350 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
16351 [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
16352 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
16353 <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
16354 <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
16355 instead of avr_arch->have_jmp_call.
16356 <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
16357 [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
16358 avr_arch->flash_pm_offset to define.
16359 * config/avr/avr-devices.c (avr_arch_types): Add initializers for
16360 new field flash_pm_offset. Add entry for avrxmega3.
16361 (avr_texinfo): Add entry for avrxmega3.
16362 * config/avr/avr-mcus.def: Add entries for: avrxmega3,
16363 attiny212, attiny214,
16364 attiny412, attiny414, attiny416, attiny417,
16365 attiny814, attiny816, attiny817,
16366 attiny1614, attiny1616, attiny1617,
16367 attiny3214, attiny3216, attiny3217.
16368 * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
16369 avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
16370 (avr_print_operand_address) [AVR_TINY]: Same.
16371 (avr_asm_init_sections) <readonly_data_section>: Only patch
16372 callback if avr_arch->flash_pm_offset = 0.
16373 (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
16374 for rodata if avr_arch->flash_pm_offset != 0.
16375 (avr_encode_section_info) [AVR_TINY]: Adjust comment.
16376 * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
16377 (opts) [AVR_ISA_RCALL]: Append opt_rcall.
16378 (m_options): Append opt_rcall.
16379 (m_dirnames): Append dir_rcall.
16380 * config/avr/t-multilib: Regenerate.
16381
16382 * configure.ac [target=avr]: Check whether avrxmega3 default
16383 linker description file works as needed.
16384 * configure: Regenerate.
16385 * doc/avr-mmcu.texi: Regenerate.
16386 * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
16387 <__AVR_ARCH__>: Document avrxmega3 and 103.
16388 <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
16389 <__AVR_SHORT_CALLS__>: Document it.
16390 <__AVR_PM_BASE_ADDRESS__>: Document it.
16391 * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
16392 (AVR Variable Attributes) <progmem>: Document this is
16393 not needed for avrxmega3.
16394 (AVR Named Address Spaces) <__flash>: Dito.
16395
16396 2017-06-12 Jan Hubicka <hubicka@ucw.cz>
16397
16398 * cgraph.c (cgraph_node::dump): Complain about profile insanities.
16399
16400 2017-06-12 Doug Rupp <rupp@adacore.com>
16401
16402 * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
16403 Append vxworks-stdint.h to the tm_file list.
16404 * config/vxworks-stdint.h: New file.
16405
16406 2017-06-12 Martin Liska <mliska@suse.cz>
16407
16408 PR tree-optimization/81041
16409 * tree-profile.c (gimple_gen_ic_func_profiler):
16410 Create an extra BB in profile-generate
16411 (gimple_gen_time_profiler): Likewise.
16412
16413 2017-06-12 Jakub Jelinek <jakub@redhat.com>
16414
16415 PR tree-optimization/81003
16416 * tree-ssa-reassoc.c (force_into_ssa_name): New function.
16417 (update_range_test): Use it instead of force_gimple_operand_gsi.
16418
16419 2017-06-12 Richard Biener <rguenther@suse.de>
16420
16421 PR tree-optimization/81053
16422 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
16423 with backedge value not defined in loop. Simplify def stmt
16424 compute.
16425
16426 2017-06-11 Tom de Vries <tom@codesourcery.com>
16427
16428 PR target/79939
16429 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
16430 Return true.
16431 (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
16432 nvptx_cannot_force_const_mem.
16433
16434 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
16435
16436 * opts.c (finish_options): Move test for flag_split_stack after
16437 it has been initialized.
16438
16439 2017-06-11 Jason Merrill <jason@redhat.com>
16440
16441 * tree.h (id_equal): New.
16442 * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
16443 omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
16444 instead of strcmp of IDENTIFIER_POINTER.
16445
16446 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
16447
16448 * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
16449 (mark_all_inlined_calls_cdtor): Fix formating.
16450 (inline_transform): Rescale profile before inlining.
16451
16452 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
16453
16454 * cgraph.h (cgraph_edge::clone): Update prototype.
16455 * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
16456 (cgraph_node::create_clone): Update.
16457 (cgraph_node::create_version_clone): Update.
16458 * tree-inline.c (copy_bb): Update.
16459 (expand_call_inline): Update.
16460
16461 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
16462
16463 * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
16464 factored out from ...
16465 (rs6000_emit_prologue): ... here.
16466
16467 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
16468
16469 * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
16470 factored out from ...
16471 (rs6000_emit_prologue): ... here.
16472
16473 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
16474
16475 * predict.c (drop_profile): Also drop individual bb/edge and cgraph
16476 edge counts.
16477 (handle_missing_profiles): Fix computation of tp_first_run.
16478 (counts_to_freqs): Do not touch freqs when count is 0.
16479
16480 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
16481
16482 * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
16483 profile.
16484
16485 2017-06-10 Tom de Vries <tom@codesourcery.com>
16486
16487 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
16488 attributes): Document signal effective target.
16489
16490 2017-06-10 Tom de Vries <tom@codesourcery.com>
16491
16492 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
16493 Document effective target stack_size.
16494
16495 2017-06-09 David Malcolm <dmalcolm@redhat.com>
16496
16497 * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
16498 to the edit_context if they can be auto-applied.
16499
16500 2017-06-9 Ian Lance Taylor <iant@golang.org>
16501
16502 * opts.c (finish_options): If -fsplit-stack, disable implicit
16503 -forder-blocks-and-partition.
16504 * doc/invoke.texi (Optimize Options): Document that when using
16505 -fsplit-stack -forder-blocks-and-partition is not implicitly
16506 enabled.
16507
16508 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
16509
16510 * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
16511 ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
16512 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
16513 * builtins.def (abort, trap, unreachable): Declare cold.
16514 * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
16515 * tree-core.h (ECF_COLD): New.
16516 * tree.c (set_call_expr_flags): Handle ECF_COLD.
16517 (build_common_builtin_nodes): Mark unreachable and abort as cold.
16518
16519 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
16520
16521 * predict.c (unlikely_executed_stmt_p): Cleanup.
16522
16523 2017-06-09 Richard Biener <rguenther@suse.de>
16524
16525 * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
16526 model if the ref is always written to.
16527
16528 2017-06-09 Tamar Christina <tamar.christina@arm.com>
16529
16530 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
16531
16532 2017-06-09 Tamar Christina <tamar.christina@arm.com>
16533
16534 * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
16535 than udiv.
16536
16537 2017-06-09 Tom de Vries <tom@codesourcery.com>
16538
16539 PR target/80855
16540 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
16541 "target cannot support label values" when encountering LABEL_REF.
16542
16543 2017-06-09 Martin Liska <mliska@suse.cz>
16544
16545 * tree-profile.c (gimple_gen_ic_profiler): Update comment.
16546 (gimple_gen_ic_func_profiler): Emit direct comparison
16547 of __gcov_indirect_call_callee with NULL.
16548 (gimple_gen_time_profiler): Change probability from
16549 PROB_VERY_UNLIKELY to PROB_UNLIKELY.
16550
16551 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
16552
16553 * profile.c (edge_gcov_counts): Turn to pointer.
16554 (compute_branch_probabilities, compute_branch_probabilities): Update.
16555 (branch_prob): Do not clear edge_gcov_count.
16556 * profile.h (edge_gcov_counts): Turn to pointer.
16557 (edge_gcov_count): Update.
16558
16559 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
16560
16561 * gimple.h (gimple_check_failed): Mark cold.
16562
16563 2017-06-09 Richard Biener <rguenther@suse.de>
16564
16565 PR tree-optimization/66623
16566 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
16567 refactor check_reduction into two parts, properly computing
16568 whether we have to check reduction validity for outer loop
16569 vectorization.
16570
16571 2017-06-09 Richard Biener <rguenther@suse.de>
16572
16573 PR tree-optimization/79483
16574 * graphite-scop-detection.c (order): New global.
16575 (get_order): Compute bb to order mapping that satisfies code
16576 generation constraints.
16577 (cmp_pbbs): New helper.
16578 (build_scops): Start domwalk at entry block, sort generated
16579 pbbs.
16580
16581 2017-06-09 Richard Biener <rguenther@suse.de>
16582
16583 PR middle-end/81007
16584 * ipa-polymorphic-call.c
16585 (ipa_polymorphic_call_context::restrict_to_inner_class):
16586 Skip FIELD_DECLs with error_mark_node type.
16587 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
16588 last again.
16589
16590 2017-06-09 Martin Liska <mliska@suse.cz>
16591
16592 * predict.c (struct branch_predictor): New struct.
16593 (test_prediction_value_range): New test.
16594 (predict_c_tests): New function.
16595 * selftest-run-tests.c (selftest::run_tests): Run the function.
16596 * selftest.h: Declare new tests.
16597
16598 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
16599
16600 PR target/80966
16601 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
16602 gen_add3_insn did not fail.
16603 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
16604 r0, construct that number in a temporary reg and add that reg to r0.
16605 If asked to put the result in r0 as well, fail.
16606
16607 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com>
16608
16609 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
16610 for early expansion of vec_eqv.
16611
16612 2017-06-08 Jakub Jelinek <jakub@redhat.com>
16613
16614 PR middle-end/81005
16615 * ubsan.c (instrument_null): Avoid pointless code temporary.
16616 (pass_ubsan::execute): Instrument aggregate arguments of calls.
16617
16618 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
16619
16620 PR target/81015
16621 Revert:
16622 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
16623
16624 PR target/59874
16625 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
16626 (*clzhi2): Ditto.
16627
16628 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16629
16630 * predict.c (unlikely_executed_edge_p): Move ahead.
16631 (probably_never_executed_edge_p): Use it.
16632
16633 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
16634
16635 PR middle-end/79988
16636 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
16637 gimple_call_builtin_p call.
16638
16639 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16640
16641 * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
16642 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
16643 rtl_check_failed_type2, rtl_check_failed_code1,
16644 rtl_check_failed_code2, rtl_check_failed_code_mode,
16645 rtl_check_failed_block_symbol, cwi_check_failed_bounds,
16646 rtvec_check_failed_bounds, rtl_check_failed_flag,
16647 _fatal_insn_not_found, _fatal_insn): Likewise.
16648 * tree.h (tree_contains_struct_check_failed,
16649 tree_check_failed, tree_not_check_failed,
16650 tree_class_check_failed, tree_range_check_failed,
16651 tree_not_class_check_failed, tree_int_cst_elt_check_failed,
16652 tree_vec_elt_check_failed, phi_node_elt_check_failed,
16653 tree_operand_check_failed, omp_clause_check_failed,
16654 omp_clause_operand_check_failed, omp_clause_range_check_failed):
16655 Likewise.
16656
16657 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16658
16659 * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
16660 flag_branch_probabilities.
16661 * ipa-inline.c (edge_badness): Likewise.
16662 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
16663 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
16664 * predict.c (maybe_hot_frequency_p): Likewise.
16665 (probably_never_executed): Likewise.
16666 * sched-ebb.c (schedule_ebbs): Likewise.
16667 * sched-rgn.c (find_single_block_region): Likewise.
16668 * tracer.c (tail_duplicate): Likewise.
16669
16670 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16671
16672 * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
16673 longer requires x_flag_profile_use.
16674
16675 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16676
16677 * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
16678 instead of flag_reorder_blocks_and_partition.
16679 * dbxout.c (dbxout_function_end): Likewise.
16680 * dwarf2out.c (gen_subprogram_die): Likewise.
16681 * haifa-sched.c (sched_create_recovery_edges): Likewise.
16682 * hw-doloop.c (reorg_loops): Likewise.
16683 * varasm.c (assemble_start_function,
16684 assemble_end_function): Likewise.
16685 (decide_function_section): Do not check for
16686 flag_reorder_blocks_and_partition.
16687
16688 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
16689
16690 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
16691 New function.
16692 (chkp_get_hard_register_fake_addr_expr): Ditto.
16693 (chkp_build_addr_expr): Add check for hard reg case.
16694 (chkp_parse_array_and_component_ref): Ditto.
16695 (chkp_find_bounds_1): Ditto.
16696 (chkp_process_stmt): Don't generate bounds store for
16697 hard reg case.
16698
16699 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16700
16701 * predict.c (maybe_hot_bb_p): Do not check profile status.
16702 (maybe_hot_edge_p): Likewise.
16703 (probably_never_executed): Check for zero counts even if profile
16704 is not read.
16705 (unlikely_executed_edge_p): New function.
16706 (unlikely_executed_stmt_p): New function.
16707 (unlikely_executed_bb_p): New function.
16708 (set_even_probabilities): Use unlikely predicates.
16709 (combine_predictions_for_bb): Likewise.
16710 (predict_paths_for_bb): Likewise.
16711 (predict_paths_leading_to_edge): Likewise.
16712 (determine_unlikely_bbs): New function.
16713 (estimate_bb_frequencies): Use it.
16714 (compute_function_frequency): Use zero counts even if profile is
16715 not read.
16716 * profile-count.h: Fix typo.
16717
16718 2017-08-08 Julia Koval <julia.koval@intel.com>
16719
16720 * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
16721 _mm512_mask_cvtsepi16_storeu_epi8,
16722 _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
16723 * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
16724 _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
16725 _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
16726 _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
16727 * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
16728 (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
16729 VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
16730 * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
16731 __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
16732 __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
16733 __builtin_ia32_pmovuswb256mem_mask,
16734 __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
16735 __builtin_ia32_pmovwb512mem_mask): New builtins.
16736
16737 2017-08-08 Julia Koval <julia.koval@intel.com>
16738
16739 PR target/73350,80862
16740 * config/i386/subst.md (round): Fix round pattern.
16741 * config/i386/i386.c (ix86_erase_embedded_rounding):
16742 Fix erasing rounding for the fixed pattern.
16743
16744 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
16745
16746 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
16747
16748 2017-06-08 Martin Liska <mliska@suse.cz>
16749
16750 PR gcov-profile/80911
16751 * gcov.c (block_info::block_info): New constructor.
16752
16753 2017-06-07 Carl Love <cel@us.ibm.com>
16754
16755 * config/rs6000/rs6000-c: The return type of the following
16756 built-in functions was implemented as int not long long. Fix sign
16757 of return value for the unsigned version of vec_mulo and vec_mule.
16758 vector unsigned long long vec_bperm (vector unsigned long long,
16759 vector unsigned char)
16760 vector signed long long vec_mule (vector signed int,
16761 vector signed int)
16762 vector unsigned long long vec_mule (vector unsigned int,
16763 vector unsigned int)
16764 vector signed long long vec_mulo (vector signed int,
16765 vector signed int)
16766 vector unsigned long long vec_mulo (vector unsigned int,
16767 vector unsigned int)
16768 * doc/extend.texi: Fix the documentation for the built-in
16769 functions.
16770
16771 2017-06-07 Carl Love <cel@us.ibm.com>
16772
16773 PR target/80982
16774 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
16775 for BE.
16776
16777 2017-06-07 Carl Love <cel@us.ibm.com>
16778
16779 * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
16780 support, Generate doublehv for signed int/float for BE case only.
16781
16782 2017-06-07 Alexander Monakov <amonakov@ispras.ru>
16783
16784 * doc/invoke.texi (mcx16): Rewrite.
16785
16786 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16787
16788 * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
16789 * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
16790 *mov<mode>_softfloat, and an anonymous splitter): Use
16791 nonimmediate_operand instead of rs6000_nonimmediate_operand.
16792
16793 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16794
16795 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
16796 SPEFSCR registers.
16797 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
16798 (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
16799 (rs6000_debug_reg_global): Adjust.
16800 (rs6000_init_hard_regno_mode_ok): Adjust.
16801 (rs6000_dbx_register_number): Adjust.
16802 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
16803 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
16804 Remove SPE_ACC and SPEFSCR.
16805 (REG_ALLOC_ORDER): Ditto.
16806 (FRAME_POINTER_REGNUM): Change to 111.
16807 (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
16808 (REG_CLASS_NAMES): Ditto.
16809 (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
16810 (REGISTER_NAMES): Ditto.
16811 (ADDITIONAL_REG_NAMES): Ditto.
16812 (rs6000_reg_names): Ditto.
16813 * config/rs6000/rs6000.md: Renumber some register number
16814 define_constants.
16815
16816 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16817
16818 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
16819 registers.
16820 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
16821 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
16822 to 117.
16823 (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
16824 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
16825 Delete the SPE high registers.
16826 (REG_ALLOC_ORDER): Ditto.
16827 (enum reg_class): Remove SPE_HIGH_REGS.
16828 (REG_CLASS_NAMES): Ditto.
16829 (REG_CLASS_CONTENTS): Delete the SPE high registers.
16830 (REGISTER_NAMES): Ditto.
16831 (rs6000_reg_names): Ditto.
16832 * doc/tm.texi.in: Remove SPE as example.
16833 * doc/tm.texi: Regenerate.
16834
16835 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16836
16837 * config/rs6000/8540.md (ppc8540_brinc): Delete.
16838 * config/rs6000/e500mc.md (e500mc_brinc): Delete.
16839 * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
16840 * config/rs6000/rs6000.md (type): Remove "brinc".
16841
16842 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16843
16844 * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
16845 (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
16846 * config/rs6000/linuxspe.h: Delete file.
16847 * config/rs6000/rs6000.md: Don't include spe.md.
16848 * config/rs6000/spe.h: Delete file.
16849 * config/rs6000/spe.md: Delete file.
16850 * config/rs6000/t-rs6000: Remove spe.md.
16851
16852 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16853
16854 * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
16855 (reg_or_none500mem_operand): Delete.
16856 * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
16857 instead of reg_or_none500mem_operand.
16858
16859 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16860
16861 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
16862 handling of SPE flags.
16863 * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
16864
16865 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16866
16867 * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
16868 SPE ABI handling.
16869 * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
16870 (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
16871 paired_divv2sf3): Similar.
16872 * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
16873 SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
16874 * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
16875 RS6000_BUILTIN_S.
16876 Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
16877 Rename the paired_* instruction patterns.
16878 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
16879 define __SPE__.
16880 * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
16881 * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
16882 (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
16883 spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and
16884 TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with
16885 PAIRED_VECTOR_MODE.
16886 (struct machine_function): Delete field spe_insn_chain_scanned_p.
16887 (spe_func_has_64bit_regs_p): Delete.
16888 (spe_expand_predicate_builtin): Delete.
16889 (spe_expand_evsel_builtin): Delete.
16890 (TARGET_DWARF_REGISTER_SPAN): Do not define.
16891 (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
16892 (invalid_e500_subreg): Delete.
16893 (rs6000_legitimize_address): Always force_reg op2 as well, for
16894 paired single memory accesses.
16895 (rs6000_member_type_forces_blk): Delete.
16896 (rs6000_spe_function_arg): Delete.
16897 (rs6000_expand_unop_builtin): Delete SPE handling.
16898 (rs6000_expand_binop_builtin): Ditto.
16899 (spe_expand_stv_builtin): Delete.
16900 (bdesc_2arg_spe): Delete.
16901 (spe_expand_builtin): Delete.
16902 (spe_expand_predicate_builtin): Delete.
16903 (spe_expand_evsel_builtin): Delete.
16904 (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
16905 (spe_init_builtins): Delete.
16906 (spe_func_has_64bit_regs_p): Delete.
16907 (savres_routine_name): Delete "info" parameter. Adjust callers.
16908 (rs6000_emit_stack_reset): Ditto.
16909 (rs6000_dwarf_register_span): Delete.
16910 * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
16911 UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
16912 SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
16913 Delete.
16914 * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
16915 Delete.
16916 * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
16917 * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
16918 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
16919 mulv2sf3, divv2sf3): Delete expanders.
16920
16921 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16922
16923 config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
16924
16925 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16926
16927 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
16928 * config/rs6000/rs6000.c: Ditto.
16929
16930 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16931
16932 * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
16933 * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
16934 comparison_operator.
16935
16936 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16937
16938 * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
16939 * config/rs6000/rs6000.opt: Ditto.
16940 * config/rs6000/t-rtems: Ditto.
16941
16942 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16943
16944 * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
16945 TARGET_E500_SINGLE by 0, simplify.
16946 * config/rs6000/rs6000.c: Ditto.
16947 (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
16948 (spe_build_register_parallel): Delete.
16949 * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
16950 TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
16951 * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
16952 TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
16953 (E500_CONVERT): Delete.
16954 * config/rs6000/spe.md: Remove many patterns and all define_constants.
16955
16956 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
16957
16958 * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
16959 * config/rs6000/dfp.md: Ditto.
16960 (negdd2, *negdd2_fpr): Merge.
16961 (absdd2, *absdd2_fpr): Merge.
16962 (negtd2, *negtd2_fpr): Merge.
16963 (abstd2, *abstd2_fpr): Merge.
16964 * config/rs6000/e500.h: Delete file.
16965 * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
16966 TARGET_FPRS by 1 and simplify.
16967 * config/rs6000/rs6000-c.c: Ditto.
16968 * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and
16969 TARGET_DF_SPE by 0.
16970 * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and
16971 TARGET_DF_SPE.
16972 * config/rs6000/rs6000.md: Ditto.
16973 (floatdidf2, *floatdidf2_fpr): Merge.
16974 (move_from_CR_gt_bit): Delete.
16975 * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
16976 (E500_CR_IOR_COMPARE): Delete.
16977 (All patterns that require !TARGET_FPRS): Delete.
16978 * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
16979
16980 2017-06-07 Bin Cheng <bin.cheng@arm.com>
16981
16982 * passes.def (pass_iv_canon): Move before pass_loop_distribution.
16983
16984 2017-06-07 Bin Cheng <bin.cheng@arm.com>
16985
16986 * graphds.c (add_edge): Intitialize edge's attached data.
16987 (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
16988 pointer parameter. Call pointed function on each edge during
16989 graph traversing. Skip traversing the edge when the function
16990 returns true.
16991 (graphds_dfs, graphds_scc): Ditto.
16992 (for_each_edge): New parameter. Pass the new parameter to callback
16993 function.
16994 * graphds.h (skip_edge_callback): New function pointer type.
16995 (graphds_dfs, graphds_scc): New function pointer parameter.
16996 (graphds_edge_callback, for_each_edge): New parameter.
16997
16998 2017-06-07 Bin Cheng <bin.cheng@arm.com>
16999
17000 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
17001 out code checking if runtime alias check is possible to below ...
17002 Call the new function.
17003 * tree-data-ref.c (runtime_alias_check_p): ... to new function.
17004 * tree-data-ref.h (runtime_alias_check_p): New decalaration.
17005
17006 2017-06-07 Marek Polacek <polacek@redhat.com>
17007
17008 PR sanitizer/80932
17009 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
17010 TYPE_OVERFLOW_WRAPS check.
17011
17012 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17013
17014 * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
17015 if versioning is required.
17016 * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
17017 peeling with the check for versioning.
17018
17019 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17020
17021 * tree-vectorizer.h (vect_build_loop_niters): New parameter.
17022 * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
17023 Set true to new parameter if new ssa variable is defined.
17024 (vect_gen_vector_loop_niters): Refactor. Set range information
17025 for the new vector loop bound variable.
17026 (vect_do_peeling): Ditto.
17027
17028 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17029
17030 * tree-affine.c (ssa.h): Include header file.
17031 (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
17032 has wrapping overflow behavior.
17033
17034 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17035
17036 * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
17037
17038 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17039
17040 (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
17041 (tree_to_aff_combination): ... here.
17042
17043 2017-06-07 Bin Cheng <bin.cheng@arm.com>
17044
17045 * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
17046 reg_pressure model function.
17047 (ivopts_global_cost_for_size): Delete.
17048 (determine_set_costs, iv_ca_recount_cost): Call new model function
17049 ivopts_estimate_reg_pressure.
17050
17051 2017-06-07 Tamar Christina <tamar.christina@arm.com>
17052
17053 * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
17054 expensive than udiv. Remove floating point cases from mod.
17055
17056 2017-06-07 Tamar Christina <tamar.christina@arm.com>
17057
17058 * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
17059 Increase idiv cost.
17060
17061 2017-06-07 Tamar Christina <tamar.christina@arm.com>
17062
17063 * config/aarch64/aarch64.md
17064 (copysignsf3): Fix mask generation.
17065
17066 2017-06-07 Jakub Jelinek <jakub@redhat.com>
17067
17068 * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
17069 TDI_gimple.
17070 (class dump_manager): Add register_dumps method.
17071 * dumpfile.c: Include langhooks.h.
17072 (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
17073 (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
17074 (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
17075 (dump_manager::dump_register): Start with 512 entries instead of 32.
17076 (dump_manager::register_dumps): New method.
17077 * toplev.c (general_init): Instead of invoking register_dumps
17078 langhook, invoke register_dumps method on the dump manager.
17079 * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
17080 TDI_generic.
17081
17082 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org>
17083
17084 * doc/md.texi: Clarify the restrictions on a define_insn condition.
17085 Say that # requires an associated define_split to exist, and that
17086 the define_split must be suitable for use after register allocation.
17087
17088 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
17089
17090 * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
17091 (compute_outgoing_frequencies): Also initialize zero counts.
17092 (find_many_sub_basic_blocks): Do not produce uninitialized profile
17093 around loops; preserve more of profile when nothing changes.
17094
17095 2017-06-06 Jim Wilson <jim.wilson@linaro.org>
17096
17097 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
17098 here.
17099 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
17100 * config/arm/arm-cpu-cdata.h: Regenerate.
17101 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
17102 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
17103 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
17104 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
17105 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
17106 support.
17107 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
17108 support.
17109 * config/arm/t-rmprofile: Likewise.
17110 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
17111
17112 2017-06-06 David S. Miller <davem@davemloft.net>
17113
17114 PR target/80968
17115 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
17116 blockage if function uses alloca.
17117
17118 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17119
17120 * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
17121 New "uid" fields to hold pretty-print IDs of group and ref.
17122 Memory references are now identified as <group_id>:<ref_id>
17123 instead of using [random] addresses.
17124 (dump_mem_details): Simplify, no functional change.
17125 (dump_mem_ref): Simplify and make output more concise.
17126 Replace couple of fprintf's throughout code with calls to dump_mem_ref.
17127 (find_or_create_group): Initialize group uid.
17128 (record_ref): Initialize ref uid. Improve debug output.
17129 (prune_group_by_reuse, should_issue_prefetch_p,)
17130 (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
17131 (mark_nontemporal_store, determine_loop_nest_reuse):
17132 Improve debug output.
17133
17134 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17135
17136 * dbgcnt.def (prefetch): New debug counter.
17137 * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
17138 (schedule_prefetches): Stop issueing prefetches if debug counter
17139 tripped.
17140
17141 2017-06-06 Tom de Vries <tom@codesourcery.com>
17142
17143 * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
17144 gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
17145
17146 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17147
17148 * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
17149 Use aarch64_reg_or_zero predicate for operand 4.
17150 (aarch64_compare_and_swap<mode> define_insn_and_split):
17151 Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint.
17152 (aarch64_store_exclusive<mode>): Likewise for operand 2.
17153
17154 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
17155
17156 * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
17157 (arm_compute_save_core_reg_mask): This.
17158 (thumb1_compute_save_reg_mask): Rename into ...
17159 (thumb1_compute_save_core_reg_mask): This.
17160 (arm_compute_save_reg0_reg12_mask): Adapt comment.
17161 (arm_compute_frame_layout): Likewise.
17162
17163 2017-06-06 Richard Biener <rguenther@suse.de>
17164
17165 PR tree-optimization/80974
17166 * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
17167 keep or clear leaders SSA info.
17168
17169 2017-06-06 Tom de Vries <tom@codesourcery.com>
17170
17171 * config/nvptx/nvptx.c (split_mode_p): New function.
17172 (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
17173
17174 2017-06-06 Tom de Vries <tom@codesourcery.com>
17175
17176 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
17177
17178 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
17179
17180 PR bootstrap/80978
17181 * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
17182 profile.
17183
17184 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
17185
17186 * shrink-wrap.c (handle_simple_exit): Update profile.
17187 (try_shrink_wrapping): Upate profile.
17188
17189 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
17190
17191 * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
17192 (tree_guess_outgoing_edge_probabilities): New.
17193 * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
17194 * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
17195
17196 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
17197
17198 * ipa-split.c (split_function): Initialize return bb profile.
17199
17200 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
17201
17202 * profile.c (compute_branch_probabilities): Also initialize
17203 EXIT_BLOCK profile.
17204
17205 2017-06-06 Richard Biener <rguenther@suse.de>
17206
17207 PR tree-optimization/80928
17208 * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
17209 (vect_analyze_loop_operations): Properly guard analysis for
17210 pure SLP case.
17211 (vect_transform_loop): Likewise.
17212 (vect_analyze_loop_2): Also reset SLP type on PHIs.
17213 (vect_model_induction_cost): Do not cost for pure SLP.
17214 (vectorizable_induction): Pass in SLP node, implement SLP vectorization
17215 of induction in inner loop vectorization.
17216 * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
17217 (vect_get_and_check_slp_defs): Handle vect_induction_def.
17218 (vect_build_slp_tree): Likewise. Handle PHIs as terminating the
17219 recursion.
17220 (vect_analyze_slp_cost_1): Cost induction.
17221 (vect_detect_hybrid_slp_stmts): Handle PHIs.
17222 (vect_get_slp_vect_defs): Likewise.
17223 * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
17224 (vect_transform_stmt): Handle SLP reductions.
17225 * tree-vectorizer.h (vectorizable_induction): Adjust.
17226
17227 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
17228
17229 * config/rs6000/rs6000.c (make_resolver_func): Update
17230 init_lowered_empty_function call.
17231
17232 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
17233
17234 * doc/invoke.texi: Document the -fprofile-abs-path option.
17235 * common.opt (fprofile-abs-path): New option.
17236 * gcov-io.h (gcov_write_filename): Declare.
17237 * gcov-io.c (gcov_write_filename): New function.
17238 * coverage.c (coverage_begin_function): Use gcov_write_filename.
17239 * profile.c (output_location): Likewise.
17240
17241 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
17242
17243 * shring-wrap.c: Revert accidental commit.
17244
17245 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
17246
17247 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
17248
17249 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
17250
17251 * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
17252 new edge.
17253 * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
17254 profile in callgraph edge.
17255 * profile-count.h (apply_probability): If THIS is 0, then result is 0
17256 (apply_scale): Likewise.
17257 * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
17258 Also scale profile when inlining function with zero profile.
17259 (initialize_cfun): Update exit block profile even when it is zero.
17260 * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
17261 when profile is read.
17262
17263 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
17264
17265 * config/rs6000/rs6000.c (toplevel): Include attribs.h.
17266 (CLONE_*): New constants to define the processors we can generate
17267 code for with the target_clone attribute.
17268 (rs6000_clone_map): New array to identify which clone processors
17269 the current program is running on.
17270 (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
17271 target_clone attribute.
17272 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
17273 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
17274 (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
17275 (cpu_expand_builtin): Add support for target_clone attribute.
17276 (rs6000_valid_attribute_p): Allow "default" attribute.
17277 (get_decl_name): New debug function to simplify printing the
17278 current function name in debugging statements.
17279 (rs6000_clone_priority): New functions to support the target_clone
17280 attribute, and be able to generate code to switch between ISA 2.05
17281 through ISA 3.0 (power6 through power9).
17282 (rs6000_compare_version_priority): Likewise.
17283 (rs6000_get_function_versions_dispatcher): Likewise.
17284 (make_resolver_func): Likewise.
17285 (add_condition_to_bb): Likewise.
17286 (dispatch_function_versions): Likewise.
17287 (rs6000_generate_version_dispatcher_body): Likewise.
17288 (rs6000_can_inline_p): Call get_decl_name for debugging usage.
17289 (fusion_gpr_load_p): Fix a spacing issue.
17290 * doc/extend.texi (Common Function Attributes): Document that the
17291 PowerPC supports the target_clone attribute.
17292
17293 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
17294
17295 * config/arm/arm.h: explain F symbol found in description of ARM
17296 register allocation in its legend.
17297
17298 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
17299
17300 * config/mips/frame-header-opt.c: Include profile-count.h.
17301 * config/riscv/riscv.c: Include profile-count.h
17302
17303 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
17304
17305 * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
17306 update profile.
17307 (sm_set_flag_if_changed): Add bbs field.
17308 (execute_sm_if_changed_flag_set): Pass BBS.
17309 (execute_sm): Update.
17310
17311 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17312
17313 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
17314 New pattern.
17315
17316 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17317
17318 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
17319 (peephole2): New peephole2 to emit the above.
17320 * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
17321
17322 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17323
17324 * config/aarch64/aarch64.c (define_peephole2 above
17325 *sub_<shift>_<mode>): New peephole.
17326
17327 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
17328
17329 * config/i386/i386.c (make_resolver_func): Update.
17330 * Makefile.in: Add profile-count.h and profile-count.o
17331 * auto-profile.c (afdo_indirect_call): Update to new API.
17332 (afdo_set_bb_count): Update.
17333 (afdo_propagate_edge): Update.
17334 (afdo_propagate_circuit): Update.
17335 (afdo_calculate_branch_prob): Update.
17336 (afdo_annotate_cfg): Update.
17337 * basic-block.h: Include profile-count.h
17338 (struct edge_def): Turn count to profile_count.
17339 (struct basic_block_def): Likewie.
17340 (REG_BR_PROB_BASE): Move to profile-count.h
17341 (RDIV): Move to profile-count.h
17342 * bb-reorder.c (max_entry_count): Turn to profile_count.
17343 (find_traces): Update.
17344 (rotate_loop):Update.
17345 (connect_traces):Update.
17346 (sanitize_hot_paths):Update.
17347 * bt-load.c (migrate_btr_defs): Update.
17348 * cfg.c (RDIV): Remove.
17349 (init_flow): Use alloc_block.
17350 (alloc_block): Uninitialize count.
17351 (unchecked_make_edge): Uninitialize count.
17352 (check_bb_profile): Update.
17353 (dump_edge_info): Update.
17354 (dump_bb_info): Update.
17355 (update_bb_profile_for_threading): Update.
17356 (scale_bbs_frequencies_int): Update.
17357 (scale_bbs_frequencies_gcov_type): Update.
17358 (scale_bbs_frequencies_profile_count): New.
17359 * cfg.h (update_bb_profile_for_threading): Update.
17360 (scale_bbs_frequencies_profile_count): Declare.
17361 * cfgbuild.c (compute_outgoing_frequencies): Update.
17362 (find_many_sub_basic_blocks): Update.
17363 * cfgcleanup.c (try_forward_edges): Update.
17364 (try_crossjump_to_edge): Update.
17365 * cfgexpand.c (expand_gimple_tailcall): Update.
17366 (construct_exit_block): Update.
17367 * cfghooks.c (verify_flow_info): Update.
17368 (dump_bb_for_graph): Update.
17369 (split_edge): Update.
17370 (make_forwarder_block): Update.
17371 (duplicate_block): Update.
17372 (account_profile_record): Update.
17373 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
17374 (get_estimated_loop_iterations): Update.
17375 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
17376 (single_likely_exit): Update.
17377 * cfgloopmanip.c (scale_loop_profile): Update.
17378 (loopify): Update.
17379 (set_zero_probability): Update.
17380 (lv_adjust_loop_entry_edge): Update.
17381 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
17382 (purge_dead_edges): Update.
17383 (rtl_account_profile_record): Update.
17384 * cgraph.c (cgraph_node::create): Uninitialize count.
17385 (symbol_table::create_edge): Uninitialize count.
17386 (cgraph_update_edges_for_call_stmt_node): Update.
17387 (cgraph_edge::dump_edge_flags): Update.
17388 (cgraph_node::dump): Update.
17389 (cgraph_edge::maybe_hot_p): Update.
17390 * cgraph.h: Include profile-count.h
17391 (create_clone), create_edge, create_indirect_edge): Update.
17392 (cgraph_node): Turn count to profile_count.
17393 (cgraph_edge0: Likewise.
17394 (make_speculative, clone): Update.
17395 (create_edge): Update.
17396 (init_lowered_empty_function): Update.
17397 * cgraphclones.c (cgraph_edge::clone): Update.
17398 (duplicate_thunk_for_node): Update.
17399 (cgraph_node::create_clone): Update.
17400 * cgraphunit.c (cgraph_node::analyze): Update.
17401 (cgraph_node::expand_thunk): Update.
17402 * final.c (dump_basic_block_info): Update.
17403 * gimple-streamer-in.c (input_bb): Update.
17404 * gimple-streamer-out.c (output_bb): Update.
17405 * graphite.c (print_global_statistics): Update.
17406 (print_graphite_scop_statistics): Update.
17407 * hsa-brig.c: Include basic-block.h.
17408 * hsa-dump.c: Include basic-block.h.
17409 * hsa-gen.c (T sum_slice): Update.
17410 (convert_switch_statements):Update.
17411 * hsa-regalloc.c: Include basic-block.h.
17412 * ipa-chkp.c (chkp_produce_thunks): Update.
17413 * ipa-cp.c (struct caller_statistics): Update.
17414 (init_caller_stats): Update.
17415 (gather_caller_stats): Update.
17416 (ipcp_cloning_candidate_p): Update.
17417 (good_cloning_opportunity_p): Update.
17418 (get_info_about_necessary_edges): Update.
17419 (dump_profile_updates): Update.
17420 (update_profiling_info): Update.
17421 (update_specialized_profile): Update.
17422 (perhaps_add_new_callers): Update.
17423 (decide_about_value): Update.
17424 (ipa_cp_c_finalize): Update.
17425 * ipa-devirt.c (struct odr_type_warn_count): Update.
17426 (struct decl_warn_count): Update.
17427 (struct final_warning_record): Update.
17428 (possible_polymorphic_call_targets): Update.
17429 (ipa_devirt): Update.
17430 * ipa-fnsummary.c (redirect_to_unreachable): Update.
17431 * ipa-icf.c (sem_function::merge): Update.
17432 * ipa-inline-analysis.c (do_estimate_edge_time): Update.
17433 * ipa-inline.c (compute_uninlined_call_time): Update.
17434 (compute_inlined_call_time): Update.
17435 (want_inline_small_function_p): Update.
17436 (want_inline_self_recursive_call_p): Update.
17437 (edge_badness): Update.
17438 (lookup_recursive_calls): Update.
17439 (recursive_inlining): Update.
17440 (inline_small_functions): Update.
17441 (dump_overall_stats): Update.
17442 (dump_inline_stats): Update.
17443 * ipa-profile.c (ipa_profile_generate_summary): Update.
17444 (ipa_propagate_frequency): Update.
17445 (ipa_profile): Update.
17446 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
17447 * ipa-utils.c (ipa_merge_profiles): Update.
17448 * loop-doloop.c (doloop_modify): Update.
17449 * loop-unroll.c (report_unroll): Update.
17450 (unroll_loop_runtime_iterations): Update.
17451 * lto-cgraph.c (lto_output_edge): Update.
17452 (lto_output_node): Update.
17453 (input_node): Update.
17454 (input_edge): Update.
17455 (merge_profile_summaries): Update.
17456 * lto-streamer-in.c (input_cfg): Update.
17457 * lto-streamer-out.c (output_cfg): Update.
17458 * mcf.c (create_fixup_graph): Update.
17459 (adjust_cfg_counts): Update.
17460 (sum_edge_counts): Update.
17461 * modulo-sched.c (sms_schedule): Update.
17462 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
17463 * predict.c (maybe_hot_count_p): Update.
17464 (probably_never_executed): Update.
17465 (dump_prediction): Update.
17466 (combine_predictions_for_bb): Update.
17467 (propagate_freq): Update.
17468 (handle_missing_profiles): Update.
17469 (counts_to_freqs): Update.
17470 (rebuild_frequencies): Update.
17471 (force_edge_cold): Update.
17472 * predict.h: Include profile-count.h
17473 (maybe_hot_count_p, counts_to_freqs): UPdate.
17474 * print-rtl-function.c: Do not include cfg.h
17475 * print-rtl.c: Include basic-block.h
17476 * profile-count.c: New file.
17477 * profile-count.h: New file.
17478 * profile.c (is_edge_inconsistent): Update.
17479 (correct_negative_edge_counts): Update.
17480 (is_inconsistent): Update.
17481 (set_bb_counts): Update.
17482 (read_profile_edge_counts): Update.
17483 (compute_frequency_overlap): Update.
17484 (compute_branch_probabilities): Update; Initialize and deinitialize
17485 gcov_count tables.
17486 (branch_prob): Update.
17487 * profile.h (bb_gcov_counts, edge_gcov_counts): New.
17488 (edge_gcov_count): New.
17489 (bb_gcov_count): New.
17490 * shrink-wrap.c (try_shrink_wrapping): Update.
17491 * tracer.c (better_p): Update.
17492 * trans-mem.c (expand_transaction): Update.
17493 (ipa_tm_insert_irr_call): Update.
17494 (ipa_tm_insert_gettmclone_call): Update.
17495 * tree-call-cdce.c: Update.
17496 * tree-cfg.c (gimple_duplicate_sese_region): Update.
17497 (gimple_duplicate_sese_tail): Update.
17498 (gimple_account_profile_record): Update.
17499 (execute_fixup_cfg): Update.
17500 * tree-inline.c (copy_bb): Update.
17501 (copy_edges_for_bb): Update.
17502 (initialize_cfun): Update.
17503 (freqs_to_counts): Update.
17504 (copy_cfg_body): Update.
17505 (expand_call_inline): Update.
17506 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
17507 * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
17508 (try_unroll_loop_completely): Update.
17509 (try_peel_loop): Update.
17510 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
17511 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
17512 * tree-ssa-loop-split.c (connect_loops): Update.
17513 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
17514 * tree-ssa-reassoc.c (branch_fixup): Update.
17515 * tree-ssa-tail-merge.c (replace_block_by): Update.
17516 * tree-ssa-threadupdate.c (create_block_for_threading): Update.
17517 (compute_path_counts): Update.
17518 (update_profile): Update.
17519 (recompute_probabilities): Update.
17520 (update_joiner_offpath_counts): Update.
17521 (estimated_freqs_path): Update.
17522 (freqs_to_counts_path): Update.
17523 (clear_counts_path): Update.
17524 (ssa_fix_duplicate_block_edges): Update.
17525 (duplicate_thread_path): Update.
17526 * tree-switch-conversion.c (case_bit_test_cmp): Update.
17527 (struct switch_conv_info): Update.
17528 * tree-tailcall.c (decrease_profile): Update.
17529 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
17530 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
17531 * value-prof.c (check_counter): Update.
17532 (gimple_divmod_fixed_value): Update.
17533 (gimple_mod_pow2): Update.
17534 (gimple_mod_subtract): Update.
17535 (gimple_ic_transform): Update.
17536 (gimple_stringop_fixed_value): Update.
17537 * value-prof.h (gimple_ic): Update.
17538
17539 2017-06-02 Carl Love <cel@us.ibm.com>
17540
17541 * config/rs6000/rs6000-c: Add support for built-in functions
17542 vector double vec_doublee (vector signed int);
17543 vector double vec_doublee (vector unsigned int);
17544 vector double vec_doublee (vector float);
17545 vector double vec_doubleh (vector signed int);
17546 vector double vec_doubleh (vector unsigned int);
17547 vector double vec_doubleh (vector float);
17548 vector double vec_doublel (vector signed int);
17549 vector double vec_doublel (vector unsigned int);
17550 vector double vec_doublel (vector float);
17551 vector double vec_doubleo (vector signed int);
17552 vector double vec_doubleo (vector unsigned int);
17553 vector double vec_doubleo (vector float);.
17554 * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
17555 DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
17556 UNS_DOUBLEL.
17557 * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
17558 unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
17559 unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
17560 VS_sxwsp.
17561 * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
17562 vec_doublel, vec_doubleh.
17563 * doc/extend.texi: Update the built-in documentation file for the
17564 new built-in functions.
17565
17566 2017-06-02 David Malcolm <dmalcolm@redhat.com>
17567
17568 PR jit/80954
17569 * ipa-inline-analysis.c (free_growth_caches): Set
17570 edge_removal_hook_holder to NULL after removing it.
17571
17572 2017-06-02 Sudakshina Das <sudi.das@arm.com>
17573
17574 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
17575 comparision with zero.
17576
17577 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
17578 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
17579 for early expansion of vec_min and vec_max builtins.
17580 (builtin_function_type): Add min/max unsigned variants to those
17581 identified as having unsigned arguments.
17582
17583 2017-06-02 Olivier Hainque <hainque@adacore.com>
17584
17585 * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
17586
17587 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17588
17589 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
17590 Use VALL_F16 iterator rather than VALL.
17591
17592 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17593
17594 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
17595 Emit CBNZ inside loop when doing a strong exchange and comparing
17596 against zero. Generate the CC flags after the loop.
17597
17598 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
17599
17600 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
17601 (dl_section_ref): New.
17602 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
17603 On AIX, append an expression to subtract the size of the
17604 section length to dl_section_ref.
17605
17606 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
17607
17608 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
17609 for early expansion of vector absolute builtins.
17610
17611 2017-06-02 Richard Biener <rguenther@suse.de>
17612
17613 * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
17614 what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
17615
17616 2017-06-02 Richard Biener <rguenther@suse.de>
17617
17618 PR tree-optimization/80948
17619 * tree-tailcall.c (find_tail_calls): Track stmts to move in
17620 stmt order as well.
17621
17622 2017-06-02 Richard Biener <rguenther@suse.de>
17623
17624 * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
17625 PHIs are ok.
17626 * tree-vect-stmts.c (process_use): Do not mark backedge defs
17627 for inductions as relevant.
17628
17629 2017-06-02 Richard Biener <rguenther@suse.de>
17630
17631 * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
17632 (vectorizable_induction): ... this. Remove dead code.
17633
17634 2017-06-02 Eric Botcazou <ebotcazou@adacore.com>
17635
17636 * builtins. (expand_builtin_alloca): Remove second parameter and
17637 infer its value from the first parameter instead.
17638 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
17639
17640 2017-06-02 Jakub Jelinek <jakub@redhat.com>
17641
17642 PR rtl-optimization/80903
17643 * loop-doloop.c (add_test): Unshare sequence.
17644
17645 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
17646
17647 * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
17648
17649 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
17650
17651 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
17652 static.
17653 (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
17654 xlogue_layout::get_instance, logue_layout::xlogue_layout,
17655 sp_valid_at, fp_valid_at, choose_basereg): Formatting.
17656 (xlogue_layout::get_stub_rtx): Make static.
17657 (xlogue_layout::get_stub_name): Avoid const-cast, make static.
17658 (xlogue_layout::compute_stub_managed_regs): Rename to...
17659 (xlogue_layout::count_stub_managed_regs): ...this.
17660 (xlogue_layout::is_stub_managed_reg): New function.
17661 (xlogue_layout::m_stub_names): Rename to...
17662 (xlogue_layout::s_stub_names): ...this, make static.
17663 (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
17664 xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
17665 xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
17666 xlogue_layout::s_stub_names): Instantiate statics.
17667 (stub_managed_regs): Remove.
17668 (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
17669 (disable_call_ms2sysv_xlogues): Rename to...
17670 (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
17671 (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
17672 warning logic.
17673 (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
17674 change after reload_completed.
17675 (ix86_can_use_return_insn_p): Use the ix86_frame data structure
17676 directly.
17677 (ix86_expand_prologue): Likewise.
17678 (ix86_expand_epilogue): Likewise.
17679 (ix86_expand_split_stack_prologue): Likewise.
17680 (ix86_compute_frame_layout): Remove frame parameter ...
17681 (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
17682 (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
17683 only if necessary.
17684 (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
17685 (ix86_frame): Move from here ...
17686 * config/i386/i386.h (ix86_frame): ... to here.
17687 (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
17688 complete ix86_frame data structure instead. Remove some_ld_name.
17689
17690 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
17691
17692 * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
17693 symbols that hold a DECL_VALUE_EXPR.
17694
17695 2017-06-01 Martin Jambor <mjambor@suse.cz>
17696
17697 PR tree-optimization/80898
17698 * tree-sra.c (process_subtree_disqualification): Removed.
17699 (disqualify_candidate): Do not acll
17700 process_subtree_disqualification.
17701 (subtree_mark_written_and_enqueue): New function.
17702 (propagate_all_subaccesses): Set grp_write of LHS subtree if the
17703 RHS has been disqualified and re-queue LHS if necessary. Apart
17704 from that, ignore disqualified RHS.
17705
17706 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17707
17708 * config/s390/s390.c (s390_emit_epilogue): Disable early return
17709 address fetch for z10 or later.
17710
17711 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17712
17713 * config/arc/arc.md (tst_movb): Add guard when splitting.
17714
17715 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17716
17717 * config/arc/arc.c (arc_can_eliminate): Test against
17718 arc_frame_pointer_needed.
17719
17720 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17721
17722 * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
17723 to prevent store reordering.
17724 * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
17725 (type): Add block type.
17726 (stack_tie): Define special instruction to be used in
17727 expand_prologue.
17728
17729 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17730
17731 * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
17732 constraint. It is not valid for the pattern.
17733 (noncommutative_binary_comparison): Likewise.
17734
17735 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17736
17737 * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
17738 scaled addresses.
17739
17740 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17741
17742 * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
17743 be used by the reg-alloc.
17744
17745 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17746
17747 * config/arc/arc.md (mulsi3): Avoid use of hard registers before
17748 reg-alloc when having mul64 or mul32x16 instructions.
17749 (mulsidi3): Likewise.
17750 (umulsidi3): Likewise.
17751 (mulsi32x16): New pattern.
17752 (mulsi64): Likewise.
17753 (mulsidi64): Likewise.
17754 (umulsidi64): Likewise.
17755 (MUL32x16_REG): Define.
17756 (mul64_600): Use MUL32x16_REG.
17757 (mac64_600): Likewise.
17758 (umul64_600): Likewise.
17759 (umac64_600): Likewise.
17760
17761 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
17762
17763 * config/arc/arc.md (mulsi3_700): Make it commutative.
17764
17765 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com>
17766
17767 * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
17768 type for movstouw.
17769 (*sign_extendsidi2_insn): Likewise for movstosw.
17770
17771 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
17772
17773 * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
17774 the type of the input discriminant value. Convert the
17775 discriminant value of signedness vary.
17776
17777 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de>
17778
17779 * doc/invoke.texi (-Wcatch-value): Document new shortcut.
17780 Add to -Wall section.
17781
17782 2017-06-01 Richard Biener <rguenther@suse.de>
17783
17784 PR middle-end/66313
17785 * fold-const.c (fold_plusminus_mult_expr): If the factored
17786 factor may be zero use a wrapping type for the inner operation.
17787 * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
17788 and handle moved defs.
17789 (process_assignment): Properly guard the unary op case. Return a
17790 tri-state indicating that moving the stmt before the call may allow
17791 to continue. Pass through to_move.
17792 (find_tail_calls): Handle moving unrelated defs before
17793 the call.
17794
17795 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
17796
17797 PR target/80618
17798 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
17799 splitter result in the canonical way.
17800
17801 2017-05-31 Uros Bizjak <ubizjak@gmail.com>
17802
17803 * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
17804 also for 32bit target. Update insn attributes.
17805 (zero-extendsidi2 splitter): Allow all registers for operand 1.
17806
17807 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com>
17808
17809 * config/i386/avx512fintrin.h (_mm_mask_max_sd)
17810 (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
17811 (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
17812 (_mm_maskz_min_ss): New intrinsics.
17813
17814 2017-05-31 Martin Liska <mliska@suse.cz>
17815
17816 * tree-vect-loop.c (vect_create_epilog_for_reduction):
17817 Change comment style to one we normally use.
17818 (vectorizable_reduction): Likewise.
17819 (vectorizable_induction): Likewise.
17820 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
17821 (vectorizable_call): Likewise.
17822 (vectorizable_simd_clone_call): Likewise.
17823 (vectorizable_conversion): Likewise.
17824 (vectorizable_assignment): Likewise.
17825 (vectorizable_shift): Likewise.
17826 (vectorizable_operation): Likewise.
17827 (vectorizable_store): Likewise.
17828 (vectorizable_load): Likewise.
17829 * tree-vectorizer.h: Likewise.
17830
17831 2017-05-31 Alexander Monakov <amonakov@ispras.ru>
17832
17833 * passes.c (emergency_dump_function): New.
17834 * tree-pass.h (emergency_dump_function): Declare.
17835 * plugin.c (plugins_internal_error_function): Remove.
17836 * plugin.h (plugins_internal_error_function): Remove declaration.
17837 * toplev.c (internal_error_function): New static function. Use it...
17838 (general_init): ...here.
17839
17840 2017-05-31 Graham Markall <graham.markall@embecosm.com>
17841
17842 * config/arc/arc.c (arc_print_operand): Handle constant operands.
17843 (arc_rtx_costs): Add costs for new patterns.
17844 * config/arc/arc.md: Additional *add_n and *sub_n patterns.
17845 * config/arc/predicates.md: Add _1_2_3_operand predicate.
17846
17847 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
17848
17849 * tree-ssa-strlen.c (get_next_strinfo): New function.
17850 (get_stridx_plus_constant): Use it.
17851 (zero_length_string): Likewise.
17852 (adjust_related_strinfos): Likewise.
17853 (adjust_last_stmt): Likewise.
17854
17855 2017-05-31 Richard Biener <rguenther@suse.de>
17856
17857 PR target/80880
17858 * config/i386/i386.c (ix86_expand_builtin): Remove assert
17859 for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
17860
17861 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
17862
17863 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
17864 loop_vinfo argument and use of dependence distance vectors.
17865 Check instead whether the two references differ only in their
17866 initial value and assume that they have the same alignment if the
17867 difference is a multiple of the vector alignment.
17868 (vect_analyze_data_refs_alignment): Update call accordingly.
17869
17870 2017-05-31 Martin Liska <mliska@suse.cz>
17871
17872 PR target/79155
17873 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
17874
17875 2017-05-31 Bin Cheng <bin.cheng@arm.com>
17876
17877 * tree-vect-loop-manip.c (create_intersect_range_checks_index)
17878 (create_intersect_range_checks): Move from ...
17879 * tree-data-ref.c (create_intersect_range_checks_index)
17880 (create_intersect_range_checks): ... to here.
17881 (create_runtime_alias_checks): New function factored from ...
17882 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
17883 here. Call above function.
17884 * tree-data-ref.h (create_runtime_alias_checks): New function.
17885
17886 2017-05-31 Bin Cheng <bin.cheng@arm.com>
17887
17888 * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
17889 segment length for dr_b and compute it in wide_int.
17890
17891 2017-05-31 Richard Biener <rguenther@suse.de>
17892
17893 PR tree-optimization/80906
17894 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
17895 and pass through iv_map.
17896 (copy_bb_and_scalar_dependences): Adjust.
17897 (translate_pending_phi_nodes): Likewise.
17898 (copy_loop_close_phi_args): Handle code-generating IVs instead
17899 of ICEing.
17900
17901 2017-05-30 David Malcolm <dmalcolm@redhat.com>
17902
17903 * diagnostic-color.c (color_dict): Add "type-diff".
17904 (parse_gcc_colors): Update comment.
17905 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
17906 -fdiagnostics-show-template-tree and -fno-elide-type.
17907 (GCC_COLORS): Add type-diff to example.
17908 (type-diff=): New.
17909 (-fdiagnostics-show-template-tree): New.
17910 (-fno-elide-type): New.
17911 * pretty-print.c (pp_format): Pass quote and formatters[argno] to
17912 the pp_format_decoder callback. Call any m_format_postprocessor's
17913 "handle" method.
17914 (pretty_printer::pretty_printer): Initialize
17915 m_format_postprocessor.
17916 (pretty_printer::~pretty_printer): Delete any
17917 m_format_postprocessor.
17918 * pretty-print.h (printer_fn): Add bool and const char ** parameters.
17919 (class format_postprocessor): New class.
17920 (struct pretty_printer::format_decoder): Document the new parameters.
17921 (struct pretty_printer::m_format_postprocessor): New field.
17922 * tree-diagnostic.c (default_tree_printer): Update for new
17923 bool and const char ** params.
17924 * tree-diagnostic.h (default_tree_printer): Likewise.
17925
17926 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org>
17927
17928 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
17929 (lwa_operand): Delete rs6000_gen_cell_microcode test.
17930 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
17931 rs6000_gen_cell_microcode code.
17932 (rs6000_final_prescan_insn): Delete.
17933 (rs6000_opt_vars): Delete the "gen-cell-microcode" and
17934 "warn-cell-microcode" entries.
17935 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
17936 * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
17937 throughout. Change cc_reg_not_micro_cr0_operand to
17938 cc_reg_not_cr0_operand throughout.
17939 (*extendhi<mode>2_noload): Delete.
17940 * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
17941 (mwarn-cell-microcode): Delete.
17942 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
17943 -mgen-cell-microcode and -mwarn-cell-microcode.
17944
17945 2017-05-30 Uros Bizjak <ubizjak@gmail.com>
17946
17947 PR target/80833
17948 * config/i386/constraints.md (Yd): New constraint.
17949 (Ye): Ditto.
17950 * config/i386/i386.md (*movti_internal): Add (?r, Ye)
17951 and (?Yd, r) alternatives. Update insn attributes.
17952 * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
17953 and (?*Yd, r) alternatives. Update insn attributes.
17954 (double-mode inter-unit splitters): Add new GR<->XMM splitters.
17955
17956 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com>
17957
17958 * gimplify.c (gimplify_modify_expr): Don't create a
17959 DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
17960 function.
17961
17962 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com>
17963
17964 * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
17965
17966 2017-05-30 Richard Biener <rguenther@suse.de>
17967
17968 * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
17969 and reduc_def fields.
17970 (STMT_VINFO_REDUC_TYPE): New define.
17971 (STMT_VINFO_REDUC_DEF): Likewise.
17972 (vect_force_simple_reduction): Adjust prototype.
17973 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
17974 (vect_is_simple_reduction): Remove check_reduction argument.
17975 (vect_force_simple_reduction): Adjust and set
17976 STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
17977 (vectorizable_reduction): Do not re-do reduction analysis
17978 but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
17979 * tree-parloops.c (gather_scalar_reductions): Adjust.
17980
17981 2017-05-30 Richard Biener <rguenther@suse.de>
17982
17983 PR middle-end/80901
17984 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
17985 split_edge code.
17986
17987 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com>
17988
17989 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
17990 Introduce unknown_misalignment parameter and remove vf.
17991 (vect_peeling_hash_get_lowest_cost):
17992 Pass unknown_misalignment parameter.
17993 (vect_enhance_data_refs_alignment):
17994 Fix unsupportable data ref treatment.
17995
17996 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
17997
17998 * tree-vect-data-refs.c (vect_get_data_access_cost):
17999 Workaround for SLP handling.
18000 (vect_enhance_data_refs_alignment):
18001 Compute costs for doing no peeling at all, compare to the best
18002 peeling costs so far and avoid peeling if cheaper.
18003
18004 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
18005
18006 * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
18007 Return peeling info and set costs to zero for unlimited cost
18008 model.
18009 (vect_enhance_data_refs_alignment): Also inspect all datarefs
18010 with unknown misalignment. Compute and costs for unknown
18011 misalignment, compare them to the costs for known misalignment
18012 and choose the cheapest for peeling.
18013
18014 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
18015
18016 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
18017 (vect_get_peeling_costs_all_drs): Create function.
18018 (vect_peeling_hash_get_lowest_cost):
18019 Use vect_get_peeling_costs_all_drs.
18020 (vect_peeling_supportable): Create function.
18021 (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
18022
18023 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
18024
18025 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
18026 DR_HAS_NEGATIVE_STEP.
18027 (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
18028 (vect_enhance_data_refs_alignment): Use.
18029 (vect_duplicate_ssa_name_ptr_info): Use.
18030 * tree-vectorizer.h (dr_misalignment): Use.
18031 (known_alignment_for_access_p): Use.
18032
18033 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
18034
18035 PR target/78838
18036 * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
18037 .lowtext.
18038 (has_section_name): New function.
18039
18040 2017-05-30 Martin Liska <mliska@suse.cz>
18041
18042 PR other/80909
18043 * auto-profile.c (get_function_decl_from_block): Fix
18044 parenthesis.
18045
18046 2017-05-30 Richard Biener <rguenther@suse.de>
18047
18048 PR middle-end/80876
18049 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
18050
18051 2017-05-30 Martin Liska <mliska@suse.cz>
18052
18053 * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
18054 * dumpfile.h (struct dump_file_info): Remove ctors.
18055
18056 2017-05-30 Martin Liska <mliska@suse.cz>
18057
18058 * predict.def: Fix GNU coding style.
18059
18060 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
18061
18062 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
18063 Mark 'to' argument with ATTRIBUTE_UNUSED.
18064
18065 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
18066
18067 * config/xtensa/xtensa.c (xtensa_emit_call): Use
18068 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
18069 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
18070 format string.
18071
18072 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
18073
18074 * doc/install.texi (Options specification): Restore entry of
18075 --enable-sjlj-exceptions.
18076
18077 2017-05-27 Michael Eager <eager@eagercon.com>
18078
18079 Revert:
18080 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
18081
18082 See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
18083
18084 * config/microblaze/microblaze.h
18085 (FIXED_REGISTERS): Update in macro.
18086 (CALL_USED_REGISTERS): Update in macro.
18087
18088 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org>
18089
18090 * doc/install.texi: Add links to macOS binary distributions.
18091
18092 2017-05-27 Jakub Jelinek <jakub@redhat.com>
18093
18094 PR bootstrap/80887
18095 Revert:
18096 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
18097
18098 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
18099
18100 2017-05-26 Martin Liska <mliska@suse.cz>
18101
18102 * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
18103
18104 2017-05-26 Martin Liska <mliska@suse.cz>
18105
18106 * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
18107 always leading ';; '.
18108 (dump_bb_info): Likewise.
18109 (brief_dump_cfg): Likewise.
18110 * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
18111 * dumpfile.c: Remove usage of TDF_VERBOSE.
18112 * dumpfile.h (enum dump_kind): Likewise.
18113 (dump_gimple_bb_header): Do not use TDF_COMMENT.
18114 * print-tree.c (debug_verbose): Remove.
18115 * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
18116 (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
18117 * tree-diagnostic.c (default_tree_printer): Replace
18118 TDF_DIAGNOSTIC with TDF_SLIM.
18119
18120 2017-05-26 Bin Cheng <bin.cheng@arm.com>
18121
18122 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
18123 in parameter loop, rather than loop_vinfo.
18124 (create_intersect_range_checks): Ditto.
18125 (vect_create_cond_for_alias_checks): Update call to above functions.
18126
18127 2017-05-26 Bin Cheng <bin.cheng@arm.com>
18128
18129 PR tree-optimization/80815
18130 * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
18131 for merging runtime alias checks. Handle negative DR_STEPs.
18132
18133 2017-05-26 Bin Cheng <bin.cheng@arm.com>
18134
18135 * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
18136 Move from ...
18137 * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
18138 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
18139 out code pruning runtime alias checks.
18140 * tree-data-ref.c (prune_runtime_alias_test_list): New function
18141 factored out from above.
18142 * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
18143 Move from ...
18144 * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
18145 ... to here.
18146 (prune_runtime_alias_test_list): New decalaration.
18147
18148 2017-05-26 Bin Cheng <bin.cheng@arm.com>
18149
18150 * tree-vect-data-refs.c (compare_tree): Rename and move ...
18151 * tree-data-ref.c (data_ref_compare_tree): ... to here.
18152 * tree-data-ref.h (data_ref_compare_tree): New decalaration.
18153 * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
18154 (operator==, comp_dr_with_seg_len_pair): Ditto.
18155 (vect_prune_runtime_alias_test_list): Ditto.
18156
18157 2017-05-26 Martin Liska <mliska@suse.cz>
18158
18159 PR ipa/80663
18160 * params.def: Bound partial-inlining-entry-probability param.
18161
18162 2017-05-26 Marek Polacek <polacek@redhat.com>
18163
18164 PR sanitizer/80875
18165 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
18166 can be negated.
18167
18168 2017-05-26 Richard Biener <rguenther@suse.de>
18169
18170 PR tree-optimization/80842
18171 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
18172 value.
18173
18174 2017-05-26 Richard Biener <rguenther@suse.de>
18175
18176 PR tree-optimization/80844
18177 * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
18178
18179 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com>
18180
18181 * doc/md.texi (Machine Constraints): Update x86 family
18182 machine constraints section to match 'config/i386/constraints.md'.
18183
18184 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de>
18185
18186 * doc/invoke.texi (-Wcatch-value=): Document new warning option.
18187
18188 2017-05-25 Nathan Sidwell <nathan@acm.org>
18189
18190 * doc/invoke.texi (--enable-languages): Update documentation.
18191
18192 2017-05-25 Martin Liska <mliska@suse.cz>
18193
18194 * dumpfile.c: Add TDF_FOLDING.
18195 * dumpfile.h (enum dump_kind): Likewise.
18196 * genmatch.c (dt_simplify::gen_1): Use it.
18197
18198 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
18199
18200 * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
18201
18202 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
18203
18204 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
18205 * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
18206
18207 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
18208
18209 * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
18210 * match.pd (X == C): Rewrite it here.
18211 (with_possible_nonzero_bits, with_possible_nonzero_bits2,
18212 with_certain_nonzero_bits2): New predicates.
18213 * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
18214
18215 2017-05-24 Nathan Sidwell <nathan@acm.org>
18216
18217 * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
18218 avoid warning.
18219
18220 * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
18221 warning.
18222
18223 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
18224
18225 * config/powerpcspe: New port. Files are copied from the rs6000
18226 port, with "rs6000" in filenames replaced by "powerpcspe".
18227
18228 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com>
18229
18230 PR rtl-optimization/80754
18231 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
18232
18233 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
18234
18235 * config/sparc/sparc.md (length): Return the correct value for -mflat
18236 sibcalls to match output_sibcall.
18237
18238 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
18239
18240 PR bootstrap/80860
18241 PR bootstrap/80843
18242 * config/rs6000/rs6000.c (struct machine_function): Add new field
18243 n_components.
18244 (rs6000_get_separate_components): Init that field, use it.
18245 (rs6000_components_for_bb): Use the field.
18246
18247 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
18248
18249 * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
18250
18251 2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
18252
18253 PR middle-end/80823
18254 * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
18255
18256 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18257
18258 PR target/80725
18259 * config/s390/s390.c (s390_check_qrst_address): Check incoming
18260 address against address_operand predicate.
18261 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
18262
18263 2017-05-24 Eric Botcazou <ebotcazou@adacore.com>
18264
18265 * var-tracking.c (track_expr_p): Do not return 0 for tracked record
18266 parameters passed indirectly.
18267
18268 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
18269
18270 * config/i386/i386.md (*movdi_internal): Remove SSE4
18271 alternative 18 (?r, *v). Update insn attributes.
18272 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
18273 Update insn attributes.
18274 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
18275 Update insn attributes.
18276 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
18277 alternative 1 (r, v). Remove isa attribute.
18278 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
18279 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
18280 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
18281
18282 2017-05-23 Tom de Vries <tom@codesourcery.com>
18283
18284 * doc/sourcebuild.texi (Directives, Verify compiler message): Document
18285 dg-line directive.
18286
18287 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
18288
18289 * cgraphunit.c (symbol_table::process_new_functions): Update.
18290 * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
18291 (inline_generate_summary): Rename to ...
18292 (ipa_fn_summary_generate): ... this one.
18293 (inline_read_summary): Rename to ...
18294 (ipa_fn_summary_read): ... this one.
18295 (inline_write_summary): Rename to ...
18296 (ipa_fn_summary_write): ... this one.
18297 (inline_free_summary): Rename to ...
18298 (ipa_free_fn_summary): ... this one.
18299 (pass_data_local_fn_summary, pass_local_fn_summary,
18300 make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
18301 pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
18302 pass_data_ipa_fn_summary, pass_ipa_fn_summary,
18303 make_pass_ipa_fn_summary): New.
18304 * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
18305 inline_write_summary, inline_free_summary): Remove.
18306 (ipa_free_fn_summary) : New.
18307 * ipa-inline.c (ipa_inline): Update.
18308 (pass_ipa_inline): Do not generate summaries.
18309 * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
18310 Remove.
18311 * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
18312 and add pass_ipa_fn_summary.
18313 * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
18314 New.
18315 (make_pass_inline_parameters): Remove.
18316
18317 2017-05-23 Thomas Schwinge <thomas@codesourcery.com>
18318
18319 * omp-low.c (struct omp_context): Remove "default_kind" member.
18320 Adjust all users.
18321
18322 * omp-offload.c (execute_oacc_device_lower): Remove the
18323 parallelism dimensions function attributes for unparallelized
18324 OpenACC kernels constructs.
18325
18326 2017-05-23 Martin Liska <mliska@suse.cz>
18327
18328 * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
18329 functions.
18330 (cgraph_edge::make_speculative): Likewise.
18331 (cgraph_edge::resolve_speculation): Likewise.
18332 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
18333 (cgraph_node::dump): Likewise.
18334 * cgraph.h: Likewise.
18335 * cgraphunit.c (analyze_functions): Likewise.
18336 (symbol_table::compile): Likewise.
18337 * ipa-cp.c (print_all_lattices): Likewise.
18338 (determine_versionability): Likewise.
18339 (initialize_node_lattices): Likewise.
18340 (ipcp_verify_propagated_values): Likewise.
18341 (estimate_local_effects): Likewise.
18342 (update_profiling_info): Likewise.
18343 (create_specialized_node): Likewise.
18344 (perhaps_add_new_callers): Likewise.
18345 (decide_about_value): Likewise.
18346 (decide_whether_version_node): Likewise.
18347 (identify_dead_nodes): Likewise.
18348 (ipcp_store_bits_results): Likewise.
18349 * ipa-devirt.c (dump_targets): Likewise.
18350 (ipa_devirt): Likewise.
18351 * ipa-icf.c (sem_item::dump): Likewise.
18352 (sem_function::equals): Likewise.
18353 (sem_variable::equals): Likewise.
18354 (sem_item_optimizer::read_section): Likewise.
18355 (sem_item_optimizer::execute): Likewise.
18356 (congruence_class::dump): Likewise.
18357 * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
18358 (dump_inline_summary): Likewise.
18359 (estimate_node_size_and_time): Likewise.
18360 (inline_analyze_function): Likewise.
18361 * ipa-inline-transform.c (inline_call): Likewise.
18362 * ipa-inline.c (report_inline_failed_reason): Likewise.
18363 (want_early_inline_function_p): Likewise.
18364 (edge_badness): Likewise.
18365 (update_edge_key): Likewise.
18366 (inline_small_functions): Likewise.
18367 * ipa-profile.c (ipa_profile): Likewise.
18368 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
18369 (ipa_make_edge_direct_to_target): Likewise.
18370 (remove_described_reference): Likewise.
18371 (ipa_impossible_devirt_target): Likewise.
18372 (propagate_controlled_uses): Likewise.
18373 (ipa_print_node_params): Likewise.
18374 (ipcp_transform_function): Likewise.
18375 * ipa-pure-const.c (pure_const_read_summary): Likewise.
18376 (propagate_pure_const): Likewise.
18377 * ipa-reference.c (generate_summary): Likewise.
18378 (read_write_all_from_decl): Likewise.
18379 (propagate): Likewise.
18380 (ipa_reference_read_optimization_summary): Likewise.
18381 * ipa-utils.c (ipa_merge_profiles): Likewise.
18382 * ipa.c (walk_polymorphic_call_targets): Likewise.
18383 (symbol_table::remove_unreachable_nodes): Likewise.
18384 (ipa_single_use): Likewise.
18385 * passes.c (execute_todo): Likewise.
18386 * predict.c (drop_profile): Likewise.
18387 * symtab.c (symtab_node::get_dump_name): New function.
18388 (symtab_node::dump_name): Likewise.
18389 (symtab_node::dump_asm_name): Likewise.
18390 (symtab_node::dump_references): Likewise.
18391 (symtab_node::dump_referring): Likewise.
18392 (symtab_node::dump_base): Likewise.
18393 (symtab_node::debug_symtab): Likewise.
18394 * tree-sra.c (convert_callers_for_node): Likewise.
18395 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
18396 * value-prof.c (init_node_map): Likewise.
18397
18398 2017-05-23 Martin Liska <mliska@suse.cz>
18399
18400 * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
18401 and symtab_node::debug_symtab to symbol_table::debug.
18402 * cgraphunit.c (analyze_functions): Use the renamed function.
18403 (symbol_table::compile): Likewise.
18404 * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
18405 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
18406 * passes.c (execute_todo): Likewise.
18407 * symtab.c (symbol_table::dump): New function.
18408 * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
18409
18410 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
18411
18412 * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
18413 that nonconst implies exec.
18414
18415 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
18416
18417 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
18418 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
18419 (inline_edge_summary_vec): Turn into ...
18420 (ipa_call_summaries): ... this one.
18421 (redirect_to_unreachable, edge_set_predicate,
18422 evaluate_properties_for_edge, inline_summary_alloc,
18423 reset_ipa_call_summary, reset_inline_summary,
18424 inline_summary_t::duplicate): Update.
18425 (inline_edge_duplication_hook): Turn to ...
18426 (ipa_call_summary_t::duplicate): ... this one.
18427 (inline_edge_removal_hook): Turn to ...
18428 (ipa_call_summary_t::remove): ... this one.
18429 (dump_inline_edge_summary): Turn to ...
18430 (dump_ipa_call_summary): ... this one.
18431 (estimate_function_body_sizes): Update.
18432 (inline_update_callee_summaries): Update.
18433 (remap_edge_change_prob): Update.
18434 (remap_edge_summaries): Update.
18435 (inline_merge_summary): Update.
18436 (do_estimate_edge_time): Update.
18437 (inline_generate_summary): Update.
18438 (inline_read_section): Update.
18439 (inline_read_summary): Update.
18440 (inline_free_summary): Update.
18441 * ipa-inline.c (can_inline_edge_p): Update.
18442 (compute_inlined_call_time): Update.
18443 (want_inline_small_function_p): Update.
18444 (edge_badness): Update.
18445 (early_inliner): Update.
18446 * ipa-inline.h (inline_edge_summary): Turn to ...
18447 (ipa_call_summary): ... this one.
18448 (ipa_call_summary_t): New class.
18449 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
18450 (ipa_call_summaries): New.
18451 (inline_edge_summary): Remove.
18452 (estimate_edge_growth): Update.
18453 * ipa-profile.c (ipa_propagate_frequency_1): Update.
18454 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
18455 * ipa-split.c (execute_split_functions): Update.
18456 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
18457
18458 2017-05-23 Tom de Vries <tom@codesourcery.com>
18459
18460 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
18461 attributes): Document rdrand effective target.
18462
18463 2017-05-23 Tom de Vries <tom@codesourcery.com>
18464
18465 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
18466 attributes): Sort alphabetically.
18467
18468 2017-05-23 Georg-Johann Lay <avr@gjlay.de>
18469
18470 * config/avr/genmultilib.awk: Use gsub instead of gensub.
18471
18472 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
18473
18474 PR target/80718
18475 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
18476 V2DF/V2DI splat into two separate patterns, one that handles
18477 registers, and the other that only handles memory. Drop support
18478 for splatting from a GPR on ISA 2.07 and then splitting the
18479 splat into direct move and splat.
18480 (vsx_splat_<mode>_reg): Likewise.
18481 (vsx_splat_<mode>_mem): Likewise.
18482
18483 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org>
18484
18485 * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
18486
18487 2017-05-22 Jakub Jelinek <jakub@redhat.com>
18488
18489 PR middle-end/80809
18490 * omp-low.c (finish_taskreg_remap): New function.
18491 (finish_taskreg_scan): If unit size of ctx->record_type
18492 is non-constant, unshare the size expression and replace
18493 decls in it with possible outer var refs.
18494
18495 PR middle-end/80809
18496 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
18497 GOVD_SHARED rather than GOVD_PRIVATE with it.
18498 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
18499 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
18500
18501 PR middle-end/80853
18502 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
18503 as last argument to build_outer_var_ref for pointer bases of array
18504 section reductions.
18505
18506 2017-05-19 Martin Sebor <msebor@redhat.com>
18507
18508 * print-tree.c (print_node): Print DECL_READ_P flag.
18509
18510 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
18511
18512 * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
18513 * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
18514 * cgraph.c: Likewise.
18515 * cgraphunit.c: Likewise.
18516 * gengtype.c: Likewise.
18517 * ipa-cp.c: Likewise.
18518 * ipa-devirt.c: Likewise.
18519 * ipa-icf.c: Likewise.
18520 * ipa-predicate.c: Likewise.
18521 * ipa-profile.c: Likewise.
18522 * ipa-prop.c: Likewise.
18523 * ipa-split.c: Likewise.
18524 * ipa.c: Likewise.
18525 * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
18526 edge_predicate_pool, dump_inline_hints,
18527 inline_summary::account_size_time, redirect_to_unreachable,
18528 edge_set_predicate, set_hint_predicate,
18529 evaluate_conditions_for_known_args, evaluate_properties_for_edge,
18530 inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
18531 inline_summary_t::remove, remap_hint_predicate_after_duplication,
18532 inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
18533 ipa_call_summary_t::remove, initialize_growth_caches,
18534 free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
18535 debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
18536 mark_modified, unmodified_parm_1, unmodified_parm,
18537 unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
18538 set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
18539 compute_bb_predicates, will_be_nonconstant_expr_predicate,
18540 will_be_nonconstant_predicate, record_modified_bb_info,
18541 get_minimal_bb, record_modified, param_change_prob,
18542 phi_result_unknown_predicate, predicate_for_phi_result,
18543 array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
18544 estimate_function_body_sizes, compute_inline_parameters,
18545 compute_inline_parameters_for_curren, pass_data_inline_parameters,
18546 estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
18547 inline_update_callee_summaries, remap_edge_change_prob,
18548 remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
18549 inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
18550 inline_analyze_function, inline_summary_t::insert,
18551 inline_generate_summary, read_ipa_call_summary, inline_read_section,
18552 inline_read_summary, write_ipa_call_summary, inline_write_summary,
18553 inline_free_summary): Move to ipa-fnsummary.h
18554 (predicate_t): Remove.
18555 * ipa-fnsummary.c: New file.
18556 * ipa-inline.h: Do not include sreal.h and ipa-predicate.h
18557 (enum inline_hints_vals, inline_hints, agg_position_info,
18558 INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
18559 inline_summaries, ipa_call_summary, ipa_call_summary_t,
18560 ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
18561 dump_inline_summary, dump_inline_hints, inline_generate_summary,
18562 inline_read_summary, inline_write_summary, inline_free_summary,
18563 inline_analyze_function, initialize_inline_failed,
18564 inline_merge_summary, inline_update_overall_summary,
18565 compute_inline_parameters): Move to ipa-fnsummary.h
18566 * ipa-fnsummary.h: New file.
18567 * ipa-inline-transform.h: Include ipa-inline.h.
18568 * ipa-inline.c: LIkewise.
18569
18570 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
18571
18572 * ipa-inline.c (edge_badness): Use inlined_time instead of
18573 inline_summaries->get.
18574
18575 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
18576
18577 * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
18578
18579 2017-05-22 Nathan Sidwell <nathan@acm.org>
18580
18581 * doc/invoke.texi (fdump-translation-unit): Delete documentation.
18582 (fdump-lang): Document 'raw' option.
18583 * dumpfile.h (TDI_tu): Delete.
18584 * dumpfile.c (dump_files): Remove translation-unit.
18585 (FIRST_AUTO_NUMBERED_DUMP): Decrement.
18586
18587 2017-05-22 Georg-Johann Lay <avr@gjlay.de>
18588
18589 * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
18590 command option from $(AWK) call.
18591 * config/avr/genmultilib.awk: Simplify and rewrite so that it
18592 generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
18593 [FORMAT]: Remove handling of variable.
18594 * config/avr/t-multilib: Regenerate.
18595
18596 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
18597
18598 * ipa-inline-analysis.c (inline_summary::reset): Do not reset
18599 self_time.
18600 (dump_inline_summary): Do not print self_time.
18601 (estimate_function_body_sizes): Do not set self_time.
18602 (compute_inline_parameters): Likewise.
18603 (inline_read_section, inline_write_summary): Do not stream self_time.
18604 * ipa-inline.h (inline_summary): Drop self_time.
18605
18606 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
18607
18608 * ipa-inline-analysis.c (account_size_time): Rename to ...
18609 (inline_summary::account_size_time): ... this one.
18610 (reset_ipa_call_summary): Turn to ...
18611 (ipa_call_summary::reset): ... this one.
18612 (reset_inline_summary): Turn to ...
18613 (inline_summary::reset): ... this one.
18614 (inline_summary_t::remove): Update.
18615 (inline_summary_t::duplicate): Update.
18616 (ipa_call_summary_t::remove): Update.
18617 (dump_inline_summary): Update.
18618 (estimate_function_body_sizes): Update.
18619 (compute_inline_parameters): Update.
18620 (estimate_node_size_and_time): Update.
18621 (inline_merge_summary): Update.
18622 (inline_update_overall_summary): Update.
18623 (inline_read_section): Update.
18624 (inline_write_summary): Update.
18625 * ipa-inline.h (inline_summary): Rename entry to size_time_table;
18626 add account_size_time and reset member functions.
18627 (ipa_call_summary): Add reset function.
18628 * ipa-predicate.h (predicate::operator &): Constify.
18629
18630 2017-05-22 Richard Biener <rguenther@suse.de>
18631
18632 * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
18633
18634 2017-05-19 Jason Merrill <jason@redhat.com>
18635
18636 * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
18637
18638 2017-05-19 Marek Polacek <polacek@redhat.com>
18639
18640 PR sanitizer/80800
18641 * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
18642 TYPE_OVERFLOW_WRAPS checks.
18643
18644 2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
18645
18646 * tree-core.h (enum omp_clause_default_kind): Add
18647 "OMP_CLAUSE_DEFAULT_PRESENT".
18648 * tree-pretty-print.c (dump_omp_clause): Handle it.
18649 * gimplify.c (enum gimplify_omp_var_data): Add
18650 "GOVD_MAP_FORCE_PRESENT".
18651 (gimplify_adjust_omp_clauses_1): Map it to
18652 "GOMP_MAP_FORCE_PRESENT".
18653 (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
18654
18655 * gimplify.c (oacc_default_clause): Clarify.
18656
18657 2017-05-19 Nathan Sidwell <nathan@acm.org>
18658
18659 LANG_HOOK_REGISTER_DUMPS
18660 * toplev.c (general_init): Call register dump lang hook.
18661 * doc/invoke.texi: Document -fdump-lang option family.
18662 * dumpfile.c (dump_files): Remove class dump here.
18663 (FIRST_AUTO_NUMBERED_DUMP): Adjust.
18664 * dumpfile.h (tree_dump_index): Remove TDI_class.
18665 * langhooks-def.h (lhd_register_dumps): Declare.
18666 (LANG_HOOKS_REGISTER_DUMPS): Define.
18667 (LANG_HOOKS_INITIALIZER): Add it.
18668 * langhooks.c (lhd_register_dumps): Define.
18669 * langhooks.h (struct lang_hooks): Add register_dumps.
18670
18671 2017-05-19 Nathan Sidwell <nathan@acm.org>
18672
18673 * context.h (context::set_passes): New.
18674 * context.c (context::context): Do not create pass manager.
18675 * toplev.c (general_init): Create pass manager here.
18676
18677 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org>
18678
18679 * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
18680 use this splitter if two add or or instructions would also work for
18681 the constant we want to generate.
18682
18683 2017-05-19 Richard Biener <rguenther@suse.de>
18684
18685 PR build/80821
18686 * genmatch.c (dt_node::gen_kids_1): Add missing scope around
18687 predicate evaluation.
18688
18689 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
18690
18691 * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
18692 add ctor.
18693 * ipa-inline.c (want_inline_small_function_p): Do not cast to
18694 unsigned.
18695
18696 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
18697
18698 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
18699 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
18700 (inline_edge_summary_vec): Turn into ...
18701 (ipa_call_summaries): ... this one.
18702 (redirect_to_unreachable, edge_set_predicate,
18703 evaluate_properties_for_edge, inline_summary_alloc,
18704 reset_ipa_call_summary, reset_inline_summary,
18705 inline_summary_t::duplicate): Update.
18706 (inline_edge_duplication_hook): Turn to ...
18707 (ipa_call_summary_t::duplicate): ... this one.
18708 (inline_edge_removal_hook): Turn to ...
18709 (ipa_call_summary_t::remove): ... this one.
18710 (dump_inline_edge_summary): Turn to ...
18711 (dump_ipa_call_summary): ... this one.
18712 (estimate_function_body_sizes): Update.
18713 (inline_update_callee_summaries): Update.
18714 (remap_edge_change_prob): Update.
18715 (remap_edge_summaries): Update.
18716 (inline_merge_summary): Update.
18717 (do_estimate_edge_time): Update.
18718 (inline_generate_summary): Update.
18719 (inline_read_section): Update.
18720 (inline_read_summary): Update.
18721 (inline_free_summary): Update.
18722 * ipa-inline.c (can_inline_edge_p): Update.
18723 (compute_inlined_call_time): Update.
18724 (want_inline_small_function_p): Update.
18725 (edge_badness): Update.
18726 (early_inliner): Update.
18727 * ipa-inline.h (inline_edge_summary): Turn to ...
18728 (ipa_call_summary): ... this one.
18729 (ipa_call_summary_t): New class.
18730 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
18731 (ipa_call_summaries): New.
18732 (inline_edge_summary): Remove.
18733 (estimate_edge_growth): Update.
18734 * ipa-profile.c (ipa_propagate_frequency_1): Update.
18735 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
18736 * ipa-split.c (execute_split_functions): Update.
18737 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
18738
18739 2017-05-19 Richard Biener <rguenther@suse.de>
18740
18741 PR middle-end/80764
18742 * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
18743
18744 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org>
18745
18746 * config/rs6000/rs6000.c (struct machine_function): Add field
18747 fpr_is_wrapped_separately.
18748 (rs6000_get_separate_components): Use 64 components. Handle the
18749 new FPR components.
18750 (rs6000_components_for_bb): Handle the FPR components.
18751 (rs6000_emit_prologue_components): Handle the FPR components.
18752 (rs6000_emit_epilogue_components): Handle the FPR components.
18753 (rs6000_set_handled_components): Handle the FPR components.
18754 (rs6000_emit_prologue): Don't output prologue code for those FPRs
18755 that are already separately shrink-wrapped.
18756 (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
18757 that are already separately shrink-wrapped.
18758
18759 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
18760
18761 PR target/80510
18762 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
18763 New predicate.
18764
18765 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
18766 (define_peephole2 for Altivec d-form load): Add peepholes to catch
18767 cases where the register allocator uses a move and an offsettable
18768 memory operation to/from a FPR register on ISA 2.06/2.07.
18769 (define_peephole2 for Altivec d-form store): Likewise.
18770
18771 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
18772
18773 PR target/80799
18774 * config/i386/mmx.md (*mov<mode>_internal): Enable
18775 alternatives 11, 12, 13 and 14 also for 32bit targets.
18776 Remove alternatives 15, 16, 17 and 18.
18777 * config/i386/sse.md (vec_concatv2di): Change
18778 alternative (!x, *y) to (x, ?!*Yn).
18779
18780 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com>
18781
18782 * dumpfile.h (enum dump_kind): Remove stray comma.
18783
18784 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
18785
18786 * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
18787 * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
18788 predicate::num_conditions
18789 (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
18790 (CHANGED): turn into predicate::changed.
18791 (agg_position_info): Move to ipa-predicate.h
18792 (add_condition, predicate::add_clause, predicate::operator &=,
18793 predicate::or_with, predicate::evaluate, predicate::probability,
18794 dump_condition, dump_clause, predicate::dump,
18795 predicate::remap_after_duplication, predicate::remap_after_inlining,
18796 predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
18797 (evaluate_conditions_for_known_args): Update.
18798 (set_cond_stmt_execution_predicate): Update.
18799 * ipa-inline.h: Include ipa-predicate.h
18800 (condition, inline_param_summary, conditions, agg_position_info,
18801 predicate): Move to ipa-predicate.h
18802 * ipa-predicate.c: New file.
18803 * ipa-predicate.h: New file.
18804
18805 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com>
18806
18807 * final.c (leaf_function_p): Check we are not in a sequence.
18808
18809 2017-05-18 Martin Liska <mliska@suse.cz>
18810
18811 * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
18812 * dumpfile.c (dump_register): Use new enum dump_kind.
18813 (get_dump_file_name): Likewise.
18814 (dump_enable_all): Likewise.
18815 (dump_switch_p_1): Likewise.
18816 (enable_rtl_dump_file): Remove usage of TDF_RTL.
18817 * dumpfile.h (enum dump_kind): New enum type.
18818 (struct dump_file_info): Create constructor and
18819 format fields and comments.
18820 * passes.c (pass_manager::register_one_dump_file):
18821 Use num dump_kind.
18822 * statistics.c (statistics_early_init): Likewise.
18823 * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
18824 TDF_TREE with TDF_SLIM.
18825 (gather_memory_references_ref): Likewise.
18826
18827 2017-05-18 Martin Liska <mliska@suse.cz>
18828
18829 * vec.h (struct vnull): Use it.
18830
18831 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
18832
18833 * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
18834 (true_predicate, false_predicate, true_predicate_p,
18835 false_predicate_p): Remove.
18836 (single_cond_predicate, not_inlined_predicate): Turn to member function
18837 in ipa-inline.h
18838 (add_condition): Update.
18839 (add_clause): Turn to...
18840 (predicate::add_clause): ... this one; update; allow passing NULL
18841 as parameter.
18842 (and_predicates): Turn to ...
18843 (predicate::operator &=): ... this one.
18844 (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
18845 (or_predicates): Turn to ...
18846 (predicate::or_with): ... this one.
18847 (evaluate_predicate): Turn to ...
18848 (predicate::evaluate): ... this one.
18849 (predicate_probability): Turn to ...
18850 (predicate::probability): ... this one.
18851 (dump_condition): Update.
18852 (dump_predicate): Turn to ...
18853 (predicate::dump): ... this one.
18854 (account_size_time): Update.
18855 (edge_set_predicate): Update.
18856 (set_hint_predicate): UPdate.
18857 (evaluate_conditions_for_known_args): Update.
18858 (evaluate_properties_for_edge): Update.
18859 (remap_predicate_after_duplication): Turn to...
18860 (predicate::remap_after_duplication): ... this one.
18861 (remap_hint_predicate_after_duplication): Update.
18862 (inline_summary_t::duplicate): UPdate.
18863 (dump_inline_edge_summary): Update.
18864 (dump_inline_summary): Update.
18865 (set_cond_stmt_execution_predicate): Update.
18866 (set_switch_stmt_execution_predicate): Update.
18867 (compute_bb_predicates): Update.
18868 (will_be_nonconstant_expr_predicate): Update.
18869 (will_be_nonconstant_predicate): Update.
18870 (phi_result_unknown_predicate): Update.
18871 (predicate_for_phi_result): Update.
18872 (array_index_predicate): Update.
18873 (estimate_function_body_sizes): Update.
18874 (estimate_node_size_and_time): Update.
18875 (estimate_ipcp_clone_size_and_time): Update.
18876 (remap_predicate): Rename to ...
18877 (predicate::remap_after_inlining): ... this one.
18878 (remap_hint_predicate): Update.
18879 (inline_merge_summary): Update.
18880 (inline_update_overall_summary): Update.
18881 (estimate_size_after_inlining): Update.
18882 (read_predicate): Rename to ...
18883 (predicate::stream_in): ... this one.
18884 (read_inline_edge_summary): Update.
18885 (write_predicate): Rename to ...
18886 (predicate::stream_out): ... this one.
18887 (write_inline_edge_summary): Update.
18888 * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
18889 (clause_t): Turn to uint32_t
18890 (predicate): Turn to class; implement constructor and operators
18891 ==, !=, &
18892 (size_time_entry): Update.
18893 (inline_summary): Update.
18894 (inline_edge_summary): Update.
18895
18896 2017-05-18 Marc Glisse <marc.glisse@inria.fr>
18897
18898 * fold-const.c (fold_binary_loc): Move transformation...
18899 * match.pd (C - X CMP X): ... here.
18900
18901 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
18902
18903 * config/sparc/sparc.c (sparc_option_override): Set function
18904 alignment for -mcpu=niagara7 to 64 to match the I$ line.
18905 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
18906 latency to 1.
18907 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
18908 latency to 2.
18909 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
18910
18911 2017-05-18 Marek Polacek <polacek@redhat.com>
18912
18913 PR sanitizer/80797
18914 * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
18915 (pass_ubsan::execute): Call gimple_assign_single_p instead of
18916 gimple_assign_load_p.
18917
18918 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
18919
18920 PR middle-end/80692
18921 * real.c (do_compare): Give decimal_do_compare preference over
18922 comparing just the signs.
18923
18924 2017-05-17 Uros Bizjak <ubizjak@gmail.com>
18925
18926 * doc/md.texi (Canonicalization of Instructions): Describe the
18927 canonical form of instructions that inherently set a condition
18928 code register.
18929
18930 2017-05-17 Peter Bergner <bergner@vnet.ibm.com>
18931
18932 PR middle-end/80775
18933 * tree-cfg.c: Move deletion of unreachable case statements to after
18934 the merging of consecutive case labels.
18935
18936 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
18937
18938 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
18939 readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
18940 restoring of callee-saved registers.
18941
18942 2017-05-17 Eric Botcazou <ebotcazou@adacore.com>
18943
18944 * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
18945 * config/visium/visium.c (single_set_and_flags): Likewise.
18946 * config/visium/visium.md (Substitutions): Likewise.
18947
18948 2017-05-17 Martin Liska <mliska@suse.cz>
18949
18950 * cfg.c: Introduce dump_flags_t type and
18951 use it instead of int type.
18952 * cfg.h: Likewise.
18953 * cfghooks.c: Likewise.
18954 * cfghooks.h (struct cfg_hooks): Likewise.
18955 * cfgrtl.c: Likewise.
18956 * cfgrtl.h: Likewise.
18957 * cgraph.c (cgraph_node::get_body): Likewise.
18958 * coretypes.h: Likewise.
18959 * domwalk.c: Likewise.
18960 * domwalk.h: Likewise.
18961 * dumpfile.c (struct dump_option_value_info): Likewise.
18962 (dump_enable_all): Likewise.
18963 (dump_switch_p_1): Likewise.
18964 (opt_info_switch_p): Likewise.
18965 * dumpfile.h (enum tree_dump_index): Likewise.
18966 (struct dump_file_info): Likewise.
18967 * genemit.c: Likewise.
18968 * generic-match-head.c: Likewise.
18969 * gengtype.c (open_base_files): Likewise.
18970 * gimple-pretty-print.c: Likewise.
18971 * gimple-pretty-print.h: Likewise.
18972 * graph.c (print_graph_cfg): Likewise.
18973 * graphite-scop-detection.c (dot_all_sese): Likewise.
18974 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
18975 * loop-unroll.c (report_unroll): Likewise.
18976 * passes.c (pass_manager::register_one_dump_file): Likewise.
18977 * print-tree.c: Likewise.
18978 * statistics.c: Likewise.
18979 * tree-cfg.c: Likewise.
18980 * tree-cfg.h: Likewise.
18981 * tree-dfa.c: Likewise.
18982 * tree-dfa.h: Likewise.
18983 * tree-dump.c (dump_function): Likewise.
18984 * tree-dump.h (struct dump_info): Likewise.
18985 * tree-pretty-print.c: Likewise.
18986 * tree-pretty-print.h: Likewise.
18987 * tree-ssa-live.c: Likewise.
18988 * tree-ssa-live.h: Likewise.
18989 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
18990 * tree-vect-loop.c: Likewise.
18991 * tree-vect-slp.c: Likewise.
18992
18993 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com>
18994 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18995
18996 PR tree-optimization/80457
18997 * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
18998 of all arguments to a statement as scalar_to_vec operations.
18999 (vectorizable_call): Adjust call to vect_model_simple_cost for
19000 new parameter.
19001 (vectorizable_conversion): Likewise.
19002 (vectorizable_assignment): Likewise.
19003 (vectorizable_shift): Likewise.
19004 (vectorizable_operation): Likewise.
19005 (vectorizable_comparison): Likewise.
19006 (vect_is_simple_cond): Record the def types for operands.
19007 (vectorizable_condition): Likewise, call vect_model_simple_cost.
19008 * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
19009 for statement argument count.
19010
19011 2017-05-16 Carl Love <cel@us.ibm.com>
19012
19013 * config/rs6000/rs6000-c: Add support for built-in functions
19014 vector unsigned long long vec_bperm (vector unsigned long long,
19015 vector unsigned char)
19016 vector signed long long vec_mule (vector signed int,
19017 vector signed int)
19018 vector unsigned long long vec_mule (vector unsigned int,
19019 vector unsigned int)
19020 vector signed long long vec_mulo (vector signed int,
19021 vector signed int)
19022 vector unsigned long long vec_mulo (vector unsigned int,
19023 vector unsigned int)
19024 vector signed char vec_sldw (vector signed char,
19025 vector signed char,
19026 const int)
19027 vector unsigned char vec_sldw (vector unsigned char,
19028 vector unsigned char,
19029 const int)
19030 vector signed short vec_sldw (vector signed short,
19031 vector signed short,
19032 const int)
19033 vector unsigned short vec_sldw (vector unsigned short,
19034 vector unsigned short,
19035 const int)
19036 vector signed int vec_sldw (vector signed int,
19037 vector signed int,
19038 const int)
19039 vector unsigned int vec_sldw (vector unsigned int,
19040 vector unsigned int,
19041 const int)
19042 vector signed long long vec_sldw (vector signed long long,
19043 vector signed long long,
19044 const int)
19045 vector unsigned long long vec_sldw (vector unsigned long long,
19046 vector unsigned long long,
19047 const int)
19048 * config/rs6000/rs6000-c: Add support for built-in functions
19049 * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
19050 * config/rs6000/altivec.h: Add defintion for vec_sldw.
19051 * doc/extend.texi: Update the built-in documentation for the
19052 new built-in functions.
19053
19054 2017-05-16 Marek Polacek <polacek@redhat.com>
19055
19056 PR sanitizer/80536
19057 PR sanitizer/80386
19058 * tree.c (save_expr): Don't fold the expression.
19059
19060 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
19061
19062 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
19063 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
19064 and (?*y,m). Update insn attributes.
19065
19066 2017-05-16 Martin Liska <mliska@suse.cz>
19067
19068 * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
19069 flags argument of print_gimple_stmt, print_gimple_expr,
19070 print_generic_stmt and print_generic_expr.
19071 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
19072 * coretypes.h: Likewise.
19073 * except.c (dump_eh_tree): Likewise.
19074 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
19075 * gimple-pretty-print.h: Likewise.
19076 * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
19077 (backprop::push_to_worklist): Likewise.
19078 (backprop::pop_from_worklist): Likewise.
19079 (backprop::process_use): Likewise.
19080 (backprop::intersect_uses): Likewise.
19081 (note_replacement): Likewise.
19082 * gimple-ssa-store-merging.c
19083 (pass_store_merging::terminate_all_aliasing_chains): Likewise.
19084 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
19085 (pass_store_merging::execute): Likewise.
19086 * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
19087 (ssa_base_cand_dump_callback): Likewise.
19088 (dump_incr_vec): Likewise.
19089 (replace_refs): Likewise.
19090 (replace_mult_candidate): Likewise.
19091 (create_add_on_incoming_edge): Likewise.
19092 (create_phi_basis): Likewise.
19093 (insert_initializers): Likewise.
19094 (all_phi_incrs_profitable): Likewise.
19095 (introduce_cast_before_cand): Likewise.
19096 (replace_one_candidate): Likewise.
19097 * gimplify.c (gimplify_expr): Likewise.
19098 * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
19099 (set_rename): Likewise.
19100 (rename_uses): Likewise.
19101 (copy_loop_phi_nodes): Likewise.
19102 (add_close_phis_to_merge_points): Likewise.
19103 (copy_loop_close_phi_args): Likewise.
19104 (copy_cond_phi_args): Likewise.
19105 (graphite_copy_stmts_from_block): Likewise.
19106 (translate_pending_phi_nodes): Likewise.
19107 * graphite-poly.c (print_pdr): Likewise.
19108 (dump_gbb_cases): Likewise.
19109 (dump_gbb_conditions): Likewise.
19110 (print_scop_params): Likewise.
19111 * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
19112 (build_cross_bb_scalars_use): Likewise.
19113 (gather_bbs::before_dom_children): Likewise.
19114 * hsa-dump.c (dump_hsa_immed): Likewise.
19115 * ipa-cp.c (print_ipcp_constant_value): Likewise.
19116 (get_replacement_map): Likewise.
19117 * ipa-inline-analysis.c (dump_condition): Likewise.
19118 (estimate_function_body_sizes): Likewise.
19119 * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
19120 (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
19121 * ipa-prop.c (ipa_dump_param): Likewise.
19122 (ipa_print_node_jump_functions_for_edge): Likewise.
19123 (ipa_modify_call_arguments): Likewise.
19124 (ipa_modify_expr): Likewise.
19125 (ipa_dump_param_adjustments): Likewise.
19126 (ipa_dump_agg_replacement_values): Likewise.
19127 (ipcp_modif_dom_walker::before_dom_children): Likewise.
19128 * ipa-pure-const.c (check_stmt): Likewise.
19129 (pass_nothrow::execute): Likewise.
19130 * ipa-split.c (execute_split_functions): Likewise.
19131 * omp-offload.c (dump_oacc_loop_part): Likewise.
19132 (dump_oacc_loop): Likewise.
19133 * trans-mem.c (tm_log_emit): Likewise.
19134 (tm_memopt_accumulate_memops): Likewise.
19135 (dump_tm_memopt_set): Likewise.
19136 (dump_tm_memopt_transform): Likewise.
19137 * tree-cfg.c (gimple_verify_flow_info): Likewise.
19138 (print_loop): Likewise.
19139 * tree-chkp-opt.c (chkp_print_addr): Likewise.
19140 (chkp_gather_checks_info): Likewise.
19141 (chkp_get_check_result): Likewise.
19142 (chkp_remove_check_if_pass): Likewise.
19143 (chkp_use_outer_bounds_if_possible): Likewise.
19144 (chkp_reduce_bounds_lifetime): Likewise.
19145 * tree-chkp.c (chkp_register_addr_bounds): Likewise.
19146 (chkp_mark_completed_bounds): Likewise.
19147 (chkp_register_incomplete_bounds): Likewise.
19148 (chkp_mark_invalid_bounds): Likewise.
19149 (chkp_maybe_copy_and_register_bounds): Likewise.
19150 (chkp_build_returned_bound): Likewise.
19151 (chkp_get_bound_for_parm): Likewise.
19152 (chkp_build_bndldx): Likewise.
19153 (chkp_get_bounds_by_definition): Likewise.
19154 (chkp_generate_extern_var_bounds): Likewise.
19155 (chkp_get_bounds_for_decl_addr): Likewise.
19156 * tree-chrec.c (chrec_apply): Likewise.
19157 * tree-data-ref.c (dump_data_reference): Likewise.
19158 (dump_subscript): Likewise.
19159 (dump_data_dependence_relation): Likewise.
19160 (analyze_overlapping_iterations): Likewise.
19161 * tree-inline.c (expand_call_inline): Likewise.
19162 (tree_function_versioning): Likewise.
19163 * tree-into-ssa.c (dump_defs_stack): Likewise.
19164 (dump_currdefs): Likewise.
19165 (dump_names_replaced_by): Likewise.
19166 (dump_update_ssa): Likewise.
19167 (update_ssa): Likewise.
19168 * tree-object-size.c (pass_object_sizes::execute): Likewise.
19169 * tree-parloops.c (build_new_reduction): Likewise.
19170 (try_create_reduction_list): Likewise.
19171 (ref_conflicts_with_region): Likewise.
19172 (oacc_entry_exit_ok_1): Likewise.
19173 (oacc_entry_exit_single_gang): Likewise.
19174 * tree-pretty-print.h: Likewise.
19175 * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
19176 (get_scalar_evolution): Likewise.
19177 (add_to_evolution): Likewise.
19178 (get_loop_exit_condition): Likewise.
19179 (analyze_evolution_in_loop): Likewise.
19180 (analyze_initial_condition): Likewise.
19181 (analyze_scalar_evolution): Likewise.
19182 (instantiate_scev): Likewise.
19183 (number_of_latch_executions): Likewise.
19184 (gather_chrec_stats): Likewise.
19185 (final_value_replacement_loop): Likewise.
19186 (scev_const_prop): Likewise.
19187 * tree-sra.c (dump_access): Likewise.
19188 (disqualify_candidate): Likewise.
19189 (create_access): Likewise.
19190 (reject): Likewise.
19191 (maybe_add_sra_candidate): Likewise.
19192 (create_access_replacement): Likewise.
19193 (analyze_access_subtree): Likewise.
19194 (analyze_all_variable_accesses): Likewise.
19195 (sra_modify_assign): Likewise.
19196 (initialize_constant_pool_replacements): Likewise.
19197 (find_param_candidates): Likewise.
19198 (decide_one_param_reduction): Likewise.
19199 (replace_removed_params_ssa_names): Likewise.
19200 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
19201 * tree-ssa-copy.c (dump_copy_of): Likewise.
19202 (copy_prop_visit_cond_stmt): Likewise.
19203 * tree-ssa-dce.c (mark_operand_necessary): Likewise.
19204 * tree-ssa-dom.c (pass_dominator::execute): Likewise.
19205 (record_equivalences_from_stmt): Likewise.
19206 * tree-ssa-dse.c (compute_trims): Likewise.
19207 (delete_dead_call): Likewise.
19208 (delete_dead_assignment): Likewise.
19209 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
19210 (forward_propagate_into_cond): Likewise.
19211 (pass_forwprop::execute): Likewise.
19212 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
19213 * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
19214 Likewise.
19215 (move_computations_worker): Likewise.
19216 (execute_sm): Likewise.
19217 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
19218 (remove_exits_and_undefined_stmts): Likewise.
19219 (remove_redundant_iv_tests): Likewise.
19220 * tree-ssa-loop-ivopts.c (dump_use): Likewise.
19221 (adjust_iv_update_pos): Likewise.
19222 * tree-ssa-math-opts.c (bswap_replace): Likewise.
19223 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
19224 (value_replacement): Likewise.
19225 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
19226 * tree-ssa-pre.c (print_pre_expr): Likewise.
19227 (get_representative_for): Likewise.
19228 (create_expression_by_pieces): Likewise.
19229 (insert_into_preds_of_block): Likewise.
19230 (eliminate_insert): Likewise.
19231 (eliminate_dom_walker::before_dom_children): Likewise.
19232 (eliminate): Likewise.
19233 (remove_dead_inserted_code): Likewise.
19234 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
19235 * tree-ssa-reassoc.c (get_rank): Likewise.
19236 (eliminate_duplicate_pair): Likewise.
19237 (eliminate_plus_minus_pair): Likewise.
19238 (eliminate_not_pairs): Likewise.
19239 (undistribute_ops_list): Likewise.
19240 (eliminate_redundant_comparison): Likewise.
19241 (update_range_test): Likewise.
19242 (optimize_range_tests_var_bound): Likewise.
19243 (optimize_vec_cond_expr): Likewise.
19244 (rewrite_expr_tree): Likewise.
19245 (rewrite_expr_tree_parallel): Likewise.
19246 (linearize_expr): Likewise.
19247 (break_up_subtract): Likewise.
19248 (linearize_expr_tree): Likewise.
19249 (attempt_builtin_powi): Likewise.
19250 (attempt_builtin_copysign): Likewise.
19251 (transform_stmt_to_copy): Likewise.
19252 (transform_stmt_to_multiply): Likewise.
19253 (dump_ops_vector): Likewise.
19254 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
19255 (print_scc): Likewise.
19256 (set_ssa_val_to): Likewise.
19257 (visit_reference_op_store): Likewise.
19258 (visit_use): Likewise.
19259 (sccvn_dom_walker::before_dom_children): Likewise.
19260 (run_scc_vn): Likewise.
19261 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
19262 Likewise.
19263 (expr_hash_elt::print): Likewise.
19264 (const_and_copies::pop_to_marker): Likewise.
19265 (const_and_copies::record_const_or_copy_raw): Likewise.
19266 * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
19267 * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
19268 (dump_predicates): Likewise.
19269 (find_uninit_use): Likewise.
19270 (warn_uninitialized_phi): Likewise.
19271 (pass_late_warn_uninitialized::execute): Likewise.
19272 * tree-ssa.c (verify_vssa): Likewise.
19273 (verify_ssa): Likewise.
19274 (maybe_optimize_var): Likewise.
19275 * tree-vrp.c (dump_value_range): Likewise.
19276 (dump_all_value_ranges): Likewise.
19277 (dump_asserts_for): Likewise.
19278 (register_edge_assert_for_2): Likewise.
19279 (vrp_visit_cond_stmt): Likewise.
19280 (vrp_visit_switch_stmt): Likewise.
19281 (vrp_visit_stmt): Likewise.
19282 (vrp_visit_phi_node): Likewise.
19283 (simplify_cond_using_ranges_1): Likewise.
19284 (fold_predicate_in): Likewise.
19285 (evrp_dom_walker::before_dom_children): Likewise.
19286 (evrp_dom_walker::push_value_range): Likewise.
19287 (evrp_dom_walker::pop_value_range): Likewise.
19288 (execute_early_vrp): Likewise.
19289
19290 2017-05-16 Richard Biener <rguenther@suse.de>
19291
19292 * dwarf2out.c (loc_list_from_tree_1): Do not create
19293 DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
19294
19295 2017-05-16 Richard Biener <rguenther@suse.de>
19296
19297 * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
19298 just generated.
19299 (note_variable_value_in_expr): If we resolved the decl ref
19300 do not push to the stack.
19301
19302 2017-05-16 Matthew Wahab <matthew.wahab@arm.com>
19303
19304 * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
19305 operations in fast-math mode.
19306 (vaddq_f16): Likewise.
19307 (vmul_f16): Likewise.
19308 (vmulq_f16): Likewise.
19309 (vsub_f16): Likewise.
19310 (vsubq_f16): Likewise.
19311 * config/arm/neon.md (add<mode>3): New.
19312 (sub<mode>3): New.
19313 (fma:<VH:mode>3): New. Also remove outdated comment.
19314 (mul<mode>3): New.
19315
19316 2017-05-16 Martin Liska <mliska@suse.cz>
19317
19318 PR ipa/79849.
19319 PR ipa/79850.
19320 * ipa-devirt.c (warn_types_mismatch): Fix typo.
19321 (odr_types_equivalent_p): Likewise.
19322
19323 2017-05-15 Sylvestre Ledru <sylvestre@debian.org>
19324
19325 * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
19326
19327 2017-05-15 Uros Bizjak <ubizjak@gmail.com>
19328
19329 PR target/80425
19330 * config/i386.i386.md (*zero_extendsidi2): Do not penalize
19331 non-interunit SSE move alternatives with '?'.
19332 (zero-extendsidi peephole2): New peephole to skip intermediate
19333 general register in SSE zero-extend sequence.
19334
19335 2017-05-15 Jeff Law <law@redhat.com>
19336
19337 * reorg.c (relax_delay_slots): Create a new variable to hold
19338 the temporary target rather than clobbering TARGET_LABEL.
19339
19340 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
19341 missing argument to extract_bit_field call.
19342 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
19343
19344 2017-05-15 Martin Liska <mliska@suse.cz>
19345
19346 PR driver/31468
19347 * gcc.c (process_command): Do not allow empty argument of -o option.
19348
19349 2017-05-15 Renlin Li <renlin.li@arm.com>
19350
19351 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
19352 * config/aarch64/aarch64.c (aarch64_expand_call): Define.
19353 * config/aarch64/constraints.md (Usf): Add long call check.
19354 * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
19355 (call_value): Likewise.
19356 (sibcall): Likewise.
19357 (sibcall_value): Likewise.
19358 (call_insn): New.
19359 (call_value_insn): New.
19360 (sibcall_insn): Update rtx pattern.
19361 (sibcall_value_insn): Likewise.
19362 (call_internal): Remove.
19363 (call_value_internal): Likewise.
19364 (sibcall_internal): Likewise.
19365 (sibcall_value_internal): Likewise.
19366 (call_reg): Likewise.
19367 (call_symbol): Likewise.
19368 (call_value_reg): Likewise.
19369 (call_value_symbol): Likewise.
19370
19371 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
19372
19373 PR target/80600
19374 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
19375
19376 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
19377
19378 * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
19379 compatible with CCGOCmode and with CCZmode.
19380
19381 2017-05-14 Martin Sebor <msebor@redhat.com>
19382
19383 PR middle-end/77671
19384 * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
19385 (gimple_fold_builtin_snprintf): Same.
19386 * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
19387 (gimple_fold_builtin_snprintf): Same.
19388 * gimple-ssa-sprintf.c (get_format_string): Correct the detection
19389 of character types.
19390 (is_call_safe): New function.
19391 (try_substitute_return_value): Call it.
19392 (try_simplify_call): New function.
19393 (pass_sprintf_length::handle_gimple_call): Call it.
19394
19395 2017-05-14 Martin Sebor <msebor@redhat.com>
19396
19397 PR middle-end/80669
19398 * builtins.c (expand_builtin_stpncpy): Simplify.
19399
19400 2017-05-14 Daniel Santos <daniel.santos@pobox.com>
19401
19402 * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
19403 * config/i386/i386.h
19404 (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
19405 (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
19406 (struct machine_function): Add new members call_ms2sysv,
19407 call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
19408 (struct machine_frame_state): New fields sp_realigned and
19409 sp_realigned_offset.
19410 * config/i386/i386.c
19411 (enum xlogue_stub): New enum.
19412 (enum xlogue_stub_sets): New enum.
19413 (class xlogue_layout): New class.
19414 (struct ix86_frame): New fields stack_realign_allocate_offset,
19415 stack_realign_offset and outlined_save_offset. Modify comments to
19416 detail stack layout when using out-of-line stubs.
19417 (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
19418 (ix86_option_override_internal): Add sorry() for TARGET_SEH and
19419 -mcall-ms2sysv-xlogues.
19420 (stub_managed_regs): New static variable.
19421 (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
19422 registers managed by out-of-line stub.
19423 (disable_call_ms2sysv_xlogues): New function.
19424 (ix86_compute_frame_layout): Modify re-alignment calculations, disable
19425 m->call_ms2sysv when appropriate and compute frame layout for
19426 out-of-line stubs.
19427 (sp_valid_at, fp_valid_at): New inline functions.
19428 (choose_basereg): New function.
19429 (choose_baseaddr): Add align parameter, use choose_basereg and modify
19430 all callers.
19431 (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
19432 Use align parameter of choose_baseaddr to generated aligned SSE movs
19433 when possible.
19434 (pro_epilogue_adjust_stack): Modify to track
19435 machine_frame_state::sp_realigned.
19436 (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
19437 (ix86_nsaved_sseregs): Likewise.
19438 (ix86_emit_save_regs): Likewise.
19439 (ix86_emit_save_regs_using_mov): Likewise.
19440 (ix86_emit_save_sse_regs_using_mov): Likewise.
19441 (get_scratch_register_on_entry): Likewise.
19442 (gen_frame_set): New function.
19443 (gen_frame_load): Likewise.
19444 (gen_frame_store): Likewise.
19445 (emit_outlined_ms2sysv_save): Likewise.
19446 (emit_outlined_ms2sysv_restore): Likewise.
19447 (ix86_expand_prologue): Modify stack re-alignment code and call
19448 emit_outlined_ms2sysv_save when appropriate.
19449 (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add
19450 parameter rtx_insn *insn, which allows the function to be used to only
19451 generate the notes.
19452 (ix86_expand_epilogue): Modify validity checks of frame and stack
19453 pointers, and call emit_outlined_ms2sysv_restore when appropriate.
19454 (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
19455 * config/i386/predicates.md
19456 (save_multiple): New predicate.
19457 (restore_multiple): Likewise.
19458 * config/i386/sse.md
19459 (save_multiple<mode>): New pattern.
19460 (save_multiple_realign<mode>): Likewise.
19461 (restore_multiple<mode>): Likewise.
19462 (restore_multiple_and_return<mode>): Likewise.
19463 (restore_multiple_leave_return<mode>): Likewise.
19464 * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
19465
19466 2017-05-14 Julia Koval <julia.koval@intel.com>
19467
19468 * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
19469 * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
19470 (__builtin_ia32_xsetbv): New builtins.
19471 * config/i386/i386.c (ix86_expand_special_args_builtin):
19472 Process new types.
19473 (ix86_expand_builtin): Special expand for new intrinsics.
19474 * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
19475 (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
19476 * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
19477
19478 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19479
19480 * cfganal.c (inverted_post_order_compute): Change argument type
19481 to vec *.
19482 * cfganal.h (inverted_post_order_compute): Adjust prototype.
19483 * df-core.c (rest_of_handle_df_initialize): Adjust.
19484 (rest_of_handle_df_finish): Likewise.
19485 (df_analyze_1): Likewise.
19486 (df_analyze): Likewise.
19487 (loop_inverted_post_order_compute): Change argument to be a vec *.
19488 (df_analyze_loop): Adjust.
19489 (df_get_n_blocks): Likewise.
19490 (df_get_postorder): Likewise.
19491 * df.h (struct df_d): Change field to be a vec.
19492 * lcm.c (compute_laterin): Adjust.
19493 (compute_available): Likewise.
19494 * lra-lives.c (lra_create_live_ranges_1): Likewise.
19495 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
19496 * tree-ssa-pre.c (compute_antic): Likewise.
19497
19498 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19499
19500 * cfganal.c (connect_infinite_loops_to_exit): Adjust.
19501 (depth_first_search::depth_first_search): Change structure init
19502 function to this constructor.
19503 (depth_first_search::add_bb): Rename function to this member.
19504 (depth_first_search::execute): Likewise.
19505 (flow_dfs_compute_reverse_finish): Adjust.
19506
19507 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19508
19509 * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
19510 (longest_simple_path): Likewise.
19511 * shrink-wrap.c (spread_components): Likewise.
19512 (disqualify_problematic_components): Likewise.
19513 (emit_common_heads_for_components): Likewise.
19514 (emit_common_tails_for_components): Likewise.
19515 (insert_prologue_epilogue_for_components): Likewise.
19516
19517 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19518
19519 * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
19520 auto_sbitmap.
19521
19522 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19523
19524 * df-core.c (df_set_blocks): Start using auto_bitmap.
19525 (df_compact_blocks): Likewise.
19526 * df-problems.c (df_rd_confluence_n): Likewise.
19527 * df-scan.c (df_insn_rescan_all): Likewise.
19528 (df_process_deferred_rescans): Likewise.
19529 (df_update_entry_block_defs): Likewise.
19530 (df_update_exit_block_uses): Likewise.
19531 (df_entry_block_bitmap_verify): Likewise.
19532 (df_exit_block_bitmap_verify): Likewise.
19533 (df_scan_verify): Likewise.
19534 * lra-constraints.c (lra_constraints): Likewise.
19535 (undo_optional_reloads): Likewise.
19536 (lra_undo_inheritance): Likewise.
19537 * lra-remat.c (calculate_gen_cands): Likewise.
19538 (do_remat): Likewise.
19539 * lra-spills.c (assign_spill_hard_regs): Likewise.
19540 (spill_pseudos): Likewise.
19541 * tree-ssa-pre.c (bitmap_set_and): Likewise.
19542 (bitmap_set_subtract_values): Likewise.
19543
19544 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19545
19546 * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
19547 management with auto_bitmap.
19548 (fix_inter_tick): Likewise.
19549 (fix_recovery_deps): Likewise.
19550 * ira.c (add_store_equivs): Likewise.
19551 (find_moveable_pseudos): Likewise.
19552 (split_live_ranges_for_shrink_wrap): Likewise.
19553 * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
19554 (rtx_reuse_manager::seen_def_p): Likewise.
19555 (rtx_reuse_manager::set_seen_def): Likewise.
19556 * print-rtl.h (class rtx_reuse_manager): Likewise.
19557
19558 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19559
19560 * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
19561 lifetime.
19562 (migrate_btr_def): Likewise.
19563 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
19564 * df-core.c (loop_post_order_compute): Likewise.
19565 (loop_inverted_post_order_compute): Likewise.
19566 * hsa-common.h: Likewise.
19567 * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
19568 * init-regs.c (initialize_uninitialized_regs): Likewise.
19569 * ipa-inline.c (resolve_noninline_speculation): Likewise.
19570 (inline_small_functions): Likewise.
19571 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
19572 * ira.c (combine_and_move_insns): Likewise.
19573 (build_insn_chain): Likewise.
19574 * loop-invariant.c (find_invariants): Likewise.
19575 * lower-subreg.c (propagate_pseudo_copies): Likewise.
19576 * predict.c (tree_predict_by_opcode): Likewise.
19577 (predict_paths_leading_to): Likewise.
19578 (predict_paths_leading_to_edge): Likewise.
19579 (estimate_loops_at_level): Likewise.
19580 (estimate_loops): Likewise.
19581 * shrink-wrap.c (try_shrink_wrapping): Likewise.
19582 (spread_components): Likewise.
19583 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
19584 * tree-loop-distribution.c (rdg_build_partitions): Likewise.
19585 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
19586 * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
19587 * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
19588 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
19589 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
19590 * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
19591 (mark_threaded_blocks): Likewise.
19592 (thread_through_all_blocks): Likewise.
19593 * tree-ssa.c (verify_ssa): Likewise.
19594 (execute_update_addresses_taken): Likewise.
19595 * tree-ssanames.c (verify_ssaname_freelists): Likewise.
19596
19597 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19598
19599 * cfganal.c (mark_dfs_back_edges): Replace manual stack with
19600 auto_vec.
19601 (post_order_compute): Likewise.
19602 (inverted_post_order_compute): Likewise.
19603 (pre_and_rev_post_order_compute_fn): Likewise.
19604
19605 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19606
19607 * genrecog.c (int_set::int_set): Explicitly construct our
19608 auto_vec base class.
19609 * vec.h (auto_vec::auto_vec): New constructor.
19610
19611 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19612
19613 * bitmap.h (class auto_bitmap): New constructor taking
19614 bitmap_obstack * argument.
19615
19616 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19617
19618 * bitmap.h (class auto_bitmap): Change type of m_bits to
19619 bitmap_head, and adjust ctor / dtor and member operators.
19620
19621 2017-05-13 Uros Bizjak <ubizjak@gmail.com>
19622
19623 * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
19624 when returned register mode doesn't match original mode.
19625
19626 2017-05-12 Jeff Law <law@redhat.com>
19627 Jakub Jelinek <jakub@redhat.com>
19628
19629 * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
19630 we look for cc setter after the compare-elim changes.
19631 * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
19632 within the vector to match what compare-elim now expects.
19633 (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
19634 (xorsi3_flags, one_cmplsi2_flags): Likewise.
19635
19636 * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
19637 after the compare-elim changes.
19638 * config/rx/rx.md (abssi2_flags): Fix order of patterns within
19639 the vector to match what compare-elim now expects.
19640 (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
19641 (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
19642 (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
19643 (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
19644 (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
19645
19646 * config/visium/visium.c (single_set_and_flags): Fix where
19647 we look for cc setter after the compare-elim changes.
19648 * config/visium/visium.md (flags_subst_logic): Fix order of patterns
19649 with the vector to match what compare-elim now expects.
19650 (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
19651 (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
19652 (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
19653 (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
19654 (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
19655 (neg<mode>2_insn_set_overflow): Likewise.
19656
19657 2017-05-12 Jim Wilson <jim.wilson@linaro.org>
19658
19659 PR middle-end/79794
19660 * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
19661 maybe_expand_insn call, set ops[0].target. If still set after call,
19662 set alt_rtl. Add extra arg to recursive calls.
19663 (extract_bit_field): Add alt_rtl argument. Pass to
19664 extract_bit_field.
19665 * expmed.h (extract_bit_field): Fix prototype.
19666 * expr.c (emit_group_load_1, copy_blkmode_from_reg)
19667 (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
19668 to extract_bit_field_calls.
19669 (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
19670 Pass alt_rtl to extract_bit_field calls.
19671 * calls.c (store_unaligned_arguments_into_psuedos)
19672 load_register_parameters): Pass extra NULL to extract_bit_field calls.
19673 * optabs.c (maybe_legitimize_operand): Clear op->target when call
19674 gen_reg_rtx.
19675 * optabs.h (struct expand_operand): Add target bitfield.
19676
19677 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
19678
19679 * compare-elim.c (try_eliminate_compare): Canonicalize
19680 operation with embedded compare to
19681 [(set (reg:CCM) (compare:CCM (operation) (immediate)))
19682 (set (reg) (operation)].
19683
19684 * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
19685
19686 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
19687
19688 PR target/80723
19689 * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
19690 cost of adding a carry flag for ADC instruction.
19691 [case MINUS]: Ignore the cost of subtracting a carry flag
19692 for SBB instruction.
19693
19694 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
19695
19696 * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
19697 and x86intrin.h
19698 * config/rs6000/bmiintrin.h: New file.
19699 * config/rs6000/bmi2intrin.h: New file.
19700 * config/rs6000/x86intrin.h: New file.
19701
19702 2017-05-12 Jeff Law <law@redhat.com>
19703
19704 * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
19705 markers.
19706
19707 2017-05-12 Peter Bergner <bergner@vnet.ibm.com>
19708
19709 PR middle-end/80707
19710 * tree-cfg.c: Remove cfg edges of unreachable case statements.
19711
19712 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
19713
19714 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
19715 early expansion of vector divide builtins.
19716 (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
19717 builtins identified as having unsigned arguments.
19718
19719 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
19720
19721 * config/rs6000/rs6000.c (gimple-fold.h): New #include.
19722 (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
19723 expansion of vector logical operations (and, andc, or, xor,
19724 nor, orc, nand).
19725
19726 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
19727
19728 * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
19729 * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
19730
19731 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
19732
19733 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
19734 early GIMPLE expansion of vector multiplies.
19735
19736 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
19737
19738 * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
19739 TARGET_HAVE_MOVT conditional.
19740 (movt splitter): Likewise.
19741
19742 2017-05-12 Richard Biener <rguenther@suse.de>
19743
19744 * tree-ssa-sccvn.h (has_VN_INFO): Declare.
19745 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
19746 Fold all stmts not inplace.
19747
19748 2017-05-12 Richard Biener <rguenther@suse.de>
19749
19750 PR tree-optimization/80713
19751 * tree-ssa-pre.c (remove_dead_inserted_code): Clear
19752 inserted_exprs bit for not removed stmts.
19753
19754 2017-05-12 Thomas Schwinge <thomas@codesourcery.com>
19755
19756 PR middle-end/69921
19757 * tree-parloops.c (create_parallel_loop): Set "oacc kernels
19758 parallelized" attribute for parallelized OpenACC kernels.
19759 * omp-offload.c (execute_oacc_device_lower): Use it.
19760
19761 * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
19762 Set "oacc kernels" attribute.
19763 * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
19764 parameter. Adjust all users.
19765 (oacc_fn_attrib_kernels_p): Remove function.
19766 * omp-offload.c (execute_oacc_device_lower): Look for "oacc
19767 kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
19768 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
19769 * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
19770 assert "oacc kernels" attribute is set.
19771
19772 2017-05-11 Carl Love <cel@us.ibm.com>
19773
19774 * config/rs6000/rs6000-c: Add support for built-in functions
19775 vector unsigned char vec_popcnt (vector signed char)
19776 vector unsigned char vec_popcnt (vector unsigned char)
19777 vector unsigned short vec_popcnt (vector signed short)
19778 vector unsigned short vec_popcnt (vector unsigned short)
19779 vector unsigned int vec_popcnt (vector signed int)
19780 vector unsigned int vec_popcnt (vector unsigned int)
19781 vector unsigned long long vec_popcnt (vector signed long long)
19782 vector unsigned long long vec_popcnt (vector unsigned long long)
19783 vector signed long long vec_slo (vector signed long long,
19784 vector signed char)
19785 vector signed long long vec_slo (vector signed long long,
19786 vector unsigned char)
19787 vector unsigned long long vec_slo (vector unsigned long long,
19788 vector signed char)
19789 vector unsigned long long vec_slo (vector unsigned long long,
19790 vector unsigned char)
19791 * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
19792 VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
19793 * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
19794 vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
19795 * doc/extend.texi: Update the built-in documentation file for the
19796 new built-in functions.
19797
19798 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
19799
19800 * attribs.h (sorted_attr_string): Move machine independent
19801 functions for target clone support from the i386 port to common
19802 code. Rename ix86_function_versions to common_function_versions.
19803 Rename make_name to make_unique_name.
19804 (common_function_versions): Likewise.
19805 (make_unique_name): Likewise.
19806 (make_dispatcher_decl): Likewise.
19807 (is_function_default_version): Likewise.
19808 * attribs.c (attr_strcmp): Likewise.
19809 (sorted_attr_string): Likewise.
19810 (common_function_versions): Likewise.
19811 (make_unique_name): Likewise.
19812 (make_dispatcher_decl): Likewise.
19813 (is_function_default_version): Likewise.
19814 * config/i386/i386.c (attr_strcmp): Likewise.
19815 (sorted_attr_string): Likewise.
19816 (ix86_function_versions): Likewise.
19817 (make_name): Likewise.
19818 (make_dispatcher_decl): Likewise.
19819 (is_function_default_version): Likewise.
19820 (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
19821
19822 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19823
19824 PR target/80695
19825 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
19826 Account for direct move costs for vec_construct of integer
19827 vectors.
19828
19829 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
19830
19831 PR target/80706
19832 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
19833 (UNSPEC_STX_ATOMIC): Ditto.
19834 (loaddi_via_sse): New insn.
19835 (storedi_via_sse): Ditto.
19836 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
19837 Update corresponding peephole2 patterns.
19838 (atomic_storedi_fpu): Ditto.
19839
19840 2017-05-11 Julia Koval <julia.koval@intel.com>
19841
19842 * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
19843 (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
19844 New intrinsics.
19845 * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
19846 (__builtin_ia32_rsqrt14ss_mask): New builtins.
19847 * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
19848
19849 2017-05-11 Nathan Sidwell <nathan@acm.org>
19850
19851 * graphite-poly.c: Include dumpfile.h.
19852
19853 * dumpfle.h (dump_function): Declare here ...
19854 * tree-dump.h (dump_function): ... not here.
19855 * dumpfile.c: #include tree-cfg.h.
19856 (dump_function): Move here from ...
19857 * tree-dump.c (dump_function): ... here.
19858 * gimplify.c: #include splay-tree.h, not tree-dump.h.
19859 * graphite-poly.c: Don't include tree-dump.h.
19860 * cgraphclones.c: Include dumpfile.h not tree-dump.h.
19861 * print-tree.c: Likewise.
19862 * stor-layout.c: Likewise.
19863 * tree-nested.c: Likewise.
19864
19865 * dumpfile.c (dump_start): Use TDF_FLAGS.
19866 (dump_enable_all): Fix TDF_KIND check thinko.
19867
19868 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
19869
19870 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
19871 array entries to represent two legal parameterizations of the
19872 overloaded __builtin_cmpb function, as represented by the
19873 P6_OV_BUILTIN_CMPB constant.
19874 (altivec_resolve_overloaded_builtin): Add special case handling
19875 for the __builtin_cmpb function, as represented by the
19876 P6_OV_BUILTIN_CMPB constant.
19877 * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
19878 (BU_P6_64BIT_2): New macro.
19879 (BU_P6_OVERLOAD_2): New macro
19880 (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
19881 (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
19882 (CMPB): Add overload support to represent both 32-bit and 64-bit
19883 compare-bytes function.
19884 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
19885 support for TARGET_CMPB.
19886 * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
19887 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
19888 documentation of the __builtin_cmpb overloaded built-in function.
19889
19890 2017-05-11 Richard Biener <rguenther@suse.de>
19891
19892 PR tree-optimization/80705
19893 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
19894 bases are not vectorizable.
19895
19896 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19897
19898 * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
19899 when counting register pressure.
19900
19901 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19902
19903 * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
19904 (iv_ca_more_deps): Renamed to ...
19905 (iv_ca_compare_deps): ... this.
19906 (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
19907
19908 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19909
19910 * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
19911 to ...
19912 (determine_group_iv_costs): ... here.
19913 (find_inv_vars_cb): Record inv var if it's not recorded before.
19914
19915 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19916
19917 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
19918 (get_shiftadd_cost): Ditto.
19919
19920 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19921
19922 * tree-ssa-address.c: Include header file.
19923 (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
19924 address.
19925 (add_to_parts): Refactor.
19926 (addr_to_parts): New parameter. Update use of move_hint_to_base.
19927 (create_mem_ref): Update use of addr_to_parts. Re-associate addr
19928 in new order.
19929
19930 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19931
19932 PR tree-optimization/53090
19933 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
19934 COMP_IV_EXPR_2.
19935 (extract_cond_operands): Detect condition with IV on both sides
19936 and return COMP_IV_EXPR_2.
19937 (find_interesting_uses_cond): Add iv_use for both IVs in condition.
19938 (rewrite_use_compare): Simplify by removing call to function
19939 extract_cond_operands.
19940
19941 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19942
19943 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
19944 (extract_cond_operands): Detect condition comparing against non-
19945 invariant bound and return appropriate enum value.
19946 (find_interesting_uses_cond): Update use of extract_cond_operands.
19947 Handle its return value accordingly.
19948 (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
19949
19950 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19951
19952 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
19953 nonlinear iv_use computation in loop invariant sensitive way.
19954
19955 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19956
19957 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
19958 (find_iv_candidates): Call relate_compare_use_with_all_cands.
19959
19960 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19961
19962 * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
19963 (dump_cand): Support iv_cand.inv_exprs.
19964 (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
19965 for candidates.
19966 (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
19967 iv_cand.inv_exprs.
19968
19969 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19970
19971 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
19972 from ...
19973 * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
19974 as local function. Include necessary header files.
19975 * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
19976
19977 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19978
19979 * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
19980
19981 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19982
19983 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
19984 operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
19985 RSHIFT_EXPR and BIT_NOT_EXPR.
19986
19987 2017-05-11 Bin Cheng <bin.cheng@arm.com>
19988
19989 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
19990 (adjust_setup_cost): New parameter supporting round up adjustment.
19991 (struct address_cost_data): Delete.
19992 (force_expr_to_var_cost): Don't bound cost with spill_cost.
19993 (split_address_cost, ptr_difference_cost): Delete.
19994 (difference_cost, compare_aff_trees, record_inv_expr): Delete.
19995 (struct ainc_cost_data): New struct.
19996 (get_address_cost_ainc): New function.
19997 (get_address_cost, get_computation_cost): Reimplement.
19998 (determine_group_iv_cost_address): Record inv_expr for all uses of
19999 a group.
20000 (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
20001 (iv_ca_has_deps): Reimplemented to ...
20002 (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps
20003 than OLD_CP.
20004 (iv_ca_extend): Call iv_ca_more_deps.
20005
20006 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20007
20008 * tree-ssa-address.c (struct mem_address): Move to header file.
20009 (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
20010 * tree-ssa-address.h (struct mem_address): Move from C file.
20011 (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
20012
20013 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20014
20015 * tree-affine.h (aff_combination_type): New interface.
20016 (aff_combination_zero_p): Remove static.
20017 (aff_combination_const_p): New interface.
20018 (aff_combination_singleton_var_p): New interfaces.
20019
20020 2017-05-11 Richard Biener <rguenther@suse.de>
20021
20022 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20023 Skip unreachable blocks and destinations.
20024 (eliminate): Move stmt removal and fixup ...
20025 (fini_eliminate): ... here. Skip inserted exprs.
20026 (pass_pre::execute): Move fini_pre after fini_eliminate.
20027 * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
20028 (tail_merge_optimize): Run cleanup_tree_cfg if requested by
20029 PRE to get rid of dead code that has invalid SSA form and
20030 split critical edges again.
20031
20032 2017-05-11 Bin Cheng <bin.cheng@arm.com>
20033
20034 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
20035
20036 2017-05-11 Richard Biener <rguenther@suse.de>
20037
20038 * passes.c (execute_function_todo): Verify loops if they are
20039 said to be up-to-date.
20040 * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
20041 * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
20042
20043 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
20044
20045 PR target/80090
20046 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
20047 handle calling assemble_external ourself.
20048
20049 PR target/79027
20050 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
20051 modes with zero size. Enhance comment.
20052
20053 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20054
20055 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
20056 built-ins for vec_xl and vec_xst with short and char pointer
20057 arguments.
20058
20059 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
20060
20061 * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
20062 (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
20063 (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
20064 (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
20065 (_mm_maskz_min_round_ss): New intrinsics.
20066 * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
20067 (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
20068 * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
20069 (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
20070 (__builtin_ia32_minss_mask_round): New builtins.
20071 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
20072 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
20073 * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
20074 Rename to ...
20075 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
20076 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
20077 Change to ...
20078 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
20079 ... this.
20080
20081 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
20082
20083 * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
20084 (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
20085 (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
20086 (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
20087 (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
20088 (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
20089 (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
20090 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
20091 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
20092 * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
20093 (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
20094 (__builtin_ia32_mulss_mask_round): New builtins.
20095 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
20096 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
20097 * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
20098 Rename to ...
20099 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
20100 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
20101 Change to ...
20102 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
20103 ... this.
20104
20105 2017-05-10 Julia Koval <julia.koval@intel.com>
20106
20107 * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
20108 (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
20109 (_mm256_setr_m128i): New intrinsics.
20110
20111 2017-05-10 Julia Koval <julia.koval@intel.com>
20112
20113 * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
20114 (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
20115 (_mm_maskz_rcp14_ss): New intrinsics.
20116 * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
20117 (__builtin_ia32_rcp14ss_mask): New builtins.
20118 * config/i386/sse.md (srcp14<mode>_mask): New pattern.
20119
20120 2017-05-10 Peter Bergner <bergner@vnet.ibm.com>
20121
20122 PR tree-optimization/51513
20123 * tree-cfg.c (gimple_seq_unreachable_p): New function.
20124 (assert_unreachable_fallthru_edge_p): Use it.
20125 (group_case_labels_stmt): Likewise.
20126 * tree-cfg.h: Prototype it.
20127 * stmt.c: Include cfghooks.h and tree-cfg.h.
20128 (emit_case_dispatch_table) <gap_label>: New local variable.
20129 Use it to fill dispatch table gaps.
20130 Test for default_label before updating probabilities.
20131 (expand_case) <default_label>: Remove unneeded initialization.
20132 Test for unreachable default case statement and remove its edge.
20133 Set default_label accordingly.
20134 * tree-ssa-ccp.c (optimize_unreachable): Update comment.
20135
20136 2017-05-10 Carl Love <cel@us.ibm.com>
20137
20138 * config/rs6000/rs6000-c: Add support for built-in functions
20139 vector signed char vec_neg (vector signed char)
20140 vector signed short int vec_neg (vector short int)
20141 vector signed int vec_neg (vector signed int)
20142 vector signed long long vec_neg (vector signed long long)
20143 vector float vec_neg (vector float)
20144 vector double vec_neg (vector double)
20145 * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
20146 overload.
20147 * config/rs6000/altivec.h: Add define for vec_neg
20148 * doc/extend.texi: Update the built-in documentation for the
20149 new built-in functions.
20150
20151 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
20152
20153 PR tree-optimization/77644
20154 * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
20155
20156 2017-05-10 Nathan Sidwell <nathan@acm.org>
20157
20158 * dumpfile.h (TDI_lang_all): New.
20159 (TDF_KIND): New. Renumber others
20160 (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
20161 than bits.
20162 * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add
20163 lang-all.
20164 (get_dump_file_name): Adjust suffix generation.
20165 (dump_enable_all): Use TDF_KIND.
20166 * doc/invoke.texi (-fdump-lang-all): Document.
20167
20168 * dumpfile.h: Tabify.
20169
20170 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com>
20171
20172 PR target/80671
20173 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
20174 Move member access before delete.
20175
20176 2017-05-10 Alexandre Oliva <aoliva@redhat.com>
20177
20178 * tree-inline.c (expand_call_inline): Split block at stmt
20179 before the call.
20180
20181 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
20182
20183 PR target/68163
20184 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
20185 are now unused after splitting mov{sf,sd}_hardfloat.
20186 (f32_lr2): Likewise.
20187 (f32_lm): Likewise.
20188 (f32_lm2): Likewise.
20189 (f32_li): Likewise.
20190 (f32_li2): Likewise.
20191 (f32_lv): Likewise.
20192 (f32_sr): Likewise.
20193 (f32_sr2): Likewise.
20194 (f32_sm): Likewise.
20195 (f32_sm2): Likewise.
20196 (f32_si): Likewise.
20197 (f32_si2): Likewise.
20198 (f32_sv): Likewise.
20199 (f32_dm): Likewise.
20200 (f32_vsx): Likewise.
20201 (f32_av): Likewise.
20202 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
20203 For movsf, order stores so the VSX stores occur before the GPR
20204 store which encourages the register allocator to use a traditional
20205 FPR instead of a GPR. For movsd, order the stores so that the GPR
20206 store comes before the VSX stores to allow the power6 to work.
20207 This is due to the power6 not having a 32-bit integer store
20208 instruction from a FPR.
20209 (movsf_hardfloat): Likewise.
20210 (movsd_hardfloat): Likewise.
20211
20212 2017-05-09 Martin Sebor <msebor@redhat.com>
20213
20214 PR translation/80280
20215 * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
20216 added in r247778.
20217
20218 PR translation/80280
20219 * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
20220 data member added in r247778.
20221 (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
20222
20223 2017-05-09 Nathan Sidwell <nathan@acm.org>
20224
20225 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
20226
20227 * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
20228 typedefs.
20229
20230 2017-05-09 Marek Polacek <polacek@redhat.com>
20231
20232 * doc/invoke.texi: Fix typo.
20233
20234 2017-05-09 Richard Biener <rguenther@suse.de>
20235
20236 * tree-vrp.c (vrp_val_is_max): Adjust comment.
20237 (vrp_val_is_min): Likewise.
20238 (set_value_range_to_value): Likewise.
20239 (set_value_range_to_nonnegative): Likewise.
20240 (gimple_assign_nonzero_p): Likewise.
20241 (gimple_stmt_nonzero_p): Likewise.
20242 (vrp_int_const_binop): Likewise. Remove unreachable case.
20243 (adjust_range_with_scev): Adjust comments.
20244 (compare_range_with_value): Likewise.
20245 (extract_range_from_phi_node): Likewise.
20246 (test_for_singularity): Likewise.
20247
20248 2017-05-09 Richard Biener <rguenther@suse.de>
20249
20250 * tree-vrp.c (get_single_symbol): Add assert that we don't
20251 get overflowed constants as invariant part.
20252 (compare_values_warnv): Add comment before the TREE_NO_WARNING
20253 checks. Use wi::cmp instead of recursing for integer constants.
20254 (compare_values): Just ignore whether we assumed undefined
20255 overflow instead of failing the compare.
20256 (extract_range_for_var_from_comparison_expr): Add comment before the
20257 TREE_NO_WARNING sets.
20258 (test_for_singularity): Likewise.
20259 (extract_range_from_comparison): Do not disable optimization
20260 when we assumed undefined overflow.
20261 (extract_range_basic): Remove init of unused var.
20262
20263 2017-05-09 Richard Biener <rguenther@suse.de>
20264
20265 * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
20266 (extract_range_from_multiplicative_op_1): Adjust.
20267 (extract_range_from_binary_expr_1): Use int_const_binop.
20268
20269 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
20270
20271 PR target/80101
20272 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
20273 rs6000_store_data_bypass_p in seven define_bypass directives and
20274 in several comments.
20275 * config/rs6000/rs6000-protos.h: Add prototype for
20276 rs6000_store_data_bypass_p function.
20277 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
20278 function implements slightly different (rs6000-specific) semantics
20279 than store_data_bypass_p, returning false rather than aborting
20280 with assertion error when arguments do not satisfy the
20281 requirements of store data bypass.
20282 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
20283 rs6000_store_data_bypass_p.
20284
20285 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
20286
20287 * config/xtensa/xtensa-protos.h
20288 (xtensa_initial_elimination_offset): New declaration.
20289 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
20290 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
20291 macro definition, add case for FRAME_POINTER_REGNUM when
20292 FRAME_GROWS_DOWNWARD.
20293 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
20294 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
20295 xtensa_initial_elimination_offset.
20296
20297 2017-05-08 Nathan Sidwell <nathan@acm.org>
20298
20299 * doc/invoke.texi: Alphabetize -fdump options.
20300
20301 2017-05-08 Martin Sebor <msebor@redhat.com>
20302
20303 PR translation/80280
20304 * config/sol2-c.c (solaris_pragma_align): Correct quoting.
20305
20306 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
20307
20308 * target.def (compute_frame_layout): New optional target hook.
20309 * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
20310 * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
20311 * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
20312 target hook.
20313 * reload1.c (verify_initial_elim_offsets): Likewise.
20314 * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
20315 (use_simple_return_p): Call arm_compute_frame_layout if needed.
20316 (arm_get_frame_offsets): Split up into this ...
20317 (arm_compute_frame_layout): ... and this function.
20318
20319 2017-05-08 Richard Sandiford <richard.sandiford@arm.com>
20320
20321 * config/aarch64/constraints.md (Usa): New constraint.
20322 * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
20323
20324 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
20325
20326 * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
20327 with_multilib_list after it has been checked.
20328
20329 2017-05-08 Richard Biener <rguenther@suse.de>
20330
20331 * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
20332 (bitmap_set_subtract_values): Likewise.
20333
20334 2017-05-08 Richard Biener <rguenther@suse.de>
20335
20336 * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
20337 (gimple_assign_nonzero): ... this and remove strict_overflow_p
20338 argument.
20339 (gimple_stmt_nonzero_warnv_p): Rename to ...
20340 (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
20341 argument.
20342 (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
20343 (extract_range_basic): Adjust, do not disable propagation on
20344 strict overflow sensitive simplification.
20345 (vrp_visit_cond_stmt): Likewise.
20346
20347 2017-05-05 Jan Hubicka <hubicka@ucw.cz>
20348
20349 * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
20350 body size unconditionally.
20351
20352 2017-05-07 Jeff Law <law@redhat.com>
20353
20354 Revert:
20355 2017-05-06 Jeff Law <law@redhat.com>
20356 PR tree-optimization/78496
20357 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
20358 code.
20359
20360 PR tree-optimization/78496
20361 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
20362 (simplify_stmt_using_ranges): Call it.
20363 (vrp_dom_walker::before_dom_children): Extract equivalences
20364 from an ASSERT_EXPR with an equality comparison against a
20365 constant.
20366
20367 2017-05-06 Jeff Law <law@redhat.com>
20368
20369 PR tree-optimization/78496
20370 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
20371 code.
20372
20373 PR tree-optimization/78496
20374 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
20375 (simplify_stmt_using_ranges): Call it.
20376 (vrp_dom_walker::before_dom_children): Extract equivalences
20377 from an ASSERT_EXPR with an equality comparison against a
20378 constant.
20379
20380 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
20381
20382 * lra-constraints.c (lra_copy_reg_equiv): New function.
20383 (split_reg): Use it to copy equivalence information from the
20384 original register to the spill register.
20385
20386 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
20387
20388 PR rtl-optimization/75964
20389 * simplify-rtx.c (simplify_const_relational_operation): Remove
20390 invalid handling of comparisons of integer ABS.
20391
20392 2017-05-06 Uros Bizjak <ubizjak@gmail.com>
20393
20394 * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
20395 initialize to zero.
20396 (init_regs): Remove declaration.
20397 (function_arg_advance_32): Initialize error_p as boolean variable.
20398
20399 2017-05-05 Nathan Sidwell <nathan@acm.org>
20400
20401 * store-motion.c (remove_reachable_equiv_notes): Reformat long
20402 lines. Use for (;;).
20403
20404 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20405
20406 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
20407 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
20408 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
20409 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
20410 VF=2 that require versioning.
20411
20412 2017-05-05 David Malcolm <dmalcolm@redhat.com>
20413
20414 * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
20415 int.
20416
20417 2017-05-05 David Malcolm <dmalcolm@redhat.com>
20418
20419 * diagnostic.h (diagnostic_override_option_index): Convert from
20420 macro to inline function.
20421
20422 2017-05-05 David Malcolm <dmalcolm@redhat.com>
20423
20424 * diagnostic.c (last_module_changed_p): New function.
20425 (set_last_module): New function.
20426 (diagnostic_report_current_module): Convert macro usage to
20427 the above functions.
20428 * diagnostic.h (diagnostic_context::last_module): Strengthen
20429 from const line_map * to const line_map_ordinary *.
20430 (diagnostic_last_module_changed): Delete macro.
20431 (diagnostic_set_last_module): Delete macro.
20432
20433 2017-05-05 David Malcolm <dmalcolm@redhat.com>
20434
20435 * diagnostic.c (diagnostic_impl): Replace report_diagnostic
20436 with diagnostic_report_diagnostic.
20437 (diagnostic_n_impl_richloc): Likewise.
20438 * diagnostic.h (report_diagnostic): Delete macro.
20439 * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
20440 with diagnostic_report_diagnostic.
20441 * substring-locations.c (format_warning_va): Likewise.
20442
20443 2017-05-05 David Malcolm <dmalcolm@redhat.com>
20444
20445 * diagnostic.c (diagnostic_report_diagnostic): Eliminate
20446 save/restor of format_spec. Move option-printing code to...
20447 (print_option_information): ...this new function, and
20448 reimplement by simply printing to the pretty_printer,
20449 rather than appending to the format string.
20450
20451 2017-05-05 David Malcolm <dmalcolm@redhat.com>
20452
20453 * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
20454 handling logic into...
20455 (update_effective_level_from_pragmas): ...this new function.
20456
20457 2017-05-04 Andrew Waterman <andrew@sifive.com>
20458
20459 * config/riscv/riscv.opt (mstrict-align): New option.
20460 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
20461 (SLOW_UNALIGNED_ACCESS): Define.
20462 (riscv_slow_unaligned_access): Declare.
20463 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
20464 field.
20465 (riscv_slow_unaligned_access): New variable.
20466 (rocket_tune_info): Set slow_unaligned_access to true.
20467 (optimize_size_tune_info): Set slow_unaligned_access to false.
20468 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
20469 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
20470 (riscv_option_override): Set riscv_slow_unaligned_access.
20471 * doc/invoke.texi: Add -mstrict-align to RISC-V.
20472
20473 2017-05-04 Kito Cheng <kito.cheng@gmail.com>
20474
20475 * config/riscv/riscv.md: Unify indentation.
20476
20477 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
20478
20479 PR target/79038
20480 PR target/79202
20481 PR target/79203
20482 * config/rs6000/rs6000.md (u code attribute): Add FIX and
20483 UNSIGNED_FIX.
20484 (extendsi<mode>2): Add support for doing sign extension via
20485 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
20486 don't have ISA 3.0 instructions.
20487 (extendsi<mode>2 splitter): Likewise.
20488 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
20489 generate the normal insns since SImode can now go in vector
20490 registers. Disallow the special UNSPECs needed for previous
20491 machines to hide SImode being used. Add new insns
20492 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
20493 (fix_trunc<mode>si2_stfiwx): Likewise.
20494 (fix_trunc<mode>si2_internal): Likewise.
20495 (fixuns_trunc<mode>si2): Likewise.
20496 (fixuns_trunc<mode>si2_stfiwx): Likewise.
20497 (fctiw<u>z_<mode>_smallint): Likewise.
20498 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
20499 of floating point to 32-bit integer from doing a direct move to
20500 the GPR registers to do a store.
20501 (fctiwz_<mode>): Break long line.
20502
20503 2017-05-05 Bin Cheng <bin.cheng@arm.com>
20504
20505 * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
20506 * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
20507 (addr_list, addr_offset_valid_p): New.
20508 (split_address_groups): Check offset validity with above function.
20509 (gt-tree-ssa-loop-ivopts.h): Include header file.
20510
20511 2017-05-05 Nathan Sidwell <nathan@acm.org>
20512
20513 * config.gcc (arm*-*-*): Add missing 'fi'.
20514
20515 2017-05-05 Steve Ellcey <sellcey@cavium.com>
20516
20517 * doc/invoke.texi (-fopt-info): Explicitly say order of options
20518 included in -fopt-info does not matter.
20519 * doc/optinfo.texi (-fopt-info): Fix description of default
20520 behavour. Explicitly say order of options included in -fopt-info
20521 does not matter.
20522
20523 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
20524
20525 * config.gcc: Allow combinations of aprofile and rmprofile values for
20526 --with-multilib-list.
20527 * config/arm/t-multilib: New file.
20528 * config/arm/t-aprofile: Remove initialization of MULTILIB_*
20529 variables. Remove setting of ISA and floating-point ABI in
20530 MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in
20531 MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
20532 and MULTILIB_DIRNAMES respectively. Add comment to introduce all
20533 matches. Add architecture matches for marvel-pj4 and generic-armv7-a
20534 CPU options.
20535 * config/arm/t-rmprofile: Likewise except for the matches changes.
20536 * doc/install.texi (--with-multilib-list): Document the combination of
20537 aprofile and rmprofile values and warn about pitfalls in doing that.
20538
20539 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
20540
20541 * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
20542 (movdi_aarch64): Likewise.
20543
20544 2017-05-05 Jakub Jelinek <jakub@redhat.com>
20545
20546 PR tree-optimization/80632
20547 * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
20548 field.
20549 (build_arrays): Initialize it for virtual phis.
20550 (fix_phi_nodes): Use it for virtual phis.
20551
20552 PR tree-optimization/80558
20553 * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
20554 [x, y] op z into [x op, y op z] for op & or | if conditions
20555 are met.
20556
20557 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
20558 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
20559
20560 PR target/71607
20561 * config/arm/arm.md (use_literal_pool): Remove.
20562 (64-bit immediate split): No longer takes cost into consideration
20563 if arm_disable_literal_pool is enabled.
20564 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
20565 used when arm_disable_literal_pool is enabled.
20566 (arm_max_const_double_inline_cost): Remove use of
20567 arm_disable_literal_pool.
20568 (push_minipool_fix): Add assert.
20569 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
20570 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
20571 (no_literal_pool_sf_immediate): New.
20572
20573 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
20574
20575 PR tree-optimization/80613
20576 * tree-ssa-dce.c (propagate_necessity): Remove cases for
20577 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
20578
20579 2017-05-05 Richard Biener <rguenther@suse.de>
20580
20581 * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
20582
20583 2017-05-05 Georg-Johann Lay <avr@gjlay.de>
20584
20585 * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
20586 of this flag from insn conditions due to removal from r247495.
20587
20588 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
20589
20590 * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
20591 New function.
20592 (arm_early_store_addr_dep_ptr): Likewise.
20593 * config/arm/aarch-common-protos.h
20594 (arm_early_load_addr_dep_ptr): Add prototype.
20595 (arm_early_store_addr_dep_ptr): Likewise.
20596 * config/arm/cortex-a53.md: Add new bypasses.
20597
20598 2017-05-05 Jakub Jelinek <jakub@redhat.com>
20599
20600 * tree.c (next_type_uid): Change type to unsigned.
20601 (type_hash_canon): Decrement back next_type_uid if
20602 freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs
20603 also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
20604 if possible.
20605
20606 2017-05-04 Martin Sebor <msebor@redhat.com>
20607
20608 * builtins.c: Fix a trivial typo in a comment.
20609
20610 PR middle-end/79234
20611 * builtins.c (check_sizes): Adjust to handle reading past the end.
20612 Avoid printing excessive upper bound of ranges. Use %E to print
20613 tree nodes instead of converting them to %wu.
20614 (expand_builtin_memchr): New function.
20615 (compute_dest_size): Rename...
20616 (compute_objsize): ...to this.
20617 (expand_builtin_memcpy): Adjust.
20618 (expand_builtin_mempcpy): Adjust.
20619 (expand_builtin_strcat): Adjust.
20620 (expand_builtin_strcpy): Adjust.
20621 (check_strncat_sizes): Adjust.
20622 (expand_builtin_strncat): Adjust.
20623 (expand_builtin_strncpy): Adjust and simplify.
20624 (expand_builtin_memset): Adjust.
20625 (expand_builtin_bzero): Adjust.
20626 (expand_builtin_memcmp): Adjust.
20627 (expand_builtin): Handle memcmp.
20628 (maybe_emit_chk_warning): Check strncat just once.
20629
20630 2017-05-04 Martin Sebor <msebor@redhat.com>
20631
20632 PR preprocessor/79214
20633 PR middle-end/79222
20634 PR middle-end/79223
20635 * builtins.c (check_sizes): Add inlining context and issue
20636 warnings even when -Wno-system-headers is set.
20637 (check_strncat_sizes): Same.
20638 (expand_builtin_strncat): Same.
20639 (expand_builtin_memmove): New function.
20640 (expand_builtin_stpncpy): Same.
20641 (expand_builtin): Handle memmove and stpncpy.
20642
20643 2017-05-04 Bin Cheng <bin.cheng@arm.com>
20644
20645 * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
20646 which is not used any more.
20647
20648 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
20649
20650 * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
20651
20652 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
20653
20654 * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
20655 (cortexa53_tunings): Likewise.
20656 (cortexa57_tunings): Likewise.
20657 (cortexa72_tunings): Likewise.
20658 (cortexa73_tunings): Likewise.
20659
20660 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
20661
20662 * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
20663 Set loop alignment to 8.
20664
20665 2017-05-04 Martin Sebor <msebor@redhat.com>
20666
20667 PR translation/80280
20668 * builtins.c (expand_builtin_object_size): Add missing quoting to
20669 %D and like directives.
20670 * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
20671 (hsa_type_for_tree_type): Same.
20672 (verify_function_arguments): Same.
20673 * symtab.c (symbol_table::change_decl_assembler_name): Same.
20674 * varasm.c (get_section): Same.
20675 (mark_weak): Same.
20676
20677 2017-05-04 Martin Sebor <msebor@redhat.com>
20678
20679 PR translation/80280
20680 * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
20681
20682 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
20683
20684 * config/aarch64/aarch64.c (generic_addrcost_table):
20685 Change HI/TI mode setting.
20686
20687 2017-05-04 Martin Jambor <mjambor@suse.cz>
20688
20689 PR tree-optimization/80622
20690 * tree-sra.c (comes_initialized_p): New function.
20691 (build_accesses_from_assign): Only set write lazily when
20692 comes_initialized_p is false.
20693 (analyze_access_subtree): Use comes_initialized_p.
20694 (propagate_subaccesses_across_link): Assert !comes_initialized_p
20695 instead of testing for PARM_DECL.
20696
20697 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20698
20699 * config/aarch64/aarch64.md (prefetch); Adjust predicate and
20700 constraint on operand 0 to allow more general addressing modes.
20701 Adjust output template.
20702 * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
20703 New function.
20704 * config/aarch64/aarch64-protos.h
20705 (aarch64_address_valid_for_prefetch_p): Declare prototype.
20706 * config/aarch64/constraints.md (Dp): New address constraint.
20707 * config/aarch64/predicates.md (aarch64_prefetch_operand): New
20708 predicate.
20709
20710 2017-05-04 Jan Hubicka <hubicka@ucw.cz>
20711
20712 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
20713 update use of estimate_ipcp_clone_size_and_time.
20714 (estimate_local_effects): Update use of
20715 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
20716 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
20717 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
20718 Return nonspecialized time.
20719
20720 2017-05-04 Richard Biener <rguenther@suse.de>
20721
20722 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
20723 for the last VUSE which def dominates the PHI. Directly call
20724 maybe_skip_until.
20725 (get_continuation_for_phi_1): Remove.
20726
20727 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org>
20728
20729 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
20730 to explain the use of truncating division. Cap the number of
20731 iterations to the maximum given by nb_iterations_upper_bound,
20732 if defined.
20733
20734 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
20735
20736 * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
20737 * configure: Regenerate.
20738 * config.in: Regenerate.
20739 * config/i386/driver-mingw32.c: new file.
20740 * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
20741 * config.host: Link driver-mingw32.o on MinGW host.
20742 * doc/install.texi: Document new --enable-mingw-wildcard configure
20743 option.
20744
20745 2017-05-04 Marek Polacek <polacek@redhat.com>
20746
20747 PR tree-optimization/80612
20748 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
20749
20750 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
20751 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
20752
20753 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
20754 (movt splitter): Likewise.
20755 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
20756 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
20757 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
20758 block for Thumb-1 with MOVT.
20759 (thumb2_legitimate_address_p): Move code block ...
20760 (can_avoid_literal_pool_for_label_p): ... into this new function.
20761 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
20762 literal pool.
20763 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
20764 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
20765 "M-profile targets with the MOVT instruction".
20766
20767 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
20768
20769 * config/arm/arm-builtins.c (arm_init_builtins): Rename
20770 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
20771 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
20772
20773 2017-05-04 Martin Liska <mliska@suse.cz>
20774
20775 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
20776 variable cond_code.
20777
20778 2017-05-04 Richard Biener <rguenther@suse.de>
20779
20780 * tree.c (array_at_struct_end_p): Handle arrays at struct
20781 end with flexarrays more conservatively. Refactor and treat
20782 arrays of arrays or aggregates more strict. Fix
20783 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
20784 * tree.c (array_at_struct_end_p): Adjust prototype.
20785 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
20786 * gimple-fold.c (get_range_strlen): Likewise.
20787 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
20788
20789 2017-05-04 Richard Biener <rguenther@suse.de>
20790
20791 PR tree-optimization/31130
20792 * tree-vrp.c (needs_overflow_infinity): Remove as always returning
20793 false.
20794 (supports_overflow_infinity): Likewise.
20795 (is_negative_overflow_infinity): Likewise.
20796 (is_positive_overflow_infinity): Likewise.
20797 (is_overflow_infinity): Likewise.
20798 (stmt_overflow_infinity): Likewise.
20799 (overflow_infinity_range_p): Likewise.
20800 (usable_range_p): Remove as always returning true.
20801 (make_overflow_infinity): Remove.
20802 (negative_overflow_infinity): Likewise.
20803 (positive_overflow_infinity): Likewise.
20804 (avoid_overflow_infinity): Likewise.
20805 (set_value_range): Adjust accordingly.
20806 (set_value_range_to_nonnegative): Likewise, remove now unused
20807 overflow_infinity arg.
20808 (vrp_operand_equal_p): Adjust.
20809 (update_value_range): Likewise.
20810 (range_int_cst_singleton_p): Likewise.
20811 (operand_less_p): Likewise.
20812 (compare_values_warnv): Likewise.
20813 (extract_range_for_var_from_comparison_expr): Likewise.
20814 (vrp_int_const_binop): Likewise.
20815 (zero_nonzero_bits_from_vr): Likewise.
20816 (extract_range_from_multiplicative_op_1): Likewise.
20817 (extract_range_from_binary_expr_1): Likewise.
20818 (extract_range_from_unary_expr): Likewise.
20819 (extract_range_from_comparison): Likewise.
20820 (extract_range_basic): Likewise.
20821 (adjust_range_with_scev): Likewise.
20822 (compare_ranges): Likewise.
20823 (compare_range_with_value): Likewise.
20824 (dump_value_range): Likewise.
20825 (test_for_singularity): Likewise, remove strict_overflow_p parameter
20826 never used.
20827 (simplify_cond_using_ranges): Adjust.
20828
20829 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
20830
20831 * brig-builtins.def: Added a builtin for class_f64.
20832 * builtin-types.def: Added a builtin type needed by class_f64.
20833
20834 2017-05-03 Jason Merrill <jason@redhat.com>
20835
20836 * timevar.def: Add TV_CONSTEXPR.
20837
20838 2017-05-03 David Malcolm <dmalcolm@redhat.com>
20839
20840 * common.opt (fdiagnostics-parseable-fixits): Fix typo.
20841
20842 2017-05-03 Martin Jambor <mjambor@suse.cz>
20843
20844 * ipa-prop.c (ipa_update_after_lto_read): Removed.
20845 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
20846 * ipa-cp.c (ipcp_propagate_stage): Do not call
20847 ipa_update_after_lto_read.
20848 * ipa-inline.c (ipa_inline): Likewise.
20849
20850 2017-05-03 Martin Jambor <mjambor@suse.cz>
20851
20852 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY
20853 tag. Added a default constructor and a destructor.
20854 (ipa_edge_args_sum_t): New class;
20855 (ipa_edge_args_sum): Declare.
20856 (ipa_edge_args_vector): Remove declaration.
20857 (IPA_EDGE_REF): Use ipa_edge_args_sum.
20858 (ipa_free_edge_args_substructures): Remove declaration.
20859 (ipa_check_create_edge_args): Use ipa_edge_args_sum.
20860 (ipa_edge_args_info_available_for_edge_p): Likewise.
20861 * ipa-prop.c (ipa_edge_args_vector): Removed.
20862 (edge_removal_hook_holder): Likewise.
20863 (edge_duplication_hook_holder): Likewise.
20864 (ipa_edge_args_sum): New variable.
20865 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
20866 ipa_edge_args_vector.
20867 (ipa_free_edge_args_substructures): Likewise.
20868 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
20869 ipa_edge_args_vector.
20870 (ipa_edge_removal_hook): Turned into method
20871 ipa_edge_args_sum_t::remove.
20872 (ipa_edge_duplication_hook): Turned into method
20873 ipa_edge_args_sum_t::duplicate.
20874 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
20875 registering edge hooks.
20876 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
20877 * ipa-inline-analysis.c (estimate_function_body_sizes): Test
20878 ipa_edge_args_sum instead of ipa_edge_args_vector.
20879 * ipa-profile.c (ipa_profile): Likewise.
20880
20881 2017-05-03 Martin Jambor <mjambor@suse.cz>
20882
20883 * symbol-summary.h (function_summary): New method exists.
20884 (function_summary::symtab_removal): Deallocate through release.
20885 (call_summary): New class.
20886 (gt_ggc_mx): New overload.
20887 (gt_pch_nx): Likewise.
20888 (gt_pch_nx): Likewise.
20889
20890 2017-05-03 Jeff Law <law@redhat.com>
20891
20892 PR tree-optimization/78496
20893 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
20894 from simplify_cond_using_ranges. Split off code to walk
20895 backwards through casts into ...
20896 (simplify_cond_using_ranges_2): New function.
20897 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
20898 (execute_vrp): After identifying jump threads, call
20899 simplify_cond_using_ranges_2.
20900
20901 2017-05-03 Jan Hubicka <hubicka@ucw.cz>
20902
20903 PR bootstrap/80609
20904 * ipa-inline.h (inline_summary): Add ctor.
20905 (create_ggc): Do not use ggc_cleared_alloc.
20906
20907 2017-05-03 Jeff Downs <heydowns@somuchpressure.net>
20908 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20909
20910 * gcc.c (handle_braces): Support escaping in switch matching
20911 text.
20912 * doc/invoke.texi (Spec Files): Document it.
20913 Remove superfluous @code markup in items.
20914
20915 2017-05-03 David Malcolm <dmalcolm@redhat.com>
20916
20917 * diagnostic-show-locus.c (struct column_range): New struct.
20918 (get_affected_columns): New function.
20919 (get_printed_columns): New function.
20920 (struct correction): New struct.
20921 (correction::ensure_capacity): New function.
20922 (correction::ensure_terminated): New function.
20923 (struct line_corrections): New struct.
20924 (line_corrections::~line_corrections): New dtor.
20925 (line_corrections::add_hint): New function.
20926 (layout::print_trailing_fixits): Reimplement in terms of the new
20927 classes.
20928 (selftest::test_overlapped_fixit_printing): New function.
20929 (selftest::diagnostic_show_locus_c_tests): Call it.
20930
20931 2017-05-03 Nathan Sidwell <nathan@acm.org>
20932
20933 Canonicalize canonical type hashing
20934 * tree.h (type_hash_canon_hash): Declare.
20935 * tree.c (type_hash_list, attribute_hash_list): Move into
20936 type_hash_canon_hash.
20937 (build_type_attribute_qual_variant): Break out hash code calc into
20938 type_hash_canon_hash.
20939 (type_hash_canon_hash): New. Generic type hash computation.
20940 (build_range_type_1, build_array_type_1, build_function_type,
20941 build_method_type_directly, build_offset_type, build_complex_type,
20942 make_vector_type): Call it.
20943
20944 2017-05-03 Richard Biener <rguenther@suse.de>
20945
20946 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20947 When all DRs have unknown misaligned do not always peel
20948 when there is a store but apply the same costing model as if
20949 there were only loads.
20950
20951 2017-05-03 Richard Biener <rguenther@suse.de>
20952
20953 Revert
20954 PR tree-optimization/80492
20955 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
20956 compare_base_decls returning dont-know properly.
20957
20958 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
20959
20960 * config/arm/iterators.md (CCSI): New mode iterator.
20961 (arch): New mode attribute.
20962 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
20963 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
20964 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI
20965 code iterator for success result mode.
20966 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
20967 the corresponding new insn generators.
20968
20969 2017-05-03 Bin Cheng <bin.cheng@arm.com>
20970
20971 Revert r247509
20972 2017-05-02 Bin Cheng <bin.cheng@arm.com>
20973 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
20974
20975 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org>
20976
20977 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
20978 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
20979 (DDR_A): Wrap DDR argument in brackets.
20980 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
20981 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
20982 (DDR_REVERSED_P): Likewise.
20983
20984 2017-05-03 Jakub Jelinek <jakub@redhat.com>
20985
20986 PR tree-optimization/79472
20987 * tree-switch-conversion.c (struct switch_conv_info): Add
20988 contiguous_range and default_case_nonstandard fields.
20989 (collect_switch_conv_info): Compute contiguous_range and
20990 default_case_nonstandard fields, don't clear final_bb if
20991 contiguous_range and only the default case doesn't have the required
20992 structure.
20993 (check_all_empty_except_final): Set default_case_nonstandard instead
20994 of failing if contiguous_range and the default case doesn't have empty
20995 block.
20996 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
20997 and only the default case doesn't have the required constants. Skip
20998 virtual phis.
20999 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW
21000 if default_case_nonstandard.
21001 (build_constructors): Build constant 1 just once. Assert that default
21002 values aren't inserted in between cases if contiguous_range. Skip
21003 virtual phis.
21004 (build_arrays): Skip virtual phis.
21005 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
21006 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
21007 Handle virtual phis.
21008 (gen_inbound_check): Handle default_case_nonstandard case.
21009 (process_switch): Adjust check_final_bb caller. Call
21010 gather_default_values with the first non-default case instead of
21011 default case if default_case_nonstandard.
21012
21013 2017-05-02 Nathan Sidwell <nathan@acm.org>
21014
21015 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
21016 check. Fix formatting.
21017
21018 2017-05-02 Jan Hubicka <hubicka@ucw.cz>
21019
21020 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
21021 errors when comparing specialized and unspecialized times.
21022
21023 2017-05-02 David Malcolm <dmalcolm@redhat.com>
21024
21025 * diagnostic-show-locus.c
21026 (layout::should_print_annotation_line_p): Make private.
21027 (layout::print_annotation_line): Make private.
21028 (layout::annotation_line_showed_range_p): Make private.
21029 (layout::show_ruler): Make private.
21030 (layout::print_source_line): Make private. Pass in line and
21031 line_width, rather than calling location_get_source_line. Drop
21032 returned value.
21033 (layout::print_leading_fixits): New method.
21034 (layout::print_any_fixits): Rename to...
21035 (layout::print_trailing_fixits): ...this, and make private.
21036 Don't print newline fixits.
21037 (diagnostic_show_locus): Move logic for printing one row into...
21038 (layout::print_line): ...this new function. Move the
21039 location_get_source_line call and error-handling from
21040 print_source_line to here. Call print_leading_fixits, and rename
21041 print_any_fixits to print_trailing_fixits.
21042 (selftest::test_fixit_insert_containing_newline): Update now that
21043 newlines are partially supported.
21044 (selftest::test_fixit_insert_containing_newline_2): New test.
21045 (selftest::test_fixit_replace_containing_newline): Update comments.
21046 (selftest::diagnostic_show_locus_c_tests): Call the new test.
21047 * edit-context.c (class added_line): New class.
21048 (class edited_line): Describe newline handling in comment.
21049 (edited_line::actually_edited_p): New method.
21050 (edited_line::print_content): Delete redundant decl.
21051 (edited_line::m_predecessors): New field.
21052 (edited_file::print_content): Call edited_line::print_content.
21053 (edited_file::print_diff): Update to support newlines.
21054 (edited_file::print_diff_hunk): Likewise.
21055 (edited_file::print_run_of_changed_lines): New function.
21056 (edited_file::print_diff_line): Convert to...
21057 (print_diff_line): ...this.
21058 (edited_file::get_effective_line_count): New function.
21059 (edited_line::edited_line): Initialize new field m_predecessors.
21060 (edited_line::~edited_line): Clean up m_predecessors.
21061 (edited_line::apply_fixit): Handle newlines.
21062 (edited_line::get_effective_line_count): New function.
21063 (edited_line::print_content): New function.
21064 (edited_line::print_diff_lines): New function.
21065 (selftest::test_applying_fixits_insert_containing_newline): New
21066 test.
21067 (selftest::test_applying_fixits_replace_containing_newline): New
21068 test.
21069 (selftest::insert_line): New function.
21070 (selftest::test_applying_fixits_multiple_lines): Add example of
21071 inserting a line.
21072 (selftest::edit_context_c_tests): Call the new tests.
21073
21074 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21075
21076 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
21077 parameter cand. Update dump information.
21078 (get_computation_cost): Update uses.
21079
21080 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21081
21082 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
21083 (get_computation_aff): Reorder parameters. Use get_computation_aff_1.
21084 (get_computation_at, rewrite_use_address): Update use of
21085 get_computation_aff.
21086
21087 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21088
21089 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
21090 (get_computation): Delete.
21091 (get_computation_cost): Implement like get_computation_cost_at.
21092 Use get_computation_at.
21093 (get_computation_cost_at): Delete.
21094 (rewrite_use_nonlinear_expr): Use get_computation_at.
21095 (rewrite_use_compare, remove_unused_ivs): Ditto.
21096
21097 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21098
21099 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
21100
21101 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21102
21103 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
21104 (ivopts_global_cost_for_size): Rename parameter and update uses.
21105 (iv_ca_recount_cost): Update uses.
21106 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
21107 candidates seperately in n_invs and n_cands.
21108 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
21109
21110 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21111
21112 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
21113 (find_inv_vars_cb): New.
21114 (find_depends): Renamed to ...
21115 (find_inv_vars): ... this.
21116 (add_candidate_1, force_var_cost): Call find_inv_vars.
21117 (split_address_cost, determine_group_iv_cost_cond): Ditto.
21118
21119 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21120
21121 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
21122 inv_vars. Add inv_exprs.
21123 (struct iv_cand): Rename depends_on to inv_vars.
21124 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
21125 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around.
21126 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
21127 (dump_cand): Dump inv_vars.
21128 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
21129 (record_invariant, find_depends, add_candidate_1): Ditto.
21130 (set_group_iv_cost, force_var_cost): Ditto.
21131 (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
21132 (get_computation_cost_at, get_computation_cost): Ditto.
21133 (determine_group_iv_cost_generic): Ditto.
21134 (determine_group_iv_cost_address): Ditto.
21135 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
21136 (determine_group_iv_costs): Ditto.
21137 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
21138 (iv_ca_set_remove_invariants): Renamed to ...
21139 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs.
21140 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
21141 (iv_ca_set_add_invariants): Renamed to ...
21142 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs.
21143 (iv_ca_set_cp): Use iv_ca_set_add_invs.
21144 (iv_ca_has_deps): Support inv_vars and inv_exprs.
21145 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
21146 (create_new_ivs): Remove useless dump.
21147
21148 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21149
21150 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
21151 iv_cand code.
21152 (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
21153 (iv_ca_set_no_cp, create_new_iv): Ditto.
21154
21155 2017-05-02 Bin Cheng <bin.cheng@arm.com>
21156
21157 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
21158
21159 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
21160
21161 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
21162 function tree_check2.
21163
21164 2017-05-02 Martin Liska <mliska@suse.cz>
21165
21166 * doc/gcov.texi: Add missing preposition.
21167 * gcov.c (function_info::function_info): Properly fill up
21168 all member variables.
21169
21170 2017-05-02 Tamar Christina <tamar.christina@arm.com>
21171
21172 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
21173
21174 2017-05-02 Tamar Christina <tamar.christina@arm.com>
21175
21176 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
21177
21178 2017-05-02 Martin Liska <mliska@suse.cz>
21179
21180 PR lto/77954.
21181 * lto-streamer-in.c (lto_read_tree_1): Remove
21182 LTO_STREAMER_DEBUG.
21183 * lto-streamer.c (struct tree_hash_entry): Likewise.
21184 (struct tree_entry_hasher): Likewise.
21185 (tree_entry_hasher::hash): Likewise.
21186 (tree_entry_hasher::equal): Likewise.
21187 (lto_streamer_init): Likewise.
21188 (lto_orig_address_map): Likewise.
21189 (lto_orig_address_get): Likewise.
21190 (lto_orig_address_remove): Likewise.
21191 * lto-streamer.h: Likewise.
21192 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
21193 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
21194
21195 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com>
21196
21197 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
21198 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
21199 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
21200 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
21201 (mm_maskz_sub_round_ss, _mm_mask_add_sd)
21202 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
21203 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
21204 (mm_maskz_sub_ss): New intrinsics.
21205 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21206 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
21207 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
21208 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
21209 (__builtin_ia32_subss_mask_round): New builtins.
21210 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21211 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
21212 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
21213 Renamed to ...
21214 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
21215 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
21216 Changed to ...
21217 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
21218 ... this.
21219
21220 2017-05-02 Martin Jambor <mjambor@suse.cz>
21221
21222 PR tree-optimization/78687
21223 * tree-sra.c (access): New field parent.
21224 (process_subtree_disqualification): New function.
21225 (disqualify_candidate): Call it.
21226 (build_accesses_from_assign): Reset write flag if creating an
21227 assighnment link.
21228 (build_access_subtree): Fill in parent field and also prpagate
21229 down grp_write flag.
21230 (create_artificial_child_access): New parameter set_grp_write, set
21231 grp_write to its value.
21232 (propagate_subaccesses_across_link): Also propagate grp_write flag
21233 values.
21234 (propagate_all_subaccesses): Push the closest parent back to work
21235 queue if add_access_to_work_queue returned true.
21236
21237 2017-05-02 Richard Biener <rguenther@suse.de>
21238
21239 * common.opt (fstrict-overflow): Alias negative to fwrapv.
21240 * doc/invoke.texi (fstrict-overflow): Remove all traces of
21241 -fstrict-overflow documentation.
21242 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
21243 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
21244 flag_strict_overflow.
21245 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
21246 * lto-opts.c (lto_write_options): Do not stream it.
21247 * lto-wrapper.c (merge_and_complain): Do not handle it.
21248 * opts.c (default_options_table): Do not set -fstrict-overflow.
21249 (finish_options): Likewise do not clear it when sanitizing.
21250 * simplify-rtx.c (simplify_const_relational_operation): Do not
21251 test flag_strict_overflow.
21252
21253 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
21254
21255 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
21256 using enabled attribute.
21257 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
21258 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
21259 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
21260 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
21261 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
21262 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
21263 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
21264 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
21265 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
21266 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
21267
21268 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
21269
21270 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
21271
21272 2017-05-02 Richard Biener <rguenther@suse.de>
21273
21274 PR tree-optimization/80591
21275 Revert
21276 2017-04-10 Richard Biener <rguenther@suse.de>
21277
21278 * tree-ssa-structalias.c (find_func_aliases): Properly handle
21279 asm inputs.
21280
21281 2017-05-02 Richard Biener <rguenther@suse.de>
21282
21283 PR tree-optimization/80549
21284 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
21285 (cleanup_tree_cfg_noloop): Create forwarders to known loop
21286 headers if they do not have a preheader.
21287
21288 2017-05-02 Martin Liska <mliska@suse.cz>
21289
21290 PR other/80589
21291 * common.opt: Fix typo.
21292 * doc/invoke.texi: Likewise.
21293
21294 2017-05-01 Jan Beulich <jbeulich@suse.com>
21295
21296 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
21297 swapping, add (x,x,m,x,n) alternative.
21298
21299 2017-05-01 Nathan Sidwell <nathan@acm.org>
21300
21301 * calls.c (combine_pending_stack_adjustment_and_call): Remove
21302 unnecessary unadjusted_alignment check.
21303
21304 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
21305
21306 PR c++/80038
21307 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
21308 operations here.
21309 * gimplify.c (gimplify_cilk_detach): New function.
21310 (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
21311 * tree-core.h: Document EXPR_CILK_SPAWN.
21312 * tree.h (EXPR_CILK_SPAWN): Define.
21313
21314 2017-05-01 David Malcolm <dmalcolm@redhat.com>
21315
21316 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
21317 to use new fixit_hint representation, using the "replace" logic.
21318 (get_line_span_for_fixit_hint): Likewise.
21319 (layout::print_any_fixits): Likewise.
21320 (selftest::test_one_liner_many_fixits): Rename to...
21321 (selftest::test_one_liner_many_fixits_1): ...this, and update
21322 comment and expected output to reflect that the multiple fix-it
21323 hints are now consolidated into one insertion.
21324 (selftest::test_one_liner_many_fixits_2): New test.
21325 (selftest::test_diagnostic_show_locus_one_liner): Update for
21326 above.
21327 (selftest::test_fixit_consolidation): Update for fix-it API
21328 change.
21329 * diagnostic.c (print_parseable_fixits): Likewise.
21330 * edit-context.c (edited_line::m_line_events): Convert from
21331 auto_vec <line_event *> to auto_vec <line_event>.
21332 (class line_event): Convert from abstract base class to a concrete
21333 class, taking over the role of replace_event.
21334 (class insert_event): Delete.
21335 (class replace_event): Rename to class line_event. Convert to
21336 half-open range.
21337 (edit_context::add_fixits): Reimplement.
21338 (edit_context::apply_insert): Delete.
21339 (edit_context::apply_replace): Rename to...
21340 (edit_context::apply_fixit): ...this. Convert to half-open range.
21341 (edited_file::apply_insert): Delete.
21342 (edited_file::apply_replace): Rename to...
21343 (edited_file::apply_fixit): ...this.
21344 (edited_line::~edited_line): Drop deletion of events.
21345 (edited_line::apply_insert): Delete.
21346 (edited_line::apply_replace): Rename to...
21347 (edited_line::apply_fixit): ...this. Convert to half-open range.
21348 Update for change to type of m_line_events.
21349 * edit-context.h (edit_context::apply_insert): Delete.
21350 (edit_context::apply_replace): Rename to...
21351 (edit_context::apply_fixit): ...this.
21352
21353 2017-05-01 Martin Sebor <msebor@redhat.com>
21354
21355 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
21356 known.
21357
21358 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
21359
21360 PR target/68491
21361 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
21362 __get_cpuid_max returns 0.
21363 (__get_cpuid_count): Ditto.
21364
21365 2017-05-01 Eric Botcazou <ebotcazou@adacore.com>
21366
21367 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
21368 replacement expression is another instance of one of its arguments.
21369
21370 2017-05-01 Jakub Jelinek <jakub@redhat.com>
21371
21372 PR target/79430
21373 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
21374 check for stack push/pop autoinc.
21375 * config/i386/i386.c (ix86_agi_dependent): Return false
21376 if the only reason why modified_in_p returned true is that
21377 addr is SP based and set_insn is a push or pop.
21378
21379 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
21380
21381 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
21382 overflow check.
21383
21384 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
21385
21386 PR ipa/79224
21387 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
21388 (account_size_time): Use two predicates - exec_pred and
21389 nonconst_pred_ptr.
21390 (evaluate_conditions_for_known_args): Compute both clause and
21391 nonspec_clause.
21392 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
21393 (inline_summary_t::duplicate): Update.
21394 (estimate_function_body_sizes): Caluculate exec and nonconst predicates
21395 separately.
21396 (compute_inline_parameters): Likewise.
21397 (estimate_edge_size_and_time): Update caluclation of time.
21398 (estimate_node_size_and_time): Compute both time and nonspecialized
21399 time.
21400 (estimate_ipcp_clone_size_and_time): Update.
21401 (inline_merge_summary): Update.
21402 (do_estimate_edge_time): Update.
21403 (do_estimate_edge_size): Update.
21404 (do_estimate_edge_hints): Update.
21405 (inline_read_section, inline_write_summary): Stream both new predicates.
21406 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
21407 as argument.
21408 (compute_inlined_call_time): Cleanup.
21409 (big_speedup_p): Update.
21410 (edge_badness): Update.
21411 * ipa-inline.h (INLINE_TIME_SCALE): Remove.
21412 (size_time_entry): Replace predicate by exec_predicate and
21413 nonconst_predicate.
21414 (edge_growth_cache_entry): Cache both time nad nonspecialized time.
21415 (estimate_edge_time): Return also nonspec_time.
21416 (reset_edge_growth_cache): Update.
21417
21418 2017-04-29 Jakub Jelinek <jakub@redhat.com>
21419
21420 PR rtl-optimization/80491
21421 * ifcvt.c (noce_process_if_block): When looking for x setter
21422 with missing else_bb, don't check only the insn right before
21423 cond_earliest, but look for the last insn that x is modified in
21424 within the same bb.
21425
21426 PR rtl-optimization/80491
21427 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
21428
21429 2017-04-29 Marc Glisse <marc.glisse@inria.fr>
21430
21431 PR tree-optimization/80487
21432 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
21433
21434 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21435
21436 PR tree-optimization/79697
21437 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
21438 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
21439 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
21440 BUILT_IN_STRNDUP.
21441 * gimple-fold.c (gimple_fold_builtin_realloc): New function.
21442 (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
21443
21444 2017-04-28 Martin Sebor <msebor@redhat.com>
21445
21446 PR tree-optimization/80523
21447 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
21448 (init_target_to_host_charmap, target_to_host, target_strtol10): New
21449 functions.
21450 (maybe_warn, format_directive, parse_directive): Use new functions.
21451 (pass_sprintf_length::execute): Call init_target_to_host_charmap.
21452
21453 2017-04-28 Marc Glisse <marc.glisse@inria.fr>
21454
21455 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
21456
21457 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
21458
21459 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
21460 target_header_dir): Set correctly.
21461 * configure: Regenerated.
21462 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
21463 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
21464 instead of SYSTEM_HEADER_DIR.
21465
21466 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
21467
21468 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
21469 (estimate_local_effects): Likewise.
21470 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
21471 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
21472 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
21473 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
21474 do_estimate_edge_time, estimate_edge_time): Likewise.
21475 * ipa-inline-analysis.c (estimate_node_size_and_time,
21476 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
21477 (estimate_time_after_inlining): Remove.
21478
21479 2017-04-28 Martin Liska <mliska@suse.cz>
21480
21481 * doc/gcov.texi: Enhance documentation of gcov.
21482
21483 2017-04-28 Martin Liska <mliska@suse.cz>
21484
21485 * doc/gcov.texi: Sort options in alphabetic order.
21486 * doc/gcov-dump.texi: Likewise.
21487 * doc/gcov-tool.texi: Likewise.
21488 * gcov.c (print_usage): Likewise.
21489 * gcov-dump.c (print_usage): Likewise.
21490 * gcov-tool.c (print_merge_usage_message): Likewise.
21491 (print_rewrite_usage_message): Likewise.
21492 (print_overlap_usage_message): Likewise.
21493
21494 2017-04-28 Martin Liska <mliska@suse.cz>
21495
21496 PR gcov-profile/53915
21497 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
21498
21499 2017-04-28 Martin Liska <mliska@suse.cz>
21500
21501 PR gcov-profile/79891
21502 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
21503 is marked by compiler as living on a line.
21504 (get_cycles_count): Remove usage of the union.
21505 (output_intermediate_file): Likewise.
21506 (find_source): Fix GNU coding style.
21507 (accumulate_line_counts): Remove old non-all block mode.
21508 (output_lines): Remove usage of the union.
21509 * profile.c (output_location): Include all BBs, even if
21510 belonging to a same line (and file) as a previous BB.
21511
21512 2017-04-28 Martin Liska <mliska@suse.cz>
21513
21514 * gcov.c (process_args): Handle new argument 'w'.
21515 (read_graph_file): Assign ID to BBs.
21516 (output_branch_count): Display BB # if verbose flag is set.
21517 (output_lines): Likewise for arcs.
21518 (print_usage): Add '--verbose' option help.
21519 * doc/gcov.texi: Document --verbose (-w) option.
21520
21521 2017-04-28 Martin Liska <mliska@suse.cz>
21522
21523 * gcov.c (struct block_location_info): New struct.
21524 (process_file): Fill up the new structure.
21525 (read_graph_file): Replace usage of encoding by the newly added
21526 struct.
21527 (add_line_counts): Likewise.
21528 (accumulate_line_counts): Remove usage of the union.
21529 (function_info::function_info): New function.
21530 (function_info::~function_info): Likewise.
21531 (process_file): Call delete instead of release_function.
21532 (release_function): Release the function.
21533 (release_structures): Call delete instead of release_function.
21534 (solve_flow_graph): Replace usage of num_blocks.
21535 (find_exception_blocks): Likewise.
21536 (output_lines): Fix GNU coding style.
21537
21538 2017-04-28 Martin Liska <mliska@suse.cz>
21539
21540 PR driver/56469
21541 * coverage.c (coverage_remove_note_file): New function.
21542 * coverage.h: Declare the function.
21543 * toplev.c (finalize): Clean if an error has been seen.
21544
21545 2017-04-28 Martin Liska <mliska@suse.cz>
21546
21547 PR gcov-profile/80031
21548 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
21549 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
21550 * gcov.c (read_graph_file): Read just number of blocks.
21551 * profile.c (branch_prob): Do not stream 0 flags per a basic
21552 block.
21553
21554 2017-04-28 Martin Liska <mliska@suse.cz>
21555
21556 * gcov-dump.c (tag_*): Add new argument to declarations.
21557 (dump_gcov_file): Likewise.
21558 (tag_blocks): Add and use new argument depth.
21559 (tag_arcs): Likewise.
21560 (tag_lines): Likewise.
21561 (tag_counters): Likewise.
21562 (tag_summary): Likewise.
21563 (dump_working_sets): Use depth to do a proper indentation.
21564
21565 2017-04-28 Jakub Jelinek <jakub@redhat.com>
21566
21567 PR bootstrap/80531
21568 * cgraph.h (symtab_node::debug_symtab): No longer inline.
21569 * symtab.c (symtab_node::debug_symtab): Move definition here.
21570
21571 2017-04-28 Richard Biener <rguenther@suse.de>
21572
21573 * lto-streamer.h (LTO_major_version): Bump to 7.
21574
21575 2017-04-28 Richard Biener <rguenther@suse.de>
21576
21577 * tree-vrp.c (assert_info): New struct.
21578 (add_assert_info): New helper.
21579 (register_edge_assert_for_2): Refactor to add asserts to a vector
21580 of assert_info.
21581 (register_edge_assert_for_1): Likewise.
21582 (register_edge_assert_for): Likewise.
21583 (finish_register_edge_assert_for): New helper actually registering
21584 asserts where live on edge.
21585 (find_conditional_asserts): Adjust.
21586 (find_switch_asserts): Likewise.
21587 (evrp_dom_walker::try_find_new_range): Generalize.
21588 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
21589
21590 2017-04-27 Marek Polacek <polacek@redhat.com>
21591
21592 PR sanitizer/80349
21593 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
21594 arg10 and arg11 to itype.
21595
21596 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
21597
21598 * doc/extend.texi (Object Size Checking): Improve grammar.
21599
21600 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
21601
21602 PR target/80530
21603 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
21604 that the logic for permitting reciprocal estimates matches that
21605 in use_rsqrt_p.
21606
21607 2017-04-27 Jakub Jelinek <jakub@redhat.com>
21608
21609 PR c++/80534
21610 * tree.c (type_cache_hasher::equal): Only compare
21611 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
21612 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
21613 non-aggregate element types.
21614 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
21615 about the flag on ARRAY_TYPEs in the comment, formatting fix.
21616
21617 2017-04-27 Richard Biener <rguenther@suse.de>
21618
21619 PR middle-end/80533
21620 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
21621 stripping ARRAY_REFs from MEM_EXPR make sure we're not
21622 keeping a reference to a trailing array.
21623
21624 2017-04-27 Richard Biener <rguenther@suse.de>
21625
21626 PR middle-end/80539
21627 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
21628 being in loop-closed SSA form conservatively.
21629 (chrec_fold_multiply_poly_poly): Likewise.
21630
21631 2017-04-27 Tamar Christina <tamar.christina@arm.com>
21632
21633 PR middle-end/79665
21634 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
21635 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
21636
21637 2017-04-27 Jakub Jelinek <jakub@redhat.com>
21638
21639 PR target/77728
21640 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
21641 (aarch64_function_arg_alignment): Return unsigned int again, but still
21642 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
21643 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
21644 Don't emit -Wpsabi note.
21645 (aarch64_function_arg_boundary): Likewise.
21646 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
21647 caller.
21648
21649 2017-04-26 Nathan Sidwell <nathan@acm.org>
21650
21651 * tree.h (crc32_unsigned_n): Declare.
21652 (crc32_unsigned, crc32_unsigned): Make inline.
21653 * tree.c (crc32_unsigned_bits): Replace with ...
21654 (crc32_unsigned_n): ... this.
21655 (crc32_unsigned, crc32_byte): Remove.
21656 (crc32_string): Remove unnecessary braces.
21657
21658 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
21659
21660 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
21661 * ipa-inline-analysis.c (MAX_TIME): Remove.
21662 (account_size_time): Use sreal for time.
21663 (dump_inline_summary): Update.
21664 (estimate_function_body_sizes): Update.
21665 (estimate_edge_size_and_time): Update.
21666 (estimate_calls_size_and_time): Update.
21667 (estimate_node_size_and_time): Update.
21668 (inline_merge_summary): Update.
21669 (inline_update_overall_summary): Update.
21670 (estimate_time_after_inlining): Update.
21671 (inline_read_section): Update.
21672 (inline_write_summary): Update.
21673 * ipa-inline.c (compute_uninlined_call_time): Update.
21674 (compute_inlined_call_time): Update.
21675 (recursive_inlining): Update.
21676 (inline_small_functions): Update.
21677 (dump_overall_stats): Update.
21678 * ipa-inline.h: Include sreal.h.
21679 (size_time_entry): Turn time to sreal.
21680 (inline_summary): Turn self_time nad time to sreal.
21681
21682 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
21683
21684 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
21685 data-streamer.h
21686 (sreal::stream_out, sreal::stream_in): New.
21687 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
21688
21689 2017-04-25 Jakub Jelinek <jakub@redhat.com>
21690
21691 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
21692 environment.
21693
21694 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
21695
21696 PR target/70799
21697 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
21698 Handle ASHIFTRT.
21699 (dimode_scalar_chain::compute_convert_gain): Ditto.
21700 (dimode_scalar_chain::make_vector_copies): Ditto.
21701 (dimode_scalar_chain::convert_reg): Ditto.
21702 (dimode_scalar_chain::convert_insn): Ditto.
21703 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
21704 (VI248_AVX512BW_1): New mode iterator.
21705 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
21706 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
21707 mode iterator.
21708
21709 2017-04-25 Martin Sebor <msebor@redhat.com>
21710
21711 PR tree-optimization/80497
21712 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
21713 constants are representable in HOST_WIDE_INT.
21714 (parse_directive): Ditto.
21715
21716 2017-04-25 Martin Sebor <msebor@redhat.com>
21717
21718 PR bootstrap/80486
21719 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
21720 (new_zero_array): Adjust signature.
21721 (dom_info::dom_init): Used unsigned rather that size_t.
21722 (dom_info::dom_info): Same.
21723
21724 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21725 Jakub Jelinek <jakub@redhat.com>
21726
21727 PR target/77728
21728 * config/arm/arm.c: Include gimple.h.
21729 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
21730 returns negative, increment ncrn only if it returned positive.
21731 (arm_needs_doubleword_align): Return int instead of bool,
21732 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
21733 members, but if there is any such non-FIELD_DECL
21734 > PARM_BOUNDARY aligned decl, return -1 instead of false.
21735 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
21736 returns negative, increment nregs only if it returned positive.
21737 (arm_setup_incoming_varargs): Likewise.
21738 (arm_function_arg_boundary): Emit -Wpsabi note if
21739 arm_needs_doubleword_align returns negative, return
21740 DOUBLEWORD_ALIGNMENT only if it returned positive.
21741
21742 2017-04-25 Marek Polacek <polacek@redhat.com>
21743
21744 PR sanitizer/80349
21745 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
21746 first argument to type.
21747
21748 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
21749
21750 PR target/80482
21751 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
21752 type checks to test for compatibility instead of equality.
21753
21754 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21755 Jakub Jelinek <jakub@redhat.com>
21756
21757 PR target/77728
21758 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
21759 type.
21760 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
21761 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
21762 the alignment computation, but return their maximum in warn_alignment.
21763 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
21764 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
21765 is smaller.
21766 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
21767 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
21768 caller.
21769
21770 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21771
21772 * config/arc/simdext.md (dmpyh): Fix typo.
21773
21774 2017-04-25 Richard Biener <rguenther@suse.de>
21775
21776 PR tree-optimization/80492
21777 * alias.c (compare_base_decls): Handle registers with asm
21778 specification conservatively.
21779 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
21780 compare_base_decls returning dont-know properly.
21781
21782 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21783
21784 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
21785 (legitimate_offset_address_p): New function.
21786 (arc_legitimate_address_p): Use above function.
21787
21788 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21789
21790 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
21791
21792 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21793
21794 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
21795 ACCH registers whenever they are available.
21796
21797 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21798
21799 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
21800 double regs fix when not used.
21801
21802 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21803
21804 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
21805 core registers.
21806 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
21807 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
21808
21809 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21810
21811 * config/arc/arc.c (arc_output_addsi): Check for h-register class
21812 when emitting short ADD instructions.
21813
21814 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
21815
21816 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
21817 constraint.
21818 (cmpsi_cc_c_insn): Likewise.
21819 (cbranchsi4_scratch): Compute proper instruction length using
21820 compact_hreg_operand.
21821 * config/arc/predicates.md (compact_hreg_operand): New predicate.
21822
21823 2017-04-25 Richard Biener <rguenther@suse.de>
21824
21825 PR middle-end/80509
21826 * passes.c (pass_manager::pass_manager): Initialize
21827 m_name_to_pass_map.
21828
21829 2017-04-25 Richard Biener <rguenther@suse.de>
21830
21831 PR tree-optimization/79201
21832 * tree-ssa-sink.c (statement_sink_location): Handle calls.
21833
21834 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21835
21836 PR target/80464
21837 * config/s390/vector.md: Split MEM->GPR vector moves for
21838 non-s_operand addresses.
21839
21840 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21841
21842 PR target/79895
21843 * config/s390/predicates.md (reload_const_wide_int_operand): New
21844 predicate.
21845 * config/s390/s390.md ("movti"): Remove d/P alternative.
21846 ("movti_bigconst"): New pattern definition.
21847
21848 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
21849
21850 PR target/80080
21851 * s390-protos.h (s390_expand_cs_hqi): Removed.
21852 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
21853 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
21854 modes as well as CCZ1mode and CCZmode.
21855 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
21856 signature of s390_emit_compare_and_swap.
21857 (s390_expand_cs_hqi): Likewise, make static.
21858 (s390_expand_cs_tdsi): Generate an explicit compare before trying
21859 compare-and-swap, in some cases.
21860 (s390_expand_cs): Wrapper function.
21861 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
21862 atomic_exchange.
21863 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
21864 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
21865 patterns for small and large integers. Forbid symref memory operands.
21866 Move expander to s390.c. Require cc register.
21867 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
21868 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
21869 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
21870 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
21871 symref memory operands. Remove CC mode and call s390_match_ccmode
21872 instead.
21873 ("atomic_exchange<mode>"): Allow and implement all integer modes.
21874
21875 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
21876
21877 * config/s390/s390.md (define_peephole2): New peephole to help
21878 combining the load-and-test pattern with volatile memory.
21879
21880 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
21881
21882 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
21883 with CCZmode for TARGET_Z196.
21884
21885 2017-04-25 Jakub Jelinek <jakub@redhat.com>
21886
21887 PR rtl-optimization/80501
21888 * combine.c (make_compound_operation_int): Set subreg_code to SET
21889 even for AND with mask of the sign bit of mode.
21890
21891 PR rtl-optimization/80500
21892 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
21893 sum's initial value.
21894
21895 2017-04-25 Julian Brown <julian@codesourcery.com>
21896 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
21897
21898 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
21899
21900 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
21901
21902 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
21903
21904 2017-04-25 Julian Brown <julian@codesourcery.com>
21905 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
21906
21907 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
21908 (thunderx2t99_sha): New Reservation.
21909
21910 2017-04-25 Julian Brown <julian@codesourcery.com>
21911 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
21912
21913 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
21914 type for 1-element load.
21915
21916 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
21917
21918 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
21919
21920 2017-04-24 Martin Jambor <mjambor@suse.cz>
21921
21922 PR tree-optimization/80293
21923 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
21924 char arrays not totally scalarizable if it is false.
21925 (analyze_all_variable_accesses): Pass correct value in the new
21926 parameter. Add a statistics counter.
21927
21928 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
21929
21930 PR middle-end/79931
21931 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
21932
21933 2017-04-24 Richard Biener <rguenther@suse.de>
21934
21935 PR tree-optimization/80494
21936 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
21937 out for complex types.
21938
21939 2017-04-24 Richard Biener <rguenther@suse.de>
21940
21941 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
21942 * tree-ssa-sccvn.c (print_scc): Print SCC size.
21943 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
21944 (DFS): Adjust and never fail.
21945 (sccvn_dom_walker::fail): Remove.
21946 (sccvn_dom_walker::before_dom_children): Adjust.
21947 (run_scc_vn): Likewise and never fail.
21948 * tree-ssa-pre.c (pass_pre::execute): Adjust.
21949 (pass_fre::execute): Likewise.
21950
21951 2017-04-24 Richard Biener <rguenther@suse.de>
21952
21953 PR tree-optimization/79725
21954 * tree-ssa-sink.c (statement_sink_location): Return whether
21955 failure reason was zero uses. Move that check later.
21956 (sink_code_in_bb): Deal with zero uses by removing the stmt
21957 if possible.
21958
21959 2017-04-24 Richard Biener <rguenther@suse.de>
21960
21961 PR c++/2972
21962 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
21963 pointer-based references.
21964
21965 2017-04-24 Richard Biener <rguenther@suse.de>
21966
21967 PR bootstrap/79814
21968 * pass_manager.h (pass_manager::operator new): Remove.
21969 (pass_manager::operator delete): Likewise.
21970 * passes.c (pass_manager::operator new): Remove.
21971 (pass_manager::operator delete): Likewise.
21972 (pass_manager::pass_manager): Zero individual pass members.
21973
21974 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
21975
21976 PR target/70799
21977 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
21978 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
21979 Check "XEXP (src, 1)" operand here.
21980 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
21981 Check "XEXP (src, 1)" operand here.
21982 (dimode_scalar_chain::make_vector_copies): Detect count register
21983 of a shift instruction. Zero extend count register from QImode
21984 to DImode to satisfy vector shift pattern count operand predicate.
21985 Substitute vector shift count operand with a DImode copy.
21986 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
21987 vector register.
21988
21989 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
21990
21991 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
21992 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
21993 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
21994 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
21995 (UNSPEC_NOREX_MEM): Remove definition.
21996
21997 2017-04-21 Richard Biener <rguenther@suse.de>
21998
21999 PR tree-optimization/79547
22000 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22001 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
22002 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
22003 without any constraints.
22004
22005 2017-04-21 Richard Biener <rguenther@suse.de>
22006
22007 PR tree-optimization/78847
22008 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
22009
22010 2017-04-21 Richard Biener <rguenther@suse.de>
22011
22012 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
22013 (build_distinct_type_copy): Likewise.
22014 (build_variant_type_copy): Likewise.
22015 * tree.c (build_qualified_type): Pass down mem-stat info.
22016 (build_distinct_type_copy): Likewise.
22017 (build_variant_type_copy): Likewise.
22018
22019 2017-04-21 Richard Biener <rguenther@suse.de>
22020
22021 PR tree-optimization/80237
22022 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
22023 defaulted to NULL.
22024 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
22025 for a simplified result.
22026
22027 2016-04-21 Richard Biener <rguenther@suse.de>
22028
22029 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
22030 sth as strict as a simple_iv but a chrec without symbols and an
22031 operand defined in the loop we are peeling (and not some subloop).
22032 (propagate_constants_for_unrolling): Propagate all constants.
22033
22034 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
22035
22036 PR target/79804
22037 * config/i386/i386.c (print_reg): Remove assert for disalowed
22038 regno values, call output_operand_lossage instead.
22039
22040 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
22041
22042 PR target/78090
22043 * config/i386/constraints.md (Yc): New register constraint.
22044 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
22045 Use Yc constraint for alternative 2 of operand 0. Remove
22046 preferred_for_speed attribute.
22047
22048 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
22049
22050 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
22051 lastprivate clauses in SIMT case.
22052
22053 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
22054
22055 * doc/invoke.texi (-Wextra-semi): Document new warning option.
22056
22057 2017-04-20 Richard Biener <rguenther@suse.de>
22058
22059 PR tree-optimization/57796
22060 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
22061 as N scalar stores.
22062 (vect_model_load_cost): Cost gathers as N scalar loads.
22063
22064 2017-04-20 Richard Biener <rguenther@suse.de>
22065
22066 * ggc-page.c (ggc_allocated_p): Rename to ...
22067 (safe_lookup_page_table_entry): ... this and return the lookup
22068 result.
22069 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
22070
22071 2017-04-20 Richard Biener <rguenther@suse.de>
22072
22073 PR tree-optimization/80453
22074 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
22075 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
22076 from the conditions.
22077 (vn_phi_eq): Pass them down.
22078 (vn_phi_lookup): Record them.
22079 (vn_phi_insert): Likewise.
22080
22081 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
22082
22083 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
22084 uninitialized variable warning to avoid buffer overrun.
22085
22086 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
22087
22088 PR other/71250
22089 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
22090 is suppressed for '{ 0 }' in C.
22091
22092 2017-04-20 Jakub Jelinek <jakub@redhat.com>
22093
22094 * BASE-VER: Set to 8.0.0.
22095
22096 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
22097
22098 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
22099 priority .init_array and .fini_array section with SECTION_NOTYPE
22100 flag.
22101
22102 2017-04-20 Jakub Jelinek <jakub@redhat.com>
22103
22104 PR middle-end/80423
22105 * tree.h (build_array_type): Add typeless_storage default argument.
22106 * tree.c (type_cache_hasher::equal): Also compare
22107 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
22108 (build_array_type): Add typeless_storage argument, set
22109 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
22110 recursive call.
22111 (build_nonshared_array_type): Adjust build_array_type_1 caller.
22112 (build_array_type): Likewise. Add typeless_storage argument.
22113
22114 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
22115 Jakub Jelinek <jakub@redhat.com>
22116
22117 PR tree-optimization/80426
22118 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
22119 operation on symbolic operands, also compute the overflow for the
22120 invariant part when the operation degenerates into a negation.
22121
22122 2017-04-19 Jakub Jelinek <jakub@redhat.com>
22123
22124 PR debug/80461
22125 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
22126 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
22127
22128 PR debug/80436
22129 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
22130
22131 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
22132
22133 PR target/80462
22134 * config/avr/avr.c (tree.h): Include it.
22135 (cgraph.h): Include it.
22136 (avr_encode_section_info): Don't warn for uninitialized progmem
22137 variable if it's just an alias.
22138
22139 2017-04-19 Richard Biener <rguenther@suse.de>
22140
22141 PR ipa/65972
22142 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
22143 when needed by AutoPGO.
22144
22145 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
22146
22147 PR lto/50345
22148 * doc/lto.texi: Remove an extra 'that'.
22149
22150 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
22151
22152 PR rtl-optimization/80429
22153 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
22154 are only used in debug insns.
22155
22156 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
22157 Vladimir Makarov <vmakarov@redhat.com>
22158
22159 * config/sparc/predicates.md (input_operand): Add comment. Return
22160 true for any memory operand when LRA is in progress.
22161 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
22162
22163 2017-04-18 Jeff Law <law@redhat.com>
22164
22165 PR target/74563
22166 * mips.md ({return,simple_return}_internal): Do not overwrite
22167 operands[0].
22168
22169 2017-04-18 Jakub Jelinek <jakub@redhat.com>
22170
22171 PR tree-optimization/80443
22172 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
22173 instead of adding 1, subtract -1 and similarly instead of subtracting
22174 1 add -1.
22175
22176 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
22177
22178 PR rtl-optimization/80357
22179 * haifa-sched.c (tmp_bitmap): New variable.
22180 (model_recompute): Handle duplicate use records.
22181 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
22182 (free_global_sched_pressure_data): Free it.
22183
22184 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
22185
22186 Revert:
22187 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
22188 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
22189 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
22190 instead of SYSTEM_HEADER_DIR.
22191
22192 2017-04-18 Jeff Law <law@redhat.com>
22193
22194 PR middle-end/80422
22195 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
22196 predecessors after walking up the insn chain.
22197
22198 2017-04-18 Jakub Jelinek <jakub@redhat.com>
22199
22200 PR debug/80263
22201 * dwarf2out.c (modified_type_die): Try harder not to emit internal
22202 sizetype type into debug info.
22203
22204 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
22205
22206 PR target/80099
22207 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
22208 unneeded test for TARGET_UPPER_REGS_SF.
22209 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
22210
22211 2017-04-18 Jakub Jelinek <jakub@redhat.com>
22212
22213 PR sanitizer/80444
22214 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
22215 instead of gsi_after_labels.
22216
22217 2017-04-18 Jeff Law <law@redhat.com>
22218
22219 * regcprop.c (maybe_mode_change): Avoid creating copies of the
22220 stack pointer.
22221
22222 Revert:
22223 2017-04-13 Jeff Law <law@redhat.com>
22224 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
22225 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
22226
22227 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
22228
22229 PR target/79453
22230 * config/avr/avr.c (intl.h): Include it.
22231 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
22232
22233 2017-04-18 Martin Liska <mliska@suse.cz>
22234
22235 PR gcov-profile/78783
22236 * gcov-tool.c (gcov_output_files): Validate that destination
22237 file is either removed by the tool or by a user.
22238
22239 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
22240 Guy Benyei <guybe@mellanox.com>
22241
22242 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
22243 block, and do not negate it, the stored id is already negative.
22244
22245 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
22246
22247 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
22248
22249 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
22250
22251 PR target/80098
22252 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
22253 masks of options that should be turned off if the VSX vector
22254 options are turned off.
22255 (OTHER_P8_VECTOR_MASKS): Likewise.
22256 (OTHER_VSX_VECTOR_MASKS): Likewise.
22257 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
22258 rs6000_disable_incompatible_switches to validate no type switches
22259 like -mvsx.
22260 (rs6000_incompatible_switch): New function to disallow turning on
22261 other vector options if -mno-vsx, -mno-power8-vector, or
22262 -mno-power9-vector are specified.
22263
22264 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
22265
22266 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
22267
22268 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
22269
22270 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
22271 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
22272 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
22273 (ARG_POINTER_CFA_OFFSET): Likewise.
22274
22275 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
22276
22277 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
22278 conditions to take advantage of various optimizations.
22279
22280 2017-04-13 Jeff Law <law@redhat.com>
22281
22282 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
22283 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
22284 (zero_extendsidi2_dext): Likewise.
22285
22286 2017-04-13 Jakub Jelinek <jakub@redhat.com>
22287
22288 PR sanitizer/80403
22289 * fold-const.c (fold_ternary_loc): Revert
22290 use op0 instead of fold_convert_loc (loc, type, arg0) part of
22291 2017-04-12 change.
22292
22293 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
22294
22295 PR rtl-optimization/80343
22296 * lra-remat.c (update_scratch_ops): Assign original hard reg to
22297 new scratch pseudo.
22298
22299 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
22300
22301 PR sanitizer/80414
22302 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
22303 to ubsan_encode_value.
22304
22305 2017-04-13 Jeff Law <law@redhat.com>
22306
22307 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
22308 appearing in DEBUG_INSNs.
22309
22310 2017-04-13 Martin Liska <mliska@suse.cz>
22311
22312 PR gcov-profile/80413
22313 * gcov-io.c (gcov_write_string): Copy to buffer just when
22314 allocated size is greater than zero.
22315
22316 2017-04-13 Jakub Jelinek <jakub@redhat.com>
22317
22318 PR debug/80321
22319 * dwarf2out.c (decls_for_scope): Ignore declarations of
22320 current_function_decl in BLOCK_NONLOCALIZED_VARS.
22321
22322 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
22323
22324 PR lto/69953
22325 * ipa-visibility.c (non_local_p): Fix typos.
22326 (localize_node): When localizing symbol in same comdat group,
22327 dissolve the group only when we know external symbols are going
22328 to be privatized.
22329 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
22330
22331 2017-04-12 Jakub Jelinek <jakub@redhat.com>
22332
22333 PR tree-optimization/79390
22334 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
22335 order does not result in usable sequence, retry with reversed operand
22336 order.
22337
22338 PR sanitizer/80403
22339 PR sanitizer/80404
22340 PR sanitizer/80405
22341 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
22342 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
22343 op0 instead of fold_convert_loc (loc, type, arg0).
22344
22345 2017-04-12 Jeff Law <law@redhat.com>
22346
22347 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
22348 has a delay slot in the generated code.
22349
22350 * config/cris/cris.md (cris_preferred_reload_class): Return
22351 GENNONACR_REGS rather than GENERAL_REGS.
22352
22353 2017-04-12 Jakub Jelinek <jakub@redhat.com>
22354
22355 PR c/80163
22356 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
22357 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
22358 signedness of the result type.
22359
22360 2017-04-12 Richard Biener <rguenther@suse.de>
22361 Jeff Law <law@redhat.com>
22362
22363 PR tree-optimization/80359
22364 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
22365 trim stores to TARGET_MEM_REFs.
22366
22367 2017-04-12 Richard Biener <rguenther@suse.de>
22368
22369 PR tree-optimization/79390
22370 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
22371 threading case even more.
22372
22373 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
22374
22375 PR target/80382
22376 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
22377 for quad_address_p for TImode, instead of just not indexed_address.
22378
22379 2017-04-12 Richard Biener <rguenther@suse.de>
22380 Bernd Edlinger <bernd.edlinger@hotmail.de>
22381
22382 PR middle-end/79671
22383 * alias.c (component_uses_parent_alias_set_from): Handle
22384 TYPE_TYPELESS_STORAGE.
22385 (get_alias_set): Likewise.
22386 * tree-core.h (tree_type_common): Add typeless_storage flag.
22387 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
22388 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
22389 for types containing members with TYPE_TYPELESS_STORAGE.
22390 (place_field): Likewise.
22391 (layout_type): Likewise for ARRAY_TYPE.
22392 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
22393 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
22394 TYPE_TYPELESS_STORAGE.
22395 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
22396
22397 2017-04-12 Jakub Jelinek <jakub@redhat.com>
22398
22399 PR sanitizer/80349
22400 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
22401 first argument to type.
22402
22403 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22404
22405 PR target/80376
22406 PR target/80315
22407 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
22408 CONST0_RTX (mode) rather than const0_rtx where appropriate.
22409 (rs6000_expand_binop_builtin): Likewise.
22410 (rs6000_expand_ternop_builtin): Likewise; also add missing
22411 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
22412 vshasigma built-ins.
22413 * doc/extend.texi: Document that vec_xxpermdi's third argument
22414 must be a constant.
22415
22416 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
22417
22418 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
22419 Use shift_const cost parameter when calculating gain of STV shifts.
22420
22421 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
22422
22423 PR rtl-optimization/70478
22424 * lra-constraints.c (process_alt_operands): Check memory for
22425 disfavoring memory insn operand.
22426
22427 2017-04-11 Jakub Jelinek <jakub@redhat.com>
22428
22429 PR middle-end/80100
22430 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
22431 left shift in unsigned HOST_WIDE_INT type.
22432
22433 PR rtl-optimization/80385
22434 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
22435 (not (neg X)) into (plus X -1) for complex or non-integral modes.
22436
22437 PR libgomp/80394
22438 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
22439 if they have any depend clauses.
22440
22441 2017-04-11 Martin Liska <mliska@suse.cz>
22442
22443 PR ipa/80212
22444 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
22445 * ipa-split.c (split_function): Create a local comdat symbol
22446 if caller is in a comdat group.
22447
22448 2017-04-11 Martin Liska <mliska@suse.cz>
22449
22450 PR ipa/80212
22451 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
22452 flags.
22453
22454 2017-04-11 Martin Sebor <msebor@redhat.com>
22455
22456 PR middle-end/80364
22457 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
22458 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
22459 for INTEGER_TYPE.
22460 (directive::set_width, directive::set_precision, format_character):
22461 Adjust.
22462 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
22463 INTEGER_TYPE.
22464
22465 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
22466
22467 PR target/80389
22468 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
22469 conflict, set target->arch_name instead of target->cpu_name.
22470
22471 2017-04-11 Richard Biener <rguenther@suse.de>
22472
22473 PR tree-optimization/80374
22474 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
22475 build_zero_cst, remove fold_convertible_p check again.
22476
22477 2017-04-11 Martin Liska <mliska@suse.cz>
22478
22479 PR sanitizer/70878
22480 * ubsan.c (instrument_object_size): Do not instrument register
22481 variables.
22482
22483 2017-04-11 Jakub Jelinek <jakub@redhat.com>
22484
22485 PR target/80381
22486 * config/i386/i386-builtin-types.def
22487 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
22488 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
22489 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
22490 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
22491 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
22492 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
22493 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
22494 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
22495 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
22496 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
22497 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
22498 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
22499 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
22500 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
22501 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
22502 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
22503 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
22504 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
22505 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
22506 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
22507 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
22508 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
22509 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
22510 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
22511 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
22512 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
22513 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
22514 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
22515 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
22516 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
22517 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
22518 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
22519 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
22520 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
22521 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
22522 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
22523 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
22524 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
22525 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
22526 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
22527 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
22528 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
22529 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
22530 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
22531 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
22532 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
22533 aliases.
22534 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
22535 flag to second_arg_count, handle 4 argument function type _COUNT
22536 aliases, handle second_arg_count on second argument rather than last.
22537
22538 2017-04-10 Jeff Law <law@redhat.com>
22539
22540 PR tree-optimization/80374
22541 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
22542 record anything if we can not convert integer_zero_node to the
22543 desired type.
22544
22545 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
22546
22547 PR target/80108
22548 * config/rs6000/rs6000.c (rs6000_option_override_internal):
22549 Enhance special handling given to the TARGET_P9_MINMAX option in
22550 relation to certain other options.
22551
22552 2017-04-10 Bin Cheng <bin.cheng@arm.com>
22553
22554 PR tree-optimization/80153
22555 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
22556 remove POINTER_PLUS_EXPR's base part directly, rather than through
22557 aff_tree.
22558
22559 2017-04-10 Richard Biener <rguenther@suse.de>
22560 Bin Cheng <bin.cheng@arm.com>
22561
22562 PR tree-optimization/80153
22563 * tree-affine.c (aff_combination_to_tree): Get base pointer from
22564 the first element of pointer type aff_tree. Build result expr in
22565 aff_tree's type.
22566 (add_elt_to_tree): Convert to type unconditionally. Remove other
22567 fold_convert calls.
22568 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
22569 (rewrite_use_nonlinear_expr): Check invariant using iv information.
22570
22571 2017-04-10 Richard Biener <rguenther@suse.de>
22572
22573 * tree-ssa-structalias.c (find_func_aliases): Properly handle
22574 asm inputs.
22575
22576 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
22577
22578 PR rtl-optimization/70478
22579 * lra-constraints.c (curr_small_class_check): New.
22580 (update_and_check_small_class_inputs): New.
22581 (process_alt_operands): Update curr_small_class_check. Disfavor
22582 alternative insn memory operands. Check available regs for small
22583 class operands.
22584
22585 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
22586
22587 PR target/80057
22588 * config/mips/mips.opt (-mvirt): Update description.
22589 * doc/invoke.texi (-mvirt): Likewise.
22590
22591 2017-04-10 Richard Biener <rguenther@suse.de>
22592
22593 PR middle-end/80362
22594 * fold-const.c (fold_binary_loc): Look at unstripped ops when
22595 looking for NEGATE_EXPR in -A / -B to A / B folding.
22596
22597 2017-04-10 Martin Liska <mliska@suse.cz>
22598
22599 PR gcov-profile/80224
22600 * gcov.c (print_usage): Fix usage string.
22601 (get_gcov_intermediate_filename): Remove.
22602 (output_gcov_file): Use both for normal and intermediate format.
22603 (generate_results): Do not initialize special file for
22604 intermediate format.
22605
22606 2017-04-10 Richard Biener <rguenther@suse.de>
22607
22608 PR tree-optimization/80304
22609 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
22610 for safelen.
22611
22612 2017-04-10 Nathan Sidwell <nathan@acm.org>
22613
22614 PR target/79905
22615 * config/rs6000/rs6000.c (rs6000_vector_type): New.
22616 (rs6000_init_builtins): Use it.
22617
22618 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22619
22620 * config/arm/arm.md (<mrc>): Add mode to SET source.
22621 (<mrrc>): Likewise.
22622
22623 2017-04-10 Richard Biener <rguenther@suse.de>
22624
22625 PR middle-end/80344
22626 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
22627
22628 2017-04-10 Jakub Jelinek <jakub@redhat.com>
22629
22630 PR target/80324
22631 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
22632 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
22633 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
22634 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
22635 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
22636 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
22637 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
22638 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
22639 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
22640 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
22641 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
22642 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
22643 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
22644 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
22645 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
22646 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
22647 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
22648 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
22649 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
22650 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
22651 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
22652 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
22653 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
22654
22655 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
22656
22657 PR rtl-optimization/70478
22658 * lra-constraints.c: Reverse the last patch.
22659
22660 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
22661
22662 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
22663 Add comment for WCHAR_T.
22664
22665 2017-04-08 Martin Liska <mliska@suse.cz>
22666
22667 Revert:
22668 2017-04-07 Martin Liska <mliska@suse.cz>
22669
22670 PR ipa/80212
22671 * ipa-split.c (split_function): Add function part to a same comdat
22672 group.
22673
22674 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
22675
22676 PR target/80358
22677 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
22678
22679 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
22680
22681 * rs6000/rs6000.c (vec_load_pendulum): Rename...
22682 (vec_pairing): ...to this.
22683 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
22684 (rs6000_sched_init): Adjust for name change.
22685 (struct rs6000_sched_context): Likewise.
22686 (rs6000_init_sched_context): Likewise.
22687 (rs6000_set_sched_context): Likewise.
22688
22689 2017-04-07 Jakub Jelinek <jakub@redhat.com>
22690
22691 PR target/80322
22692 PR target/80323
22693 PR target/80325
22694 PR target/80326
22695 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
22696 intrinsics.
22697 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
22698 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
22699 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
22700
22701 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
22702
22703 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
22704
22705 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
22706
22707 PR rtl-optimization/70703
22708 * ira-color.c (update_conflict_hard_regno_costs): Use
22709 int64_t instead of HOST_WIDE_INT.
22710
22711 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
22712
22713 PR rtl-optimization/70478
22714 * lra-constraints.c (process_alt_operands): Disfavor alternative
22715 insn memory operands.
22716
22717 2017-04-07 Jeff Law <law@redhat.com>
22718
22719 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
22720 CALL and NOTE_INSN_CALL_ARG_LOCATION.
22721
22722 2017-04-07 Martin Liska <mliska@suse.cz>
22723
22724 PR target/79889
22725 * config/aarch64/aarch64.c (aarch64_process_target_attr):
22726 Show error message instead of an ICE.
22727
22728 2017-04-07 Martin Liska <mliska@suse.cz>
22729
22730 PR ipa/80212
22731 * ipa-split.c (split_function): Add function part to a same comdat
22732 group.
22733
22734 2017-04-07 Richard Biener <rguenther@suse.de>
22735
22736 PR middle-end/80341
22737 * tree.c (get_unwidened): Also handle ! for_type case for
22738 INTEGER_CSTs.
22739 * convert.c (do_narrow): Split out from ...
22740 (convert_to_integer_1): ... here. Do not pass final truncation
22741 type to get_unwidened for TRUNC_DIV_EXPR.
22742
22743 2017-04-07 Richard Biener <rguenther@suse.de>
22744
22745 * tree-affine.c (wide_int_ext_for_comb): Take type rather
22746 than aff_tree.
22747 (aff_combination_const): Adjust.
22748 (aff_combination_scale): Likewise.
22749 (aff_combination_add_elt): Likewise.
22750 (aff_combination_add_cst): Likewise.
22751 (aff_combination_convert): Likewise.
22752 (add_elt_to_tree): Likewise. Remove unused argument.
22753 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
22754
22755 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
22756
22757 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
22758 definition.
22759 * config/arm/arm.c (arm_default_short_enums): Use
22760 ARM_DEFAULT_SHORT_ENUMS.
22761 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
22762
22763 2017-04-06 Jakub Jelinek <jakub@redhat.com>
22764
22765 PR debug/80234
22766 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
22767 members with redundant out-of-class redeclaration.
22768
22769 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
22770
22771 PR target/80286
22772 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
22773 * config/i386/i386.md (*zero_extendsidi2):
22774 Add (?*x,*x) and (?*v,*v) alternatives.
22775
22776 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
22777
22778 PR target/79733
22779 * config/i386/i386.c (ix86_expand_builtin)
22780 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
22781 mode from insn data. Convert operands to insn operand mode.
22782 Copy operands that don't satisfy insn predicate to a register.
22783
22784 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
22785
22786 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
22787 Update comments.
22788
22789 2017-04-06 Richard Biener <rguenther@suse.de>
22790
22791 PR tree-optimization/80334
22792 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
22793 preserve alignment of accesses.
22794
22795 2017-04-06 Richard Biener <rguenther@suse.de>
22796
22797 PR tree-optimization/80262
22798 * tree-sra.c (build_ref_for_offset): Preserve address-space
22799 information.
22800 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
22801 Drop useless address-space information on MEM_REF offsets.
22802
22803 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
22804
22805 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
22806
22807 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
22808
22809 PR rtl-optimization/70703
22810 * ira-color.c (update_conflict_hard_regno_costs): Use
22811 HOST_WIDE_INT instead of long.
22812
22813 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
22814
22815 PR target/80298
22816 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
22817 not defined for x86_64 target. Add -mmmx target option when __SSE2__
22818 is not defined.
22819 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
22820 for x86_64 target. Handle -m3dnowa option.
22821
22822 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
22823
22824 PR rtl-optimization/70703
22825 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
22826 (update_conflict_hard_regno_costs): Use long instead of unsigned
22827 arithmetic for cost calculation.
22828
22829 2017-04-05 Jakub Jelinek <jakub@redhat.com>
22830 Bernd Edlinger <bernd.edlinger@hotmail.de>
22831
22832 PR sanitizer/80308
22833 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
22834 for big endian.
22835
22836 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
22837
22838 PR target/78002
22839 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
22840 ptr_mode with Pmode throughout.
22841 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
22842 into probe_stack_range and use DImode.
22843
22844 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
22845
22846 PR target/79890
22847 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
22848 call_eh_return is true.
22849
22850 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22851
22852 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
22853 Initialize last_match_fntype_index.
22854
22855 2017-04-05 Jakub Jelinek <jakub@redhat.com>
22856
22857 PR target/80310
22858 * tree-nvr.c: Include internal-fn.h.
22859 (pass_return_slot::execute): Ignore internal calls without
22860 direct optab.
22861
22862 2017-04-04 Jakub Jelinek <jakub@redhat.com>
22863 Richard Biener <rguenther@suse.de>
22864
22865 PR c++/80297
22866 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
22867 captures used multiple times, except for the last use.
22868 * generic-match-head.c: Include gimplify.h.
22869
22870 2017-04-04 Jakub Jelinek <jakub@redhat.com>
22871
22872 PR tree-optimization/79390
22873 * target.h (struct noce_if_info): Declare.
22874 * targhooks.h (default_noce_conversion_profitable_p): Declare.
22875 * target.def (noce_conversion_profitable_p): New target hook.
22876 * ifcvt.h (struct noce_if_info): New type, moved from ...
22877 * ifcvt.c (struct noce_if_info): ... here.
22878 (noce_conversion_profitable_p): Renamed to ...
22879 (default_noce_conversion_profitable_p): ... this. No longer
22880 static nor inline.
22881 (noce_try_store_flag_constants, noce_try_addcc,
22882 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
22883 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
22884 instead of noce_conversion_profitable_p.
22885 * config/i386/i386.c: Include ifcvt.h.
22886 (ix86_option_override_internal): Don't override
22887 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
22888 (ix86_noce_conversion_profitable_p): New function.
22889 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
22890 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
22891 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
22892 * doc/tm.texi: Regenerated.
22893
22894 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22895
22896 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
22897 correction.
22898
22899 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
22900
22901 PR target/80307
22902 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
22903 instructions for small multiply cores.
22904
22905 2017-04-04 Jeff Law <law@redhat.com>
22906
22907 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
22908 added member.
22909 (mips_expand_vec_perm_const): Initialize elements in orig_perm
22910 that are not set by the loop over the elements.
22911
22912 2017-04-04 Jakub Jelinek <jakub@redhat.com>
22913
22914 PR target/80286
22915 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
22916 int mode, convert_modes it to mode as unsigned, otherwise use
22917 lowpart_subreg to mode rather than SImode.
22918 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
22919 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
22920 Use DImode instead of SImode for the shift count operand.
22921 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
22922 Likewise.
22923
22924 2017-04-04 Richard Biener <rguenther@suse.de>
22925
22926 PR middle-end/80281
22927 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
22928 arithmetic done for the negate or the plus. Simplify.
22929 (A - (-B) -> A + B): Likewise.
22930 * fold-const.c (split_tree): Make sure to not negate pointers.
22931
22932 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
22933
22934 PR rtl-optimization/60818
22935 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
22936 a compare of comparisons with the thing compared if this results
22937 in a different machine mode.
22938
22939 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
22940
22941 * alias.c (base_alias_check): Fix typo in comment.
22942 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
22943 * cgraphunit.c (symbol_table::compile): Likewise.
22944 * collect2.c (maybe_run_lto_and_relink): Likewise.
22945 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
22946 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
22947 * config/avr/avr.c (avr_map_op_t): Likewise.
22948 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
22949 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
22950 * config/epiphany/epiphany.md (movcc): Likewise.
22951 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
22952 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
22953 Likewise.
22954 * config/mips/mips.c (mips_save_restore_reg): Likewise.
22955 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
22956 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
22957 * config/sh/sh.c (sh_rtx_costs): Likewise.
22958 * fold-const.c (fold_truth_andor): Likewise.
22959 * genautomata.c (collapse_flag): Likewise.
22960 * gengtype.h (struct type::u::s): Likewise.
22961 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
22962 * input.c (FORMAT_AMOUNT): Likewise.
22963 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
22964 (known_aggs_to_agg_replacement_list): Likewise.
22965 * ipa-inline-analysis.c: Likewise.
22966 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
22967 * ipa-polymorphic-call.c
22968 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
22969 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
22970 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
22971 Likewise.
22972 * modulo-sched.c (apply_reg_moves): Likewise.
22973 * omp-expand.c (build_omp_regions_1): Likewise.
22974 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
22975 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
22976 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
22977 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
22978 * value-prof.c: Likewise.
22979 * var-tracking.c (val_reset): Likewise.
22980
22981 2017-04-03 Richard Biener <rguenther@suse.de>
22982
22983 PR tree-optimization/80275
22984 * fold-const.c (split_address_to_core_and_offset): Handle
22985 POINTER_PLUS_EXPR.
22986
22987 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
22988
22989 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
22990 descriptors is at least equal to that of functions.
22991
22992 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
22993
22994 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
22995
22996 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
22997
22998 PR target/80250
22999 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
23000 (mov<IMOD4:mode>): New expander.
23001 (*mov<IMOD4:mode>_internal): New insn and split pattern.
23002
23003 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
23004
23005 PR rtl-optimization/79405
23006 * fwprop.c (propagations_left): New variable.
23007 (forward_propagate_into): Decrement it.
23008 (fwprop_init): Initialize it.
23009 (fw_prop): If the variable has reached zero, stop propagating.
23010 (fwprop_addr): Ditto.
23011
23012 2017-03-31 Jakub Jelinek <jakub@redhat.com>
23013
23014 PR debug/79255
23015 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
23016 a FUNCTION_DECL, pass it as decl instead of origin to
23017 process_scope_var.
23018
23019 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
23020
23021 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
23022 string.
23023
23024 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
23025
23026 PR target/80107
23027 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
23028 TARGET_VSX_SMALL_INTEGER.
23029
23030 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23031
23032 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
23033 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
23034
23035 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
23036
23037 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
23038 extraction from odd-numbered MSA register.
23039
23040 2017-03-31 Jakub Jelinek <jakub@redhat.com>
23041
23042 PR middle-end/80173
23043 * expmed.c (store_bit_field_1): Don't attempt to create
23044 a word subreg out of hard registers wider than word if they
23045 have HARD_REGNO_NREGS of 1 for their mode.
23046
23047 PR middle-end/80163
23048 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
23049 conversions to integer types wider than word and pointer.
23050
23051 PR debug/80025
23052 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
23053 (rtx_equal_for_cselib_p): Pass 0 to it.
23054 * cselib.c (cselib_hasher::equal): Likewise.
23055 (rtx_equal_for_cselib_1): Add depth argument. If depth
23056 is 128, don't look up VALUE locs and punt. Increment
23057 depth in recursive calls when walking VALUE locs.
23058
23059 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
23060
23061 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
23062 (make_gcov_file_name): Use the canonical path name for generating
23063 the MD5 value.
23064 (read_line): Fix handling of files with ascii null bytes.
23065
23066 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
23067
23068 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
23069 to initialise a vector register instead
23070 of using a const_int.
23071
23072 2017-03-30 Jakub Jelinek <jakub@redhat.com>
23073
23074 PR translation/80189
23075 * gimplify.c (omp_default_clause): Use %qs instead of %s in
23076 diagnostic messages.
23077
23078 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
23079
23080 PR target/80246
23081 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
23082 (dfp_diex_<mode>): Update mode of operand 1.
23083 * doc/extend.texi (dxex, dxexq): Document change to return type.
23084 (diex, diexq): Document change to argument type.
23085
23086 2017-03-30 Martin Jambor <mjambor@suse.cz>
23087
23088 PR ipa/77333
23089 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
23090 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
23091 it reflects the signature changes performed at the callee side.
23092 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
23093 to cgraph_build_function_type_skip_args.
23094 (build_function_decl_skip_args): Adjust call to the above function.
23095
23096 2017-03-30 Jakub Jelinek <jakub@redhat.com>
23097
23098 PR target/80206
23099 * config/i386/sse.md
23100 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
23101 register as dest whenever it is a MEM not rtx_equal_p to the
23102 corresponding dup operand, and when forcing into reg move the
23103 reg into the memory afterwards.
23104 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
23105 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
23106 for the force_reg mode.
23107 (avx512vl_vextractf128<mode>): Use register as dest either
23108 always when a MEM, or when it is a MEM not rtx_equal_p to the
23109 corresponding dup operand, or even not when it is a CONST_VECTOR
23110 depending on the mode and lo vs. hi.
23111 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
23112 parens.
23113 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
23114 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
23115 Likewise. Require that operands[2] is even.
23116 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
23117 Remove extraneous parens. Require that operands[2] is a multiple
23118 of 4.
23119 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
23120 operands[0] is a MEM if <mask_applied>, the predicates/constraints
23121 disallow memory then.
23122
23123 2017-03-30 Richard Biener <rguenther@suse.de>
23124
23125 PR tree-optimization/77498
23126 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
23127 to non-constants over backedges.
23128
23129 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
23130
23131 PR rtl-optimization/80233
23132 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
23133 as last_combined_insn. Do not test for BARRIER_P separately.
23134
23135 2017-03-29 Andreas Schwab <schwab@suse.de>
23136
23137 PR ada/80146
23138 * calls.c (prepare_call_address): Convert funexp to Pmode before
23139 copying to temp reg.
23140
23141 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23142
23143 PR tree-optimization/80158
23144 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
23145 Handle possible future case of more than one alternate
23146 interpretation.
23147 (replace_rhs_if_not_dup): Likewise.
23148 (replace_one_candidate): Likewise.
23149
23150 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
23151
23152 PR rtl-optimization/80193
23153 * ira.c (ira): Do not check allocation for LRA.
23154
23155 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
23156
23157 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
23158 (nvptx_output_simt_exit): Declare.
23159 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
23160 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
23161 (init_softstack_frame): Move initialization of crtl->is_leaf to...
23162 (nvptx_declare_function_name): ...here. Emit declaration of local
23163 memory space buffer for omp_simt_enter insn.
23164 (nvptx_output_unisimt_switch): New.
23165 (nvptx_output_softstack_switch): New.
23166 (nvptx_output_simt_enter): New.
23167 (nvptx_output_simt_exit): New.
23168 * config/nvptx/nvptx.h (struct machine_function): New fields
23169 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
23170 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
23171 (UNSPECV_SIMT_EXIT): Ditto.
23172 (omp_simt_enter_insn): New insn.
23173 (omp_simt_enter): New expansion.
23174 (omp_simt_exit): New insn.
23175 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
23176
23177 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
23178 (expand_GOMP_SIMT_ENTER_ALLOC): New.
23179 (expand_GOMP_SIMT_EXIT): New.
23180 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
23181 (GOMP_SIMT_ENTER_ALLOC): Ditto.
23182 (GOMP_SIMT_EXIT): Ditto.
23183 * target-insns.def (omp_simt_enter): New insn.
23184 (omp_simt_exit): Ditto.
23185 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
23186 simt_dlist.
23187 (lower_rec_simd_input_clauses): Implement SIMT privatization.
23188 (lower_rec_input_clauses): Likewise.
23189 (lower_lastprivate_clauses): Handle SIMT privatization.
23190
23191 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
23192 (ompdevlow_adjust_simt_enter): New.
23193 (find_simtpriv_var_op): New.
23194 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
23195 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
23196
23197 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
23198 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
23199 (copy_decl_for_dup_finish): Ditto.
23200
23201 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
23202
23203 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
23204
23205 PR target/53383
23206 * config/i386/i386.c (ix86_option_override_internal): Always
23207 allow -mpreferred-stack-boundary=3 for 64-bit targets.
23208
23209 2017-03-28 Bin Cheng <bin.cheng@arm.com>
23210
23211 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
23212
23213 2017-03-28 Bin Cheng <bin.cheng@arm.com>
23214
23215 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
23216 mark new edge's irreducible flag accordign to it.
23217 (vect_do_peeling): Check loop preheader edge's irreducible flag
23218 and pass it to function slpeel_add_loop_guard.
23219
23220 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
23221
23222 PR tree-optimization/80218
23223 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
23224 Update block frequencies and counts.
23225
23226 2017-03-28 Richard Biener <rguenther@suse.de>
23227
23228 PR tree-optimization/78644
23229 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
23230 of a simplification result we may not use it at all.
23231
23232 2017-03-28 Richard Biener <rguenther@suse.de>
23233
23234 PR ipa/80205
23235 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
23236 without arguments, generate default definition of a SSA name.
23237
23238 2017-03-28 Richard Biener <rguenther@suse.de>
23239
23240 PR middle-end/80222
23241 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
23242 TYPE_REF_CAN_ALIAS_ALL references.
23243 * fold-const.c (fold_indirect_ref_1): Likewise.
23244
23245 2017-03-28 Martin Liska <mliska@suse.cz>
23246
23247 PR ipa/80104
23248 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
23249 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
23250
23251 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
23252 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
23253
23254 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
23255 (EXTRA_SPECS): Define.
23256 (SUBTARGET_EXTRA_SPECS): Likewise.
23257 (SUBTARGET_CPP_SPEC): Likewise.
23258 * config/arc/elf.h (EXTRA_SPECS): Renamed to
23259 SUBTARGET_EXTRA_SPECS.
23260 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
23261
23262 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
23263
23264 * config/arc/simdext.md (vst64_insn): Update pattern.
23265 (vld32wh_insn): Likewise.
23266 (vld32wl_insn): Likewise.
23267 (vld64_insn): Likewise.
23268 (vld32_insn): Likewise.
23269
23270 2017-03-28 Marek Polacek <polacek@redhat.com>
23271
23272 PR sanitizer/80067
23273 * fold-const.c (fold_comparison): Use protected_set_expr_location
23274 instead of SET_EXPR_LOCATION.
23275
23276 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
23277
23278 * tree.c (add_expr): Avoid name lookup warning.
23279
23280 2017-03-27 Jeff Law <law@redhat.com>
23281
23282 PR tree-optimization/80216
23283 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
23284 function name. Limit recursion depth.
23285 (record_temporary_equivalences): Corresponding changes.
23286
23287 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
23288
23289 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
23290 covered first.
23291
23292 2017-03-27 Jakub Jelinek <jakub@redhat.com>
23293
23294 PR target/80102
23295 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
23296 notes.
23297 * cfgcleanup.c (reg_note_cfa_p): New array.
23298 (insns_have_identical_cfa_notes): New function.
23299 (old_insns_match_p): Don't cross-jump in between /f
23300 and non-/f instructions. If both i1 and i2 are frame related,
23301 verify all CFA notes, their order and content.
23302
23303 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
23304
23305 PR target/78543
23306 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
23307 HImode and SImode with zero extend to DImode to one insn.
23308 (bswap<mode>2_extenddi): Likewise.
23309 (bswapsi2_extenddi): Likewise.
23310 (bswaphi2_extendsi): Likewise.
23311 (bswaphi2): Combine bswap HImode and SImode into one insn.
23312 Separate memory insns from swapping register.
23313 (bswapsi2): Likewise.
23314 (bswap<mode>2): Likewise.
23315 (bswaphi2_internal): Delete, no longer used.
23316 (bswapsi2_internal): Likewise.
23317 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
23318 store, and gpr<-gpr swap insns.
23319 (bswap<mode>2_store): Likewise.
23320 (bswaphi2_reg): Register only splitter, combine with the splitter.
23321 (bswaphi2 splitter): Likewise.
23322 (bswapsi2_reg): Likewise.
23323 (bswapsi2 splitter): Likewise.
23324 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
23325 the insns into load, store, and register/register insns.
23326 (bswapdi2_ldbrx): Likewise.
23327 (bswapdi2_load): Likewise.
23328 (bswapdi2_store): Likewise.
23329 (bswapdi2_reg): Likewise.
23330
23331 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
23332
23333 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
23334 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
23335
23336 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
23337
23338 PR target/80103
23339 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
23340 add comments.
23341 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
23342 special handling for target option conflicts between dform
23343 options (-mpower9-dform, -mpower9-dform-vector,
23344 -mpower9-dform-scalar) and -mno-direct-move.
23345
23346 2017-03-27 Richard Biener <rguenther@suse.de>
23347
23348 PR tree-optimization/80181
23349 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
23350
23351 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
23352
23353 * config/arc/predicates.md (move_double_src_operand): Replace the
23354 call to move_double_src_operand with a call to address_operand.
23355
23356 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
23357
23358 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
23359 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
23360 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
23361
23362 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
23363
23364 * config/arc/predicates.md (long_immediate_loadstore_operand):
23365 Consider scaled addresses cases.
23366
23367 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
23368
23369 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
23370 restored when in interrupt.
23371 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
23372 doesn't have delay slot.
23373
23374 2017-03-27 Richard Biener <rguenther@suse.de>
23375
23376 PR ipa/79776
23377 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
23378 inlined thunk clones.
23379
23380 2017-03-27 Jakub Jelinek <jakub@redhat.com>
23381
23382 PR sanitizer/80168
23383 * asan.c (instrument_derefs): Copy over last operand from
23384 original COMPONENT_REF to the new COMPONENT_REF with
23385 DECL_BIT_FIELD_REPRESENTATIVE.
23386 * ubsan.c (instrument_object_size): Likewise.
23387
23388 2017-03-27 Richard Biener <rguenther@suse.de>
23389
23390 PR tree-optimization/80170
23391 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
23392 sure DR/SCEV didnt fold in constants we do not see when looking
23393 at the reference base alignment.
23394
23395 2017-03-27 Richard Biener <rguenther@suse.de>
23396
23397 PR middle-end/80171
23398 * gimple-fold.c (fold_ctor_reference): Properly guard against
23399 NULL return value from canonicalize_constructor_val.
23400
23401 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
23402
23403 PR target/80180
23404 * config/i386/i386.c (ix86_expand_builtin)
23405 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
23406 flags reg setting and flags reg using instructions.
23407 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
23408 clobbering instructions to zero extend op2.
23409
23410 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
23411
23412 * doc/install.texi (Configuration) <--with-aix-soname>:
23413 Update link to AIX ld.
23414
23415 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
23416
23417 PR rtl-optimization/80160
23418 PR rtl-optimization/80159
23419 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
23420 reg_alternate_class into account.
23421
23422 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
23423
23424 PR target/80148
23425 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
23426 to consider in curr_insn_transform.
23427
23428 2017-03-24 Jakub Jelinek <jakub@redhat.com>
23429
23430 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
23431 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
23432 and emit_mode_inner.
23433
23434 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23435
23436 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
23437 argument to the overloaded builtin variants. Use the new flag to
23438 deprecate certain builtin variants.
23439 * config/s390/s390-builtin-types.def: Add new builtin types.
23440 * config/s390/s390-builtins.h: Support new flags field for
23441 overloaded builtins.
23442 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
23443 (s390_macro_to_expand): Enable vector float data type.
23444 (s390_cpu_cpp_builtins_internal): Indicate support of the new
23445 builtins by incrementing the __VEC__ version number.
23446 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
23447 vec_xst.
23448 (s390_resolve_overloaded_builtin): Emit error messages depending
23449 on the builtin flags.
23450 * config/s390/s390.c (s390_expand_builtin): Support additional
23451 flags argument. Change error message to match the messages
23452 emitted in s390-c.c.
23453 * config/s390/s390.md: New UNSPEC_* constants.
23454 (op_type): Add new instruction types.
23455 * config/s390/vecintrin.h: Add new builtins and test data class
23456 constants.
23457 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
23458 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
23459 (VEC_INEXACT, VEC_NOINEXACT): New constants.
23460 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
23461 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
23462 ("vec_mergel<mode>"): V_HW -> VEC_HW.
23463
23464 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
23465 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
23466 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
23467 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
23468
23469 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
23470 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
23471 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
23472 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
23473
23474 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
23475 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
23476 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
23477 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
23478 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
23479 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
23480 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
23481
23482 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
23483 ("vec_scatter_element<V_HW_4:mode>_DI")
23484 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
23485 ("vec_fpint<mode>", "vflls")
23486 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
23487 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
23488 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
23489 ("*vec_cmphe<mode>_cc"): ... these.
23490
23491 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
23492 mode constant instead of magic value.
23493
23494 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23495
23496 * config/s390/s390.c (s390_expand_vec_compare): Support other
23497 vector floating point modes than just V2DF.
23498 (s390_expand_vcond): Likewise.
23499 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
23500 (s390_cannot_change_mode_class): Prevent mode changes between TF
23501 and V1TF in vector registers.
23502 * config/s390/s390.md (DF, SF): New mode attributes.
23503 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
23504 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
23505 SFmode support for VRs.
23506 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
23507 vector fp modes.
23508 (VFT, VF_HW): New mode iterators.
23509 (vw, sdx): New mode attributes.
23510 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
23511 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
23512 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
23513 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
23514 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
23515 also the new vector floating point modes. Renaming to ...
23516
23517 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
23518 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
23519 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
23520 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
23521 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
23522 ("vec_unordered<mode>"): ... these.
23523
23524 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
23525 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
23526 ("*vec_extendv2df"): New insn definitions.
23527
23528 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23529
23530 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
23531 ("mulditi3_2", "*muldi3_sign"): New patterns.
23532 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
23533 rename the pattern definition.
23534
23535 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23536
23537 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
23538 expander.
23539 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
23540
23541 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23542
23543 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
23544 instruction if possible.
23545 * config/s390/vector.md (vec_halfnumelts): New mode
23546 attribute.
23547 ("*vec_vllezlf<mode>"): New pattern.
23548
23549 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23550
23551 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
23552 ("popcountv4si2", "popcountv2di2"): Rename to ...
23553 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
23554 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
23555 condition.
23556 ("popcount<mode>2_vxe"): New pattern.
23557
23558 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23559
23560 * common/config/s390/s390-common.c (processor_flags_table): Add
23561 arch12.
23562 * config.gcc: Add arch12.
23563 * config/s390/driver-native.c (s390_host_detect_local_cpu):
23564 Default to arch12 for unknown CPU model numbers.
23565 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
23566 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
23567 PROCESSOR_max sanity check.
23568 * config/s390/s390-opts.h (enum processor_type): Add
23569 PROCESSOR_ARCH12.
23570 * config/s390/s390.c (processor_table): Add arch12.
23571 (s390_expand_builtin): Add check for B_VXE flag.
23572 (s390_issue_rate): Add PROCESSOR_ARCH12.
23573 (s390_get_sched_attrmask): Likewise.
23574 (s390_get_unit_mask): Likewise.
23575 (s390_sched_score): Enable z13 scheduling for arch12.
23576 (s390_sched_reorder): Likewise.
23577 (s390_sched_variable_issue): Likewise.
23578 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
23579 PF_VXE.
23580 (s390_tune_attr): Use z13 scheduling also for arch12.
23581 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
23582 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
23583 (TARGET_VXE_P): New macros.
23584 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
23585 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
23586 * config/s390/s390.opt: Add arch12 as processor_type.
23587
23588 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23589
23590 * config/s390/s390.md
23591 ("fixuns_truncdddi2", "fixuns_trunctddi2")
23592 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
23593 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
23594
23595 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
23596 Rename expanders to ...
23597
23598 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
23599 ("fixuns_truncdddi2_emu"): ... these.
23600
23601 ("fixuns_trunc<mode>si2_emu"): New expander.
23602
23603 ("*fixuns_truncdfdi2_z13"): Rename to ...
23604 ("*fixuns_truncdfdi2_vx"): ... this.
23605
23606 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23607
23608 * config/s390/2964.md: Remove the single element vector compare
23609 instructions which are no longer used.
23610 * config/s390/s390.c (s390_select_ccmode): Remove handling of
23611 vector CCmodes.
23612 (s390_canonicalize_comparison): Remove handling of DFmode
23613 compares.
23614 (s390_expand_vec_compare_scalar): Remove function.
23615 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
23616 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
23617 pattern.
23618 ("*cmp<mode>_ccs"): Add wfcdb instruction.
23619
23620 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23621
23622 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
23623 FP zero.
23624 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
23625 will anyway by matched by mov<mode>_64dfp.
23626
23627 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23628
23629 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
23630 vlef/vstef. Add missing operand to vleif.
23631
23632 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23633
23634 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
23635 pair for all vector types with 64 bit elements.
23636 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
23637 * config/s390/vector.md (V_HW_64): ... here.
23638 (V_128_NOSINGLE): New mode iterator.
23639 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
23640 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
23641 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
23642 ("*vec_load_pairv2di"): Change to ...
23643 ("*vec_load_pair<mode>"): ... this one.
23644
23645 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23646
23647 * config/s390/constraints.md: Add comments.
23648 (jKK): Reject element sizes > 8 bytes.
23649 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
23650 s_operands.
23651 * config/s390/s390.md: Add the s_operand checks formerly in
23652 s390_split_ok_p to various splitters where they are still
23653 required.
23654 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
23655 for 128 bit vectors. Plus two splitters.
23656
23657 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23658
23659 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
23660 the file.
23661
23662 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23663
23664 PR target/79893
23665 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
23666 error if the boundary argument is not constant.
23667
23668 2017-03-24 Jakub Jelinek <jakub@redhat.com>
23669
23670 PR rtl-optimization/80112
23671 * loop-doloop.c (doloop_condition_get): Don't check condition
23672 if cmp isn't SET with IF_THEN_ELSE src.
23673
23674 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23675
23676 PR tree-optimization/80158
23677 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
23678 replacing a candidate statement, also replace it for the
23679 candidate's alternate interpretation.
23680 (replace_rhs_if_not_dup): Likewise.
23681 (replace_one_candidate): Likewise.
23682
23683 2017-03-24 Richard Biener <rguenther@suse.de>
23684
23685 PR tree-optimization/80167
23686 * graphite-isl-ast-to-gimple.c
23687 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
23688 properly.
23689 (translate_isl_ast_to_gimple::get_rename): Likewise.
23690
23691 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
23692
23693 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
23694 handling of certain combinations of target options, including the
23695 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
23696 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
23697
23698 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23699
23700 PR target/71436
23701 * config/arm/arm.md (*load_multiple): Add reload_completed to
23702 matching condition.
23703
23704 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23705 Richard Biener <rguenth@suse.de>
23706
23707 PR tree-optimization/79908
23708 PR tree-optimization/80136
23709 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
23710 been cast away, gimplify_and_add suffices.
23711
23712 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
23713
23714 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
23715
23716 2017-03-23 Richard Biener <rguenther@suse.de>
23717
23718 PR tree-optimization/80032
23719 * gimplify.c (gimple_push_cleanup): Forced unconditional
23720 cleanups still have to go to the conditional_cleanups
23721 sequence.
23722
23723 2017-03-22 Jakub Jelinek <jakub@redhat.com>
23724
23725 PR tree-optimization/80072
23726 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
23727 to unsigned int.
23728 (next_operand_entry_id): Change type to unsigned int.
23729 (sort_by_operand_rank): Make sure to return the right return value
23730 even if unsigned fields are bigger than INT_MAX.
23731 (struct oecount): Change cnt and id type to unsigned int.
23732 (oecount_hasher::equal): Formatting fix.
23733 (oecount_cmp): Make sure to return the right return value
23734 even if unsigned fields are bigger than INT_MAX.
23735 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
23736
23737 PR c++/80129
23738 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
23739 TREE_READONLY on result if writing it more than once.
23740
23741 PR sanitizer/80110
23742 * doc/invoke.texi (-fsanitize=thread): Document that with
23743 -fnon-call-exceptions atomics are not able to throw
23744 exceptions.
23745
23746 PR sanitizer/80110
23747 * tsan.c: Include tree-eh.h.
23748 (instrument_builtin_call): Call maybe_clean_eh_stmt or
23749 maybe_clean_or_replace_eh_stmt where needed.
23750 (instrument_memory_accesses): Add cfg_changed argument.
23751 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
23752 if it returned true.
23753 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
23754
23755 PR rtl-optimization/63191
23756 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
23757 wrapper function, moved the whole old content into ...
23758 (ix86_delegitimize_address_1): ... this. New inline function.
23759 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
23760 true as last argument instead of ix86_delegitimize_address.
23761
23762 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
23763
23764 * config/aarch64/aarch64.c (generic_branch_cost): Copy
23765 cortexa57_branch_cost.
23766
23767 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
23768
23769 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
23770
23771 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
23772
23773 PR target/80123
23774 * doc/md.texi (Constraints): Document wA constraint.
23775 * config/rs6000/constraints.md (wA): New.
23776 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
23777 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
23778 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
23779 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
23780
23781 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
23782
23783 PR c++/80029
23784 * gimplify.c (is_oacc_declared): New function.
23785 (oacc_default_clause): Use it to set default flags for acc declared
23786 variables inside parallel regions.
23787 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
23788 declared variables.
23789 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
23790 declare attribute to any decl as necessary.
23791
23792 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
23793
23794 PR target/80082
23795 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
23796 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
23797 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
23798 (arm_arch_lpae): This.
23799 * config/arm/arm.c (arm_arch7ve): Rename into ...
23800 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
23801 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
23802 arm_arch_lpae.
23803
23804 2017-03-22 Martin Liska <mliska@suse.cz>
23805
23806 PR target/79906
23807 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
23808 error message instead of an ICE.
23809
23810 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23811
23812 * doc/extend.texi (6.11 Additional Floating Types): Revise.
23813
23814 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
23815
23816 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
23817 comments.
23818 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
23819 comments.
23820
23821 2017-03-21 Martin Sebor <msebor@redhat.com>
23822
23823 * doc/extend.texi: Use "cannot" instead of "can't."
23824 * doc/hostconfig.texi: Same.
23825 * doc/install.texi: Same.
23826 * doc/invoke.texi: Same.
23827 * doc/loop.texi: Same.
23828 * doc/md.texi: Same.
23829 * doc/objc.texi: Same.
23830 * doc/rtl.texi: Same.
23831 * doc/tm.texi: Same.
23832 * doc/tm.texi.in: Same.
23833 * doc/trouble.texi: Same.
23834
23835 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
23836
23837 PR debug/63238
23838 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
23839 (collect_checksum_attributes): Set it.
23840 (die_checksum_ordered): Use it.
23841
23842 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23843
23844 PR tree-optimization/79908
23845 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
23846 change: For a VA_ARG whose LHS has been cast away, use
23847 force_gimple_operand to construct the side effects.
23848
23849 2017-03-21 David Malcolm <dmalcolm@redhat.com>
23850
23851 PR translation/80001
23852 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
23853 more amenable to translation.
23854 (oacc_loop_auto_partitions): Likewise.
23855
23856 2017-03-21 Marek Polacek <polacek@redhat.com>
23857 Martin Sebor <msebor@redhat.com>
23858
23859 PR tree-optimization/80109
23860 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
23861 on INTEGRAL_TYPE_P.
23862
23863 2017-03-21 Jakub Jelinek <jakub@redhat.com>
23864 Segher Boessenkool <segher@kernel.crashing.org>
23865
23866 PR target/80125
23867 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
23868 check reg_used_between_p between insn and one of succ or succ2
23869 depending on if succ is artificial insn not inserted into insn
23870 stream.
23871
23872 2017-03-21 Martin Liska <mliska@suse.cz>
23873
23874 PR gcov-profile/80081
23875 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
23876 * doc/gcc.texi: Include gcov-dump stuff.
23877 * doc/gcov-dump.texi: New file.
23878
23879 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
23880
23881 PR rtl-optimization/79150
23882 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
23883 conditional jump, if the jump is the last insn of the loop.
23884
23885 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23886 Richard Biener <rguenth@suse.de>
23887
23888 PR tree-optimization/79908
23889 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
23890 been cast away, use force_gimple_operand to construct the side
23891 effects.
23892
23893 2017-03-21 Martin Liska <mliska@suse.cz>
23894
23895 PR libfortran/79956
23896 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
23897 to NULL.
23898
23899 2017-03-21 Brad Spengler <spender@grsecurity.net>
23900
23901 PR plugins/80094
23902 * plugin.c (htab_hash_plugin): New function.
23903 (add_new_plugin): Use it and adjust.
23904 (parse_plugin_arg_opt): Adjust.
23905 (init_one_plugin): Likewise.
23906
23907 2017-03-21 Richard Biener <rguenther@suse.de>
23908
23909 PR tree-optimization/80032
23910 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
23911 if set force the cleanup to happen unconditionally.
23912 (gimplify_target_expr): Push inserted clobbers with force_uncond
23913 to avoid them being removed by control-dependent DCE.
23914
23915 2017-03-21 Richard Biener <rguenther@suse.de>
23916
23917 PR tree-optimization/80122
23918 * tree-inline.c (copy_bb): Do not expans va-arg packs or
23919 va_arg_pack_len when the inlined call stmt requires pack
23920 expansion itself.
23921 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
23922
23923 2017-03-21 Jakub Jelinek <jakub@redhat.com>
23924
23925 PR sanitizer/78158
23926 * tsan.c (instrument_builtin_call): If the memory model argument
23927 is not a constant, assume it is valid.
23928
23929 PR c/67338
23930 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
23931 avoid UB.
23932
23933 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
23934
23935 PR rtl-optimization/79910
23936 * combine.c (can_combine_p): Do not allow combining an I0 or I1
23937 if its dest is used by an insn before I2 (other than the combined
23938 insns themselves, which are properly handled already).
23939
23940 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
23941
23942 Revert:
23943 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
23944
23945 * combine.c (record_used_regs): New static function.
23946 (try_combine): Handle situations where there is an additional
23947 instruction between I2 and I3 which needs to have a LOG_LINK
23948 updated.
23949
23950 Revert:
23951 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
23952
23953 * combine.c (try_combine): Delete redundant i1 test. Call
23954 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
23955
23956 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
23957
23958 PR target/80083
23959 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
23960 alternatives 13/14.
23961
23962 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23963
23964 PR tree-optimization/80054
23965 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
23966 the optimization if a PHI or any of its arguments is not dominated
23967 by the candidate's basis. Use gphi* rather than gimple* as
23968 appropriate.
23969 (replace_profitable_candidates): Clean up a gimple* variable that
23970 should be a gphi* variable.
23971
23972 2017-03-20 Martin Sebor <msebor@redhat.com>
23973
23974 PR c++/52477
23975 * doc/extend.texi (attribute constructor): Document present limitation.
23976
23977 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
23978
23979 PR target/79963
23980 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
23981 __POWER9_VECTOR__ #ifdef control, change template definition to
23982 use Power9-specific built-in function.
23983 (vec_any_eq): Likewise.
23984 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
23985 to control outcomes from this test.
23986 (vector_ae_<mode>p): For VEC_F modes, likewise.
23987
23988 2017-03-20 Ian Lance Taylor <iant@google.com>
23989
23990 * config/i386/i386.c (ix86_function_regparm): Save an extra
23991 register for -fsplit-stack with DECL_STATIC_CHAIN.
23992
23993 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
23994
23995 PR target/79912
23996 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
23997 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
23998
23999 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
24000
24001 * config/riscv/riscv.c (riscv_print_operand): Use "fence
24002 iorw,ow".
24003 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
24004 iorw,iorw".
24005
24006 2017-03-20 Marek Polacek <polacek@redhat.com>
24007
24008 PR sanitizer/80063
24009 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
24010
24011 2017-03-20 Richard Biener <rguenther@suse.de>
24012
24013 PR tree-optimization/80113
24014 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
24015 allocate extra SSA name for PHI def.
24016 (add_close_phis_to_outer_loops): Likewise.
24017 (add_close_phis_to_merge_points): Likewise.
24018 (copy_loop_close_phi_args): Likewise.
24019 (copy_cond_phi_nodes): Likewise.
24020
24021 2017-03-20 Martin Liska <mliska@suse.cz>
24022
24023 PR middle-end/79753
24024 * tree-chkp.c (chkp_build_returned_bound): Do not build
24025 returned bounds for a LHS that's not a BOUNDED_P type.
24026
24027 2017-03-20 Martin Liska <mliska@suse.cz>
24028
24029 PR target/79769
24030 PR target/79770
24031 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
24032 COMPLEX_CST and VECTOR_CST.
24033
24034 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24035
24036 PR target/78857
24037 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
24038 target operand. A new splitter adds the clobber statement in case
24039 the target operand is dead anyway.
24040
24041 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
24042
24043 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
24044 to age-old versions of binutils and glibc.
24045
24046 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
24047
24048 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
24049
24050 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
24051
24052 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
24053
24054 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
24055
24056 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
24057 requirement for binutils 2.13.
24058
24059 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
24060
24061 * combine.c (try_combine): Delete redundant i1 test. Call
24062 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
24063
24064 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
24065
24066 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
24067 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
24068 contents.
24069 <riscv64-*-elf>: Re-arrange section
24070 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
24071 <riscv32-*-linux>: Likewise.
24072 <riscv64-*-elf>: Likewise
24073 <riscv64-*-linux>: Likewise.
24074
24075 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
24076
24077 PR target/80052
24078 * aarch64.opt(verbose-cost-dump): Fix typo.
24079
24080 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
24081
24082 PR target/79951
24083 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
24084 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
24085
24086 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
24087
24088 * reload.c (find_reloads): When reloading a nonoffsettable address,
24089 use RELOAD_OTHER for it and its address reloads.
24090
24091 PR rtl-optimization/79910
24092 * combine.c (record_used_regs): New static function.
24093 (try_combine): Handle situations where there is an additional
24094 instruction between I2 and I3 which needs to have a LOG_LINK
24095 updated.
24096
24097 2017-03-17 Jeff Law <law@redhat.com>
24098
24099 PR tree-optimization/71437
24100 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
24101 conditional in the hash table first.
24102 (vrp_dom_walker::before_dom_children): Extract condition from
24103 ASSERT_EXPR. Record condition, its inverion and any implied
24104 conditions as well.
24105
24106 2017-03-17 Marek Polacek <polacek@redhat.com>
24107 Markus Trippelsdorf <markus@trippelsdorf.de>
24108
24109 PR tree-optimization/80079
24110 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
24111 m_stores_head.
24112
24113 2017-03-17 Richard Biener <rguenther@suse.de>
24114
24115 PR middle-end/80075
24116 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
24117 Properly verify the LHS before the RHS possibly claims to be
24118 handled.
24119 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
24120 do not throw.
24121
24122 2017-03-17 Martin Jambor <mjambor@suse.cz>
24123
24124 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
24125 (List of -O2 options): Likewise.
24126 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
24127 (-fipa-vrp) New.
24128
24129 2017-03-17 Tom de Vries <tom@codesourcery.com>
24130
24131 * gcov-dump.c (print_usage): Print bug_report_url.
24132
24133 2017-03-17 Richard Biener <rguenther@suse.de>
24134
24135 PR middle-end/80050
24136 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
24137 (parser::peek): Likewise.
24138
24139 2017-03-17 Richard Biener <rguenther@suse.de>
24140
24141 PR tree-optimization/80048
24142 * sese.c (free_sese_info): Properly release rename_map and
24143 copied_bb_map elements.
24144
24145 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
24146
24147 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
24148 Add linked-list forward and backlinks. Insert on
24149 construction, remove on destruction.
24150 (class pass_store_merging): Add m_stores_head field.
24151 (pass_store_merging::terminate_and_process_all_chains):
24152 Iterate over m_stores_head list.
24153 (pass_store_merging::terminate_all_aliasing_chains):
24154 Likewise.
24155 (pass_store_merging::execute): Check for debug stmts first.
24156 Push new chains onto the m_stores_head stack.
24157
24158 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
24159
24160 PR target/71294
24161 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
24162 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
24163 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
24164
24165 2017-03-16 Jeff Law <law@redhat.com>
24166
24167 PR tree-optimization/71437
24168 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
24169 member function. Implementation moved into after_dom_children
24170 member function and into the threader's thread_outgoing_edges
24171 function.
24172 (dom_opt_dom_walker::after_dom_children): Simplify by moving
24173 some code into new thread_outgoing_edges.
24174 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
24175 definition. Simplify marker handling (do it here). Assume we always
24176 have the available expression and the const/copies tables.
24177 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
24178 and tree-vrp.c
24179 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
24180 * tree-vrp.c (equiv_stack): No longer file scoped.
24181 (vrp_dom_walker): New class.
24182 (vrp_dom_walker::before_dom_children): New member function.
24183 (vrp_dom_walker::after_dom_children): Likewise.
24184 (identify_jump_threads): Setup domwalker. Use it rather than
24185 walking edges in a random order by hand. Simplify setup/finalization.
24186 (finalize_jump_threads): Remove.
24187 (vrp_finalize): Do not call identify_jump_threads here.
24188 (execute_vrp): Do it here instead and call thread_through_all_blocks
24189 here too.
24190
24191 PR tree-optimization/71437
24192 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
24193 callers changed.
24194 (simplify_stmt_for_jump_threading): Add basic_block argument. All
24195 callers changed.
24196 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
24197 (dom_opt_dom_walker::thread_across_edge): Remove
24198 handle_dominating_asserts argument. All callers changed.
24199 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
24200 changes. Remove calls to lhs_of_dominating_assert. Other
24201 uses of handle_dominating_asserts turn into unconditional code
24202 (simplify_control_stmt_condition_1): Likewise.
24203 (simplify_control_stmt_condition): Likewise.
24204 (thread_through_normal_block, thread_across_edge): Likewise.
24205 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
24206 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
24207 object if it is not an SSA_NAME.
24208 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
24209 before calling into the VRP specific simplifiers.
24210 (identify_jump_threads): Remove handle_dominating_asserts
24211 argument.
24212
24213 2017-03-16 Jakub Jelinek <jakub@redhat.com>
24214
24215 PR fortran/79886
24216 * tree-diagnostic.c (default_tree_printer): No longer static.
24217 * tree-diagnostic.h (default_tree_printer): New prototype.
24218
24219 2017-03-16 Tamar Christina <tamar.christina@arm.com>
24220
24221 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
24222 Change ins into fmov.
24223
24224 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24225
24226 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
24227 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
24228 Use h_con constraint for operand 1.
24229 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
24230 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
24231
24232 2017-03-15 Jeff Law <law@redhat.com>
24233
24234 PR tree-optimization/71437
24235 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
24236 (record_temporary_equivalences): Use it.
24237
24238 PR tree-optimization/71437
24239 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
24240 tree-ssa-scopedtables.
24241 (lookup_avail_expr, build_and_record_new_cond): Likewise.
24242 (record_conditions, record_cond, vuse_eq): Likewise.
24243 (record_edge_info): Adjust to API tweak of record_conditions.
24244 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
24245 (record_temporary_equivalences, optimize_stmt): Likewise.
24246 (eliminate_redundant_computations): Likewise.
24247 (record_equivalences_from_stmt): Likewise.
24248 * tree-ssa-scopedtables.c: Include options.h and params.h.
24249 (vuse_eq): New function, moved from tree-ssa-dom.c
24250 (build_and_record_new_cond): Likewise.
24251 (record_conditions): Likewise. Accept vector of conditions rather
24252 than edge_equivalence structure for first argument.
24253 for the first argument.
24254 (avail_exprs_stack::lookup_avail_expr): New member function, moved
24255 from tree-ssa-dom.c.
24256 (avail_exprs_stack::record_cond): Likewise.
24257 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
24258 from tree-ssa-dom.c.
24259 (avail_exprs_stack): Add new member functions lookup_avail_expr
24260 and record_cond.
24261 (record_conditions): Declare.
24262
24263 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
24264
24265 PR target/80017
24266 * lra-constraints.c (process_alt_operands): Increase reject for
24267 reloading an input/output operand.
24268
24269 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
24270
24271 PR target/79038
24272 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
24273 insns to convert from signed/unsigned char/short to IEEE 128-bit
24274 floating point.
24275 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
24276
24277 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
24278
24279 PR target/80019
24280 * config/i386/i386.c (ix86_vector_duplicate_value): Create
24281 subreg of inner mode for values already in registers.
24282
24283 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
24284
24285 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
24286 iteration reg is used after the loop.
24287
24288 2017-03-14 Martin Sebor <msebor@redhat.com>
24289
24290 PR tree-optimization/79800
24291 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
24292 precision in negative-positive range.
24293 (format_floating): Call non-const overload with adjusted precision.
24294
24295 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
24296
24297 PR target/79947
24298 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
24299 -mpowerpc-gfxopt.
24300
24301 2017-03-14 Martin Sebor <msebor@redhat.com>
24302
24303 PR middle-end/80020
24304 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
24305 * builtins.def (aligned_alloc): Use it.
24306
24307 PR c/79936
24308 * Makefile.in (GTFILES): Add calls.c.
24309 * calls.c: Include "gt-calls.h".
24310
24311 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
24312
24313 PR rtl-optimization/79728
24314 * regs.h (struct target_regs): New field
24315 x_contains_allocatable_regs_of_mode.
24316 (contains_allocatable_regs_of_mode): New macro.
24317 * reginfo.c (init_reg_sets_1): Initialize it, and change
24318 contains_reg_of_mode so it includes global regs as well.
24319 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
24320 rather than contains_regs_of_mode.
24321
24322 2017-03-14 Martin Liska <mliska@suse.cz>
24323
24324 * doc/invoke.texi: Document options that can't be combined with
24325 -fcheck-pointer-bounds.
24326
24327 2017-03-14 Martin Liska <mliska@suse.cz>
24328
24329 PR middle-end/79831
24330 * doc/invoke.texi (-Wchkp): Document the option.
24331
24332 2017-03-14 Martin Liska <mliska@suse.cz>
24333
24334 * Makefile.in: Install gcov-dump.
24335
24336 2017-03-14 Martin Liska <mliska@suse.cz>
24337
24338 * multiple_target.c (expand_target_clones): Bail out for
24339 an invalid attribute.
24340
24341 2017-03-14 Richard Biener <rguenther@suse.de>
24342
24343 * alias.c (struct alias_set_entry): Pack properly.
24344 * cfgloop.h (struct loop): Likewise.
24345 * cse.c (struct set): Likewise.
24346 * ipa-utils.c (struct searchc_env): Likewise.
24347 * loop-invariant.c (struct invariant): Likewise.
24348 * lra-remat.c (struct cand): Likewise.
24349 * recog.c (struct change_t): Likewise.
24350 * rtl.h (struct address_info): Likewise.
24351 * symbol-summary.h (function_summary): Likewise.
24352 * tree-loop-distribution.c (struct partition): Likewise.
24353 * tree-object-size.c (struct object_size_info): Likewise.
24354 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
24355 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
24356 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
24357 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
24358 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
24359 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
24360 (struct _stmt_vec_info): Likewise.
24361
24362 2017-03-14 Martin Liska <mliska@suse.cz>
24363
24364 PR target/79892
24365 * multiple_target.c (create_dispatcher_calls): Check that
24366 a target can create a function dispatcher.
24367
24368 2017-03-14 Martin Liska <mliska@suse.cz>
24369
24370 PR lto/66295
24371 * multiple_target.c (expand_target_clones): Drop local.local
24372 flag for default implementation.
24373
24374 2017-03-14 Richard Biener <rguenther@suse.de>
24375
24376 PR tree-optimization/80030
24377 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
24378
24379 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
24380
24381 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
24382 gcc_fallthrough() instead of __attribute__((fallthrough));
24383
24384 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
24385
24386 * doc/gcc.texi: Remove "up" link to (DIR).
24387 * doc/gccint.texi: Ditto.
24388
24389 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
24390
24391 * doc/install.texi (Specific) <avr>: Remove reference to
24392 binutils 2.13.
24393
24394 2017-03-13 Jeff Law <law@redhat.com>
24395
24396 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
24397 attribute rather than comments.
24398
24399 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
24400 match_scratch operand is highest.
24401
24402 2017-03-13 Martin Liska <mliska@suse.cz>
24403
24404 PR middle-end/78339
24405 * ipa-pure-const.c (warn_function_noreturn): If the declarations
24406 is a CHKP clone, use original declaration.
24407
24408 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
24409
24410 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
24411 (arc_conditional_register_usage): Use a different allocation order
24412 when optimizing for size.
24413 * common/config/arc/arc-common.c (arc_option_optimization_table):
24414 Section anchors default on when optimizing for size.
24415
24416 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
24417
24418 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
24419
24420 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
24421
24422 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
24423 * config/arc/arc.md (cpu_facility): Add cd variant.
24424 (*movqi_insn): Add code density variant.
24425 (*movhi_insn): Likewise.
24426 (*movqi_insn): Likewise.
24427 (*addsi3_mixed): Likewise.
24428 (subsi3_insn): Likewise.
24429
24430 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
24431
24432 * config/arc/arc.md (movsi_cond_exec): Update constraint.
24433
24434 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
24435
24436 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
24437 expressions with MINUS and UNARY ops.
24438
24439 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24440
24441 PR target/79911
24442 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
24443 Rename to...
24444 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
24445 between vec_select and vector argument.
24446 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
24447 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
24448 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
24449 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
24450 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
24451 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
24452
24453 2017-03-13 Richard Biener <rguenther@suse.de>
24454
24455 PR other/79991
24456 * params.def (vect-max-peeling-for-alignment): Fix typo.
24457
24458 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
24459
24460 * doc/install.texi (Specific) <mips-*-*>: Remove description of
24461 issue that only occurred with binutils below 2.18.
24462
24463 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
24464
24465 * doc/install.texi (Specific) <cris-axis-elf>: No longer
24466 refer to binutils 2.11/2.12 minimum.
24467
24468 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
24469
24470 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
24471 ftp.kernel.org and simplify binutils requirement.
24472
24473 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
24474
24475 * doc/invoke.texi (Warning Options): Fix spelling of link-time
24476 optimization.
24477 (Optimize Options): Ditto. Also remove redundancy.
24478
24479 2017-03-10 David Malcolm <dmalcolm@redhat.com>
24480
24481 PR translation/79848
24482 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
24483 "%qs".
24484 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
24485 to G_ to avoid double translation.
24486
24487 2017-03-10 David Malcolm <dmalcolm@redhat.com>
24488
24489 PR translation/79923
24490 * auto-profile.c (get_combined_location): Convert leading
24491 character of diagnostics to lower case and remove trailing period.
24492 (read_profile): Likewise for various diagnostics.
24493 * config/arm/arm.c (arm_option_override): Remove trailing period
24494 from various diagnostics.
24495 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
24496 (msp430_expand_delay_cycles): Likewise.
24497
24498 2017-03-10 David Malcolm <dmalcolm@redhat.com>
24499
24500 PR target/79925
24501 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
24502 full command-line argument, rather than just "str".
24503 (aarch64_validate_march): Likewise.
24504 (aarch64_validate_mtune): Likewise.
24505
24506 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
24507
24508 PR rtl-optimization/78911
24509 * lra-assigns.c (must_not_spill_p): New function.
24510 (spill_for): Use it.
24511
24512 2017-03-10 Jakub Jelinek <jakub@redhat.com>
24513
24514 PR tree-optimization/79981
24515 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
24516 ATOMIC_COMPARE_EXCHANGE ifn result.
24517 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
24518 IFN_ATOMIC_COMPARE_EXCHANGE.
24519
24520 2017-03-10 David Malcolm <dmalcolm@redhat.com>
24521
24522 PR driver/79875
24523 * opts.c (parse_sanitizer_options): Add missing question mark to
24524 "did you mean" message.
24525
24526 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24527
24528 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
24529 built-in.
24530 (VMULEUH_UNS): Likewise.
24531 (VMULOUB_UNS): Likewise.
24532 (VMULOUH_UNS): Likewise.
24533 * config/rs6000/rs6000.c (builtin_function_type): Remove
24534 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
24535
24536 2017-03-10 David Malcolm <dmalcolm@redhat.com>
24537
24538 PR bootstrap/79952
24539 * read-rtl-function.c (function_reader::read_rtx_operand): Update
24540 x with result of extra_parsing_for_operand_code_0.
24541 (function_reader::extra_parsing_for_operand_code_0): Convert
24542 return type from void to rtx, returning x. When reading
24543 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
24544 larger size containing struct block_symbol.
24545
24546 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
24547
24548 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
24549 -mfloat128-hardware without -m64.
24550
24551 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
24552
24553 PR target/79941
24554 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
24555 entries to the case statement that marks unsigned arguments to
24556 overloaded functions.
24557
24558 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
24559
24560 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
24561 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
24562
24563 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
24564
24565 PR target/79907
24566 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
24567 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
24568
24569 2017-03-10 Martin Liska <mliska@suse.cz>
24570
24571 PR target/65705
24572 PR target/69804
24573 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
24574 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
24575 FIELD != NULL.
24576
24577 2017-03-10 Olivier Hainque <hainque@adacore.com>
24578
24579 * tree-switch-conversion (array_value_type): Start by resetting
24580 candidate type to it's main variant.
24581
24582 2017-03-10 Jakub Jelinek <jakub@redhat.com>
24583
24584 PR rtl-optimization/79909
24585 * combine.c (try_combine): Use simplify_replace_rtx on individual
24586 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
24587 of the whole CALL_INSN_FUNCTION_USAGE.
24588
24589 PR tree-optimization/79972
24590 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
24591 get_range_info on SSA_NAMEs. Formatting fixes.
24592
24593 2017-03-10 Richard Biener <rguenther@suse.de>
24594 Jakub Jelinek <jakub@redhat.com>
24595
24596 PR tree-optimization/77975
24597 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
24598 edge to be constant.
24599 (get_val_for): For constant x return it. Formatting fix.
24600 (loop_niter_by_eval): Avoid pointless looping if the next iteration
24601 would use the same bases as the current one.
24602
24603 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24604
24605 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
24606 instead of vec_select for V1TImode.
24607 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
24608 longer needed.
24609 (VSX_LE_128): Add V1TI to this mode iterator.
24610 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
24611 (*vsx_le_perm_store_<mode>): Likewise.
24612 (pre-reload splitter for VSX stores): Likewise.
24613 (post-reload splitter for VSX stores): Likewise.
24614 (*vsx_xxpermdi2_le_<mode>): Likewise.
24615 (*vsx_lxvd2x2_le_<mode>): Likewise.
24616 (*vsx_stxvd2x2_le_<mode>): Likewise.
24617
24618 2017-03-09 Michael Eager <eager@eagercon.com>
24619
24620 Correct failures with --enable-checking=yes,rtl.
24621
24622 * config/microblaze/microblaze.c (microblaze_expand_shift):
24623 Replace GET_CODE test with CONST_INT_P and INTVAL test with
24624 test for const0_rtx.
24625 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
24626 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
24627
24628 2017-03-09 Richard Biener <rguenther@suse.de>
24629
24630 PR tree-optimization/79977
24631 * graphite-scop-detection.c (scop_detection::merge_sese):
24632 Handle the case of extra exits to blocks dominating the entry.
24633
24634 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
24635
24636 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
24637 Document rdynamic.
24638
24639 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
24640
24641 PR rtl-optimization/79949
24642 * lra-constraints.c (process_alt_operands): Check memory when
24643 trying to predict a cycle. Print about the overall increase.
24644
24645 2017-03-09 Richard Biener <rguenther@suse.de>
24646
24647 PR middle-end/79971
24648 * gimple-expr.c (useless_type_conversion_p): Preserve
24649 TYPE_SATURATING for fixed-point types.
24650
24651 2017-03-09 Richard Biener <rguenther@suse.de>
24652
24653 PR ipa/79970
24654 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
24655 alignment of BLKmode params.
24656
24657 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24658
24659 PR target/79913
24660 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
24661 (VALL_NO_V2Q): Likewise.
24662 (VDQF_DF): Delete.
24663 * config/aarch64/aarch64-simd.md
24664 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
24665 iterator.
24666 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
24667 VALL_NO_V2Q mode iterator.
24668 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
24669
24670 2017-03-09 Martin Liska <mliska@suse.cz>
24671
24672 PR tree-optimization/79631
24673 * tree-chkp-opt.c (chkp_is_constant_addr): Call
24674 tree_int_cst_sign_bit just for INTEGER constants.
24675
24676 2017-03-09 Martin Liska <mliska@suse.cz>
24677
24678 PR target/65705
24679 PR target/69804
24680 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
24681 sanitizers.
24682
24683 2017-03-09 Marek Polacek <polacek@redhat.com>
24684
24685 PR c++/79672
24686 * tree.c (inchash::add_expr): Handle TREE_VEC.
24687
24688 2017-03-09 Martin Liska <mliska@suse.cz>
24689
24690 PR ipa/79764
24691 (chkp_narrow_size_and_offset): New function.
24692 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
24693 (void chkp_parse_bit_field_ref): New function.
24694 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
24695 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
24696
24697 2017-03-09 Martin Liska <mliska@suse.cz>
24698
24699 PR ipa/79761
24700 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
24701 (chkp_find_bounds_1): Remove gcc_unreachable.
24702
24703 2017-03-09 Jakub Jelinek <jakub@redhat.com>
24704
24705 PR sanitizer/79944
24706 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
24707 BUILT_IN_SYNC*, determine the access type from the size suffix and
24708 always build a MEM_REF with that type. Handle forgotten
24709 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
24710
24711 PR target/79932
24712 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
24713 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
24714 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
24715 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
24716 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
24717 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
24718 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
24719 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
24720 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
24721 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
24722 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
24723 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
24724 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
24725 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
24726 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
24727 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
24728 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
24729 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
24730 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
24731 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
24732 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
24733 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
24734 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
24735 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
24736 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
24737 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
24738 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
24739 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
24740 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
24741 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
24742 definitions outside of __OPTIMIZE__ guarded section.
24743
24744 PR target/79932
24745 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
24746 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
24747 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
24748 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
24749 guarded section.
24750
24751 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24752
24753 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
24754 ("vfenez<mode>"): Add missing constraints.
24755
24756 2017-03-08 Martin Sebor <msebor@redhat.com>
24757
24758 PR target/79928
24759 * config/nds32/nds32.c (nds32_option_override):
24760 Fix misspelled diagnostic.
24761
24762 2017-03-08 Jakub Jelinek <jakub@redhat.com>
24763
24764 PR c/79940
24765 * gimplify.c (gimplify_omp_for): Replace index var in outer
24766 taskloop statement with an artificial variable and add
24767 OMP_CLAUSE_PRIVATE clause for it.
24768
24769 2017-03-08 Richard Biener <rguenther@suse.de>
24770
24771 PR tree-optimization/79955
24772 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
24773 for accesses that are completely outside of the variable.
24774
24775 2017-03-08 Andrew Haley <aph@redhat.com>
24776
24777 PR tree-optimization/79943
24778 * tree-ssa-loop-split.c (compute_new_first_bound): When
24779 calculating the new upper bound, (END-BEG) should be added, not
24780 subtracted.
24781
24782 2017-03-08 Jakub Jelinek <jakub@redhat.com>
24783
24784 * config/avr/avr.md (setmemhi): Make sure match_dup
24785 operand number comes before match_scratch.
24786
24787 2017-03-08 Richard Biener <rguenther@suse.de>
24788
24789 PR tree-optimization/79920
24790 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
24791 with ncopies == 1 to ...
24792 (vect_transform_slp_perm_load): ... here. Properly compute
24793 all element loads by iterating VF times over the group. Do
24794 not handle ncopies (computed in a broken way) in
24795 vect_create_mask_and_perm.
24796
24797 2017-03-08 Jakub Jelinek <jakub@redhat.com>
24798
24799 PR sanitizer/79904
24800 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
24801 is a uniform vector, use uniform_vector_p return value instead of
24802 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
24803
24804 2017-03-07 Marek Polacek <polacek@redhat.com>
24805
24806 PR middle-end/79809
24807 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
24808 (alloca_call_type): Likewise.
24809
24810 2017-03-07 Martin Liska <mliska@suse.cz>
24811
24812 * gcov.c (process_args): Put comment to correct location.
24813
24814 2017-03-07 Martin Liska <mliska@suse.cz>
24815
24816 PR middle-end/68270
24817 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
24818 Use array_at_struct_end_p instead of DECL_CHAIN (field).
24819 (chkp_narrow_bounds_for_field): Likewise.
24820 (chkp_parse_array_and_component_ref): Pass one more argument to
24821 call.
24822
24823 2017-03-07 Richard Biener <rguenther@suse.de>
24824
24825 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
24826 preheaders.
24827
24828 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
24829
24830 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
24831 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
24832
24833 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24834
24835 PR c/79855
24836 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
24837 to end of description.
24838 (PARAM_MAX_STORES_TO_MERGE): Likewise.
24839
24840 2017-03-07 Jakub Jelinek <jakub@redhat.com>
24841
24842 PR rtl-optimization/79901
24843 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
24844 ...
24845 (*avx512f_<code><mode>3<mask_name>): ... this.
24846 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
24847 iterator instead of VI8_AVX2_AVX512BW.
24848
24849 PR rtl-optimization/79901
24850 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
24851 min/max expander, expand it using expand_vec_cond_expr.
24852
24853 PR sanitizer/79897
24854 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
24855 temporary.
24856
24857 2017-03-06 Jakub Jelinek <jakub@redhat.com>
24858
24859 PR c++/79821
24860 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
24861 to void * for PCH reasons.
24862 * dwarf2out.c (output_loc_operands, output_die): Cast
24863 v.val_vec.array to unsigned char *.
24864
24865 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
24866
24867 PR target/77850
24868 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
24869 vector types.
24870
24871 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
24872
24873 PR rtl-optimization/79571
24874 * lra-constraints.c (process_alt_operands): Calculate static
24875 reject and subtract it from overall when only addresses will be
24876 reloaded.
24877
24878 2017-03-06 Julia Koval <julia.koval@intel.com>
24879
24880 PR target/79793
24881 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
24882 incoming stack boundary to 128 for 64-bit targets.
24883
24884 2017-03-06 Richard Biener <rguenther@suse.de>
24885
24886 PR tree-optimization/79894
24887 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
24888 to NULL after folding it.
24889
24890 2017-03-06 Richard Biener <rguenther@suse.de>
24891
24892 PR tree-optimization/79824
24893 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
24894 check disabling peeling for gaps.
24895
24896 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
24897
24898 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
24899 attributes): Document gettimeofday.
24900
24901 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
24902
24903 * config/s390/s390.c (s390_option_override_internal): Set
24904 PARAM_MIN_VECT_LOOP_BOUND
24905
24906 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
24907
24908 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
24909 * config/s390/s390.md: Likewise.
24910
24911 2017-03-06 Jakub Jelinek <jakub@redhat.com>
24912
24913 PR target/79812
24914 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
24915 (<avx2_avx512>_perm<mode>): Rename to ...
24916 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
24917 of VI8F_256_512.
24918 (<avx512>_perm<mode>_mask): Rename to ...
24919 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
24920 of VI8F_256_512.
24921 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
24922 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
24923 instead of VI8F_256_512.
24924 (avx512f_perm<mode>): New define_expand.
24925 (avx512f_perm<mode>_mask): Likewise.
24926 (avx512f_perm<mode>_1<mask_name>): New define_insn.
24927 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
24928
24929 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
24930
24931 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
24932 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
24933 if_then_else.
24934 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
24935
24936 2017-03-06 Martin Liska <mliska@suse.cz>
24937
24938 PR sanitize/79783
24939 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
24940 when having a SSA NAME w/o VAR_DECL assigned to it.
24941
24942 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
24943
24944 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
24945 msa_dpsub_<su>_d): Fix MODE for vec_select.
24946
24947 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
24948
24949 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
24950 argument.
24951 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
24952
24953 2017-03-06 Richard Biener <rguenther@suse.de>
24954
24955 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
24956 * plugin.c (register_plugin_info): Likewise.
24957 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
24958
24959 2017-03-05 Jakub Jelinek <jakub@redhat.com>
24960
24961 * config/i386/sse.md (sse_storehps, sse_storelps,
24962 avx_<castmode><avxsizesuffix>_<castmode>,
24963 avx512f_<castmode><avxsizesuffix>_<castmode>,
24964 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
24965 in condition that at least one operand is not a MEM.
24966
24967 2017-03-03 Jakub Jelinek <jakub@redhat.com>
24968
24969 PR middle-end/79805
24970 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
24971 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
24972 ECF_NOTHROW.
24973 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
24974 gimple_call_nothrow_p flag based on whether original builtin can throw.
24975 If it can, emit following stmts on the fallthrough edge.
24976 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
24977 don't create new bb if inserting just debug stmts on the edge, try to
24978 insert them on the fallthru bb or just reset debug stmts.
24979
24980 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
24981
24982 PR target/43763
24983 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
24984 restore recog_data (including the operand rtxes inside it) around
24985 the call to get_insn_template.
24986
24987 2017-03-03 Martin Sebor <msebor@redhat.com>
24988
24989 PR tree-optimization/79699
24990 * context.c (context::~context): Free MPFR caches to avoid
24991 a memory leak on program exit.
24992
24993 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24994
24995 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
24996 Use wide_int::ulow () instead of .elt (0).
24997
24998 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
24999
25000 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
25001 (*pushxf): Limit oF constraint to 32bit targets and add oC
25002 constraint for 64bit targets.
25003 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
25004 (*pushdf): Change rmF constraint to rmC.
25005
25006 2017-03-03 Martin Liska <mliska@suse.cz>
25007
25008 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
25009 Remove unused variable.
25010
25011 2017-03-03 Jakub Jelinek <jakub@redhat.com>
25012
25013 PR target/79807
25014 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
25015 is a memory operand, increase num_memory.
25016 (ix86_expand_args_builtin): Likewise.
25017
25018 2017-03-03 Jan Hubicka <jh@suse.cz>
25019
25020 PR lto/79760
25021 * ipa-devirt.c (maybe_record_node): Properly handle
25022 __cxa_pure_virtual visibility.
25023
25024 2017-03-03 Martin Liska <mliska@suse.cz>
25025
25026 PR tree-optimization/79803
25027 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
25028 assert.
25029 (pass_loop_prefetch::execute): Disabled optimization if an
25030 assumption about L1 cache size is not met.
25031
25032 2017-03-03 Martin Liska <mliska@suse.cz>
25033
25034 PR rtl-optimization/79574
25035 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
25036 (hash_scan_set): Likewise.
25037 (dump_hash_table): Likewise.
25038 (hoist_code): Likewise.
25039
25040 2017-03-03 Richard Biener <rguenther@suse.de>
25041
25042 * fixed-value.c (fixed_from_string): Restore use of elt (1)
25043 in place of uhigh ().
25044 (fixed_convert_from_real): Likewise.
25045
25046 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
25047
25048 PR target/79514
25049 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
25050
25051 2017-03-03 Richard Biener <rguenther@suse.de>
25052
25053 PR middle-end/79818
25054 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
25055 TYPE_OVERFLOW_UNDEFINED check.
25056
25057 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25058
25059 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
25060 numbers.
25061 (vector_ae_<mode>_p): Likewise.
25062 (vector_nez_<mode>_p): Likewise.
25063 (vector_ne_v2di_p): Likewise.
25064 (vector_ae_v2di_p): Likewise.
25065 (vector_ne_<mode>_p): Likewise.
25066 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
25067 numbers.
25068 (vsx_tsqrt<mode>2_fe): Likewise.
25069
25070 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
25071
25072 PR target/79514
25073 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
25074
25075 2017-03-02 Jakub Jelinek <jakub@redhat.com>
25076
25077 PR rtl-optimization/79780
25078 * cprop.c (one_cprop_pass): When second and further conditional trap
25079 in a single basic block is turned into an unconditional trap, turn it
25080 into a deleted note to avoid RTL verification failures.
25081
25082 2017-03-02 Richard Biener <rguenther@suse.de>
25083
25084 * fold-const.c (const_binop): Use ulow () instead of elt (0).
25085
25086 2017-03-02 Richard Biener <rguenther@suse.de>
25087
25088 PR tree-optimization/79345
25089 PR c++/42000
25090 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
25091 param and abort the walk, returning -1 if it is hit.
25092 (walk_aliased_vdefs): Take a limit param and pass it on.
25093 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
25094 defaulting to 0 and return a signed int.
25095 * tree-ssa-uninit.c (struct check_defs_data): New struct.
25096 (check_defs): New helper.
25097 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
25098 about uninitialized memory.
25099 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
25100 bogus uninitialized warning.
25101 (fixed_convert_from_real): Likewise.
25102
25103 2017-03-02 Bin Cheng <bin.cheng@arm.com>
25104
25105 PR tree-optimization/66768
25106 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
25107 iv_use if base object can't be determined.
25108
25109 2017-03-02 Jakub Jelinek <jakub@redhat.com>
25110
25111 PR tree-optimization/79345
25112 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
25113 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
25114 (get_pattern_stats): Initialize it.
25115 * genemit.c (gen_expand): Verify match_scratch numbers come after
25116 match_operand/match_dup numbers.
25117 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
25118 match_scratch numbers.
25119 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
25120 Likewise.
25121 * config/s390/s390.md (trunctdsd2): Likewise.
25122
25123 2017-03-02 Richard Biener <rguenther@suse.de>
25124
25125 * wide-int.h (wide_int_storage::operator=): Implement in terms
25126 of wi::copy.
25127
25128 2017-03-02 Richard Biener <rguenther@suse.de>
25129
25130 PR tree-optimization/79777
25131 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
25132 the to insert expression to sth existing.
25133
25134 2017-03-01 Martin Sebor <msebor@redhat.com>
25135
25136 PR middle-end/79692
25137 * gimple-ssa-sprintf.c
25138 (directive::known_width_and_precision): New function.
25139 (format_integer): Use it.
25140 (get_mpfr_format_length): Consider the full range of precision
25141 when computing %g output with the # flag. Set the likely byte
25142 count to 3 rather than 1 when precision is indeterminate.
25143 (format_floating): Correct the lower bound of precision.
25144
25145 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25146
25147 * doc/invoke.texi: Document default code model for 64-bit Linux.
25148
25149 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
25150
25151 PR target/79752
25152 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
25153 udiv rather than div since input pattern is unsigned.
25154
25155 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
25156
25157 * config/i386/i386.c (print_reg): Warn for values of
25158 unsupported size in integer register.
25159
25160 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
25161
25162 PR target/79439
25163 * config/rs6000/predicates.md (current_file_function_operand): Do
25164 not allow self calls to be local if the function is replaceable.
25165
25166 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
25167
25168 PR target/79395
25169 * config/rs6000/altivec.h (vec_ctz and others): Change the
25170 preprocessor macro that controls conditional compilation from
25171 _ARCH_PWR9 to __POWER9_VECTOR__.
25172 (vec_all_ne): Change parameterization of __altivec_scalar_pred
25173 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
25174 control (instead of _ARCH_PWR9 control) so that template
25175 definition uses power9-specific function.
25176 (vec_any_eq): Likewise.
25177 (vec_all_ne): Change macro definition to use a power9-specific
25178 expansion under #ifdef __POWER9_VECTOR__ control (instead of
25179 _ARCH_PWR9 control).
25180 (vec_any_eq) Likewise.
25181 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
25182 expansion for CMPNEF to remove support for xvcmpnesp instruction.
25183 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
25184 support for xvcmpnedp instruction.
25185 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
25186 macro expansion so that Power9 implementation of vec_all_ne does
25187 not use the AltiVec predicate framework.
25188 (VCMPNEH_P): Likewise.
25189 (VCMPNEW_P): Likewise.
25190 (VCMPNED_P): Likewise.
25191 (VCMPNEFP_P): Likewise.
25192 (VCMPNEDP_P): Likewise.
25193 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
25194 implementation of vec_any_eq to not use AltiVec predicate
25195 framework.
25196 (VCMPAEH_P): Likewise.
25197 (VCMPAEW_P): Likewise.
25198 (VCMPAED_P): Likewise.
25199 (VCMPAEFP_P): Likewise.
25200 (VCMPAEDP_P): Likewise.
25201 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
25202 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
25203 not use the AltiVec predicate framework.
25204 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
25205 of vec_any_eq to not use AltiVec predicate framework.
25206 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
25207 support for predefined __POWER9_VECTOR__ macro to indicate that
25208 Power9 instruction selection is enabled.
25209 (altivec_overloaded_builtins): Remove extraneous
25210 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
25211 function argument types RS6000_BTI_bool_V16QI and
25212 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
25213 entry for overloaded function argument types RS6000_BTI_bool_V4SI
25214 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
25215 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
25216 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
25217 Power9 for implementations of vec_cmpne. Change the signature for
25218 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
25219 (representing vec_all_ne) to remove the previously described first
25220 argument of type RS6000_BTI_INTSI, as this was an artifact of
25221 reliance on the AltiVec predicate framework, which is no longer
25222 used in the implementation of these functions. Add
25223 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
25224 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
25225 since, unlike the AltiVec predicate framework implementation, we
25226 do not share function descriptors between vec_alle and vec_anyeq.
25227 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
25228 set of modes that receive special treatment even when
25229 TARGET_P9_VECTOR is true. The special treatment emits code that
25230 does not depend on Power9 instructions.
25231 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
25232 define_expand to not rely on AltiVec predicate framework.
25233 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
25234 function.
25235 (vector_ne_v2di_p): Change this define_expand to not rely on
25236 AltiVec predicate framework.
25237 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
25238 function.
25239 (vector_ne_<mode>_p): Change this define_expand to not rely on
25240 AltiVec predicate framework.
25241 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
25242 function.
25243 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
25244 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
25245 define_insn pattern.
25246 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
25247 define_insn pattern because the xvcmpne<VSs>. instruction is not
25248 supported.
25249 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
25250 instruction is not supported.
25251
25252 2017-03-01 Jakub Jelinek <jakub@redhat.com>
25253
25254 * config/nvptx/nvptx.c: Include intl.h.
25255
25256 2017-03-01 Martin Jambor <mjambor@suse.cz>
25257
25258 PR lto/78140
25259 * ipa-prop.h (ipa_bits): Removed field known.
25260 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
25261 to pointers. Adjusted their comments to warn about their sharing.
25262 (ipcp_transformation_summary): Change bits to a vector of pointers.
25263 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
25264 (ipa_get_ipa_bits_for_value): Declare.
25265 * tree-vrp.h (value_range): Mark as GTY((for_user)).
25266 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
25267 (ipa_bits_hash_table): Likewise.
25268 (ipa_vr_ggc_hash_traits): Likewise.
25269 (ipa_vr_hash_table): Likewise.
25270 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
25271 being pointers and vr_known being removed.
25272 (ipa_set_jf_unknown): Likewise.
25273 (ipa_get_ipa_bits_for_value): New function.
25274 (ipa_set_jfunc_bits): Likewise.
25275 (ipa_get_value_range): New overloaded functions.
25276 (ipa_set_jfunc_vr): Likewise.
25277 (ipa_compute_jump_functions_for_edge): Use the above functions to
25278 construct bits and vr parts of jump functions.
25279 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
25280 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
25281 exist.
25282 (ipcp_grow_transformations_if_necessary): Also allocate
25283 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
25284 exist.
25285 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
25286 them. Fix too long lines.
25287 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
25288 vr_known being removed.
25289 (ipa_read_jump_function): Use new setter functions to construct bits
25290 and vr parts of jump functions or set them to NULL.
25291 (write_ipcp_transformation_info): Adjust for bits being pointers.
25292 (read_ipcp_transformation_info): Likewise.
25293 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
25294 space.
25295 Include gt-ipa-prop.h.
25296 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
25297 being pointers.
25298 (ipcp_store_bits_results): Likewise.
25299 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
25300 Do not write to existing jump functions but use a temporary instead.
25301
25302 2017-03-01 Jakub Jelinek <jakub@redhat.com>
25303
25304 PR c++/79681
25305 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
25306 attempt to use its first operand as BIT_FIELD_REF base.
25307
25308 2017-03-01 Richard Biener <rguenther@suse.de>
25309
25310 PR middle-end/79721
25311 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
25312 interpolating formula in wrapping arithmetic.
25313 (chrec_apply): Convert chrec_evaluate return value to wanted type.
25314
25315 2017-03-01 Jakub Jelinek <jakub@redhat.com>
25316
25317 PR tree-optimization/79734
25318 * tree-vect-generic.c (expand_vector_condition): Optimize
25319 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
25320 Handle VEC_COND_EXPR where comparison has different inner width from
25321 type's inner width.
25322
25323 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
25324
25325 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
25326 markup, and similar issues. Remove @opindex entries for things
25327 that aren't options. Add missing -mmpy-option entries.
25328
25329 2017-02-28 Jakub Jelinek <jakub@redhat.com>
25330
25331 PR tree-optimization/79737
25332 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
25333 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
25334 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
25335 instead of byte_size. Formatting fix.
25336 (shift_bytes_in_array_right): Formatting fix.
25337
25338 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
25339
25340 PR target/79749
25341 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
25342 condition on optimize for the leaf function test.
25343
25344 2017-02-28 Martin Liska <mliska@suse.cz>
25345
25346 PR lto/79625
25347 * read-rtl-function.c (function_reader::handle_unknown_directive):
25348 Bail out when one uses -flto.
25349
25350 2017-02-28 Martin Liska <mliska@suse.cz>
25351
25352 * common.opt: Replace space with tabular for options of <number>
25353 type.
25354 * config/i386/i386.opt: Show <number> value for
25355 -mlarge-data-threshold.
25356 * opts.c (print_filtered_help): Do not display number in hexadecimal
25357 format.
25358
25359 2017-02-28 Martin Liska <mliska@suse.cz>
25360
25361 * common.opt: Fix --help=option -Q for options which are of
25362 an enum type.
25363
25364 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
25365
25366 * config/i386/i386.c (print_reg): Error out for values
25367 of 8-bit size in invalid integer register.
25368
25369 2017-02-28 Martin Sebor <msebor@redhat.com>
25370
25371 PR tree-optimization/79691
25372 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
25373
25374 2017-02-28 Jakub Jelinek <jakub@redhat.com>
25375
25376 PR target/79729
25377 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
25378 gcc_unreachable with output_operand_lossage.
25379
25380 2017-02-28 Richard Biener <rguenther@suse.de>
25381
25382 PR tree-optimization/79740
25383 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
25384 inserts.
25385 (visit_nary_op): Insert the nary into the hashtable if we
25386 pattern-matched sth.
25387 * tree-ssa-pre.c (eliminate_insert): Robustify.
25388
25389 2017-02-28 Richard Biener <rguenther@suse.de>
25390
25391 PR middle-end/79731
25392 * fold-const.c (decode_field_reference): Reject out-of-bound
25393 accesses.
25394
25395 2017-02-28 Jakub Jelinek <jakub@redhat.com>
25396
25397 * config/i386/i386.c: Include intl.h.
25398 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
25399 instead of just cond ? "..." : "...".
25400 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
25401 * coverage.c (read_counts_file): Likewise.
25402 * omp-offload.c: Include intl.h.
25403 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
25404 of just cond ? "..." : "...".
25405 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
25406 of just cond ? "..." : "...".
25407
25408 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
25409
25410 PR target/79742
25411 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
25412 entry, if present.
25413 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
25414 'tune for' CPU name.
25415 * config/arm/arm-cpu-data.h: Regenerated.
25416
25417 2017-02-28 Richard Biener <rguenther@suse.de>
25418
25419 PR tree-optimization/79732
25420 * tree-inline.c (expand_call_inline): Do not shadow var.
25421
25422 2017-02-28 Richard Biener <rguenther@suse.de>
25423
25424 PR tree-optimization/79723
25425 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
25426 address-space properly.
25427
25428 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
25429
25430 * doc/optinfo.texi (Optimization groups): Fix option used for
25431 OPTGROUP_ALL.
25432 * doc/invoke.texi (-fopt-info): Document "omp".
25433 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
25434 (OPTGROUP_ALL): Add OPTGROUP_OMP.
25435 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
25436 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
25437 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
25438
25439 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
25440 all users.
25441 * dumpfile.c (optgroup_options): Instead of "openmp", associate
25442 OPTGROUP_OMP with "omp".
25443
25444 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
25445
25446 PR target/79544
25447 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
25448 for arithmetic shift of unsigned V2DI.
25449
25450 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
25451
25452 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
25453 arc/linux.h headers.
25454 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
25455 (LINK_SPEC): Likewise.
25456 (ARC_TLS_EXTRA_START_SPEC): Likewise.
25457 (EXTRA_SPECS): Likewise.
25458 (STARTFILE_SPEC): Likewise.
25459 (ENDFILE_SPEC): Likewise.
25460 (LIB_SPEC): Likewise.
25461 (TARGET_SDATA_DEFAULT): Likewise.
25462 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
25463 (MULTILIB_DEFAULTS): Likewise.
25464 (DWARF2_UNWIND_INFO): Likewise.
25465 * config/arc/big.h: New file.
25466 * config/arc/elf.h: Likewise.
25467 * config/arc/linux.h: Likewise.
25468 * config/arc/t-uClibc: Remove.
25469
25470 2017-02-27 Bin Cheng <bin.cheng@arm.com>
25471
25472 PR tree-optimization/77536
25473 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
25474 (tree_transform_and_unroll_loop): Use above function to compute the
25475 estimated niter of unrolled loop and use it when scaling profile.
25476 Also use count info rather than frequency if it's non-zero.
25477 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
25478 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
25479 (vect_transform_loop): Call above function.
25480
25481 2017-02-27 Richard Biener <rguenther@suse.de>
25482
25483 PR tree-optimization/45397
25484 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
25485 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
25486 (visit_nary_op): Add pattern matching for CSEing sign-changed
25487 or truncated operations with wider ones.
25488
25489 2017-02-27 Richard Biener <rguenther@suse.de>
25490
25491 PR tree-optimization/79690
25492 * tree-vect-stmts.c (vectorizable_store): Use vector type
25493 built from the DR with address-space.
25494
25495 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
25496
25497 * doc/invoke.texi (Optimize Options): Refine the description
25498 of asan-use-after-return.
25499
25500 2017-02-25 Alan Modra <amodra@gmail.com>
25501
25502 PR rtl-optimization/79584
25503 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
25504 base, not ad->base_term, the reg within base. Remove assertion
25505 that ad->base == ad->base_term. Replace gen_int_mode using
25506 bogus mode with const0_rtx.
25507
25508 2017-02-25 Jakub Jelinek <jakub@redhat.com>
25509
25510 PR middle-end/79396
25511 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
25512 FMA_EXPR like tcc_binary or tcc_unary.
25513
25514 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
25515
25516 PR debug/77589
25517 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
25518 bitfield.
25519 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
25520 (output_loc_operands): Handle DW_OP_call_ref and
25521 DW_OP_GNU_variable_value.
25522 (struct variable_value_struct): New type.
25523 (struct variable_value_hasher): Likewise.
25524 (variable_value_hash): New variable.
25525 (string_types): Remove.
25526 (copy_loc_descr): New function.
25527 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
25528 (prepend_loc_descr_to_each): New function.
25529 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
25530 instead of add_loc_descr_to_each if the first argument is single
25531 location list and the second has multiple.
25532 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
25533 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
25534 when looking for variable value which doesn't have other location info.
25535 (loc_list_from_tree): Formatting fix.
25536 (gen_array_type_die): Simplify DW_AT_string_length handling.
25537 (adjust_string_types): Remove.
25538 (gen_subprogram_die): Don't call adjust_string_types nor test/set
25539 string_types. Call resolve_variable_values.
25540 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
25541 (resolve_addr_in_expr): Likewise. Add A argument.
25542 (copy_deref_exprloc): Remove deref argument. Adjust for the
25543 original expression being DW_OP_GNU_variable_value with optionally
25544 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
25545 optionally after it.
25546 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
25547 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
25548 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
25549 (variable_value_hasher::hash, variable_value_hasher::equal): New
25550 methods.
25551 (resolve_variable_value_in_expr, resolve_variable_value,
25552 resolve_variable_values, note_variable_value_in_expr,
25553 note_variable_value): New functions.
25554 (dwarf2out_early_finish): Call note_variable_value on all toplevel
25555 DIEs.
25556
25557 2017-02-24 Jakub Jelinek <jakub@redhat.com>
25558
25559 PR c/79677
25560 * opts.h (handle_generated_option): Add GENERATED_P argument.
25561 * opts-common.c (handle_option): Adjust function comment.
25562 (handle_generated_option): Add GENERATED_P argument, pass it to
25563 handle_option.
25564 (control_warning_option): Pass false to handle_generated_option
25565 GENERATED_P.
25566 * opts.c (maybe_default_option): Pass true to handle_generated_option
25567 GENERATED_P.
25568 * optc-gen.awk: Likewise.
25569
25570 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
25571
25572 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
25573 a REG, look at the REG it is a SUBREG of.
25574 (splitter for cmpeqsi_t): Ditto.
25575
25576 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
25577
25578 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
25579 the special USEs with the pattern of the insn, not the insn itself.
25580
25581 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
25582
25583 PR target/79473
25584 * doc/invoke.texi: Document -mload-store-pairs.
25585
25586 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
25587 Sandra Loosemore <sandra@codesourcery.com>
25588
25589 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
25590 argument isn't a CONST_INT.
25591 (nios2_alternate_compare_const): Assert op is a CONST_INT.
25592 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
25593 (nios2_validate_compare): Bypass alternate compare logic if *op2
25594 is not a CONST_INT.
25595 (ldstwm_operation_p): Return false if first_base is not a REG or
25596 if first_offset is not a CONST_INT.
25597
25598 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
25599
25600 * config/cris/cris.md: Use correct operand in a define_peephole2.
25601
25602 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
25603
25604 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
25605
25606 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
25607
25608 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
25609 this_insn if it is an INSN or JUMP_INSN.
25610 (force_offsettable): Look at base, not at addr.
25611 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
25612 on things that aren't necessarily CONST_INTs.
25613
25614 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
25615
25616 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
25617 -mfpmath=sse is the default also for x86-32 targets with SSE2
25618 instruction set when @option{-ffast-math} is enabled
25619
25620 2017-02-24 Jeff Law <law@redhat.com>
25621
25622 PR rtl-optimizatoin/79286
25623 * ira.c (update_equiv_regs): Drop may_trap_p exception to
25624 dominance test.
25625
25626 2017-02-24 Richard Biener <rguenther@suse.de>
25627
25628 PR tree-optimization/79389
25629 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
25630 debug insns.
25631
25632 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
25633
25634 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
25635 function comment to reflect reality.
25636 (loop_exits_before_overflow): Fix typo in function description.
25637
25638 2017-02-24 Richard Biener <rguenther@suse.de>
25639
25640 PR tree-optimization/79389
25641 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
25642 properly that a threading opportunity exists. Detect conditional
25643 copy/constant propagation opportunities.
25644
25645 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
25646
25647 * config/visium/visium.md (type): Add trap.
25648 (b): New mode attribute.
25649 (*btst): Rename into...
25650 (*btst<mode>): ...this and adjust.
25651 (*cbranchsi4_btst_insn): Rename into...
25652 (*cbranch<mode>4_btst_insn): ...this and adjust.
25653 (trap): New define_insn.
25654
25655 2017-02-23 Jakub Jelinek <jakub@redhat.com>
25656
25657 PR tree-optimization/79389
25658 * ifcvt.c (struct noce_if_info): Add rev_cond field.
25659 (noce_reversed_cond_code): New function.
25660 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
25661 reversed_comparison_code. Formatting fix.
25662 (noce_try_store_flag): Test rev_cond != NULL in addition to
25663 reversed_comparison_code.
25664 (noce_try_store_flag_constants): Likewise.
25665 (noce_try_store_flag_mask): Likewise.
25666 (noce_try_addcc): Use rev_cond if non-NULL instead of
25667 reversed_comparison_code.
25668 (noce_try_cmove_arith): Likewise. Formatting fixes.
25669 (noce_try_minmax, noce_try_abs): Clear rev_cond.
25670 (noce_find_if_block): Initialize rev_cond.
25671 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
25672 instead of false as last argument never attempt to reverse it
25673 afterwards.
25674
25675 2017-02-23 Bin Cheng <bin.cheng@arm.com>
25676
25677 PR tree-optimization/79663
25678 * tree-predcom.c (combine_chains): Process refs in reverse order
25679 only for ZERO length chains, and add explaining comment.
25680
25681 2017-02-23 Jeff Law <law@redhat.com>
25682
25683 PR tree-optimization/79578
25684 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
25685 in call to operand_equal_p.
25686
25687 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
25688
25689 PR target/71017
25690 * config/i386/cpuid.h: Fix another undefined behavior.
25691
25692 2017-02-23 Richard Biener <rguenther@suse.de>
25693
25694 PR tree-optimization/79683
25695 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
25696 vector types for data-refs.
25697
25698 2017-02-23 Martin Liska <mliska@suse.cz>
25699
25700 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
25701
25702 2017-02-23 Jakub Jelinek <jakub@redhat.com>
25703
25704 PR middle-end/79665
25705 * internal-fn.c (get_range_pos_neg): Moved to ...
25706 * tree.c (get_range_pos_neg): ... here. No longer static.
25707 * tree.h (get_range_pos_neg): New prototype.
25708 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
25709 are known to be in between 0 and signed maximum inclusive, try to
25710 expand both unsigned and signed divmod and use the cheaper one from
25711 those.
25712
25713 2017-02-22 Jeff Law <law@redhat.com>
25714
25715 PR tree-optimization/79578
25716 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
25717 to compare base operands.
25718
25719 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
25720
25721 PR target/79211
25722 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
25723 gpc_reg_operand instead of fpr_reg_operand.
25724
25725 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
25726
25727 * config/mips/mips.c (mips_return_in_memory): Force FP
25728 vector types to be returned in memory for o32 ABI.
25729
25730 2017-02-22 Jakub Jelinek <jakub@redhat.com>
25731
25732 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
25733 instead of DW_TAG_member for static data member declarations and don't
25734 set no_linkage_name for static inline data members.
25735 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
25736 to DW_TAG_member.
25737
25738 2017-02-22 Martin Liska <mliska@suse.cz>
25739
25740 * doc/invoke.texi: Replace inequality signs with square brackets
25741 for -Wnormalized.
25742
25743 2017-02-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25744
25745 PR tree-optimization/68644
25746 * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
25747
25748 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
25749
25750 PR target/78660
25751 * lra-constraints.c (simplify_operand_subreg): Handle
25752 WORD_REGISTER_OPERATIONS targets.
25753
25754 2017-02-22 Jakub Jelinek <jakub@redhat.com>
25755
25756 PR target/70465
25757 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
25758 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
25759 elimination by swapping fld*.
25760
25761 2017-02-22 Richard Biener <rguenther@suse.de>
25762
25763 PR tree-optimization/79673
25764 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
25765 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
25766 irrelevant address-space qualifiers and avoiding a
25767 ADDR_SPACE_CONVERT_EXPR from fold_convert.
25768
25769 2017-02-22 Richard Biener <rguenther@suse.de>
25770
25771 PR tree-optimization/79666
25772 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
25773 to not symbolically negate if that may introduce undefined
25774 overflow.
25775
25776 2017-02-22 Martin Liska <mliska@suse.cz>
25777
25778 PR lto/79587
25779 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
25780 * data-streamer-out.c (streamer_write_gcov_count_stream):
25781 Likewise.
25782 * value-prof.c (stream_out_histogram_value): Make assert more
25783 precise based on type of counter.
25784
25785 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
25786
25787 PR target/79593
25788 * config/i386/i386.md (standard_x87sse_constant_load splitter):
25789 Use nonimmediate_operand instead of memory_operand for operand 1.
25790 (float-extend standard_x87sse_constant_load splitter): Ditto.
25791
25792 2017-02-21 Jeff Law <law@redhat.com>
25793
25794 PR tree-optimization/79621
25795 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
25796 blocks with edges to themselves.
25797
25798 2017-02-21 Jakub Jelinek <jakub@redhat.com>
25799
25800 PR target/79633
25801 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
25802 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
25803 Use gimple_call_builtin_p.
25804
25805 PR target/79570
25806 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
25807 on temporarily removed DEBUG_INSNs.
25808
25809 PR tree-optimization/79649
25810 * tree-loop-distribution.c (classify_partition): Give up on
25811 non-generic address space loads/stores.
25812
25813 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
25814
25815 * doc/loop.texi (Loop manipulation): Remove nonexistent
25816 tree_ssa_loop_version from the documentation.
25817 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
25818
25819 2017-02-21 Jakub Jelinek <jakub@redhat.com>
25820
25821 PR target/79494
25822 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
25823 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
25824 * config/rs6000/rs6000.c: Include except.h.
25825 (rs6000_expand_split_stack_prologue): Call
25826 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
25827
25828 2017-02-21 Martin Jambor <mjambor@suse.cz>
25829
25830 PR lto/79579
25831 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
25832 have been analyzed.
25833
25834 2017-02-21 Martin Jambor <mjambor@suse.cz>
25835
25836 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
25837 for backward compatibility only.
25838 * doc/invoke.texi (Option Summary): Remove all references to
25839 -fipa-cp-alignment.
25840
25841 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
25842
25843 PR target/78660
25844 Revert:
25845 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
25846
25847 * lra-constraints.c (curr_insn_transform): Handle
25848 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
25849
25850 2017-02-21 Martin Liska <mliska@suse.cz>
25851
25852 * config/i386/i386.opt: Replace -masm-dialect with -masm.
25853
25854 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
25855
25856 PR translation/79638
25857 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
25858
25859 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
25860
25861 PR ada/67205
25862 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
25863 (arm_function_ok_for_sibcall): Return false for an indirect call by
25864 descriptor if all the argument registers are used.
25865 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
25866 alignment of the function.
25867
25868 2017-02-21 Jakub Jelinek <jakub@redhat.com>
25869
25870 PR tree-optimization/61441
25871 * simplify-rtx.c (simplify_const_unary_operation): For
25872 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
25873 the sNaN unmodified.
25874
25875 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
25876
25877 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
25878 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
25879 instead of SYSTEM_HEADER_DIR.
25880
25881 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
25882 Martin Liška <mliska@suse.cz>
25883
25884 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
25885 Fix typos and grammar, use active voice, and clarify.
25886
25887 2017-02-20 Marek Polacek <polacek@redhat.com>
25888
25889 PR middle-end/79537
25890 * gimplify.c (gimplify_expr): Handle unused *&&L;.
25891
25892 PR sanitizer/79558
25893 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
25894
25895 2017-02-20 Jakub Jelinek <jakub@redhat.com>
25896
25897 PR target/79568
25898 * config/i386/i386.c (ix86_expand_builtin): Handle
25899 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
25900 ix86_builtins_isa[fcode].isa as a requirement of those
25901 flags and any other flag in the bitmask.
25902 (ix86_init_mmx_sse_builtins): Use 0 instead of
25903 ~OPTION_MASK_ISA_64BIT as mask.
25904 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
25905 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
25906 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
25907 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
25908
25909 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
25910
25911 PR target/78012
25912 * lra-constraints.c (split_reg): Check requested split mode
25913 is supported by the register.
25914
25915 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
25916
25917 * lra-constraints.c (simplify_operand_subreg): Remove early
25918 return false.
25919
25920 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
25921
25922 PR target/78660
25923 * lra-constraints.c (curr_insn_transform): Tighten condition
25924 for converting SUBREG reloads from OP_OUT to OP_INOUT.
25925
25926 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
25927
25928 PR target/78660
25929 * lra-constraints.c (curr_insn_transform): Handle
25930 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
25931
25932 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
25933
25934 Revert:
25935 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
25936
25937 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
25938
25939 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
25940
25941 PR c++/69523
25942 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
25943 description.
25944
25945 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
25946
25947 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
25948 for FMA_EXPR.
25949
25950 2017-02-18 Jakub Jelinek <jakub@redhat.com>
25951
25952 * final.c (last_columnnum, override_columnnum): New variables.
25953 (final_start_function): Set last_columnnum, pass it to begin_prologue
25954 hook and pass 0 to dwarf2out_begin_prologue.
25955 (final_scan_insn): Update override_columnnum. Pass last_columnnum
25956 to source_line debug hook.
25957 (notice_source_line): Compute last_columnnum and for debug_column_info
25958 return true on column changes.
25959 * debug.h (struct gcc_debug_hooks): Add column argument to
25960 source_line and begin_prologue hooks.
25961 (debug_nothing_int_charstar_int_bool): Remove prototype.
25962 (debug_nothing_int_int_charstar,
25963 debug_nothing_int_int_charstar_int_bool): New prototypes.
25964 (dwarf2out_begin_prologue): Add column argument.
25965 * debug.c (do_nothing_debug_hooks): Adjust source_line and
25966 begin_prologue hooks.
25967 (debug_nothing_int_charstar_int_bool): Remove.
25968 (debug_nothing_int_int_charstar,
25969 debug_nothing_int_int_charstar_int_bool): New functions.
25970 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
25971 through to dwarf2out_source_line.
25972 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
25973 (dwarf2out_source_line): Add column argument, emit it if requested.
25974 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
25975 arguments.
25976 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
25977 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
25978 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
25979 through to dwarf2out_begin_prologue.
25980 (vmsdbgout_source_line): Add column argument, pass it through to
25981 dwarf2out_source_line.
25982 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
25983 dbxout_source_line caller.
25984 (dbxout_source_line): Add column argument.
25985
25986 * common.opt (gno-column-info, gcolumn-info): New options.
25987 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
25988 (check_die): Also test for multiple DW_AT_decl_column attributes.
25989 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
25990 DW_AT_decl_column if requested.
25991 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
25992 if requested.
25993 (gen_variable_die): Likewise.
25994 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
25995 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
25996
25997 PR target/79569
25998 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
25999 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
26000 (ix86_handle_option): Handle OPT_m3dnowa.
26001 * doc/invoke.texi (-m3dnowa): Document.
26002 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
26003 -m3dnowa instead of -m3dnow -march=athlon.
26004
26005 PR target/79559
26006 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
26007 instead of gcc_assert for K, r and R code checks. Formatting fixes.
26008
26009 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26010
26011 PR target/79261
26012 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
26013 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
26014 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
26015 generator for vsx_xxpermdi_<mode>_be.
26016 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
26017 force big-endian semantics.
26018 (vsx_xxpermdi_<mode>_be): New define_expand with same
26019 implementation as previous version of vsx_xxpermdi_<mode>.
26020
26021 2017-02-17 Jakub Jelinek <jakub@redhat.com>
26022
26023 PR tree-optimization/79327
26024 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
26025 variable, its initialization and use.
26026
26027 2017-02-17 Julia Koval <julia.koval@intel.com>
26028
26029 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
26030 (OPTION_MASK_ISA_PKU_UNSET): New.
26031 (ix86_handle_option): Handle -mrdpid.
26032 * config/i386/cpuid.h (bit_RDPID): New.
26033 * config/i386/driver-i386.c (host_detect_local_cpu):
26034 Detect RDPID feature.
26035 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
26036 * config/i386/i386-c.c (ix86_target_macros_internal):
26037 Handle RDPID flag.
26038 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
26039 (ix86_valid_target_attribute_inner_p): Add "rdpid".
26040 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
26041 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
26042 * config/i386/i386.md (define_insn "rdpid"): New.
26043 * config/i386/i386.opt Add -mrdpid.
26044 * config/i386/immintrin.h (_rdpid_u32): New.
26045
26046 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
26047
26048 PR rtl-optimization/79541
26049 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
26050 instead of transforming it into USE.
26051
26052 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
26053
26054 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
26055 If HONOR_SNANS (SFmode) force the input to a register.
26056 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
26057 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
26058 an frsp or similar insn.
26059
26060 2017-02-17 Martin Liska <mliska@suse.cz>
26061
26062 PR rtl-optimization/79577
26063 * params.def (selsched-max-sched-times): Increase minimum to 1.
26064
26065 2017-02-17 Martin Liska <mliska@suse.cz>
26066
26067 PR rtl-optimization/79574
26068 * gcse.c (want_to_gcse_p): Prevent integer overflow.
26069
26070 2017-02-17 Martin Liska <mliska@suse.cz>
26071
26072 PR tree-optimization/79529
26073 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
26074 ssa_defined_default_def_p to handle cases which are implicitly
26075 defined.
26076 * tree-ssa.c (ssa_defined_default_def_p): New function.
26077 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
26078 which are implicitly defined.
26079 * tree-ssa.h (ssa_defined_default_def_p): Declare.
26080
26081 2017-02-17 Richard Biener <rguenther@suse.de>
26082
26083 PR middle-end/79576
26084 * params.def (max-ssa-name-query-depth): Limit to 10.
26085
26086 2017-02-17 Richard Biener <rguenther@suse.de>
26087
26088 PR tree-optimization/79552
26089 * tree-ssa-structalias.c (visit_loadstore): Properly verify
26090 default defs.
26091
26092 2017-02-17 Richard Biener <rguenther@suse.de>
26093
26094 PR bootstrap/79567
26095 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
26096
26097 2017-02-17 Marek Polacek <polacek@redhat.com>
26098
26099 PR middle-end/79536
26100 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
26101 (fold_negate_expr): New wrapper.
26102
26103 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
26104
26105 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
26106 Correct terminology and de-emphasize pre-standard behavior.
26107
26108 2017-02-16 Alan Modra <amodra@gmail.com>
26109
26110 PR rtl-optimization/79286
26111 * ira.c (def_dominates_uses): New function.
26112 (update_equiv_regs): Don't create an equivalence for insns that
26113 may trap where the register def does not dominate the use.
26114
26115 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
26116
26117 PR rtl-optimization/78127
26118 * lra.c (lra): Call lra_eliminate before finish the loop after
26119 lra_constraint.
26120
26121 2017-02-16 Richard Biener <rguenther@suse.de>
26122
26123 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
26124 isl/isl_val.h.
26125 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
26126 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
26127 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
26128 (isl_val_int_from_wi): New function.
26129 (extract_affine_gmp): Rename to ...
26130 (extract_affine_wi): ... this, take a widest_int.
26131 (extract_affine_int): Just wrap extract_affine_wi.
26132 (add_param_constraints): Use isl_val_int_from_wi.
26133 (add_loop_constraints): Likewise, and extract_affine_wi.
26134
26135 2017-02-15 Jeff Law <law@redhat.com>
26136
26137 PR middle-end/79521
26138 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
26139 ira_init_register_move_cost_if_necessary.
26140
26141 2017-02-15 Martin Sebor <msebor@redhat.com>
26142
26143 PR middle-end/32003
26144 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
26145 removed in a prior commit.
26146
26147 2017-02-15 Bin Cheng <bin.cheng@arm.com>
26148
26149 PR tree-optimization/79347
26150 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
26151 counters during peeling.
26152
26153 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
26154
26155 * Makefile.in (site.exp): Remove "set ISLVER".
26156
26157 2017-02-15 Jakub Jelinek <jakub@redhat.com>
26158
26159 PR target/79487
26160 * real.c (real_from_integer): Call real_convert even for decimal.
26161
26162 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
26163
26164 PR target/79421
26165 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
26166
26167 2017-02-14 Andrew Pinski <apinski@cavium.com>
26168
26169 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
26170 cores and change the partno/implementer to be correct.
26171 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
26172 the 'B" as the implementer.
26173 * config/aarch64/aarch64-tune.md: Regenerate.
26174
26175 2017-02-14 Carl Love <cel@us.ibm.com>
26176
26177 * config/rs6000/rs6000.c: Add case statement entry to make the
26178 xvcvuxdsp built-in argument unsigned.
26179 * config/rs6000/vsx.md: Fix the source and return operand types so they
26180 match the instruction definitions from the ISA document. Fix typo
26181 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
26182 statement.
26183
26184 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
26185
26186 PR target/79282
26187 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
26188 member early_clobber_alts.
26189 * lra-lives.c (reg_early_clobber_p): New.
26190 (process_bb_lives): Use it.
26191 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
26192 (debug_operand_data): Initialize early_clobber_alts.
26193 (setup_operand_alternative): Set up early_clobber_alts.
26194 (collect_non_operand_hard_regs): Ditto. Pass early clobber
26195 alternatives to new_insn_reg.
26196 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
26197 it.
26198 (lra_update_insn_regno_info): Pass the new arg.
26199
26200 2017-02-14 Jakub Jelinek <jakub@redhat.com>
26201
26202 PR middle-end/79505
26203 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
26204 (new_oacc_loop_raw): Don't clear already cleared fields.
26205
26206 PR target/79481
26207 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
26208 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
26209 _mm512_prefetch_i64gather_ps): New inline functions and macros.
26210
26211 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
26212
26213 PR target/79495
26214 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
26215
26216 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
26217
26218 PR target/79498
26219 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
26220 the extra instruction to the right place to store 128-bit constant
26221 when needed.
26222
26223 2017-02-14 Martin Sebor <msebor@redhat.com>
26224
26225 PR middle-end/79448
26226 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
26227 warning for strings of unknown length.
26228
26229 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
26230
26231 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
26232
26233 2017-02-14 Jeff Law <law@redhat.com>
26234
26235 PR target/79404
26236 * ira-costs.c (scan_one_insn): Initialize register move costs
26237 for pseudos seen in USE/CLOBBER insns.
26238
26239 PR tree-optimization/79095
26240 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
26241 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
26242 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
26243 if the operands are known to be not equal, then the resulting range
26244 is ~[0,0].
26245 (intersect_ranges): If the new range is ~[0,0] and the old range is
26246 wide, then prefer ~[0,0].
26247 * tree-vrp.c (overflow_comparison_p_1): New function.
26248 (overflow_comparison_p): New function.
26249 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
26250 if NAME is used in an overflow test.
26251 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
26252 overflow check that can be expressed as an equality test, then adjust
26253 ops to be that equality test.
26254
26255 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26256
26257 * config/s390/s390-builtin-types.def: Remove flags argument.
26258 * config/s390/s390.c (s390_init_builtins): Likewise.
26259
26260 2017-02-14 Martin Liska <mliska@suse.cz>
26261
26262 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
26263 vector. Fix trailing white spaces.
26264
26265 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
26266
26267 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
26268 HFmode.
26269
26270 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26271
26272 PR rtl-optimization/68664
26273 * config/arm/arm.c (arm_sched_can_speculate_insn):
26274 New function. Declare prototype.
26275 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
26276
26277 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26278
26279 PR rtl-optimization/68664
26280 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
26281 New function.
26282 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
26283
26284 2017-02-14 Amit Pawar <amit.pawar@amd.com>
26285
26286 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
26287 max skip bytes for function, loop and jump.
26288
26289 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
26290
26291 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
26292 ABS_EXPR for gimple dump.
26293
26294 2017-02-14 Jakub Jelinek <jakub@redhat.com>
26295
26296 PR target/79462
26297 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
26298
26299 PR tree-optimization/79408
26300 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
26301 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
26302 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
26303 also if rhs1 is INTEGER_CST.
26304
26305 2017-02-14 Richard Biener <rguenther@suse.de>
26306
26307 PR middle-end/79432
26308 * tree-into-ssa.c (insert_phi_nodes): When the function can
26309 have abnormal edges rewrite SSA names with broken use-def
26310 dominance out of SSA and register them for PHI insertion.
26311
26312 2017-02-13 Martin Sebor <msebor@redhat.com>
26313
26314 PR middle-end/79496
26315 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
26316 clearing info.nowrite flag when snprintf size argument is a range.
26317
26318 2017-02-13 Jakub Jelinek <jakub@redhat.com>
26319
26320 * cprop.c (cprop_jump): Add missing space in string literal.
26321 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
26322 (get_constraint_for_component_ref): Likewise.
26323 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
26324 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
26325 * lra-constraints.c (process_alt_operands): Likewise.
26326 * ipa-inline.c (inline_small_functions): Likewise.
26327 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
26328 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
26329 * trans-mem.c (diagnose_tm_1_op): Likewise.
26330 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
26331 (grid_parallel_clauses_gridifiable): Likewise.
26332
26333 * config/nvptx/mkoffload.c (process): Add space in between
26334 , and %d.
26335
26336 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
26337 "MOD4_SSE_REGS" and "ALL_REGS".
26338
26339 * spellcheck.c (test_data): Add , in between "foo" and "food".
26340
26341 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
26342
26343 PR target/79449
26344 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
26345 boundary crossing check and subsequent code generation agree.
26346
26347 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26348
26349 * config/aarch64/aarch64.c (has_memory_op): Delete.
26350 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
26351 has_memory_op.
26352
26353 2017-02-13 Jakub Jelinek <jakub@redhat.com>
26354
26355 PR rtl-optimization/79388
26356 PR rtl-optimization/79450
26357 * combine.c (distribute_notes): When removing TEM_INSN for which
26358 corresponding dest has last value recorded, invalidate that last
26359 value.
26360
26361 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26362
26363 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
26364 of explicit '@'. Add missing assembly comment marker on branch costs
26365 printout.
26366
26367 2017-02-13 Nathan Sidwell <nathan@acm.org>
26368
26369 * gengtype-lex.l (<in_struct>): Add '/'.
26370
26371 2017-02-13 Martin Liska <mliska@suse.cz>
26372
26373 PR c/79471
26374 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
26375
26376 2017-02-13 Richard Biener <rguenther@suse.de>
26377
26378 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
26379 Remove.
26380 * configure: Re-generate.
26381 * config.in: Likewise.
26382 * graphite-dependences.c: Simplify as if
26383 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
26384 * graphite-isl-ast-to-gimple.c: Likewise.
26385 * graphite-optimize-isl.c: Likewise.
26386 * graphite-poly.c: Likewise.
26387 * graphite-sese-to-poly.c: Likewise.
26388 * graphite.h: Likewise.
26389 * toplev.c: Include isl/version.h and use isl_version () for
26390 printing the ISL version.
26391 * doc/install.texi: Update ISL requirement.
26392
26393 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
26394
26395 * doc/standards.texi (Standards): Update reference to
26396 Objective-C 2.0.
26397
26398 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
26399
26400 * doc/extend.texi (Named Address Spaces): sourceware.org now
26401 defaults to https.
26402 * doc/install.texi (Binaries): Ditto.
26403 (Specific): Ditto.
26404
26405 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
26406
26407 * doc/cpp.texi: Replace "stringify"/"stringification" with C
26408 standard terminology "stringize"/"stringizing" throughout.
26409 * doc/cppinternals.texi: Likewise.
26410
26411 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
26412
26413 * doc/extend.texi: Fix some spelling mistakes and typos.
26414 * doc/invoke.texi: Likewise.
26415
26416 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
26417
26418 PR ipa/79224
26419 * params.def (inline-min-speedup) Change from 10 to 8.
26420
26421 2017-02-11 Jakub Jelinek <jakub@redhat.com>
26422
26423 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
26424 4.5.
26425
26426 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
26427
26428 PR ipa/79224
26429 * ipa-inline-analysis.c (get_minimal_bb): New function.
26430 (record_modified): Use it.
26431 (remap_edge_change_prob): Handle also ancestor functions.
26432
26433 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
26434
26435 * doc/contrib.texi (Contributors): Remove broken link into
26436 the Mauve CVS repository.
26437
26438 2017-02-11 Jakub Jelinek <jakub@redhat.com>
26439
26440 PR middle-end/79454
26441 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
26442 result computation whenever lhs doesn't have vector mode, not
26443 just when it has BLKmode.
26444
26445 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
26446
26447 * doc/makefile.texi (profiledbootstrap): Refer to the
26448 installation instructions only in textual form.
26449
26450 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
26451
26452 PR target/79295
26453 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
26454
26455 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
26456
26457 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
26458 (Specific): Update mingw-w64 reference.
26459 (Binaries): Ditto.
26460 (Specific): Remove broken link to Renesas RX processor.
26461
26462 2017-02-10 Richard Biener <rguenther@suse.de>
26463
26464 * toplev.c (process_options): Do not mention obsolete graphite
26465 options when printing sorry message about missing graphite support.
26466 Mention -floop-nest-optimize.
26467
26468 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
26469
26470 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
26471 (vtst_p16): Likewise.
26472 (vtstq_p8): Likewise.
26473 (vtstq_p16): Likewise.
26474 (vtst_p64): New.
26475 (vtstq_p64): Likewise.
26476 * config/arm/arm_neon.h (vgetq_lane_p64): New.
26477 (vset_lane_p64): New.
26478 (vsetq_lane_p64): New.
26479
26480 2017-02-10 Jakub Jelinek <jakub@redhat.com>
26481
26482 PR tree-optimization/79411
26483 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
26484 stmt operands are SSA_NAMEs used in abnormal phis.
26485 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
26486 phis.
26487
26488 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
26489
26490 PR ipa/70795
26491 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
26492 flag if needed.
26493
26494 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
26495
26496 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
26497
26498 2017-02-09 Jakub Jelinek <jakub@redhat.com>
26499
26500 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
26501 to avoid warning.
26502
26503 PR c/79413
26504 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
26505 not arbitrary TREE_CONSTANT.
26506
26507 PR c/79431
26508 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
26509 "omp declare target link" attribute unless is_global_var.
26510 * omp-offload.c (find_link_var_op): Likewise.
26511
26512 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
26513 Chung-Lin Tang <cltang@codesourcery.com>
26514
26515 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
26516 OMP_CLAUSE_TILE.
26517 (gimplify_adjust_omp_clauses): Don't delete TILE.
26518 (gimplify_omp_for): Deal with TILE.
26519 * internal-fn.c (expand_GOACC_TILE): New function.
26520 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
26521 (GOACC_TILE): New.
26522 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
26523 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
26524 element fields.
26525 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
26526 avoid DIV for outermost collapse var.
26527 (expand_oacc_for): Insert tile element loop as needed. Adjust.
26528 Remove out of date comments, fix whitespace.
26529 * omp-general.c (omp_extract_for_data): Deal with tiling.
26530 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
26531 adjust OLF_DIM_BASE value.
26532 (struct omp_for_data): Add tiling field.
26533 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
26534 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
26535 for auto loops. Remove default auto determining, moved to
26536 oacc_loop_fixed_partitions.
26537 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
26538 stmts, add e_mask field.
26539 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
26540 (oacc_thread_numbers): Use oacc_dim_call.
26541 (oacc_xform_tile): New.
26542 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
26543 (finish_oacc_loop): Adjust for ifns vector.
26544 (oacc_loop_discover_walk): Append loop abstraction sites to list,
26545 add case for GOACC_TILE fns.
26546 (oacc_loop_xform_loop): Delete.
26547 (oacc_loop_process): Iterate over call list directly, and add
26548 handling for GOACC_TILE fns.
26549 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
26550 dump partitioning.
26551 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
26552 vector partitioning to outer loops. Assign 2 partitions to loops
26553 when available. Add TILE handling.
26554 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
26555 (execite_oacc_device_lower): Process GOACC_TILE fns,
26556 ignore unknown specs.
26557 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
26558 * tree.c (omp_clause_num_ops): Adjust TILE ops.
26559 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
26560
26561 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
26562
26563 * configure.ac (ACX_BUGURL): Update.
26564 * configure: Regenerate.
26565
26566 2017-02-09 Richard Biener <rguenther@suse.de>
26567
26568 PR tree-optimization/69823
26569 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
26570 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
26571
26572 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
26573
26574 * config/arc/arc-c.def: Add __NPS400__ definition.
26575 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
26576 (TARGET_NPS400): Define.
26577
26578 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
26579
26580 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
26581 file.
26582 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
26583 pointer, arch_info.
26584 (arc_cpu_types): Fill the arch_info field with a pointer into the
26585 arc_arch_types table.
26586 (arc_selected_cpu): Declare.
26587 * config/arc/arc.c (arc_selected_cpu): Make global.
26588 (arc_selected_arch): Delete.
26589 (arc_base_cpu): Delete.
26590 (arc_override_options): Remove references to deleted variables,
26591 update access to arch information.
26592 (ARC_OPT): Update access to arch information.
26593 (ARC_OPTX): Likewise.
26594 * config/arc/arc.h (arc_base_cpu): Remove declaration.
26595 (TARGET_ARC600): Update access to arch information.
26596 (TARGET_ARC601): Likewise.
26597 (TARGET_ARC700): Likewise.
26598 (TARGET_EM): Likewise.
26599 (TARGET_HS): Likewise.
26600 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
26601 information.
26602
26603 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
26604
26605 PR target/78604
26606 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
26607 condition/operands for integer GE/LE/GEU/LEU operations.
26608
26609 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
26610
26611 PR translation/79397
26612 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
26613 of AltiVec.
26614
26615 2017-02-08 Martin Jambor <mjambor@suse.cz>
26616
26617 PR ipa/79375
26618 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
26619 whether allocation happened.
26620 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
26621 nothing was allocated.
26622
26623 2017-02-08 Jakub Jelinek <jakub@redhat.com>
26624
26625 PR tree-optimization/79408
26626 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
26627 constant, but SSA_NAME with a known integer range, use the minimum
26628 of that range instead of op1 to determine if modulo can be replaced
26629 with its first operand.
26630
26631 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26632
26633 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
26634
26635 2017-02-08 Richard Biener <rguenther@suse.de>
26636
26637 PR tree-optimization/71824
26638 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
26639 Check all loops contained in the merged region.
26640
26641 2017-02-07 Andrew Pinski <apinski@cavium.com>
26642
26643 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
26644
26645 2017-02-07 Andrew Pinski <apinski@cavium.com>
26646
26647 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
26648 (thunderxt88): Likewise.
26649 (thunderxt81): Disable LSE and change v8.1 to v8.
26650 (thunderxt83): Likewise.
26651
26652 2017-02-07 Jakub Jelinek <jakub@redhat.com>
26653 Richard Biener <rguenther@suse.de>
26654
26655 PR middle-end/79399
26656 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
26657 type from int to size_t.
26658 * ira-costs.c (struct_costs_size): Change type from int to size_t.
26659
26660 2017-02-07 Jakub Jelinek <jakub@redhat.com>
26661
26662 PR rtl-optimization/79386
26663 * cprop.c (bypass_conditional_jumps): Initialize
26664 bypass_last_basic_block already before splitting bbs after
26665 unconditional traps...
26666 (bypass_conditional_jumps): ... rather than here.
26667
26668 PR target/79299
26669 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
26670 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
26671 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
26672 fix -masm=intel patterns.
26673
26674 2017-02-07 Richard Biener <rguenther@suse.de>
26675
26676 PR tree-optimization/79256
26677 PR middle-end/79278
26678 * builtins.c (get_object_alignment_2): Use min_align_of_type
26679 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
26680 and ADJUST_FIELD_ALIGN.
26681
26682 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
26683 type parameter.
26684 * doc/tm.texi: Regenerate.
26685 * stor-layout.c (layout_decl): Adjust.
26686 (update_alignment_for_field): Likewise.
26687 (place_field): Likewise.
26688 (min_align_of_type): Likewise.
26689 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
26690 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
26691 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
26692 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
26693 * config/frv/frv.c (frv_adjust_field_align): Likewise.
26694 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
26695 * config/i386/i386.c (x86_field_alignment): Likewise.
26696 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
26697 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
26698 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
26699 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
26700 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
26701 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
26702 Likewise.
26703
26704 Revert
26705 2017-01-30 Richard Biener <rguenther@suse.de>
26706
26707 PR tree-optimization/79256
26708 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
26709 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
26710 alignment on TYPE.
26711
26712 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
26713
26714 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
26715 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
26716 builtins to SImode and emit a zero-extend, if necessary.
26717
26718 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
26719
26720 * docs/invoke.texi (RISC-V Options): Alphabetize.
26721
26722 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
26723
26724 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
26725 options.
26726
26727 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
26728
26729 * config/riscv/riscv.c: New file.
26730 * common/config/riscv/riscv-common.c: Likewise.
26731 * config.gcc: Likewise.
26732 * config/riscv/constraints.md: Likewise.
26733 * config/riscv/elf.h: Likewise.
26734 * config/riscv/generic.md: Likewise.
26735 * config/riscv/linux.h: Likewise.
26736 * config/riscv/multilib-generator: Likewise.
26737 * config/riscv/peephole.md: Likewise.
26738 * config/riscv/pic.md: Likewise.
26739 * config/riscv/predicates.md: Likewise.
26740 * config/riscv/riscv-builtins.c: Likewise.
26741 * config/riscv/riscv-c.c: Likewise.
26742 * config/riscv/riscv-ftypes.def: Likewise.
26743 * config/riscv/riscv-modes.def: Likewise.
26744 * config/riscv/riscv-opts.h: Likewise.
26745 * config/riscv/riscv-protos.h: Likewise.
26746 * config/riscv/riscv.h: Likewise.
26747 * config/riscv/riscv.md: Likewise.
26748 * config/riscv/riscv.opt: Likewise.
26749 * config/riscv/sync.md: Likewise.
26750 * config/riscv/t-elf-multilib: Likewise.
26751 * config/riscv/t-linux: Likewise.
26752 * config/riscv/t-linux-multilib: Likewise.
26753 * config/riscv/t-riscv: Likewise.
26754 * configure.ac: Likewise.
26755 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
26756 Waterman as RISC-V maintainers.
26757 * doc/install.texi: Add RISC-V entries.
26758 * doc/invoke.texi: Add RISC-V options section.
26759 * doc/md.texi: Add RISC-V constraints section.
26760 * configure: Regenerated.
26761
26762 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
26763
26764 PR target/66144
26765 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
26766 false values to be constant vectors with all 0 or all 1 bits set.
26767 (vcondu<mode><mode>): Likewise.
26768 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
26769 predicate.
26770 (fpmask_comparison_operator): Update comment.
26771 (vecint_comparison_operator): New predicate.
26772 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
26773 vector conditionals when the true and false values are constant
26774 vectors with all 0 bits or all 1 bits set.
26775
26776 2017-02-06 Martin Sebor <msebor@redhat.com>
26777
26778 PR tree-optimization/79376
26779 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
26780
26781 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
26782
26783 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
26784 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
26785 to simplify split condition.
26786
26787 2017-02-06 Jakub Jelinek <jakub@redhat.com>
26788
26789 * omp-expand.c (oxpand_omp_atomic_fetch_op,
26790 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
26791 false.
26792
26793 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
26794
26795 PR rtl-optimization/68664
26796 * target.def (can_speculate_insn): New hook.
26797 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
26798 * doc/tm.texi: Regenerate.
26799 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
26800 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
26801 (rs6000_sched_can_speculate_insn): New function.
26802
26803 2017-02-06 Jakub Jelinek <jakub@redhat.com>
26804
26805 PR tree-optimization/79284
26806 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
26807 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
26808 vectorizable_mask_load_store, vectorizable_operation,
26809 vect_is_simple_cond, get_same_sized_vectype): Use it instead
26810 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
26811 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
26812 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
26813 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
26814 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
26815 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
26816 is_gimple_assign (stmt). Replace another such test with
26817 is_gimple_assign (stmt).
26818
26819 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
26820
26821 PR target/78883
26822 * config/avr/avr.c (rtl-iter.h): Include it.
26823 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
26824 (avr_legitimate_combined_insn): ...and implementation.
26825
26826 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
26827
26828 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
26829 * config/s390/s390.c (s390_const_operand_ok)
26830 (s390_canonicalize_comparison, s390_extract_part)
26831 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
26832 (s390_contiguous_bitmask_p, s390_rtx_costs)
26833 (legitimize_pic_address): Likewise.
26834 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
26835 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
26836 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
26837 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
26838 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
26839
26840 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
26841
26842 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
26843 REGNO($0) == REGNO($1).
26844
26845 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26846
26847 * config/s390/linux.h(SIZE_TYPE): Add comment.
26848
26849 2017-02-06 Julian Brown <julian@codesourcery.com>
26850 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
26851 Virendra Pathak <virendra.pathak@broadcom.com>
26852
26853 * config/aarch64/aarch64-cores.def: Change the scheduler
26854 to Thunderx2t99.
26855 * config/aarch64/aarch64.md: Include thunderx2t99.md.
26856 * config/aarch64/thunderx2t99.md: New file.
26857
26858 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
26859
26860 * doc/standards.texi (Go Language): Update link to language
26861 standard.
26862
26863 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
26864
26865 * tree-eh.c (lower_resx): Sanitize profile.
26866 (cleanup_empty_eh_move_lp): Likewise.
26867
26868 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
26869
26870 PR tree-ssa/79347
26871 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
26872 ELSE_PROB.
26873 * cfgloopmanip.h (loop_version): Update prototype.
26874 * modulo-sched.c (sms_schedule): Update call of loop_version.
26875 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
26876 * tree-parloops.c (gen_parallel_loop): Likewise.
26877 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
26878 * tree-ssa-loop-split.c (split_loop): Likewise.
26879 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
26880 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
26881
26882 2017-02-05 Martin Liska <mliska@suse.cz>
26883
26884 PR bootstrap/78985
26885 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
26886 variable to NULL.
26887 (print_operand_address): Initialize a struct to zero.
26888
26889 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
26890
26891 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
26892 garbage collector only in textual form.
26893
26894 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
26895
26896 * doc/extend.texi (x86 specific memory model extensions for
26897 transactional memory): Simplify a phrase.
26898
26899 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
26900
26901 PR target/79353
26902 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
26903 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
26904 (atomic_storedi_1): Likewise.
26905
26906 2017-02-04 Jakub Jelinek <jakub@redhat.com>
26907
26908 PR tree-optimization/79338
26909 * tree-parloops.c (gather_scalar_reductions): Don't call
26910 vect_analyze_loop_form for loop->inner before destroying loop's
26911 loop_vinfo.
26912
26913 2017-02-03 Martin Sebor <msebor@redhat.com>
26914
26915 PR tree-optimization/79327
26916 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
26917 when precision has resulted in leading zeros.
26918 (format_integer): Adjust the likely counter to assume an unknown
26919 argument that may be zero is non-zero.
26920
26921 2017-02-03 Jason Merrill <jason@redhat.com>
26922
26923 PR c++/78689
26924 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
26925 avoid copying non-taken branch.
26926
26927 2017-02-03 Jakub Jelinek <jakub@redhat.com>
26928
26929 PR tree-optimization/79340
26930 * tree-vect-loop.c (vectorizable_reduction): Release
26931 vec_defs elements after safe_splicing them into other vectors.
26932 Formatting fixes.
26933
26934 PR tree-optimization/79327
26935 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
26936 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
26937 dirtype.
26938 (format_integer): Use wide_int_to_tree instead of build_int_cst
26939 + to_?hwi. If argmin is NULL, just set argmin and argmax to
26940 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
26941 of shortest and longest sequence.
26942
26943 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
26944
26945 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
26946 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
26947
26948 2017-02-03 Walter Lee <walt@tilera.com>
26949
26950 PR target/78862
26951 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
26952 after initial stackframe link reg save.
26953 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
26954
26955 2017-02-03 Jakub Jelinek <jakub@redhat.com>
26956
26957 PR target/79354
26958 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
26959 wu for stxssp alternative.
26960
26961 2017-02-03 Martin Sebor <msebor@redhat.com>
26962
26963 PR tree-optimization/79352
26964 * gimple-fold.c (get_range_strlen): Add argument.
26965 (get_range_strlen): Change return type to bool.
26966 (get_maxval_strlen): Pass in a dummy argument.
26967 * gimple-fold.h (get_range_strlen): Change return type to bool.
26968 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
26969 * tree.h (array_at_struct_end_p): Add argument.
26970 * tree.c (array_at_struct_end_p): Handle it.
26971
26972 2017-02-03 Martin Liska <mliska@suse.cz>
26973
26974 PR lto/66295
26975 * multiple_target.c (create_dispatcher_calls): Redirect edge
26976 from a caller of a dispatcher.
26977 (expand_target_clones): Make the clones local.
26978 (ipa_target_clone): Do both target clones and resolvers.
26979 (ipa_dispatcher_calls): Remove the pass.
26980 (pass_dispatcher_calls::gate): Likewise.
26981 (make_pass_dispatcher_calls): Likewise.
26982 * passes.def (pass_target_clone): Put as very first IPA early
26983 pass.
26984
26985 2017-02-03 Martin Liska <mliska@suse.cz>
26986
26987 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
26988 in case of a function with ifunc attribute.
26989
26990 2017-02-03 Martin Liska <mliska@suse.cz>
26991
26992 * cgraph.c (cgraph_node::dump): Dump function version info.
26993 * symtab.c (symtab_node::dump_base): Add missing new line.
26994
26995 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
26996
26997 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
26998 (ifcombine_ifandif): Use it.
26999
27000 2017-02-03 Martin Liska <mliska@suse.cz>
27001
27002 * doc/invoke.texi: Document default value for
27003 use-after-scope-direct-emission-threshold.
27004
27005 2017-02-03 Martin Liska <mliska@suse.cz>
27006
27007 PR tree-optimization/79339
27008 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
27009 (format_floating): Likewise.
27010
27011 2017-02-03 Martin Liska <mliska@suse.cz>
27012
27013 PR ipa/79337
27014 * ipa-prop.c (ipa_node_params_t::insert): Remove current
27015 implementation.
27016 (ipa_node_params_t::remove): Likewise.
27017 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
27018 initialization from removed ipa_node_params_t::insert.
27019 (ipa_node_params::~ipa_node_params): Move from removed
27020 ipa_node_params_t::release.
27021 * symbol-summary.h (symbol_summary::m_released): New member.
27022 Do not release a summary twice. Do not allow to call finalizer
27023 for types of a summary that live in GGC memory.
27024
27025 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
27026
27027 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
27028 cmp_branch fusion.
27029
27030 2017-02-02 Martin Sebor <msebor@redhat.com>
27031
27032 PR middle-end/79275
27033 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
27034 (format_string): Tighten up the range of output for non-constant
27035 strings and correct the expected range for wide non-constant strings.
27036
27037 2017-02-02 Martin Sebor <msebor@redhat.com>
27038
27039 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
27040
27041 PR middle-end/32003
27042 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
27043 index.
27044 (-fdump-tree-@var): Add to index and document how to come up
27045 with pass-specific option and dump file names.
27046 (-fdump-passes): Clarify where to look for output.
27047
27048 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
27049
27050 PR middle-end/77445
27051 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
27052 statistics of the analyzed path; allow threading for speed when
27053 any of BBs along the path are optimized for speed.
27054
27055 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
27056
27057 PR middle-end/78468
27058 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
27059 settings of the virtual registers.
27060
27061 Revert again
27062 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
27063
27064 * explow.c (get_dynamic_stack_size): Take known alignment of stack
27065 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
27066 needed.
27067
27068 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27069
27070 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
27071 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
27072
27073 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27074
27075 * config/s390/s390.md: Add missing comments with the expanded
27076 mnemonics.
27077 * config/s390/vector.md: Likewise.
27078 * config/s390/vx-builtins.md: Likewise.
27079
27080 2017-02-02 Jakub Jelinek <jakub@redhat.com>
27081
27082 PR target/79197
27083 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
27084 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
27085 conditions on a single line.
27086
27087 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27088
27089 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
27090 __S390_VX__ to __VX__.
27091
27092 2017-02-01 Andrew Pinski <apinski@cavium.com>
27093
27094 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
27095 stmt_info to record_stmt_cost.
27096 (vect_get_known_peeling_cost): Pass stmt_info if known to
27097 record_stmt_cost.
27098 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
27099 cpu_vector_cost field into
27100 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
27101 field into vec_int_stmt_cost and vec_fp_stmt_cost.
27102 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
27103 splitting of scalar_stmt_cost and vec_stmt_cost.
27104 (thunderx_vector_cost): Likewise.
27105 (cortexa57_vector_cost): LIkewise.
27106 (exynosm1_vector_cost): Likewise.
27107 (xgene1_vector_cost): Likewise.
27108 (thunderx2t99_vector_cost): Improve after the splitting of the two
27109 fields.
27110 (aarch64_builtin_vectorization_cost): Update for the splitting of
27111 scalar_stmt_cost and vec_stmt_cost.
27112
27113 2017-02-01 Torvald Riegel <triegel@redhat.com>
27114 Richard Henderson <rth@redhat.com>
27115
27116 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
27117 conditional on existance of a fast atomic load.
27118 * optabs-query.c (can_atomic_load_p): New function.
27119 * optabs-query.h (can_atomic_load_p): Declare it.
27120 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
27121 no fast atomic load is available for the particular size of access.
27122 (expand_atomic_compare_and_swap): Likewise.
27123 (expand_atomic_load): Likewise.
27124 (expand_atomic_store): Likewise.
27125 (expand_atomic_fetch_op): Likewise.
27126 * testsuite/lib/target-supports.exp
27127 (check_effective_target_sync_int_128): Remove x86 because it provides
27128 no fast atomic load.
27129 (check_effective_target_sync_int_128_runtime): Likewise.
27130
27131 2017-02-01 Richard Biener <rguenther@suse.de>
27132
27133 * graphite.c: Include tree-vectorizer.h for find_loop_location.
27134 (graphite_transform_loops): Provide opt-info for optimized nests.
27135 * tree-parloop.c (parallelize_loops): Provide opt-info for
27136 parallelized loops.
27137
27138 2017-02-01 Richard Biener <rguenther@suse.de>
27139
27140 PR middle-end/79315
27141 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
27142 was not set before.
27143
27144 2017-02-01 Richard Biener <rguenther@suse.de>
27145
27146 PR tree-optimization/71824
27147 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
27148 Verify the loops are valid in the merged SESE region.
27149 (scop_detection::can_represent_loop_1): Check analyzing the
27150 evolution of the number of iterations in the region succeeds.
27151
27152 2017-01-31 Ian Lance Taylor <iant@golang.org>
27153
27154 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
27155 REG_ARGS_SIZE note to 32-bit push insns and call insn.
27156
27157 2017-01-31 David Malcolm <dmalcolm@redhat.com>
27158
27159 PR preprocessor/79210
27160 * input.c (get_substring_ranges_for_loc): Replace line_width
27161 assertion with error-handling.
27162
27163 2017-01-31 Richard Biener <rguenther@suse.de>
27164
27165 PR tree-optimization/77318
27166 * graphite-sese-to-poly.c (extract_affine): Fix assert.
27167 (create_pw_aff_from_tree): Take loop parameter.
27168 (add_condition_to_pbb): Pass loop of the condition to
27169 create_pw_aff_from_tree.
27170
27171 2017-01-31 Jakub Jelinek <jakub@redhat.com>
27172
27173 * config/s390/s390.c (s390_asan_shadow_offset): New function.
27174 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
27175
27176 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
27177
27178 PR target/78597
27179 PR target/79038
27180 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
27181 no longer used.
27182 (convert_int_to_float128): Likewise.
27183 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
27184 (convert_int_to_float128): Likewise.
27185 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
27186 (UNSPEC_IEEE128_CONVERT): Likewise.
27187 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
27188 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
27189 Use local variables for IBM extended format.
27190 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
27191 (fix_trunc<mode>si2_fprs): Likewise.
27192 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
27193 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
27194 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
27195 to know that we can now have integers of all sizes in vector
27196 registers.
27197 (fix<uns>_<mode>di2_hw): Likewise.
27198 (float<uns>_<mode>si2_hw): Likewise.
27199 (fix_<mode>si2_hw): Likewise.
27200 (fixuns_<mode>si2_hw): Likewise.
27201 (float<uns>_<mode>di2_hw): Likewise.
27202 (float_<mode>di2_hw): Likewise.
27203 (float_<mode>si2_hw): Likewise.
27204 (floatuns_<mode>di2_hw): Likewise.
27205 (floatuns_<mode>si2_hw): Likewise.
27206 (xscvqp<su>wz_<mode>): Delete, no longer used.
27207 (xscvqp<su>dz_<mode>): Likewise.
27208 (xscv<su>dqp_<mode>): Likewise.
27209 (ieee128_mfvsrd_64bit): Likewise.
27210 (ieee128_mfvsrd_32bit): Likewise.
27211 (ieee128_mfvsrwz): Likewise.
27212 (ieee128_mtvsrw): Likewise.
27213 (ieee128_mtvsrd_64bit): Likewise.
27214 (ieee128_mtvsrd_32bit): Likewise.
27215
27216 2017-01-31 Martin Liska <mliska@suse.cz>
27217
27218 PR ipa/79285
27219 * ipa-prop.c (ipa_free_all_node_params): Call release method
27220 instead of ~sumbol_summary to not to trigger double times
27221 dtor of hash_map.
27222
27223 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
27224
27225 PR tree-optimization/71691
27226 * bitmap.h (class auto_bitmap): New.
27227 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
27228 is_maybe_undefined instead of ssa_undefined_value_p.
27229
27230 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27231
27232 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
27233 __S390_ARCH_LEVEL__ to __ARCH__.
27234
27235 2017-01-31 Jakub Jelinek <jakub@redhat.com>
27236
27237 PR tree-optimization/79267
27238 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
27239 if should_remove_lhs_p is true.
27240
27241 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
27242
27243 PR debug/63238
27244 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
27245 (add_alignment_attribute): New.
27246 (base_type_die): Add alignment attribute.
27247 (subrange_type_die): Likewise.
27248 (modified_type_die): Likewise.
27249 (gen_array_type_die): Likewise.
27250 (gen_descr_array_type_die: Likewise.
27251 (gen_enumeration_type_die): Likewise.
27252 (gen_subprogram_die): Likewise.
27253 (gen_variable_die): Likewise.
27254 (gen_field_die): Likewise.
27255 (gen_ptr_to_mbr_type_die): Likewise.
27256 (gen_struct_or_union_type_die): Likewise.
27257 (gen_subroutine_type_die): Likewise.
27258 (gen_typedef_die): Likewise.
27259 (base_type_cmp): Compare alignment attribute.
27260
27261 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
27262
27263 PR target/79170
27264 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
27265 (setb_unsigned) New pattern for setb with CCUNS.
27266 * config/rs6000/rs6000.c (expand_block_compare): Use a different
27267 subfc./subfe sequence to avoid overflow problems. Generate a
27268 shorter sequence with cmpld/setb for power9.
27269 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
27270 for generating subfc. instruction.
27271 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
27272 now uses this instruction.
27273
27274 2017-01-30 Ian Lance Taylor <iant@google.com>
27275
27276 PR debug/79289
27277 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
27278 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
27279
27280 2017-01-30 Martin Sebor <msebor@redhat.com>
27281
27282 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
27283 Move constant to the right of a relational operator.
27284 (get_mpfr_format_length, format_character, format_string): Ditto.
27285 (should_warn_p, maybe_warn): Same.
27286
27287 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
27288
27289 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
27290
27291 PR lto/79061
27292 * asan.c (get_translation_unit_decl): Remove function.
27293 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
27294
27295 2017-01-30 Martin Liska <mliska@suse.cz>
27296
27297 PR gcov-profile/79259
27298 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
27299 -fprofile-generate.
27300
27301 2017-01-30 Martin Liska <mliska@suse.cz>
27302
27303 PR bootstrap/78985
27304 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
27305 Initialize variables with NULL value.
27306
27307 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
27308
27309 PR target/79260
27310 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
27311 tm_p_file.
27312 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
27313
27314 2017-01-30 Richard Biener <rguenther@suse.de>
27315
27316 PR tree-optimization/79276
27317 * tree-vrp.c (process_assert_insertions): Properly adjust common
27318 when removing a duplicate.
27319
27320 * gcc.dg/torture/pr79276.c: New testcase.
27321
27322 2017-01-30 Richard Biener <rguenther@suse.de>
27323
27324 PR tree-optimization/79256
27325 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
27326 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
27327 alignment on TYPE.
27328 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
27329
27330 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
27331
27332 PR target/79240
27333 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
27334 ("*r<noxa>sbg_<mode>_sll_bitmask")
27335 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
27336 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
27337 Use contiguous_bitmask_nowrap_operand.
27338
27339 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27340
27341 PR target/79268
27342 * config/rs6000/altivec.h (vec_xl): Revise #define.
27343 (vec_xst): Likewise.
27344
27345 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
27346
27347 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
27348
27349 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
27350
27351 PR rtl-optimization/79194
27352 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
27353 traps before call to bypass_conditional_jumps.
27354
27355 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
27356
27357 PR tree-optimization/71374
27358 * lra-constraints.c (check_conflict_input_operands): New.
27359 (match_reload): Use it.
27360
27361 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
27362
27363 PR target/79131
27364 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
27365 account to calculate conflict_set.
27366
27367 2017-01-27 Bin Cheng <bin.cheng@arm.com>
27368
27369 PR rtl-optimization/78559
27370 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
27371 other_insn in combine.
27372
27373 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
27374
27375 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
27376 uint16_type_node for BT_UINT16.
27377
27378 2017-01-27 David Malcolm <dmalcolm@redhat.com>
27379
27380 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
27381 "RTL Tests" to menu.
27382 (GIMPLE Tests): New node.
27383 (RTL Tests): New node.
27384
27385 2017-01-27 Richard Biener <rguenther@suse.de>
27386
27387 PR tree-optimization/79245
27388 * tree-loop-distribution.c (distribute_loop): Apply cost
27389 modeling also to detected patterns.
27390
27391 2017-01-27 Richard Biener <rguenther@suse.de>
27392
27393 PR tree-optimization/71433
27394 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
27395 (compare_assert_loc): New function.
27396 (process_assert_insertions): Sort and optimize assert locations
27397 to remove duplicates and push down identical assertions on
27398 edges to their destination block.
27399
27400 2017-01-27 Richard Biener <rguenther@suse.de>
27401
27402 PR tree-optimization/79244
27403 * tree-vrp.c (remove_range_assertions): Forcefully propagate
27404 out SSA names even if abnormal.
27405
27406 2017-01-27 Jakub Jelinek <jakub@redhat.com>
27407
27408 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
27409 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
27410 instead of MPFR_RNDN.
27411
27412 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
27413
27414 PR target/79239
27415 * arm.c (arm_option_override): Don't call build_target_option_node
27416 until after doing all option overrides.
27417 (arm_valid_target_attribute_tree): Likewise.
27418
27419 2017-01-27 Martin Liska <mliska@suse.cz>
27420
27421 * doc/invoke.texi (-fprofile-arcs): Document profiling support
27422 for {cd}tors and C++ {cd}tors.
27423
27424 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
27425
27426 * config/s390/s390.md ("*setmem_long_and")
27427 ("*setmem_long_and_31z"): Use zero_extend instead of and.
27428
27429 2017-01-26 Martin Sebor <msebor@redhat.com>
27430
27431 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
27432 of precision.
27433
27434 2017-01-26 Martin Sebor <msebor@redhat.com>
27435
27436 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
27437 HAVE_DFmode before using XFmode or DFmode.
27438 (parse_directive): Avoid using the z length modifier to avoid
27439 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
27440
27441 PR middle-end/78703
27442 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
27443 to accept adjustment as an array.
27444 (get_int_range): New function.
27445 (struct directive): Make width and prec arrays.
27446 (directive::set_width, directive::set_precision): Call get_int_range.
27447 (format_integer, format_floating): Handle width and precision ranges.
27448 (format_string, parse_directive): Same.
27449
27450 2017-01-26 Jakub Jelinek <jakub@redhat.com>
27451
27452 PR debug/79129
27453 * dwarf2out.c (generate_skeleton_bottom_up): For children with
27454 comdat_type_p set, just clone them, but keep the children in the
27455 original DIE.
27456
27457 PR debug/78835
27458 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
27459 which have direct callers with -fvar-tracking-assignments enabled
27460 in the current TU.
27461 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
27462 inside of type units.
27463
27464 2017-01-26 Martin Sebor <msebor@redhat.com>
27465
27466 PR middle-end/78703
27467 * gimple-ssa-sprintf.c (struct result_range): Add likely and
27468 unlikely counters.
27469 (struct format_result): Replace number_chars, number_chars_min,
27470 and number_chars_max with a single member of struct result_range.
27471 Remove bounded.
27472 (format_result::operator+=): Adjust.
27473 (struct fmtresult): Remove bounded. Handle likely and unlikely
27474 counters.
27475 (fmtresult::adjust_for_width_or_precision): New function.
27476 (fmtresult:type_max_digits): New function.
27477 (bytes_remaining): Handle likely and unlikely counters.
27478 (min_bytes_remaining): Remove.
27479 (format_percent): Simplify.
27480 (format_integer, format_floating): Set likely and unlikely counters.
27481 (get_string_length, format_character, format_string): Same.
27482 (format_plain, should_warn_p): New function.
27483 (maybe_warn): Call should_warn_p. Update diagnostic messages
27484 and handle those for all directives, including plain strings.
27485 (format_directive): Handle likely and unlikely counters.
27486 Remove unnecessary quoting from diagnostics. Add an informational
27487 note.
27488 (add_bytes): Remove.
27489 (pass_sprintf_length::compute_format_length): Simplify.
27490 (try_substitute_return_value): Handle likely and unlikely counters.
27491
27492 2017-01-26 Carl Love <cel@us.ibm.com>
27493
27494 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
27495 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
27496
27497 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
27498
27499 PR target/79131
27500 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
27501 endianess for subregs into account.
27502 * lra-constraints.c (lra_constraints): Do risky transformations
27503 always on the first iteration.
27504 * lra-lives.c (check_pseudos_live_through_calls): Add arg
27505 last_call_used_reg_set.
27506 (process_bb_lives): Define and use last_call_used_reg_set.
27507 * lra.c (lra): Always continue after lra_constraints on the first
27508 iteration.
27509
27510 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
27511
27512 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
27513 constant.
27514 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
27515
27516 2017-01-26 Jakub Jelinek <jakub@redhat.com>
27517
27518 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
27519 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
27520 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
27521 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
27522 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
27523 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
27524 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
27525 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
27526 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
27527
27528 2017-01-26 Marek Polacek <polacek@redhat.com>
27529
27530 PR c/79199
27531 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
27532 for the third operand.
27533
27534 2017-01-26 Jakub Jelinek <jakub@redhat.com>
27535
27536 PR middle-end/79236
27537 * omp-low.c (struct omp_context): Add simt_stmt field.
27538 (scan_omp_for): Return omp_context *.
27539 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
27540 context to the _simt_ SIMD stmt.
27541 (lower_omp_for): For combined SIMD with sibling _simt_
27542 SIMD, make sure to use the same decls in _looptemp_
27543 clauses as in the sibling.
27544
27545 2017-01-26 David Sherwood <david.sherwood@arm.com>
27546
27547 PR middle-end/79212
27548 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
27549 all contexts.
27550
27551 2017-01-26 Jakub Jelinek <jakub@redhat.com>
27552
27553 PR target/70465
27554 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
27555 emit fld b; fld a; if possible.
27556
27557 * brig-builtins.def: Update copyright years.
27558 * config/arm/arm_acle_builtins.def: Update copyright years.
27559
27560 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
27561
27562 PR target/79179
27563 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
27564 constraint instead of o for the stxsd instruction.
27565
27566 2017-01-25 Carl Love <cel@us.ibm.com>
27567
27568 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
27569 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
27570
27571 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
27572
27573 * doc/invoke.texi (C++ Dialect Options): Fix typo.
27574
27575 2017-01-25 Richard Biener <rguenther@suse.de>
27576
27577 PR tree-optimization/69264
27578 * target.def (vector_alignment_reachable): Improve documentation.
27579 * doc/tm.texi: Regenerate.
27580 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
27581 and add a comment.
27582 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
27583 earlier changes with respect to TYPE_USER_ALIGN.
27584 (vector_alignment_reachable_p): Likewise. Improve dumping.
27585
27586 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27587
27588 PR target/79145
27589 * config/arm/arm.md (xordi3): Force constant operand into a register
27590 for TARGET_IWMMXT.
27591
27592 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27593
27594 * doc/invoke.texi (-fstore-merging): Correct default optimization
27595 levels at which it is enabled.
27596 (-O): Move -fstore-merging from list to...
27597 (-O2): ... Here.
27598
27599 2017-01-25 Richard Biener <rguenther@suse.de>
27600
27601 PR debug/78363
27602 * omp-expand.c: Include debug.h.
27603 (expand_omp_taskreg): Make sure to generate early debug before
27604 outlining anything from a function.
27605 (expand_omp_target): Likewise.
27606 (grid_expand_target_grid_body): Likewise.
27607
27608 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
27609
27610 PR lto/79061
27611 * asan.c (get_translation_unit_decl): New function.
27612 (asan_add_global): Extract modules file name from globals
27613 TRANSLATION_UNIT_DECL name.
27614
27615 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
27616
27617 PR target/77439
27618 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
27619 for long calls with APCS frame and VFP.
27620
27621 2017-01-24 David Malcolm <dmalcolm@redhat.com>
27622
27623 * cfg.c (original_copy_tables_initialized_p): New function.
27624 * cfg.h (original_copy_tables_initialized_p): New decl.
27625 * cfgrtl.c (relink_block_chain): Guard the call to
27626 free_original_copy_tables with a call to
27627 original_copy_tables_initialized_p.
27628 * cgraph.h (symtab_node::native_rtl_p): New decl.
27629 * cgraphunit.c (symtab_node::native_rtl_p): New function.
27630 (symtab_node::needed_p): Don't assert for early assembly output
27631 for __RTL functions.
27632 (cgraph_node::finalize_function): Set "force_output" for __RTL
27633 functions.
27634 (cgraph_node::analyze): Bail out early for __RTL functions.
27635 (analyze_functions): Update assertion to support __RTL functions.
27636 (cgraph_node::expand): Bail out early for __RTL functions.
27637 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
27638 __RTL functions.
27639 * function.h (struct function): Update comment for field
27640 "pass_startwith".
27641 * gimple-expr.c: Include "tree-pass.h".
27642 (gimple_has_body_p): Return false for __RTL functions.
27643 * Makefile.in (OBJS): Add run-rtl-passes.o.
27644 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
27645 accessor.
27646 (gcc::pass_manager::get_clean_slate): New accessor.
27647 * passes.c: Include "insn-addr.h".
27648 (should_skip_pass_p): Add logging. Update logic for running
27649 "expand" to be compatible with both __GIMPLE and __RTL. Guard
27650 property-provider override so it is only done for gimple passes.
27651 Don't skip dfinit.
27652 (skip_pass): New function.
27653 (execute_one_pass): Call skip_pass when skipping passes.
27654 * read-md.c (md_reader::read_char): Support filtering
27655 the input to a subset of line numbers.
27656 (md_reader::md_reader): Initialize fields
27657 m_first_line and m_last_line.
27658 (md_reader::read_file_fragment): New function.
27659 * read-md.h (md_reader::read_file_fragment): New decl.
27660 (md_reader::m_first_line): New field.
27661 (md_reader::m_last_line): New field.
27662 * read-rtl-function.c (function_reader::create_function): Only
27663 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
27664 curr_properties. Set DECL_INITIAL to a dummy block.
27665 (read_rtl_function_body_from_file_range): New function.
27666 * read-rtl-function.h (read_rtl_function_body_from_file_range):
27667 New decl.
27668 * run-rtl-passes.c: New file.
27669 * run-rtl-passes.h: New file.
27670
27671 2017-01-24 Jeff Law <law@redhat.com>
27672
27673 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
27674 buffer size.
27675
27676 2017-01-24 Bin Cheng <bin.cheng@arm.com>
27677
27678 PR tree-optimization/79159
27679 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
27680 (record_nonwrapping_iv): Improve boundary using above function if no
27681 value range information.
27682
27683 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
27684 Martin Jambor <mjambor@suse.cz>
27685
27686 * brig-builtins.def: New file.
27687 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
27688 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
27689 (DEF_HSAIL_SAT_BUILTIN): Likewise.
27690 (DEF_HSAIL_INTR_BUILTIN): Likewise.
27691 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
27692 * builtin-types.def (BT_INT8): New.
27693 (BT_INT16): Likewise.
27694 (BT_UINT8): Likewise.
27695 (BT_UINT16): Likewise.
27696 (BT_FN_ULONG): Likewise.
27697 (BT_FN_UINT_INT): Likewise.
27698 (BT_FN_UINT_ULONG): Likewise.
27699 (BT_FN_UINT_LONG): Likewise.
27700 (BT_FN_UINT_PTR): Likewise.
27701 (BT_FN_ULONG_PTR): Likewise.
27702 (BT_FN_INT8_FLOAT): Likewise.
27703 (BT_FN_INT16_FLOAT): Likewise.
27704 (BT_FN_UINT32_FLOAT): Likewise.
27705 (BT_FN_UINT16_FLOAT): Likewise.
27706 (BT_FN_UINT8_FLOAT): Likewise.
27707 (BT_FN_UINT64_FLOAT): Likewise.
27708 (BT_FN_UINT16_UINT32): Likewise.
27709 (BT_FN_UINT32_UINT16): Likewise.
27710 (BT_FN_UINT16_UINT16_UINT16): Likewise.
27711 (BT_FN_INT_PTR_INT): Likewise.
27712 (BT_FN_UINT_PTR_UINT): Likewise.
27713 (BT_FN_LONG_PTR_LONG): Likewise.
27714 (BT_FN_ULONG_PTR_ULONG): Likewise.
27715 (BT_FN_VOID_UINT64_UINT64): Likewise.
27716 (BT_FN_UINT8_UINT8_UINT8): Likewise.
27717 (BT_FN_INT8_INT8_INT8): Likewise.
27718 (BT_FN_INT16_INT16_INT16): Likewise.
27719 (BT_FN_INT_INT_INT): Likewise.
27720 (BT_FN_UINT_FLOAT_UINT): Likewise.
27721 (BT_FN_FLOAT_UINT_UINT): Likewise.
27722 (BT_FN_ULONG_UINT_UINT): Likewise.
27723 (BT_FN_ULONG_UINT_PTR): Likewise.
27724 (BT_FN_ULONG_ULONG_ULONG): Likewise.
27725 (BT_FN_UINT_UINT_UINT): Likewise.
27726 (BT_FN_VOID_UINT_PTR): Likewise.
27727 (BT_FN_UINT_UINT_PTR: Likewise.
27728 (BT_FN_UINT32_UINT64_PTR): Likewise.
27729 (BT_FN_INT_INT_UINT_UINT): Likewise.
27730 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
27731 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
27732 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
27733 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
27734 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
27735 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
27736 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
27737 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
27738 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
27739 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
27740 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
27741 * doc/frontends.texi: List BRIG FE.
27742 * doc/install.texi (Testing): Add BRIG tesring requirements.
27743 * doc/invoke.texi (Overall Options): Mention BRIG.
27744 * doc/standards.texi (Standards): Doucment BRIG HSA version.
27745
27746 2017-01-24 Richard Biener <rguenther@suse.de>
27747
27748 PR translation/79208
27749 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
27750
27751 2017-01-24 Martin Jambor <mjambor@suse.cz>
27752
27753 PR bootstrap/79198
27754 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
27755 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
27756 and known_contexts.
27757
27758 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
27759
27760 PR middle-end/79123
27761 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
27762 casts from signed to unsigned really don't have a range.
27763
27764 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
27765
27766 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
27767 GMP_RNDx for compatiblity.
27768
27769 2017-01-24 Martin Liska <mliska@suse.cz>
27770
27771 PR bootstrap/79132
27772 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
27773 that would prevent us to call alloca with -1 as argument.
27774
27775 2017-01-24 Jakub Jelinek <jakub@redhat.com>
27776
27777 * dwarf2out.c (output_compilation_unit_header, output_file_names):
27778 Avoid -Wformat-security warning.
27779
27780 2017-01-23 Andrew Pinski <apinski@cavium.com>
27781
27782 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
27783 cost table.
27784
27785 2017-01-23 Martin Sebor <msebor@redhat.com>
27786
27787 PR middle-end/78703
27788 * gimple-ssa-sprintf.c (warn_level): New global.
27789 (format_integer): Use it here and throughout the rest of the file.
27790 Use the same switch to compute sign as base.
27791 (maybe_warn): New function.
27792 (format_directive): Factor out warnings into maybe_warn.
27793 Add debugging output. Use warn_level.
27794 (add_bytes): Use warn_level.
27795 (pass_sprintf_length::compute_format_length): Add debugging output.
27796 (try_substitute_return_value): Same.
27797 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
27798
27799 PR middle-end/78703
27800 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
27801 (struct fmtresult, format_integer, format_floating): Adjust.
27802 (fmtresult::fmtresult): Set max correctly in two argument ctor.
27803 (get_string_length, format_string,format_directive): Same.
27804 (pass_sprintf_length::compute_format_length): Same.
27805 (try_substitute_return_value): Simplify slightly.
27806
27807 PR middle-end/78703
27808 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
27809 (fmtresult::operator+=): Outlined.
27810 (struct fmtresult): Add ctors.
27811 (struct conversion_spec): Rename...
27812 (struct directive): ...to this. Add and remove data members.
27813 (directive::set_width, directive::set_precision): New functions.
27814 (format_percent): Use fmtresult ctor.
27815 (get_width_and_precision): Remove.
27816 (format_integer): Make naming changes. Avoid computing width and
27817 precision.
27818 (format_floating): Same. Adjust indentation.
27819 (format_character, format_none): New functions.
27820 (format_string): Moved character handling to format_character.
27821 (format_directive): Remove arguments, change return type.
27822 (parse_directive): New function.
27823 (pass_sprintf_length::compute_format_length): Move directive
27824 parsing to parse_directive.
27825
27826 2017-01-23 Jakub Jelinek <jakub@redhat.com>
27827
27828 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
27829 (assign_assembler_name_if_needed): ... this.
27830 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
27831 (assign_assembler_name_if_needed): ... this.
27832 (free_lang_data_in_cgraph): Adjust callers.
27833 * cgraphunit.c (cgraph_node::analyze): Likewise.
27834 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
27835 Likewise.
27836
27837 2017-01-23 Richard Biener <rguenther@suse.de>
27838
27839 PR tree-optimization/79088
27840 PR tree-optimization/79188
27841 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
27842 resetting loop bounds after last path deletion. Reset loop
27843 bounds of the target loop, make code match the comments.
27844 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
27845 Make sure loops need no fixups.
27846
27847 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
27848
27849 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
27850 exponent support with double type for first argument.
27851 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
27852 type returned by __builtin_vec_extract_sig,
27853 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
27854 functions from "vector int" to "vector unsigned int" or from
27855 "vector long long int" to "vector unsigned long long int".
27856 Changed type returned by __builtin_vec_extract_exp,
27857 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
27858 functions from "vector int" to "vector unsigned int" or from
27859 "vector long long int" to "vector unsigned long long int".
27860 Changed return type of __builtin_vec_test_data_class,
27861 __builtin_vec_test_data_class_sp, and
27862 __builtin_vec_test_data_class_dp from "vector int" to
27863 "vector bool int" or from "vector long long int" to "vector bool
27864 long long int" and changed second argument type from "unsigned
27865 int" to "int". Added new overloaded function forms "vector float
27866 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
27867 "vector float __builtin_vec_insert_exp_sp (vector float, vector
27868 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
27869 double, vector unsigned long long int)" and "vector double
27870 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
27871 long int)". Changed return type of
27872 __builtin_scalar_test_data_class and
27873 __builtin_scalar_test_data_class_sp and
27874 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
27875 int" and changed second argument from "unsigned int" to "int".
27876 Changed type returned by __builtin_scalar_test_neg,
27877 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
27878 from "int" to "bool int". Added new overloaded function form
27879 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
27880 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
27881 exponent double-precision with floating point first argument.
27882 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
27883 documentation of scalar_test_data_class, scalar_test_neg,
27884 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
27885 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
27886 vec_test_data_class built-in functions to reflect refinements in
27887 their type signatures.
27888
27889 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
27890
27891 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
27892 size of buf.
27893 (aarch64_elf_asm_destructor): Likewise.
27894
27895 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
27896
27897 PR rtl-optimization/78634
27898 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
27899 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
27900 * ifcvt.c (noce_try_cmove): Add missing cost check.
27901
27902 PR rtl-optimization/71724
27903 * combine.c (if_then_else_cond): Look for situations where it is
27904 beneficial to undo the work of one of the recursive calls.
27905
27906 2017-01-23 Bin Cheng <bin.cheng@arm.com>
27907
27908 PR tree-optimization/70754
27909 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
27910 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
27911 combined stmt before it if not NULL.
27912 (combine_chains): Process refs reversely and compute dominance point
27913 for root ref.
27914
27915 2017-01-23 Martin Liska <mliska@suse.cz>
27916
27917 PR tree-optimization/79196
27918 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
27919 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
27920 instead of memcmp.
27921 (strlen_optimize_stmt): Call the renamed function.
27922
27923 2017-01-23 Michael Matz <matz@suse.de>
27924
27925 PR tree-optimization/78384
27926 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
27927
27928 2017-01-23 Richard Biener <rguenther@suse.de>
27929
27930 PR tree-optimization/79186
27931 * tree-vrp.c (register_new_assert_for): Make sure we've seen
27932 both incoming edges before moving an assert.
27933
27934 2017-01-23 Martin Jambor <mjambor@suse.cz>
27935
27936 * ipa-prop.c (load_from_param_1): Removed.
27937 (load_from_unmodified_param): Bits from load_from_param_1 put back
27938 here.
27939 (load_from_param): Removed.
27940 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
27941 with stmt. Reverted back to use of load_from_unmodified_param.
27942
27943 2017-01-23 Martin Jambor <mjambor@suse.cz>
27944
27945 PR ipa/79108
27946 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
27947 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
27948 field a pointer to garbage collected vector, mark lattices and
27949 ipcp_orig_node with GTY((skip)).
27950 (ipa_get_param_count): Adjust to descriptors being a pointer.
27951 (ipa_get_param): Likewise.
27952 (ipa_get_type): Likewise.
27953 (ipa_get_param_move_cost): Likewise.
27954 (ipa_set_param_used): Likewise.
27955 (ipa_get_controlled_uses): Likewise.
27956 (ipa_set_controlled_uses): Likewise.
27957 (ipa_is_param_used): Likewise.
27958 (ipa_node_params_t): Move into garbage collector. New methods insert
27959 and remove.
27960 (ipa_node_params_sum): Annotate wth GTY(()).
27961 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
27962 garbage collected.
27963 (ipa_load_from_parm_agg): Adjust declaration.
27964 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
27965 * ipa-profile.c (ipa_profile): Likewise.
27966 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
27967 (ipa_populate_param_decls): Make descriptors parameter garbage
27968 collected.
27969 (ipa_dump_param): Adjust to descriptors being a pointer.
27970 (ipa_alloc_node_params): Likewise.
27971 (ipa_initialize_node_params): Likewise.
27972 (load_from_param_1): Make descriptors parameter garbage collected.
27973 (load_from_unmodified_param): Likewise.
27974 (load_from_param): Likewise.
27975 (ipa_load_from_parm_agg): Likewise.
27976 (ipa_node_params::~ipa_node_params): Removed.
27977 (ipa_free_all_node_params): Remove call to delete operator.
27978 (ipa_node_params_t::insert): New.
27979 (ipa_node_params_t::remove): Likewise.
27980 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
27981 copy known_csts and known_contexts vectors.
27982 (ipa_read_node_info): Adjust to descriptors being a pointer.
27983 (ipcp_modif_dom_walker): Make m_descriptors field garbage
27984 collected.
27985 (ipcp_transform_function): Make descriptors variable garbage
27986 collected.
27987
27988 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
27989
27990 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
27991 * config/i386/avx512dqintrin.h: Ditto.
27992 * config/i386/avx512fintrin.h: Ditto.
27993 * config/i386/i386.c: Handle new builtins.
27994 * config/i386/i386-builtin.def: Add new builtins.
27995 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
27996 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
27997
27998 2017-01-23 Jakub Jelinek <jakub@redhat.com>
27999 Martin Liska <mliska@suse.cz>
28000
28001 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
28002 * asan.c (asan_expand_poison_ifn): Support stores and use
28003 appropriate ASAN report function.
28004 * internal-fn.c (expand_ASAN_POISON_USE): New function.
28005 * internal-fn.def (ASAN_POISON_USE): Declare.
28006 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
28007 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
28008 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
28009 ASAN_POISON calls w/o LHS.
28010 * tree-ssa.c (execute_update_addresses_taken): Create clobber
28011 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
28012 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
28013 * gimplify.c (asan_poison_variables): Add attribute
28014 use_after_scope_memory to variables that really needs to live
28015 in memory.
28016 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
28017 having the attribute.
28018
28019 2017-01-23 Martin Liska <mliska@suse.cz>
28020
28021 * asan.c (create_asan_shadow_var): New function.
28022 (asan_expand_poison_ifn): Likewise.
28023 * asan.h (asan_expand_poison_ifn): New declaration.
28024 * internal-fn.c (expand_ASAN_POISON): Likewise.
28025 * internal-fn.def (ASAN_POISON): New builtin.
28026 * sanopt.c (pass_sanopt::execute): Expand
28027 asan_expand_poison_ifn.
28028 * tree-inline.c (copy_decl_for_dup_finish): Make function
28029 external.
28030 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
28031 * tree-ssa.c (is_asan_mark_p): New function.
28032 (execute_update_addresses_taken): Rewrite local variables
28033 (identified just by use-after-scope as addressable) into SSA.
28034
28035 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
28036
28037 * doc/install.texi (Specific): opensource.apple.com uses https
28038 now. Remove trailing slash.
28039
28040 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
28041
28042 * README.Portability: Remove note on an Irix compatibility issue.
28043
28044 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
28045
28046 * gcov.c (INCLUDE_ALGORITHM): Define.
28047 (INCLUDE_VECTOR): Define.
28048 No longer include <vector> and <algorithm> directly.
28049
28050 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
28051
28052 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
28053 to https.
28054 * doc/invoke.texi (Code Gen Options): Ditto.
28055
28056 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
28057
28058 PR lto/78407
28059 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
28060
28061 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
28062
28063 rtl-optimization/79125
28064 * cprop.c (local_cprop_pass): Handle cases where we make an
28065 unconditional trap.
28066
28067 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
28068
28069 PR target/61729
28070 PR target/77850
28071 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
28072 read from, for big endian.
28073
28074 2017-01-20 Jiong Wang <jiong.wang@arm.com>
28075
28076 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
28077 register pauth builtins for LP64 only.
28078
28079 2017-01-20 Marek Polacek <polacek@redhat.com>
28080
28081 PR c/79152
28082 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
28083 non-case labels.
28084
28085 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
28086
28087 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
28088 of safelen status.
28089 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
28090 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
28091 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
28092
28093 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28094
28095 PR target/71270
28096 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
28097 in big-endian mode when they are not a single duplicated value.
28098
28099 2017-01-20 Richard Biener <rguenther@suse.de>
28100
28101 * BASE-VER: Bump to 7.0.1.
28102
28103 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
28104
28105 * omp-low.c (omplow_simd_context): New struct. Use it...
28106 (lower_rec_simd_input_clauses): ...here and...
28107 (lower_rec_input_clauses): ...here to hold common data. Adjust all
28108 references to idx, lane, max_vf, is_simt.
28109
28110 2017-01-20 Graham Markall <graham.markall@embecosm.com>
28111
28112 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
28113 mcpu=nps400.
28114
28115 2017-01-20 Martin Jambor <mjambor@suse.cz>
28116
28117 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
28118 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
28119 gt-hsa-common.h.
28120 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
28121 (GTFILES): Rename hsa.c to hsa-common.c.
28122 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
28123 * hsa-dump.c: Likewise.
28124 * hsa-gen.c: Likewise.
28125 * hsa-regalloc.c: Likewise.
28126 * ipa-hsa.c: Likewise.
28127 * omp-expand.c: Likewise.
28128 * omp-low.c: Likewise.
28129 * toplev.c: Likewise.
28130
28131 2017-01-20 Marek Polacek <polacek@redhat.com>
28132
28133 PR c/64279
28134 * doc/invoke.texi: Document -Wduplicated-branches.
28135 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
28136 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
28137 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
28138 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
28139 return 0 only when not OEP_LEXICOGRAPHIC.
28140 (fold_build_cleanup_point_expr): Use the expression
28141 location when building CLEANUP_POINT_EXPR.
28142 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
28143 * tree.c (add_expr): Handle error_mark_node.
28144
28145 2017-01-20 Martin Liska <mliska@suse.cz>
28146
28147 PR lto/69188
28148 * tree-profile.c (init_ic_make_global_vars): Do not call
28149 finalize_decl.
28150 (gimple_init_gcov_profiler): Likewise.
28151
28152 2017-01-20 Martin Liska <mliska@suse.cz>
28153
28154 PR ipa/71190
28155 * cgraph.h (maybe_create_reference): Remove argument and
28156 update comment.
28157 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
28158 argument.
28159 * ipa-cp.c (create_specialized_node): Likewise.
28160 * symtab.c (symtab_node::maybe_create_reference): Handle
28161 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
28162
28163 2017-01-20 Martin Liska <mliska@suse.cz>
28164
28165 * read-rtl-function.c (function_reader::create_function): Use
28166 build_decl instread of build_decl_stat.
28167
28168 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
28169
28170 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
28171 * config/i386/avx512dqintrin.h: Ditto.
28172 * config/i386/avx512fintrin.h: Ditto.
28173 * config/i386/i386-builtin-types.def: Add new types.
28174 * config/i386/i386.c: Handle new types.
28175 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
28176 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
28177 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
28178 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
28179 (__builtin_ia32_kshiftridi): New.
28180 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
28181
28182 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
28183
28184 PR target/78875
28185 PR target/79140
28186 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
28187 define to rs6000_init_stack_protect_guard.
28188 (rs6000_init_stack_protect_guard): New function.
28189
28190 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
28191 Yunqiang Su <yunqiang.su@imgtec.com>
28192
28193 * config.gcc (supported_defaults): Add madd4.
28194 (with_madd4): Add validation.
28195 (all_defaults): Add madd4.
28196 * config/mips/mips.opt (mmadd4): New option.
28197 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
28198 mmadd4.
28199 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
28200 __mips_no_madd4.
28201 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
28202 (ISA_HAS_FUSED_MADD4): Likewise.
28203 * doc/invoke.texi (-mmadd4): Document the new option.
28204 * doc/install.texi (--with-madd4): Document the new option.
28205
28206 2017-01-19 Jiong Wang <jiong.wang@arm.com>
28207
28208 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
28209 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
28210 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
28211 (aarch64_init_pauth_hint_builtins): New.
28212 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
28213 (aarch64_expand_builtin): Expand new builtins.
28214
28215 2017-01-19 Jiong Wang <jiong.wang@arm.com>
28216
28217 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
28218 * combine-stack-adj.c (no_unhandled_cfa): Handle
28219 REG_CFA_TOGGLE_RA_MANGLE.
28220 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
28221 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
28222 info for return address signing.
28223 (aarch64_expand_epilogue): Likewise.
28224
28225 2017-01-19 Jiong Wang <jiong.wang@arm.com>
28226
28227 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
28228 * config/aarch64/aarch64-protos.h
28229 (aarch64_return_address_signing_enabled): New declaration.
28230 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
28231 New function.
28232 (aarch64_expand_prologue): Sign return address before it's pushed onto
28233 stack.
28234 (aarch64_expand_epilogue): Authenticate return address fetched from
28235 stack.
28236 (aarch64_override_options): Sanity check for ILP32 and ISA level.
28237 (aarch64_attributes): New function attributes for "sign-return-address".
28238 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
28239 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
28240 ("*do_return"): Generate combined instructions according to key index.
28241 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
28242 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
28243 iterators.
28244 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
28245 * config/aarch64/aarch64.opt (msign-return-address=): New.
28246 * doc/extend.texi (AArch64 Function Attributes): Documents
28247 "sign-return-address=".
28248 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
28249
28250 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
28251
28252 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
28253 overall option summary.
28254
28255 2017-01-19 Jiong Wang <jiong.wang@arm.com>
28256
28257 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
28258 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
28259 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
28260 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
28261
28262 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
28263
28264 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
28265 -mpower9-minmax by default for -mcpu=power9.
28266 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
28267 128-bit floating point.
28268
28269 2017-01-20 Alan Modra <amodra@gmail.com>
28270
28271 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
28272 optimizing for size.
28273
28274 2017-01-20 Alan Modra <amodra@gmail.com>
28275
28276 PR target/79144
28277 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
28278 for strcmp and strncmp from corresponding builtin decl.
28279
28280 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
28281
28282 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
28283 instead of i386/rtems-64.h.
28284 * config/i386/rtems-64.h: Remove.
28285
28286 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
28287
28288 PR target/78478
28289 Revert:
28290 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
28291
28292 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
28293
28294 2017-01-19 Tamar Christina <tamar.christina@arm.com>
28295
28296 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
28297 Change int to HOST_WIDE_INT.
28298 * config/aarch64/aarch64-protos.h
28299 (aarch64_simd_gen_const_vector_dup): Likewise.
28300 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
28301
28302 2017-01-19 David Malcolm <dmalcolm@redhat.com>
28303
28304 * langhooks-def.h (lhd_type_for_size): New decl.
28305 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
28306 * langhooks.c (lhd_type_for_size): New function, taken from
28307 lto_type_for_size.
28308
28309 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
28310
28311 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
28312 define_bypass for CR latency.
28313 (power9-cracked-alu): Update bypass latency and remove power9-branch.
28314 (power9-alu2): Add define_bypass for CR latency.
28315 (power9-cmp): New.
28316 (power9-mul): Update insn latency.
28317 (power9-mul-compare): Update insn latency, bypass latency and remove
28318 power9-branch.
28319
28320 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28321
28322 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
28323 Delete.
28324 * config/aarch64/aarch64.md
28325 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
28326 aarch64_nopcrelative_literal_loads.
28327 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
28328
28329 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
28330
28331 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
28332 TARGET_LOONGSON_3A.
28333 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
28334
28335 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
28336
28337 PR target/78176
28338 * config.gcc (supported_defaults): Add lxc1-sxc1.
28339 (with_lxc1_sxc1): Add validation.
28340 (all_defaults): Add lxc1-sxc1.
28341 * config/mips/mips.opt (mlxc1-sxc1): New option.
28342 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
28343 mlxc1-sxc1.
28344 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
28345 __mips_no_lxc1_sxc1.
28346 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
28347 * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
28348 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
28349
28350 2017-01-19 Richard Biener <rguenther@suse.de>
28351
28352 PR tree-optimization/72488
28353 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
28354 sure to restore SSA info.
28355 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
28356
28357 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
28358
28359 PR rtl-optimization/79121
28360 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
28361 of the inner type when shifting an extended value.
28362
28363 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
28364
28365 PR lto/78407
28366 * symtab.c (symtab_node::equal_address_to): Fix comparing of
28367 interposable aliases.
28368
28369 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
28370
28371 PR target/78516
28372 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
28373 Use the evmergelohi instruction.
28374 (mov_si<mode>_e500_subreg4_2_le): Likewise.
28375 (mov_sitf_e500_subreg8_2_be): Likewise.
28376 (mov_sitf_e500_subreg12_2_le): Likewise.
28377 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
28378 (mov_si<mode>_e500_subreg4_2_be): Likewise.
28379 (mov_sitf_e500_subreg8_2_le): Likewise.
28380 (mov_sitf_e500_subreg12_2_be): Likewise.
28381
28382 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28383
28384 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
28385 attribute from vecsimple to vecperm.
28386 (altivec_vbpermq2): Likewise.
28387
28388 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28389
28390 PR target/79040
28391 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
28392
28393 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
28394 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
28395 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
28396 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
28397 case where N arg is SIZE_MAX.
28398 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
28399 (cmpstrsi): Add pattern.
28400
28401 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
28402
28403 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
28404 __builtin_vec_revb builtins.
28405 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
28406 built-in functions to support generation of the ISA 3.0 XXBR<x>
28407 vector byte reverse instructions.
28408 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
28409 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
28410 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
28411 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
28412 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
28413 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
28414 (P9V_BUILTIN_VEC_REVB): Likewise.
28415 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
28416 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
28417 (p9_xxbrq_v16qi): Likewise.
28418 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
28419 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
28420 (p9_xxbrh_v8hi): Likewise.
28421 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
28422 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
28423 vec_revb built-in functions.
28424
28425 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
28426
28427 PR rtl-optimization/78952
28428 * config/i386/i386.md (any_extract): New code iterator.
28429 (*insvqi_2): Use any_extract for source operand.
28430 (*insvqi_3): Use any_shiftrt for source operand.
28431
28432 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
28433
28434 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
28435 New function.
28436 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
28437
28438 2017-01-18 Matthias Klose <doko@ubuntu.com>
28439
28440 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
28441
28442 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28443
28444 * config/rs6000/altivec.h (vec_bperm): Change #define.
28445 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
28446 (altivec_vbpermq2): New define_insn.
28447 (altivec_vbpermd): Likewise.
28448 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
28449 function interface.
28450 (VBPERMD): Likewise.
28451 (VBPERM): New polymorphic function interface.
28452 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
28453 Add entries for P9V_BUILTIN_VEC_VBPERM.
28454 * doc/extend.texi: Add interfaces for vec_bperm.
28455
28456 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28457
28458 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
28459 first letter of error messages.
28460 (s390_resolve_overloaded_builtin): Likewise.
28461 * config/s390/s390.c (s390_expand_builtin): Likewise.
28462 (s390_invalid_arg_for_unprototyped_fn): Likewise.
28463 (s390_valid_target_attribute_inner_p): Likewise.
28464 * config/s390/s390.md ("tabort"): Likewise.
28465
28466 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
28467
28468 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
28469 (ISA_AVOID_DIV_HILO): New macro.
28470 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
28471 (ISA_HAS_DDIV): Likewise.
28472
28473 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
28474
28475 * doc/invoke.texi (fabi-version): Correct number of occurrences.
28476
28477 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
28478
28479 * doc/invoke.texi (fabi-version): Spelling fix.
28480
28481 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
28482
28483 PR c++/70182
28484 * doc/invoke.texi (fabi-version): Mention mangling fix for
28485 operator names.
28486
28487 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
28488
28489 PR c++/77489
28490 * doc/invoke.texi (fabi-version): Document discriminator mangling.
28491
28492 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
28493
28494 PR target/78875
28495 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
28496 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
28497 the new options.
28498 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
28499 flexible settings.
28500 (stack_protect_test): Ditto.
28501 * config/rs6000/rs6000.opt (mstack-protector-guard=,
28502 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
28503 options.
28504 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
28505 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
28506 -mstack-protector-guard-offset=.
28507 (RS/6000 and PowerPC Options): Ditto.
28508
28509 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
28510
28511 * config/i386/i386.h (MASK_CLASS_P): New define.
28512 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
28513 there are no registers from different register sets also when
28514 mask registers are used. Update function comment.
28515 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
28516 to (*k/*r) and (*k/*km) alternatives.
28517
28518 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
28519
28520 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
28521 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
28522 (EH_RETURN_HANDLER_RTX): New define.
28523 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
28524 Force frame pointer in EH return functions.
28525 (aarch64_expand_epilogue): Add barrier for eh_return.
28526 (aarch64_final_eh_return_addr): Remove.
28527 (aarch64_eh_return_handler_rtx): New function.
28528 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
28529 Remove.
28530 (aarch64_eh_return_handler_rtx): New prototype.
28531
28532 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28533
28534 * config/rs6000/altivec.h (vec_rlmi): New #define.
28535 (vec_vrlnm): Likewise.
28536 (vec_rlnm): Likewise.
28537 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
28538 (UNSPEC_VRLNM): Likewise.
28539 (VIlong): New mode iterator.
28540 (altivec_vrl<VI_char>mi): New define_insn.
28541 (altivec_vrl<VI_char>nm): Likewise.
28542 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
28543 function entry.
28544 (VRLDNM): Likewise.
28545 (RLNM): New polymorphic function entry.
28546 (VRLWMI): New monomorphic function entry.
28547 (VRLDMI): Likewise.
28548 (RLMI): New polymorphic function entry.
28549 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
28550 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
28551 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
28552 vec_vrlnm.
28553
28554 2017-01-17 Jakub Jelinek <jakub@redhat.com>
28555
28556 PR debug/78839
28557 * dwarf2out.c (field_byte_offset): Restore the
28558 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
28559 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
28560 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
28561 of build2 + fold.
28562
28563 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
28564
28565 PR ada/67205
28566 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
28567
28568 2017-01-17 Jakub Jelinek <jakub@redhat.com>
28569
28570 PR debug/71669
28571 * dwarf2out.c (add_data_member_location_attribute): For constant
28572 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
28573 instead of DW_AT_data_member_location, DW_AT_bit_offset and
28574 DW_AT_byte_size attributes.
28575
28576 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
28577
28578 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
28579 after forcing to constant memory when the code model is medium.
28580
28581 2017-01-17 Julia Koval <julia.koval@intel.com>
28582
28583 PR target/76731
28584 * config/i386/avx512fintrin.h
28585 (_mm512_i32gather_ps): Change __addr type to void const*.
28586 (_mm512_mask_i32gather_ps): Ditto.
28587 (_mm512_i32gather_pd): Ditto.
28588 (_mm512_mask_i32gather_pd): Ditto.
28589 (_mm512_i64gather_ps): Ditto.
28590 (_mm512_mask_i64gather_ps): Ditto.
28591 (_mm512_i64gather_pd): Ditto.
28592 (_mm512_mask_i64gather_pd): Ditto.
28593 (_mm512_i32gather_epi32): Ditto.
28594 (_mm512_mask_i32gather_epi32): Ditto.
28595 (_mm512_i32gather_epi64): Ditto.
28596 (_mm512_mask_i32gather_epi64): Ditto.
28597 (_mm512_i64gather_epi32): Ditto.
28598 (_mm512_mask_i64gather_epi32): Ditto.
28599 (_mm512_i64gather_epi64): Ditto.
28600 (_mm512_mask_i64gather_epi64): Ditto.
28601 (_mm512_i32scatter_ps): Change __addr type to void*.
28602 (_mm512_mask_i32scatter_ps): Ditto.
28603 (_mm512_i32scatter_pd): Ditto.
28604 (_mm512_mask_i32scatter_pd): Ditto.
28605 (_mm512_i64scatter_ps): Ditto.
28606 (_mm512_mask_i64scatter_ps): Ditto.
28607 (_mm512_i64scatter_pd): Ditto.
28608 (_mm512_mask_i64scatter_pd): Ditto.
28609 (_mm512_i32scatter_epi32): Ditto.
28610 (_mm512_mask_i32scatter_epi32): Ditto.
28611 (_mm512_i32scatter_epi64): Ditto.
28612 (_mm512_mask_i32scatter_epi64): Ditto.
28613 (_mm512_i64scatter_epi32): Ditto.
28614 (_mm512_mask_i64scatter_epi32): Ditto.
28615 (_mm512_i64scatter_epi64): Ditto.
28616 (_mm512_mask_i64scatter_epi64): Ditto.
28617 * config/i386/avx512pfintrin.h
28618 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
28619 (_mm512_mask_prefetch_i32gather_ps): Ditto.
28620 (_mm512_mask_prefetch_i64gather_pd): Ditto.
28621 (_mm512_mask_prefetch_i64gather_ps): Ditto.
28622 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
28623 (_mm512_prefetch_i32scatter_ps): Ditto.
28624 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
28625 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
28626 (_mm512_prefetch_i64scatter_pd): Ditto.
28627 (_mm512_prefetch_i64scatter_ps): Ditto.
28628 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
28629 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
28630 * config/i386/avx512vlintrin.h
28631 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
28632 (_mm_mmask_i32gather_ps): Ditto.
28633 (_mm256_mmask_i32gather_pd): Ditto.
28634 (_mm_mmask_i32gather_pd): Ditto.
28635 (_mm256_mmask_i64gather_ps): Ditto.
28636 (_mm_mmask_i64gather_ps): Ditto.
28637 (_mm256_mmask_i64gather_pd): Ditto.
28638 (_mm_mmask_i64gather_pd): Ditto.
28639 (_mm256_mmask_i32gather_epi32): Ditto.
28640 (_mm_mmask_i32gather_epi32): Ditto.
28641 (_mm256_mmask_i32gather_epi64): Ditto.
28642 (_mm_mmask_i32gather_epi64): Ditto.
28643 (_mm256_mmask_i64gather_epi32): Ditto.
28644 (_mm_mmask_i64gather_epi32): Ditto.
28645 (_mm256_mmask_i64gather_epi64): Ditto.
28646 (_mm_mmask_i64gather_epi64): Ditto.
28647 (_mm256_i32scatter_ps): Change __addr type to void*.
28648 (_mm256_mask_i32scatter_ps): Ditto.
28649 (_mm_i32scatter_ps): Ditto.
28650 (_mm_mask_i32scatter_ps): Ditto.
28651 (_mm256_i32scatter_pd): Ditto.
28652 (_mm256_mask_i32scatter_pd): Ditto.
28653 (_mm_i32scatter_pd): Ditto.
28654 (_mm_mask_i32scatter_pd): Ditto.
28655 (_mm256_i64scatter_ps): Ditto.
28656 (_mm256_mask_i64scatter_ps): Ditto.
28657 (_mm_i64scatter_ps): Ditto.
28658 (_mm_mask_i64scatter_ps): Ditto.
28659 (_mm256_i64scatter_pd): Ditto.
28660 (_mm256_mask_i64scatter_pd): Ditto.
28661 (_mm_i64scatter_pd): Ditto.
28662 (_mm_mask_i64scatter_pd): Ditto.
28663 (_mm256_i32scatter_epi32): Ditto.
28664 (_mm256_mask_i32scatter_epi32): Ditto.
28665 (_mm_i32scatter_epi32): Ditto.
28666 (_mm_mask_i32scatter_epi32): Ditto.
28667 (_mm256_i32scatter_epi64): Ditto.
28668 (_mm256_mask_i32scatter_epi64): Ditto.
28669 (_mm_i32scatter_epi64): Ditto.
28670 (_mm_mask_i32scatter_epi64): Ditto.
28671 (_mm256_i64scatter_epi32): Ditto.
28672 (_mm256_mask_i64scatter_epi32): Ditto.
28673 (_mm_i64scatter_epi32): Ditto.
28674 (_mm_mask_i64scatter_epi32): Ditto.
28675 (_mm256_i64scatter_epi64): Ditto.
28676 (_mm256_mask_i64scatter_epi64): Ditto.
28677 (_mm_i64scatter_epi64): Ditto.
28678 (_mm_mask_i64scatter_epi64): Ditto.
28679 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
28680 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
28681 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
28682 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
28683 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
28684 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
28685 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
28686 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
28687 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
28688 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
28689 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
28690 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
28691 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
28692 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
28693 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
28694 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
28695 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
28696 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
28697 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
28698 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
28699 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
28700 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
28701 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
28702 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
28703 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
28704 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
28705 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
28706 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
28707 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
28708 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
28709 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
28710 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
28711 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
28712 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
28713 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
28714 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
28715 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
28716 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
28717 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
28718 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
28719 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
28720 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
28721 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
28722 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
28723 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
28724 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
28725 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
28726 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
28727 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
28728 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
28729 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
28730 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
28731 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
28732 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
28733 definitions accordingly.
28734
28735 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
28736 Kuan-Lin Chen <kuanlinchentw@gmail.com>
28737
28738 PR target/79079
28739 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
28740 gen_lowpart.
28741
28742 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
28743
28744 PR target/79058
28745 * ira-conflicts.c (ira_build_conflicts): Update total conflict
28746 hard regs for inner regno.
28747
28748 2017-01-17 Martin Liska <mliska@suse.cz>
28749
28750 PR ipa/71207
28751 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
28752 assumption and add comment.
28753
28754 2017-01-17 Nathan Sidwell <nathan@acm.org>
28755
28756 * ipa-visibility.c (localize_node): New function, broken out of ...
28757 (function_and_variable_visibility): ... here. Call it.
28758
28759 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
28760
28761 PR middle-end/77445
28762 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
28763 correctly set frequency of oudgoing edge.
28764 (duplicate_thread_path): Fix profile updating.
28765
28766 2017-01-17 Jakub Jelinek <jakub@redhat.com>
28767
28768 PR other/79046
28769 * configure.ac: Add GCC_BASE_VER.
28770 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
28771 version from BASE-VER file.
28772 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
28773 (gcc.o): Depend on $(BASEVER).
28774 * common.opt (dumpfullversion): New option.
28775 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
28776 * doc/invoke.texi: Document -dumpfullversion.
28777 * doc/install.texi: Document --with-gcc-major-version-only.
28778 * configure: Regenerated.
28779
28780 2017-01-17 Richard Biener <rguenther@suse.de>
28781
28782 PR tree-optimization/71433
28783 * tree-vrp.c (register_new_assert_for): Merge same asserts
28784 on all incoming edges.
28785 (process_assert_insertions_for): Handle insertions at the
28786 beginning of BBs.
28787
28788 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
28789
28790 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
28791 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
28792
28793 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
28794
28795 PR target/78633
28796 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
28797 RTL sharing.
28798
28799 2017-01-17 Alan Modra <amodra@gmail.com>
28800
28801 PR target/79066
28802 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
28803 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
28804 symbolic stack limit when pic.
28805
28806 2017-01-16 Martin Sebor <msebor@redhat.com>
28807
28808 PR tree-optimization/78608
28809 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
28810
28811 2017-01-16 Jeff Law <law@redhat.com>
28812
28813 Revert:
28814 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
28815 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
28816 for several include directories that may be relative to sysroot.
28817 * config/i386/x-mingw32 (gplus_includedir): Define.
28818 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
28819 (native_system_includedir): Likewise.
28820 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
28821 override if TARGET_SYSTEM_ROOT is defined.
28822 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
28823
28824 PR tree-optimization/79090
28825 PR tree-optimization/33562
28826 PR tree-optimization/61912
28827 PR tree-optimization/77485
28828 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
28829 and computed trims into the dump file.
28830
28831 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
28832
28833 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
28834
28835 2017-01-16 Jakub Jelinek <jakub@redhat.com>
28836
28837 PR c/79089
28838 * gimplify.c (gimplify_init_constructor): If want_value and
28839 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
28840 fix.
28841
28842 PR target/79080
28843 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
28844 sequence. Formatting fixes.
28845 (doloop_optimize): Formatting fixes.
28846
28847 PR driver/49726
28848 * gcc.c (debug_level_greater_than_spec_func): New function.
28849 (static_spec_functions): Add debug-level-gt spec function.
28850 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
28851 !g0.
28852 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
28853 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
28854 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
28855 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
28856 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
28857 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
28858
28859 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
28860
28861 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
28862 QImode fixups to general and mask registers only.
28863
28864 2017-01-16 Carl Love <cel@us.ibm.com>
28865
28866 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
28867 for built-in functions
28868 vector signed char vec_nabs (vector signed char)
28869 vector signed short vec_nabs (vector signed short)
28870 vector signed int vec_nabs (vector signed int)
28871 vector signed long long vec_nabs (vector signed long long)
28872 vector float vec_nabs (vector float)
28873 vector double vec_nabs (vector double)
28874 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
28875 and NABS overload.
28876 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
28877 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
28878 * doc/extend.texi: Update the documentation file for the new built-in
28879 functions.
28880
28881 2017-01-16 Martin Sebor <msebor@redhat.com>
28882
28883 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
28884 message.
28885
28886 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28887
28888 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
28889 UNSPEC_VSX__XXSPLTD to require special splat handling.
28890
28891 2017-01-16 David Malcolm <dmalcolm@redhat.com>
28892
28893 PR bootstrap/78616
28894 * system.h: Poison strndup.
28895
28896 2017-01-16 Alan Modra <amodra@gmail.com>
28897
28898 PR target/79098
28899 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
28900 use a switch.
28901
28902 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
28903
28904 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
28905
28906 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
28907
28908 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
28909 call recog here. Assert that INSN_CODE (insn) is non-negative.
28910
28911 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
28912
28913 PR target/72749
28914 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
28915 fallthrough.
28916 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
28917 in the currently scheduled RTL fragment.
28918
28919 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
28920
28921 PR rtl-optimization/78751
28922 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
28923 give up.
28924
28925 2017-01-14 Jeff Law <law@redhat.com>
28926
28927 PR tree-optimization/79090
28928 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
28929 variable length stores.
28930 (compute_trims): Delete dead assignment to *trim_tail.
28931 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
28932 zero length.
28933
28934 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
28935
28936 PR rtl-optimization/78626
28937 PR rtl-optimization/78727
28938 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
28939 of a block, and split such blocks after everything else is finished.
28940
28941 2017-01-14 Alan Modra <amodra@gmail.com>
28942
28943 PR target/72749
28944 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
28945 target legitimate_combined_insn.
28946 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
28947 (rs6000_legitimate_combined_insn): New function.
28948 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
28949 all uses.
28950 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
28951 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
28952 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
28953
28954 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
28955
28956 * doc/frontends.texi (G++ and GCC): Remove references to Java.
28957
28958 2017-01-13 Jeff Law <law@redhat.com>
28959
28960 PR tree-optimization/33562
28961 PR tree-optimization/61912
28962 PR tree-optimization/77485
28963 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
28964 a statement.
28965 (delete_dead_assignment): Likewise.
28966 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
28967 statement to delete_dead_call and delete_dead_assignment.
28968
28969 2017-01-13 David Malcolm <dmalcolm@redhat.com>
28970
28971 PR c/78304
28972 * substring-locations.c (format_warning_va): Strengthen case 1 so
28973 that both endpoints of the substring must be within the format
28974 range for just the substring to be printed.
28975
28976 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
28977
28978 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
28979 * config/i386/i386.c (ix86_target_string): Add missing options
28980 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
28981 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
28982 flags_other and ix86_target_other to flags2_other. Display unknown
28983 isa2 options.
28984 (ix86_valid_target_attribute_inner_p): Add missing options and
28985 reorder options by implied ISAs, as in ix86_target_string.
28986
28987 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
28988
28989 * hash-table.h (hash_table::too_empty_p): New function.
28990 (hash_table::expand): Use it.
28991 (hash_table::traverse): Likewise.
28992 (hash_table::empty_slot): Use sizeof (value_type) instead of
28993 sizeof (PTR) to convert bytes to elements. Shrink the table
28994 if the current size is excessive for the current number of
28995 elements.
28996
28997 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
28998
28999 * ira-costs.c (record_reg_classes): Break from the inner loop
29000 early once alt_fail is known to be true. Update outer loop
29001 handling accordingly.
29002
29003 2017-01-13 Jeff Law <law@redhat.com>
29004
29005 * tree-ssa-dse.c (decrement_count): New function.
29006 (increment_start_addr, maybe_trim_memstar_call): Likewise.
29007 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
29008 when we know the partially dead statement is a mem* function.
29009
29010 PR tree-optimization/61912
29011 PR tree-optimization/77485
29012 * tree-ssa-dse.c: Include expr.h.
29013 (maybe_trim_constructor_store): New function.
29014 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
29015
29016 PR tree-optimization/33562
29017 PR tree-optimization/61912
29018 PR tree-optimization/77485
29019 * doc/invoke.texi: Document new dse-max-object-size param.
29020 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
29021 * tree-ssa-dse.c: Include params.h.
29022 (dse_store_status): New enum.
29023 (initialize_ao_ref_for_dse): New, partially extracted from
29024 dse_optimize_stmt.
29025 (valid_ao_ref_for_dse, normalize_ref): New.
29026 (setup_live_bytes_from_ref, compute_trims): Likewise.
29027 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
29028 (maybe_trim_partially_dead_store): Likewise.
29029 (maybe_trim_complex_store): Likewise.
29030 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
29031 Track what bytes live from the original store. Return tri-state
29032 for dead, partially dead or live.
29033 (dse_dom_walker): Add constructor, destructor and new private members.
29034 (delete_dead_call, delete_dead_assignment): New extracted from
29035 dse_optimize_stmt.
29036 (dse_optimize_stmt): Make a member of dse_dom_walker.
29037 Use initialize_ao_ref_for_dse.
29038
29039 PR tree-optimization/33562
29040 PR tree-optimization/61912
29041 PR tree-optimization/77485
29042 * sbitmap.h (bitmap_count_bits): Prototype.
29043 (bitmap_clear_range, bitmap_set_range): Likewise.
29044 * sbitmap.c (bitmap_clear_range): New function.
29045 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
29046
29047 2017-01-13 Martin Liska <mliska@suse.cz>
29048
29049 PR ipa/79043
29050 * function.c (set_cfun): Add new argument force.
29051 * function.h (set_cfun): Likewise.
29052 * ipa-inline-transform.c (inline_call): Use the function when
29053 strict alising from is dropped for function we inline to.
29054
29055 2017-01-13 Richard Biener <rguenther@suse.de>
29056
29057 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
29058 for dumping GIMPLE INTEGER_CSTs.
29059
29060 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29061
29062 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
29063 to 201112L since C++17.
29064
29065 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
29066
29067 PR sanitizer/78887
29068 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
29069 if -fsanitize=kernel-address is present.
29070
29071 2017-01-13 Richard Biener <rguenther@suse.de>
29072
29073 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
29074 as _Literal ( type ) number in case usual suffixes do not
29075 preserve all information.
29076
29077 2017-01-13 Richard Biener <rguenther@suse.de>
29078
29079 PR tree-optimization/77283
29080 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
29081 and ssa-iterators.h.
29082 (is_feasible_trace): Implement a cost model based on joiner
29083 PHI node uses.
29084
29085 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
29086
29087 PR target/79004
29088 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
29089 char or short to __float128/_Float128 directly.
29090
29091 2017-01-12 Martin Sebor <msebor@redhat.com>
29092
29093 to -Wformat-overflow.
29094 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
29095 (min_bytes_remaining): Same.
29096 (get_string_length): Same.
29097 (format_string): Same.
29098 (format_directive): Same.
29099 (add_bytes): Same.
29100 (pass_sprintf_length::handle_gimple_call): Same.
29101
29102 2017-01-12 Jakub Jelinek <jakub@redhat.com>
29103
29104 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
29105 info.nowrite calls with no lhs that can't throw. Return bool
29106 whether gsi_remove has been called or not.
29107 (pass_sprintf_length::handle_gimple_call): Return bool whether
29108 try_substitute_return_value called gsi_remove. Formatting fix.
29109 (pass_sprintf_length::execute): Don't use gsi_remove if
29110 handle_gimple_call returned true.
29111
29112 PR bootstrap/79069
29113 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
29114 be removed due to side-effects, don't remove following barrier nor
29115 turn the successor edge into fallthru edge.
29116
29117 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29118
29119 PR target/79044
29120 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
29121 element-reversing loads and stores as not swappable.
29122
29123 2017-01-12 Nathan Sidwell <nathan@acm.org>
29124 Nicolai Stange <nicstange@gmail.com>
29125
29126 * combine.c (try_combine): Don't ignore result of overlap checking
29127 loop. Combine overlap & asm check into single loop.
29128
29129 2017-01-12 Richard Biener <rguenther@suse.de>
29130
29131 * tree-pretty-print.c (dump_generic_node): Provide -gimple
29132 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
29133
29134 2017-01-12 Richard Biener <rguenther@suse.de>
29135
29136 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
29137 and TS_TARGET_OPTION directly derive from TS_BASE.
29138 * tree-core.h (tree_optimization_option): Derive from tree_base.
29139 (tree_target_option): Likewise.
29140
29141 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
29142
29143 * config/i386/i386.c (memory_address_length): Increase len
29144 only when rip_relative_addr_p returns false.
29145
29146 2017-01-11 Julia Koval <julia.koval@intel.com>
29147
29148 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
29149 (OPTION_MASK_ISA_SGX_SET): New.
29150 (ix86_handle_option): Handle OPT_msgx.
29151 * config.gcc: Added sgxintrin.h.
29152 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
29153 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
29154 * config/i386/i386.c (ix86_target_string): Add -msgx.
29155 (PTA_SGX): New.
29156 (ix86_option_override_internal): Handle new options.
29157 (ix86_valid_target_attribute_inner_p): Add sgx.
29158 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
29159 * config/i386/i386.opt: Add msgx.
29160 * config/i386/sgxintrin.h: New file.
29161 * config/i386/x86intrin.h: Add sgxintrin.h.
29162
29163 2017-01-11 Jakub Jelinek <jakub@redhat.com>
29164
29165 PR c++/71537
29166 * fold-const.c (maybe_nonzero_address): Return 1 for function
29167 local objects.
29168 (tree_single_nonzero_warnv_p): Don't handle function local objects
29169 here.
29170
29171 PR c++/72813
29172 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
29173 of c-header.
29174
29175 2017-01-11 David Malcolm <dmalcolm@redhat.com>
29176
29177 PR driver/78877
29178 * opts.c: Include "spellcheck.h"
29179 (struct string_fragment): New struct.
29180 (struct edit_distance_traits<const string_fragment &>): New
29181 struct.
29182 (get_closest_sanitizer_option): New function.
29183 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
29184
29185 2017-01-11 Jakub Jelinek <jakub@redhat.com>
29186
29187 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
29188 by 12.
29189 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
29190 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
29191 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
29192 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
29193 for initial die_offset if dwarf_split_debug_info.
29194 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
29195 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
29196 fields.
29197 (output_skeleton_debug_sections): Formatting fix. Use
29198 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
29199 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
29200
29201 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
29202
29203 * config/arm/cortex-a53.md: Add bypasses for
29204 cortex_a53_r2f_cvt.
29205 (cortex_a53_r2f): Only use for transfers.
29206 (cortex_a53_f2r): Likewise.
29207 (cortex_a53_r2f_cvt): Add reservation for conversions.
29208 (cortex_a53_f2r_cvt): Likewise.
29209
29210 2017-01-11 Tamar Christina <tamar.christina@arm.com>
29211
29212 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
29213 to all inlined functions, change static to extern.
29214
29215 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
29216
29217 PR target/78253
29218 * config/arm/arm.c (legitimize_pic_address): Handle reference to
29219 weak symbol.
29220 (arm_assemble_integer): Likewise.
29221
29222 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
29223
29224 * config.gcc: Use new awk script to check CPU, FPU and architecture
29225 parameters for --with-... options.
29226 * config/arm/parsecpu.awk: New file
29227 * config/arm/arm-cpus.in: New file.
29228 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
29229 files.
29230 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
29231 files.
29232 * config/arm/t-arm: Update dependency rules.
29233 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
29234 of processing .def files.
29235 * config/arm/genopt.sh: Deleted.
29236 * config/arm/gentune.sh: Deleted.
29237 * config/arm/arm-cores.def: Deleted.
29238 * config/arm/arm-arches.def: Deleted.
29239 * config/arm/arm-fpus.def: Deleted.
29240 * config/arm/arm-tune.md: Regenerated.
29241 * config/arm/arm-tables.opt: Regenerated.
29242 * config/arm/arm-cpu.h: New generated file.
29243 * config/arm/arm-cpu-data.h: New generated file.
29244 * config/arm/arm-cpu-cdata.h: New generated file.
29245
29246 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
29247
29248 PR lto/79042
29249 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
29250 bit.
29251 (input_varpool_node): Unpack dynamically_initialized bit.
29252
29253 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
29254
29255 PR rtl-optimization/79032
29256 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
29257 the alignment of the adjusted memory reference against that of MODE,
29258 instead of the alignment of the original memory reference.
29259
29260 2017-01-11 Martin Jambor <mjambor@suse.cz>
29261
29262 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
29263 test.
29264 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
29265 decorated functions.
29266
29267 2017-01-11 Richard Biener <rguenther@suse.de>
29268
29269 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
29270 set range/nonnull info for PHI results. Do not set it on
29271 stmts marked for removal.
29272
29273 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
29274
29275 * expr.c (store_field): In the bitfield case, fetch the return value
29276 from the registers before applying a single big-endian adjustment.
29277 Always do a final load for a BLKmode value not larger than a word.
29278
29279 2017-01-10 David Malcolm <dmalcolm@redhat.com>
29280
29281 PR c++/77949
29282 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
29283 that we correctly handle column numbers greater than
29284 LINE_MAP_MAX_COLUMN_NUMBER.
29285
29286 2017-01-10 Martin Sebor <msebor@redhat.com>
29287
29288 PR middle-end/78245
29289 * gimple-ssa-sprintf.c (get_destination_size): Call
29290 {init,fini}object_sizes.
29291 * tree-object-size.c (addr_object_size): Adjust.
29292 (pass_through_call): Adjust.
29293 (pass_object_sizes::execute): Adjust.
29294 * tree-object-size.h (fini_object_sizes): Declare.
29295
29296 2017-01-10 Martin Sebor <msebor@redhat.com>
29297
29298 PR tree-optimization/78775
29299 * builtins.c (get_size_range): Move...
29300 * calls.c: ...to here.
29301 (alloc_max_size): Accept zero argument.
29302 (operand_signed_p): Remove.
29303 (maybe_warn_alloc_args_overflow): Call get_size_range.
29304 * calls.h (get_size_range): Declare.
29305
29306 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
29307
29308 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
29309 from TI's devices.csv file as of September 2016.
29310 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
29311
29312 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
29313
29314 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
29315 * doc/invoke.texi: Likewise.
29316 * doc/md.texi: Likewise.
29317 * doc/objc.texi: Likewise.
29318
29319 2017-01-10 Joshua Conner <joshconner@google.com>
29320
29321 * config/arm/fuchsia-elf.h: New file.
29322 * config/fuchsia.h: New file.
29323 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
29324 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
29325 targets.
29326 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
29327
29328 2016-01-10 Richard Biener <rguenther@suse.de>
29329
29330 PR tree-optimization/79034
29331 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
29332 Propagate out degenerate PHIs in the joiner.
29333
29334 2017-01-10 Martin Liska <mliska@suse.cz>
29335
29336 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
29337 (sort_congruence_classes_by_decl_uid): Likewise.
29338 (sort_congruence_class_groups_by_decl_uid): Likewise.
29339 (sem_item_optimizer::merge_classes): Sort class, groups in these
29340 classes and members in the groups by DECL_UID of declarations.
29341 This would make merge operations stable.
29342
29343 2017-01-10 Martin Liska <mliska@suse.cz>
29344
29345 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
29346 usage of m_classes_vec.
29347 (sem_item_optimizer::~sem_item_optimizer): Likewise.
29348 (sem_item_optimizer::get_group_by_hash): Likewise.
29349 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
29350 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
29351 (sem_item_optimizer::verify_classes): Likewise.
29352 (sem_item_optimizer::process_cong_reduction): Likewise.
29353 (sem_item_optimizer::dump_cong_classes): Likewise.
29354 (sem_item_optimizer::merge_classes): Likewise.
29355 * ipa-icf.h (congruence_class_hash): Rename from
29356 congruence_class_group_hash. Remove declaration of m_classes_vec.
29357
29358 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
29359
29360 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
29361 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
29362 * config.gcc: Add avx512vpopcntdqintrin.h.
29363 * config/i386/avx512vpopcntdqintrin.h: New.
29364 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
29365 * config/i386/i386-builtin-types.def: Add new types.
29366 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
29367 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
29368 __builtin_ia32_vpopcountq_v8di_mask): New.
29369 * config/i386/i386-c.c (ix86_target_macros_internal): Define
29370 __AVX512VPOPCNTDQ__.
29371 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
29372 (PTA_AVX512VPOPCNTDQ): Define.
29373 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
29374 TARGET_AVX512VPOPCNTDQ_P): Define.
29375 * config/i386/i386.opt: Add mavx512vpopcntdq.
29376 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
29377 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
29378
29379 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
29380
29381 PR middle-end/77484
29382 * predict.def (PRED_CALL): Set to 67.
29383
29384 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
29385
29386 * expr.c (store_field): In the bitfield case, if the value comes from
29387 a function call and is of an aggregate type returned in registers, do
29388 not modify the field mode; extract the value in all cases if the mode
29389 is BLKmode and the size is not larger than a word.
29390
29391 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
29392
29393 PR target/71017
29394 * config/i386/cpuid.h: Fix undefined behavior.
29395
29396 2017-01-04 Jeff Law <law@redhat.com>
29397
29398 PR tree-optimization/79007
29399 PR tree-optimization/67955
29400 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
29401 conservative for pt.null when flag_non_call_exceptions is on.
29402
29403 2017-01-09 Jakub Jelinek <jakub@redhat.com>
29404
29405 PR translation/79019
29406 PR translation/79020
29407 * params.def (PARAM_INLINE_MIN_SPEEDUP,
29408 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
29409 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
29410 in descriptions.
29411 * config/avr/avr.opt (maccumulate-args): Likewise.
29412 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
29413 * common.opt (freport-bug): Likewise.
29414 * cif-code.def (CIF_FINAL_ERROR): Likewise.
29415 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
29416 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
29417 translatable string.
29418 * config/i386/i386.c (function_value_32): Likewise.
29419 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
29420 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
29421 Likewise.
29422 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
29423 * common/config/msp430/msp430-common.c (msp430_handle_option):
29424 Likewise.
29425 * symtab.c (symtab_node::verify_base): Likewise.
29426 * opts.c (set_debug_level): Likewise.
29427 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
29428 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
29429 missing whitespace to translatable strings.
29430 * config/avr/avr.md (bswapsi2): Fix typo in comment.
29431 * config/sh/superh.h: Likewise.
29432 * config/i386/xopintrin.h: Likewise.
29433 * config/i386/znver1.md: Likewise.
29434 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
29435 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
29436 * double-int.h (struct double_int): Likewise.
29437 * double-int.c (div_and_round_double): Likewise.
29438 * wide-int.cc: Likewise.
29439 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
29440 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
29441 * cfgcleanup.c (crossjumps_occured): Renamed to ...
29442 (crossjumps_occurred): ... this.
29443 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
29444 Adjust all uses.
29445
29446 PR tree-optimization/78899
29447 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
29448 returning bool return struct loop *, NULL for failure and the new
29449 loop on success.
29450 (versionable_outer_loop_p): Don't version outer loop if it has
29451 dont_vectorized bit set.
29452 (tree_if_conversion): When versioning outer loop, ensure
29453 tree_if_conversion is performed also on the inner loop of the
29454 non-vectorizable outer loop copy.
29455 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
29456 LOOP_VECTORIZED in inner loop of the scalar outer loop and
29457 prevent vectorization of it.
29458 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
29459 the outer loop vectorization of the non-scalar version is attempted
29460 before vectorization of the inner loop in scalar version. If
29461 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
29462 vectorization of its inner loop.
29463 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
29464 has 2 inner loops, rename also on edges from bb whose single pred
29465 is outer_loop->header. Fix typo in function comment.
29466
29467 2017-01-09 Martin Sebor <msebor@redhat.com>
29468
29469 PR bootstrap/79033
29470 * asan.c (asan_emit_stack_protection): Increase local buffer size
29471 to avoid snprintf truncation warning.
29472
29473 2017-01-09 Andrew Pinski <apinski@cavium.com>
29474
29475 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
29476 to reference thunderx2t99 for the tuning structure
29477 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
29478 Rename to ...
29479 (thunderx2t99_extra_costs): This.
29480 * config/aarch64/aarch64-tune.md: Regenerate.
29481 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
29482 (vulcan_addrcost_table): This.
29483 (vulcan_regmove_cost): Rename to ...
29484 (thunderx2t99_regmove_cost): This.
29485 (vulcan_vector_cost): Rename to ...
29486 (thunderx2t99_vector_cost): this.
29487 (vulcan_branch_cost): Rename to ...
29488 (thunderx2t99_branch_cost): This.
29489 (vulcan_tunings): Rename to ...
29490 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
29491 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
29492
29493 2017-01-09 Martin Jambor <mjambor@suse.cz>
29494
29495 PR ipa/78365
29496 PR ipa/78599
29497 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
29498 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
29499 (propagate_vr_accross_jump_function): Use the above function for all
29500 value range computations for pass-through jump functions and type
29501 converasion from explicit value range values.
29502 (ipcp_propagate_stage): Do not attempt to deduce types of formal
29503 parameters from TYPE_ARG_TYPES.
29504 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
29505 (ipa_write_node_info): Stream type of the actual argument.
29506 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
29507
29508 2017-01-09 Martin Liska <mliska@suse.cz>
29509
29510 PR pch/78970
29511 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
29512 (lookup_compiler): Do not show error message with have_E.
29513
29514 2017-01-09 Jakub Jelinek <jakub@redhat.com>
29515
29516 PR tree-optimization/78938
29517 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
29518 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
29519 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
29520 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
29521 fixes.
29522
29523 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29524
29525 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
29526 is const0_rtx.
29527
29528 2017-01-09 Richard Biener <rguenther@suse.de>
29529
29530 PR tree-optimization/78997
29531 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
29532 name condition properly.
29533
29534 2017-01-09 Richard Biener <rguenther@suse.de>
29535
29536 PR debug/79000
29537 * dwarf2out.c (is_cxx): New overload with context.
29538 (is_naming_typedef_decl): Use it.
29539
29540 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
29541
29542 * invoke.texi (Option Summary): Correct spacing in option lists
29543 and add line breaks to fix over-long lines.
29544
29545 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
29546
29547 PR middle-end/17660
29548
29549 * extend.texi (Common Variable Attributes): Add xref to GCC
29550 Internals manual to explain mode attribute keywords.
29551
29552 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
29553
29554 PR other/16519
29555 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
29556 and Preprocessor Options.
29557 (Options for Linking): Document -pthread here....
29558 (RS/6000 and PowerPC Options): ...not here.
29559 (Solaris 2 Options): ...or here.
29560 * doc/cppopts.texi: Document -pthread.
29561
29562 2017-01-08 Martin Sebor <msebor@redhat.com>
29563
29564 PR middle-end/77708
29565 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
29566 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
29567 New member functions.
29568 (format_directive): Used them.
29569 (add_bytes): Same.
29570 (pass_sprintf_length::handle_gimple_call): Same.
29571 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
29572 to avoid truncation for any argument.
29573 (extract_affine_mul): Same.
29574 * tree.c (get_file_function_name): Same.
29575
29576 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
29577
29578 PR middle-end/77484
29579 * predict.def (PRED_INDIR_CALL): Set to 86.
29580
29581 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
29582
29583 PR preprocessor/54124
29584 * doc/cppopts.texi: Reformat -d subtable to list the full name
29585 of the options. Add cross-reference to the docs for the general
29586 compiler -d options.
29587 * doc/invoke.texi (Developer Options): Add cross-reference to the
29588 preprocessor-specific -d option documentation.
29589
29590 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
29591
29592 PR preprocessor/13498
29593 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
29594 redudant material, and reflect new command-line options.
29595 (System Headers): Likewise.
29596
29597 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
29598
29599 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
29600 -isystem, and -idirafter. Copy-edit.
29601 * doc/cppopts.texi: Copy-edit. Remove contradiction about
29602 default for -ftrack-macro-expansion. Delete obsolete and
29603 badly-formatted implementation details about -fdebug-cpp output.
29604 * doc/cppwarnopts.texi: Copy-edit.
29605
29606 2017-01-07 David Malcolm <dmalcolm@redhat.com>
29607
29608 PR c++/72803
29609 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
29610 that the transition from a max line width >= 1<<10 to narrower
29611 lines works correctly.
29612
29613 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
29614
29615 * doc/options.texi (PerFunction): New.
29616 * opt-functions.awk (switch_flags): Map both Optimization and
29617 PerFunction to CL_OPTIMIZATION.
29618 * opth-gen.awk: Test for PerFunction flag along with
29619 Optimization.
29620 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
29621 it only when the latter is present. Skip those that don't in
29622 the hash function generator.
29623 * common.opt (fvar-tracking): Mark as PerFunction instead of
29624 Optimization.
29625 (fvar-tracking-assignments): Likewise.
29626 (fvar-tracking-assignments-toggle): Likewise.
29627 (fvar-tracking-uninit): Likewise.
29628
29629 2017-01-07 Jakub Jelinek <jakub@redhat.com>
29630
29631 PR translation/79018
29632 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
29633 the and store.
29634
29635 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
29636
29637 PR target/57583
29638 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
29639 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
29640 TARGET_LONG_JUMP_TABLE_OFFSETS.
29641 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
29642 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
29643 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
29644 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
29645 * config/m68k/m68k.md (tablejump expander): Likewise.
29646 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
29647 TARGET_LONG_JUMP_TABLE_OFFSETS.
29648 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
29649 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
29650
29651 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
29652 David Holsgrove <david.holsgrove@xilinx.com>
29653
29654 * common/config/microblaze/microblaze-common.c
29655 (TARGET_EXCEPT_UNWIND_INFO): Remove.
29656 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
29657 New prototype.
29658 * config/microblaze/microblaze.c (microblaze_must_save_register)
29659 (microblaze_expand_epilogue, microblaze_return_addr): Handle
29660 calls_eh_return.
29661 (microblaze_eh_return): New function.
29662 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
29663 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
29664 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
29665 * config/microblaze/microblaze.md (eh_return): New pattern.
29666
29667 2017-01-06 Jakub Jelinek <jakub@redhat.com>
29668
29669 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
29670 GCC_DIAGNOSTIC_STRINGIFY): Define.
29671
29672 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
29673
29674 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
29675
29676 * config/arm/arm.md (<mcrr>): New.
29677 (<mrrc>): New.
29678 * config/arm/arm.c (arm_arch5te): New.
29679 (arm_option_override): Set arm_arch5te.
29680 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
29681 and mrrc2.
29682 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
29683 (arm_mcrr_qualifiers): ... this. New.
29684 (MRRC_QUALIFIERS): Define to...
29685 (arm_mrrc_qualifiers): ... this. New.
29686 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
29687 __arm_mrrc2): New.
29688 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
29689 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
29690 (MRRCI, mrrc, MRRC): New.
29691 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
29692 VUNSPEC_MRRC2): New.
29693
29694 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
29695
29696 * config/arm/arm.md (<mcr>): New.
29697 (<mrc>): New.
29698 * config/arm/arm.c (arm_coproc_builtin_available): Add
29699 support for mcr, mrc, mcr2 and mrc2.
29700 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
29701 (arm_mcr_qualifiers): ... this. New.
29702 (MRC_QUALIFIERS): Define to ...
29703 (arm_mrc_qualifiers): ... this. New.
29704 (MCR_QUALIFIERS): Define to ...
29705 (arm_mcr_qualifiers): ... this. New.
29706 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
29707 __arm_mrc2): New.
29708 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
29709 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
29710 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
29711 VUNSPEC_MRC2): New.
29712
29713 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
29714
29715 * config/arm/arm.md (*ldc): New.
29716 (*stc): New.
29717 (<ldc>): New.
29718 (<stc>): New.
29719 * config/arm/arm.c (arm_coproc_builtin_available): Add
29720 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
29721 (arm_coproc_ldc_stc_legitimate_address): New.
29722 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
29723 'qualifier_const_pointer'.
29724 (LDC_QUALIFIERS): Define to...
29725 (arm_ldc_qualifiers): ... this. New.
29726 (STC_QUALIFIERS): Define to...
29727 (arm_stc_qualifiers): ... this. New.
29728 * config/arm/arm-protos.h
29729 (arm_coproc_ldc_stc_legitimate_address): New.
29730 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
29731 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
29732 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
29733 stc2, stcl, stc2l): New.
29734 * config/arm/constraints.md (Uz): New.
29735 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
29736 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
29737 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
29738 VUNSPEC_STC2L): New.
29739
29740 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
29741
29742 * config/arm/arm.md (<cdp>): New.
29743 * config/arm/arm.c (neon_const_bounds): Rename this ...
29744 (arm_const_bounds): ... this.
29745 (arm_coproc_builtin_available): New.
29746 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
29747 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
29748 (CDP_QUALIFIERS): Define to...
29749 (arm_cdp_qualifiers): ... this. New.
29750 (void_UP): Define.
29751 (arm_expand_builtin_args): Add case for 6 arguments.
29752 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
29753 (arm_const_bounds): ... this.
29754 (arm_coproc_builtin_available): New.
29755 * config/arm/arm_acle.h (__arm_cdp): New.
29756 (__arm_cdp2): New.
29757 * config/arm/arm_acle_builtins.def (cdp): New.
29758 (cdp2): New.
29759 * config/arm/iterators.md (CDPI,CDP,cdp): New.
29760 * config/arm/neon.md: Rename all 'neon_const_bounds' to
29761 'arm_const_bounds'.
29762 * config/arm/types.md (coproc): New.
29763 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
29764 * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
29765 * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
29766 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
29767
29768 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
29769
29770 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
29771 (UBINOP_QUALIFIERS): New.
29772 (si_UP): Define.
29773 (acle_builtin_data): New. Change comment.
29774 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
29775 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
29776 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
29777 arm_acle_builtins.def.
29778 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
29779 (arm_init_acle_builtins): New.
29780 (CRC32_BUILTIN): Remove.
29781 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
29782 crc32cb, crc32ch and crc32cw.
29783 (arm_init_crc32_builtins): Remove.
29784 (arm_init_builtins): Use arm_init_acle_builtins rather
29785 than arm_init_crc32_builtins.
29786 (arm_expand_acle_builtin): New.
29787 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
29788 * config/arm/arm_acle_builtins.def: New.
29789
29790 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
29791
29792 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
29793 (arm_builtin_datum): ... this.
29794 (arm_init_neon_builtin): Rename to ...
29795 (arm_init_builtin): ... this. Add a new parameters PREFIX
29796 and USE_SIG_IN_NAME.
29797 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
29798 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
29799 'arm_builtin_datum'.
29800 (arm_init_vfp_builtins): Likewise.
29801 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
29802 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
29803 (arm_expand_neon_args): Rename to ...
29804 (arm_expand_builtin_args): ... this. Rename builtin_arg
29805 enum values and differentiate between ARG_BUILTIN_MEMORY
29806 and ARG_BUILTIN_NEON_MEMORY.
29807 (arm_expand_neon_builtin_1): Rename to ...
29808 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
29809 values, arm_expand_builtin_args and add bool parameter NEON.
29810 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
29811 (arm_expand_vfp_builtin): Likewise.
29812 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
29813
29814 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
29815
29816 PR middle-end/77484
29817 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
29818 * predict.c (tree_estimate_probability_bb): Reverse direction of
29819 polymorphic call predictor.
29820
29821 2017-01-06 David Malcolm <dmalcolm@redhat.com>
29822
29823 * passes.c (execute_one_pass): Split out pass-skipping logic into...
29824 (determine_pass_name_match): ...this new function and...
29825 (should_skip_pass_p): ...this new function.
29826
29827 2017-01-06 Nathan Sidwell <nathan@acm.org>
29828
29829 * ipa-visibility.c (function_and_variable_visibility): Reformat
29830 comments and long lines. Remove extrneous if.
29831 * symtab.c (symtab_node::make_decl_local): Fix code format.
29832 (symtab_node::set_section_for_node): Fix comment typo.
29833
29834 2017-01-06 Martin Liska <mliska@suse.cz>
29835
29836 PR bootstrap/79003
29837 * lra-constraints.c: Rename invariant to lra_invariant.
29838 * predict.c (set_even_probabilities): Initialize e to NULL.
29839
29840 2017-01-05 Martin Sebor <msebor@redhat.com>
29841
29842 PR tree-optimization/78910
29843 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
29844 (format_integer): Correct off-by-one error in the handling
29845 of precision with negative numbers in signed conversions..
29846
29847 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
29848
29849 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
29850
29851 2017-01-05 Jakub Jelinek <jakub@redhat.com>
29852
29853 PR tree-optimization/71016
29854 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
29855 factor_out_conditional_conversion. Formatting fix.
29856 (factor_out_conditional_conversion): Add cond_stmt argument.
29857 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
29858 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
29859 Formatting fix.
29860
29861 2017-01-05 David Malcolm <dmalcolm@redhat.com>
29862
29863 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
29864 read-rtl-function.o, and selftest-rtl.o.
29865 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
29866 (selftest::aarch64_test_loading_full_dump): New function.
29867 (selftest::aarch64_run_selftests): New function.
29868 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
29869 selftest::aarch64_run_selftests.
29870 * config/i386/i386.c
29871 (selftest::ix86_test_loading_dump_fragment_1): New function.
29872 (selftest::ix86_test_loading_call_insn): New function.
29873 (selftest::ix86_test_loading_full_dump): New function.
29874 (selftest::ix86_test_loading_unspec): New function.
29875 (selftest::ix86_run_selftests): Call the new functions.
29876 * emit-rtl.c (maybe_set_max_label_num): New function.
29877 * emit-rtl.h (maybe_set_max_label_num): New decl.
29878 * function.c (instantiate_decls): Guard call to
29879 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
29880 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
29881 "static".
29882 * gensupport.c (gen_reader::gen_reader): Pass "false"
29883 for new "compact" param of rtx_reader.
29884 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
29885 rather than an empty string for NULL strings.
29886 * read-md.c: Potentially include config.h rather than bconfig.h.
29887 Wrap include of errors.h with #ifdef GENERATOR_FILE.
29888 (have_error): New global, copied from errors.c.
29889 (md_reader::read_name): Rename to...
29890 (md_reader::read_name_1): ...this, adding "out_loc" param,
29891 and converting "missing name or number" to returning false, rather
29892 than failing.
29893 (md_reader::read_name): Reimplement in terms of read_name_1.
29894 (md_reader::read_name_or_nil): New function.
29895 (md_reader::read_string): Handle "(nil)" by returning NULL.
29896 (md_reader::md_reader): Add new param "compact".
29897 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
29898 (md_reader::read_file): New method.
29899 * read-md.h (md_reader::md_reader): Add new param "compact".
29900 (md_reader::read_file): New method.
29901 (md_reader::is_compact): New accessor.
29902 (md_reader::read_name): Convert return type from void to file_location.
29903 (md_reader::read_name_or_nil): New decl.
29904 (md_reader::read_name_1): New decl.
29905 (md_reader::m_compact): New field.
29906 (noop_reader::noop_reader): Pass "false" for new "compact" param
29907 of rtx_reader.
29908 (rtx_reader::rtx_reader): Add new "compact" param.
29909 (rtx_reader::read_rtx_operand): Make virtual and convert return
29910 type from void to rtx.
29911 (rtx_reader::read_until): New decl.
29912 (rtx_reader::handle_any_trailing_information): New virtual function.
29913 (rtx_reader::postprocess): New virtual function.
29914 (rtx_reader::finalize_string): New virtual function.
29915 (rtx_reader::m_in_call_function_usage): New field.
29916 (rtx_reader::m_reuse_rtx_by_id): New field.
29917 * read-rtl-function.c: New file.
29918 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
29919 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
29920 (selftest::verify_three_block_rtl_cfg): New decl.
29921 * read-rtl-function.h: New file.
29922 * read-rtl.c: Potentially include config.h rather than bconfig.h.
29923 For host, include function.h, memmodel.h, and emit-rtl.h.
29924 (one_time_initialization): New function.
29925 (struct compact_insn_name): New struct.
29926 (compact_insn_names): New array.
29927 (find_code): Handle insn codes in compact dumps.
29928 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
29929 (bind_subst_iter_and_attr): Likewise.
29930 (add_condition_to_string): Likewise.
29931 (add_condition_to_rtx): Likewise.
29932 (apply_attribute_uses): Likewise.
29933 (add_current_iterators): Likewise.
29934 (apply_iterators): Likewise.
29935 (initialize_iterators): Guard usage of apply_subst_iterator with
29936 #ifdef GENERATOR_FILE.
29937 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
29938 (md_reader::read_mapping): Likewise.
29939 (add_define_attr_for_define_subst): Likewise.
29940 (add_define_subst_attr): Likewise.
29941 (read_subst_mapping): Likewise.
29942 (check_code_iterator): Likewise.
29943 (rtx_reader::read_rtx): Likewise. Move one-time initialization
29944 logic to...
29945 (one_time_initialization): New function.
29946 (rtx_reader::read_until): New method.
29947 (read_flags): New function.
29948 (parse_reg_note_name): New function.
29949 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
29950 Handle reuse_rtx ids.
29951 Wrap iterator lookup within #ifdef GENERATOR_FILE.
29952 Add parsing support for RTL dumps, mirroring the special-cases in
29953 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
29954 values, and calling handle_any_trailing_information.
29955 (rtx_reader::read_rtx_operand): Convert return type from void
29956 to rtx, returning return_rtx. Handle case 'e'. Call
29957 finalize_string on XSTR and XTMPL fields.
29958 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
29959 "(nil)" values were omitted. Call the postprocess vfunc on the
29960 return_rtx.
29961 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
29962 class ctor. Initialize m_in_call_function_usage. Call
29963 one_time_initialization.
29964 * rtl-tests.c (selftest::test_uncond_jump): Call
29965 set_new_first_and_last_insn.
29966 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
29967 * selftest-rtl.c: New file.
29968 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
29969 (selftest::get_insn_by_uid): New decl.
29970 * selftest-run-tests.c (selftest::run_tests): Call
29971 read_rtl_function_c_tests.
29972 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
29973 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
29974 dumps.
29975
29976 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
29977
29978 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
29979 operands in a special way. Assert that pos+len <= mode precision.
29980
29981 2017-01-05 Jakub Jelinek <jakub@redhat.com>
29982
29983 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
29984 3 argument Alias with unlimited for the negative form.
29985 (fno-vect-cost-model): Removed.
29986
29987 2017-01-05 Martin Liska <mliska@suse.cz>
29988
29989 * hsa-gen.c (gen_hsa_divmod): New function.
29990 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
29991
29992 2017-01-05 Martin Liska <mliska@suse.cz>
29993
29994 PR pch/78970
29995 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
29996 header.
29997
29998 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29999
30000 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
30001 small constant length operands.
30002
30003 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30004
30005 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
30006 between loop iterations.
30007
30008 2017-01-05 Martin Liska <mliska@suse.cz>
30009
30010 PR sanitizer/78815
30011 * gimplify.c (gimplify_decl_expr): Compare to
30012 asan_poisoned_variables instread of checking flags.
30013 (gimplify_target_expr): Likewise.
30014 (gimplify_expr): Likewise.
30015 (gimplify_function_tree): Conditionally initialize
30016 asan_poisoned_variables.
30017
30018 2017-01-04 Jeff Law <law@redhat.com>
30019
30020 PR tree-optimizatin/78812
30021 * rtl.h (contains_mem_rtx_p): Prototype.
30022 * ifcvt.c (containts_mem_rtx_p): Move from here to...
30023 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
30024 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
30025 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
30026 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
30027
30028 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
30029
30030 * input.c (assert_char_at_range): Default-initialize actual_range.
30031
30032 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
30033
30034 * df-scan.c (df_ref_create_structure): Make regno unsigned,
30035 to match the caller.
30036
30037 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
30038
30039 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
30040 insns after final jump in test to emit dummy move.
30041
30042 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
30043
30044 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
30045 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
30046
30047 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
30048
30049 * multiple_target.c (create_dispatcher_calls): Init e_next.
30050 * tree-ssa-loop-split.c (split_loop): Init border.
30051 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
30052 scalar_type.
30053
30054 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
30055
30056 PR target/71977
30057 PR target/70568
30058 PR target/78823
30059 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
30060 (altivec_register_operand): Do not return true if the operand
30061 contains a SUBREG mixing SImode and SFmode.
30062 (vsx_register_operand): Likewise.
30063 (vsx_reg_sfsubreg_ok): New predicate.
30064 (vfloat_operand): Do not return true if the operand contains a
30065 SUBREG mixing SImode and SFmode.
30066 (vint_operand): Likewise.
30067 (vlogical_operand): Likewise.
30068 (gpc_reg_operand): Likewise.
30069 (int_reg_operand): Likewise.
30070 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
30071 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
30072 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
30073 SImode and SFmode.
30074 (rs6000_emit_move_si_sf_subreg): New helper function.
30075 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
30076 fixup SUBREGs involving SImode and SFmode.
30077 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
30078 numbers for the new peephole2 optimization.
30079 (peephole2 for SFmode unions): New peephole2 to optimize cases in
30080 the GLIBC math library that do AND/IOR/XOR operations on single
30081 precision floating point.
30082 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
30083 target macros to say whether we need to avoid SUBREGs mixing
30084 SImode and SFmode.
30085 (TARGET_ALLOW_SF_SUBREG): Likewise.
30086 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
30087 (UNSPEC_SI_FROM_SF): Likewise.
30088 (iorxor): Change spacing.
30089 (and_ior_xor): New iterator for AND, IOR, and XOR.
30090 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
30091 (movdi_from_sf_zero_ext): Likewise.
30092 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
30093 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
30094 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
30095 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
30096 (fms<mode>4): Likewise.
30097 (fnma<mode>4): Likewise.
30098 (fnms<mode>4): Likewise.
30099 (nfma<mode>4): Likewise.
30100 (nfms<mode>4): Likewise.
30101
30102 2017-01-04 Marek Polacek <polacek@redhat.com>
30103
30104 PR c++/64767
30105 * doc/invoke.texi: Document -Wpointer-compare.
30106
30107 2017-01-04 Jakub Jelinek <jakub@redhat.com>
30108
30109 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
30110 RejectNegative.
30111
30112 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
30113 descriptions for -gdwarf-5 and emit them as uleb128 instead of
30114 2-byte data.
30115
30116 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
30117
30118 PR target/78056
30119 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
30120 documentation of the powerpc_popcntb_ok attribute.
30121 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
30122 code to issue warning messages if a requested CPU configuration is
30123 not supported by the binary (assembler and loader) toolchain.
30124 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
30125 made to define a built-in function that has been disabled.
30126 (paired_init_builtins): Add assertion to prevent ICE if attempt is
30127 made to define a built-in function that has been disabled.
30128 (altivec_init_builtins): Add comment explaining why definition
30129 of the DST built-in functions is not preceded by an assertion
30130 check. Add assertions to prevent ICE if attempts are made to
30131 define an altivec predicate or an abs* built-in function that has
30132 been disabled.
30133 (htm_init_builtins): Add comment explaining why definition of the
30134 htm built-in functions is not preceded by an assertion check.
30135
30136 2017-01-04 Jeff Law <law@redhat.com>
30137
30138 PR tree-optimizatin/67955
30139 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
30140 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
30141 the points-to solution does not include pt_null. Use DECL_PT_UID
30142 unconditionally.
30143
30144 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
30145
30146 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
30147 Use gen_int_mode instead of gen_lopwart for const_int operands.
30148
30149 2017-01-04 Jakub Jelinek <jakub@redhat.com>
30150
30151 PR tree-optimization/71563
30152 * match.pd: Simplify X << Y into X if Y is known to be 0 or
30153 out of range value - has low bits known to be zero.
30154
30155 2017-01-04 Alan Modra <amodra@gmail.com>
30156
30157 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
30158 * configure: Regenerate.
30159 * config.in: Regenerate.
30160
30161 2017-01-04 Jakub Jelinek <jakub@redhat.com>
30162
30163 PR bootstrap/77569
30164 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
30165 a substring of the message, but strcmp with the whole message. Ifdef
30166 ENABLE_NLS, translate the message first using dgettext.
30167
30168 2017-01-03 Jeff Law <law@redhat.com>
30169
30170 PR tree-optimizatin/78856
30171 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
30172 (mark_threaded_blocks): Remove code to truncate thread paths that
30173 cross multiple loop headers. Instead invalidate the cached loop
30174 iteration information and handle case of a thread path walking
30175 into an irreducible region.
30176
30177 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
30178
30179 PR target/78900
30180 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
30181 assertions. Add support for doing the signbit if the IEEE 128-bit
30182 floating point value is in a GPR.
30183 * config/rs6000/rs6000.md (Fsignbit): Delete.
30184 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
30185 Update the length attribute if the value is in a GPR.
30186 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
30187 the sign or zero extension instruction, since the value is always 0/1.
30188 (signbit<mode>2_dm2): Delete using <Fsignbit>.
30189
30190 PR target/78953
30191 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
30192 extracting SImode to a GPR register so that we can generate a
30193 store, limit the vector to be in a traditional Altivec register
30194 for the vextuwrx instruction.
30195
30196 2017-01-03 Ian Lance Taylor <iant@google.com>
30197
30198 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
30199
30200 2017-01-03 Martin Sebor <msebor@redhat.com>
30201
30202 PR tree-optimization/78696
30203 * gimple-ssa-sprintf.c (format_floating): Correct handling of
30204 precision. Use MPFR for %f for greater fidelity. Correct handling
30205 of %g.
30206 (pass_sprintf_length::compute_format_length): Set width and precision
30207 specified by asrerisk to void_node for vararg functions.
30208 (try_substitute_return_value): Adjust dump output.
30209
30210 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
30211
30212 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
30213
30214 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
30215
30216 * doc/invoke.texi (SPARC options): Document -mlra as the default.
30217 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
30218 -mlra/-mno-lra was passed to the compiler.
30219
30220 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
30221
30222 PR rtl-optimization/65618
30223 * emit-rtl.c (try_split): Move initialization of "before" and
30224 "after" to just before the call to emit_insn_after_setloc.
30225
30226 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
30227
30228 * doc/md.texi (Standard Names): Remove reference to Java frontend.
30229
30230 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
30231
30232 * dwarf2out.c (gen_enumeration_type_die): When
30233 -gno-strict-dwarf, add a DW_AT_encoding attribute.
30234
30235 2017-01-03 Jakub Jelinek <jakub@redhat.com>
30236
30237 PR tree-optimization/78965
30238 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
30239 Change first argument from const call_info & to call_info &. For %n
30240 set info.nowrite to false.
30241
30242 PR middle-end/78901
30243 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
30244 possibly throwing calls.
30245
30246 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
30247 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
30248 and fns handling, rather than in a separate case SSA_NAME.
30249
30250 2017-01-02 Jeff Law <law@redhat.com>
30251
30252 * config/darwin-driver.c (darwin_driver_init): Const-correctness
30253 fixes for first_period and second_period variables.
30254
30255 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
30256
30257 PR target/78967
30258 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
30259 (*insvqi_1): New insn pattern.
30260 (*insvqi_1_mem_rex64): Ditto.
30261 (*insvqi_2): Ditto.
30262 (*insvqi_3): Rename from *insvqi.
30263
30264 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
30265
30266 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
30267
30268 * doc/cfg.texi (Edges): Remove reference to Java.
30269 (Maintaining the CFG): Ditto.
30270
30271 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
30272
30273 PR middle-end/77674
30274 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
30275 transparent aliases.
30276
30277 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
30278
30279 PR middle-end/77484
30280 * predict.def (PRED_CALL): Update hitrate.
30281 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
30282 * predict.c (tree_estimate_probability_bb): Split CALL predictor
30283 into direct/indirect/polymorphic variants.
30284
30285 2017-01-01 Jakub Jelinek <jakub@redhat.com>
30286
30287 Update copyright years.
30288
30289 * gcc.c (process_command): Update copyright notice dates.
30290 * gcov-dump.c (print_version): Ditto.
30291 * gcov.c (print_version): Ditto.
30292 * gcov-tool.c (print_version): Ditto.
30293 * gengtype.c (create_file): Ditto.
30294 * doc/cpp.texi: Bump @copying's copyright year.
30295 * doc/cppinternals.texi: Ditto.
30296 * doc/gcc.texi: Ditto.
30297 * doc/gccint.texi: Ditto.
30298 * doc/gcov.texi: Ditto.
30299 * doc/install.texi: Ditto.
30300 * doc/invoke.texi: Ditto.
30301 \f
30302 Copyright (C) 2017 Free Software Foundation, Inc.
30303
30304 Copying and distribution of this file, with or without modification,
30305 are permitted in any medium without royalty provided the copyright
30306 notice and this notice are preserved.