259dc01714a825a6f132b9b16d8cafe0f9fa36c6
[gcc.git] / gcc / ChangeLog
1 2017-10-24 Wilco Dijkstra <wdijkstr@arm.com>
2
3 PR middle-end/60580
4 * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
5 Check special value of flag_omit_frame_pointer.
6 (aarch64_can_eliminate): Likewise.
7 (aarch64_override_options_after_change_1): Simplify handling of
8 -fomit-frame-pointer and -fomit-leaf-frame-pointer.
9
10 2017-10-24 Richard Biener <rguenther@suse.de>
11
12 PR tree-optimization/82697
13 * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
14 zero for conditional load and unconditional store.
15
16 2017-10-24 H.J. Lu <hongjiu.lu@intel.com>
17
18 * doc/install.texi: Document bootstrap-cet.
19
20 2017-10-24 H.J. Lu <hongjiu.lu@intel.com>
21
22 PR target/82659
23 * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
24 ENDBR instruction at function entrance if function is only
25 called directly.
26
27 2017-10-24 Jakub Jelinek <jakub@redhat.com>
28
29 PR target/82628
30 * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
31 patterns to better describe from which operation the CF is computed.
32 (addcarry<mode>_0, subborrow<mode>_0): New patterns.
33 * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
34 one LTU with [DT]Imode and another one with [SD]Imode. If arg0
35 is 0, use _0 suffixed expanders instead of emitting a comparison
36 before it.
37
38 2017-10-06 Sergey Shalnov <Sergey.Shalnov@intel.com>
39
40 * config/i386/i386.md(*movsf_internal, *movdf_internal):
41 Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
42
43 2017-10-24 Eric Botcazou <ebotcazou@adacore.com>
44
45 PR middle-end/82569
46 * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
47 * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
48 * loop-iv.c (iv_get_reaching_def): Likewise.
49 * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
50 variable is promoted and the partition contains undefined values.
51
52 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
53
54 * config/nios2/nios2.c (nios2_rtx_costs): Make costs better
55 reflect reality.
56 (nios2_address_cost): Define.
57 (nios2_legitimize_address): Recognize (exp + constant) directly.
58 (TARGET_ADDRESS_COST): Define.
59
60 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
61
62 * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
63 (nios2_symbolic_memory_operand_p): Declare.
64 (nios2_split_large_constant): Declare.
65 (nios2_split_symbolic_memory_operand): Declare.
66 * config/nios2/nios2.c: Adjust includes.
67 (nios2_symbolic_constant_allowed): New.
68 (nios2_symbolic_constant_p): New.
69 (nios2_plus_symbolic_constant_p): New.
70 (nios2_valid_addr_expr_p): Recognize addresses involving
71 symbolic constants.
72 (nios2_legitimate_address_p): Likewise, also LO_SUM.
73 (nios2_symbolic_memory_operand_p): New.
74 (nios2_large_constant_p): New.
75 (nios2_split_large_constant): New.
76 (nios2_split_plus_large_constant): New.
77 (nios2_split_symbolic_memory_operand): New.
78 (nios2_legitimize_address): Code refactoring. Handle addresses
79 involving symbolic constants.
80 (nios2_emit_move_sequence): Likewise.
81 (nios2_print_operand): Improve error output.
82 (nios2_print_operand_address): Handle LO_SUM.
83 (nios2_cdx_narrow_form_p): Likewise.
84 * config/nios2/nios2.md (movqi_internal): Add splitter for memory
85 operands involving symbolic constants.
86 (movhi_internal, movsi_internal): Likewise.
87 (zero_extendhisi2, zero_extendqi<mode>2): Likewise.
88 (extendhisi2, extendqi<mode>2): Likewise.
89
90 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
91
92 * tree-pass.h (PROP_rtl_split_insns): Define.
93 * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
94
95 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
96
97 * config/nios2/nios2.c (TARGET_LRA_P): Don't override.
98
99 2017-10-23 Jakub Jelinek <jakub@redhat.com>
100
101 PR debug/82630
102 * target.def (const_not_ok_for_debug_p): Default to
103 default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
104 * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
105 * targhooks.c (default_const_not_ok_for_debug_p): New function.
106 * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
107 which targetm.const_not_ok_for_debug_p returned true.
108 * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
109 for UNSPECs.
110 * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
111 Likewise.
112 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
113 * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
114 UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
115 if !base_term_p.
116 (ix86_const_not_ok_for_debug_p): New function.
117 (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
118 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
119
120 2017-10-23 David Malcolm <dmalcolm@redhat.com>
121
122 PR bootstrap/82610
123 * system.h: Conditionally include "unique-ptr.h" if
124 INCLUDE_UNIQUE_PTR is defined.
125 * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
126 of defining INCLUDE_UNIQUE_PTR before including "system.h".
127
128 2017-10-23 Sebastian Perta <sebastian.perta@renesas.com>
129
130 * config/rl78/rl78.md: New define_expand "subdi3".
131
132 2017-10-23 H.J. Lu <hongjiu.lu@intel.com>
133
134 PR target/82673
135 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
136 DF_REF_INSN if DF_REF_INSN_INFO is false.
137
138 2017-10-23 Jan Hubicka <hubicka@ucw.cz>
139
140 * i386.c (dimode_scalar_chain::compute_convert_gain): Use
141 xmm_move instead of sse_move.
142 (sse_store_index): New function.
143 (ix86_register_move_cost): Be more sensible about mismatch stall;
144 model AVX moves correctly; make difference between sse->integer and
145 integer->sse.
146 (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
147 moves; make difference between SSE and AVX.
148 * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
149 and zmm_move. Increase size of sse load and store tables;
150 add unaligned load and store tables; add ssemmx_to_integer.
151 * x86-tune-costs.h: Update all entries according to real
152 move latencies from Agner Fog's manual and chip documentation.
153
154 2017-10-23 Jakub Jelinek <jakub@redhat.com>
155
156 PR target/82628
157 * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
158 * config/i386/constraints.md (Wf): New constraint.
159 * config/i386/i386.md (UNSPEC_SBB): New unspec.
160 (cmp<dwi>_doubleword): Removed.
161 (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
162 (sub<mode>3_carry_ccgz): Use unspec instead of compare.
163 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
164 expand with cmp<dwi>_doubleword. For LTU and GEU use
165 sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
166
167 * common.opt (gcolumn-info): Enable by default.
168 * doc/invoke.texi (gcolumn-info): Document new default.
169
170 2017-10-23 Richard Biener <rguenther@suse.de>
171
172 PR tree-optimization/82672
173 * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
174 Fold the stmt if we propagated into it.
175
176 2017-10-23 Richard Biener <rguenther@suse.de>
177
178 * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
179 (bitmap_remove_expr_from_set): ... this. All callers call this
180 for non-constant values.
181 (bitmap_set_subtract): Rename to...
182 (bitmap_set_subtract_expressions): ... this. Adjust and
183 optimize.
184 (bitmap_set_contains_value): Remove superfluous check.
185 (bitmap_set_replace_value): Inline into single caller ...
186 (bitmap_value_replace_in_set): ... here and simplify.
187 (dependent_clean): Merge into ...
188 (clean): ... this using an overload. Adjust.
189 (prune_clobbered_mems): Adjust.
190 (compute_antic_aux): Likewise.
191 (compute_partial_antic_aux): Likewise.
192
193 2017-10-23 Richard Biener <rguenther@suse.de>
194
195 PR tree-optimization/82129
196 Revert
197 2017-08-01 Richard Biener <rguenther@suse.de>
198
199 PR tree-optimization/81181
200 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
201 (compute_antic): ... end of iteration here.
202
203 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
204
205 * target.def (starting_frame_offset): New hook.
206 * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
207 (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
208 * doc/tm.texi.in: Regenerate.
209 * hooks.h (hook_hwi_void_0): Declare.
210 * hooks.c (hook_hwi_void_0): New function.
211 * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
212 STARTING_FRAME_OFFSET.
213 * builtins.c (expand_builtin_setjmp_receiver): Likewise.
214 * reload1.c (reload): Likewise.
215 * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
216 instead of STARTING_FRAME_OFFSET.
217 * function.c (try_fit_stack_local): Likewise.
218 (assign_stack_local_1): Likewise
219 (instantiate_virtual_regs): Likewise.
220 * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
221 * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
222 * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
223 * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
224 * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
225 * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
226 * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
227 * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
228 * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
229 * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
230 * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
231 * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
232 * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
233 * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
234 * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
235 * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
236 * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
237 * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
238 * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
239 * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
240 * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
241 * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
242 * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
243 * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
244 * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
245 * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
246 * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
247 * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
248 * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
249 * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
250 * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
251 * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
252 * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
253 * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
254 * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
255 * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
256 * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
257 * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
258 * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
259 * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
260 * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
261 * config/avr/avr.c (avr_starting_frame_offset): Make static and
262 return a HOST_WIDE_INT.
263 (avr_builtin_setjmp_frame_value): Use it instead of
264 STARTING_FRAME_OFFSET.
265 (TARGET_STARTING_FRAME_OFFSET): Redefine.
266 * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
267 * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
268 New function.
269 (TARGET_STARTING_FRAME_OFFSET): Redefine.
270 * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
271 * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
272 (TARGET_CONSTANT_ALIGNMENT): Redefine.
273 * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
274 * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
275 (TARGET_STARTING_FRAME_OFFSET): Redefine.
276 * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
277 * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
278 (TARGET_STARTING_FRAME_OFFSET): Redefine.
279 * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
280 * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
281 New function.
282 (TARGET_STARTING_FRAME_OFFSET): Redefine.
283 * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
284 * config/mips/mips.c (mips_compute_frame_info): Refer to
285 TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
286 (mips_starting_frame_offset): New function.
287 (TARGET_STARTING_FRAME_OFFSET): Redefine.
288 * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
289 * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
290 * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
291 and return a HOST_WIDE_INT.
292 (TARGET_STARTING_FRAME_OFFSET): Redefine.
293 (mmix_initial_elimination_offset): Refer to
294 TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
295 * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
296 * config/pa/pa.c (pa_starting_frame_offset): New function.
297 (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
298 (pa_expand_prologue): Likewise.
299 (TARGET_STARTING_FRAME_OFFSET): Redefine.
300 * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
301 !FRAME_GROWS_DOWNWARD handling to...
302 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
303 * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
304 !FRAME_GROWS_DOWNWARD handling to...
305 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
306 * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
307 !FRAME_GROWS_DOWNWARD handling to...
308 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
309 * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
310 Redefine.
311 (rs6000_starting_frame_offset): New function.
312 * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
313 !FRAME_GROWS_DOWNWARD handling to...
314 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
315 * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
316 !FRAME_GROWS_DOWNWARD handling to...
317 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
318 * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
319 !FRAME_GROWS_DOWNWARD handling to...
320 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
321 * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
322 (rs6000_starting_frame_offset): New function.
323 * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
324 * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
325 * config/vax/vax.c (vax_starting_frame_offset): New function.
326 (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
327 (TARGET_STARTING_FRAME_OFFSET): Redefine.
328 * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
329 * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
330 (TARGET_STARTING_FRAME_OFFSET): Redefine.
331 * system.h (STARTING_FRAME_OFFSET): Poison.
332
333 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
334
335 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
336 SCALAR_TYPE_MODE instead of TYPE_MODE.
337
338 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
339 Alan Hayward <alan.hayward@arm.com>
340 David Sherwood <david.sherwood@arm.com>
341
342 * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
343
344 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
345 Alan Hayward <alan.hayward@arm.com>
346 David Sherwood <david.sherwood@arm.com>
347
348 * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
349
350 2017-10-23 Richard Biener <rguenther@suse.de>
351
352 PR tree-optimization/82129
353 * tree-ssa-pre.c (bitmap_set_and): Remove.
354 (compute_antic_aux): Compute ANTIC_OUT intersection in a way
355 canonicalizing expressions in the set to those with lowest
356 ID rather than taking that from the first edge.
357
358 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
359
360 * combine.c (rtx_equal_for_field_assignment_p): Use
361 byte_lowpart_offset.
362
363 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
364 Alan Hayward <alan.hayward@arm.com>
365 David Sherwood <david.sherwood@arm.com>
366
367 * internal-fn.c (expand_direct_optab_fn): Don't assign directly
368 to a SUBREG_PROMOTED_VAR.
369
370 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
371 Alan Hayward <alan.hayward@arm.com>
372 David Sherwood <david.sherwood@arm.com>
373
374 * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
375 (expand_debug_source_expr): Likewise.
376 * combine.c (combine_simplify_rtx): Likewise.
377 * cse.c (fold_rtx): Likewise.
378 * optabs.c (expand_float): Likewise.
379 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
380 (simplify_binary_operation_1): Likewise.
381
382 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
383 Alan Hayward <alan.hayward@arm.com>
384 David Sherwood <david.sherwood@arm.com>
385
386 * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
387 (record_promoted_value): Likewise.
388 * expr.c (expand_expr_real_2): Likewise.
389 * ree.c (update_reg_equal_equiv_notes): Likewise.
390 (combine_set_extension): Likewise.
391 * rtlanal.c (low_bitmask_len): Likewise.
392 * simplify-rtx.c (neg_const_int): Likewise.
393 (simplify_binary_operation_1): Likewise.
394
395 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
396 Alan Hayward <alan.hayward@arm.com>
397 David Sherwood <david.sherwood@arm.com>
398
399 * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
400 * regcprop.c (maybe_mode_change): Likewise.
401 * reload1.c (alter_reg): Likewise.
402
403 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
404
405 * inchash.h (inchash::hash::add_wide_int): New function.
406 * lto-streamer-out.c (hash_tree): Use it.
407
408 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
409
410 * inchash.h (inchash::hash::add_wide_int): Rename to...
411 (inchash::hash::add_hwi): ...this.
412 * ipa-devirt.c (hash_odr_vtable): Update accordingly.
413 (polymorphic_call_target_hasher::hash): Likewise.
414 * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
415 (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
416 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
417 * lto-streamer-out.c (hash_tree): Likewise.
418 * optc-save-gen.awk: Likewise.
419 * tree.c (add_expr): Likewise.
420
421 2017-10-22 Uros Bizjak <ubizjak@gmail.com>
422
423 PR target/52451
424 * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
425 for ordered inequality comparisons even with TARGET_IEEE_FP.
426
427 2017-10-22 Uros Bizjak <ubizjak@gmail.com>
428
429 PR target/82628
430 * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
431 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
432 Expand with cmp<dwi>_doubleword.
433
434 2017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
435
436 * extend.texi: Add x86 specific to 'nocf_check' attribute.
437 List CET intrinsics.
438 * invoke.texi: Add -mcet, -mibt, -mshstk options. Add x86
439 specific to -fcf-protection option.
440
441 2017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
442
443 * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
444 (OPTION_MASK_ISA_SHSTK_SET): Likewise.
445 (OPTION_MASK_ISA_IBT_UNSET): Likewise.
446 (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
447 (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
448 * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
449 (extra_objs): Add cet.o for Linux/x86 targets.
450 (tmake_file): Add i386/t-cet for Linux/x86 targets.
451 * config/i386/cet.c: New file.
452 * config/i386/cetintrin.h: Likewise.
453 * config/i386/t-cet: Likewise.
454 * config/i386/cpuid.h (bit_SHSTK): New.
455 (bit_IBT): Likewise.
456 * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
457 pass IBT and SHSTK bits.
458 * config/i386/i386-builtin-types.def
459 (VOID_FTYPE_UNSIGNED_PVOID): New.
460 (VOID_FTYPE_UINT64_PVOID): Likewise.
461 * config/i386/i386-builtin.def: Add CET intrinsics.
462 * config/i386/i386-c.c (ix86_target_macros_internal): Add
463 OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
464 * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
465 * config/i386/i386-protos.h (make_pass_insert_endbranch): New
466 prototype.
467 * config/i386/i386.c (rest_of_insert_endbranch): New.
468 (pass_data_insert_endbranch): Likewise.
469 (pass_insert_endbranch): Likewise.
470 (make_pass_insert_endbranch): Likewise.
471 (ix86_notrack_prefixed_insn_p): Likewise.
472 (ix86_target_string): Add -mibt, -mshstk flags.
473 (ix86_option_override_internal): Add flag_cf_protection
474 processing.
475 (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
476 (ix86_print_operand): Add 'notrack' prefix output.
477 (ix86_init_mmx_sse_builtins): Add CET intrinsics.
478 (ix86_expand_builtin): Expand CET intrinsics.
479 (x86_output_mi_thunk): Add 'endbranch' instruction.
480 * config/i386/i386.h (TARGET_IBT): New.
481 (TARGET_IBT_P): Likewise.
482 (TARGET_SHSTK): Likewise.
483 (TARGET_SHSTK_P): Likewise.
484 * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
485 UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
486 UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
487 (builtin_setjmp_setup): New pattern.
488 (builtin_longjmp): Likewise.
489 (rdssp<mode>): Likewise.
490 (incssp<mode>): Likewise.
491 (saveprevssp): Likewise.
492 (rstorssp): Likewise.
493 (wrss<mode>): Likewise.
494 (wruss<mode>): Likewise.
495 (setssbsy): Likewise.
496 (clrssbsy): Likewise.
497 (nop_endbr): Likewise.
498 * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
499 options.
500 * config/i386/immintrin.h: Include <cetintrin.h>.
501 * config/i386/linux-common.h
502 (file_end_indicate_exec_stack_and_cet): New prototype.
503 (TARGET_ASM_FILE_END): New.
504
505 2017-10-20 Jan Hubicka <hubicka@ucw.cz>
506
507 * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
508 latencies instead of having separate table; make difference between
509 integer and float costs.
510 * i386.h (processor_costs): Remove scalar_stmt_cost,
511 scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
512 scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
513 vec_store_cost.
514 * x86-tune-costs.h: Remove entries which has been removed in
515 procesor_costs from all tables; make cond_taken_branch_cost
516 and cond_not_taken_branch_cost COST_N_INSNS based.
517
518 2017-10-20 Jan Hubicka <hubicka@ucw.cz>
519
520 * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
521
522 2017-10-20 Jakub Jelinek <jakub@redhat.com>
523
524 * config/i386/i386.md (isa): Remove fma_avx512f.
525 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
526 <avx512>_fmadd_<mode>_mask3<round_name>,
527 <avx512>_fmsub_<mode>_mask<round_name>,
528 <avx512>_fmsub_<mode>_mask3<round_name>,
529 <avx512>_fnmadd_<mode>_mask<round_name>,
530 <avx512>_fnmadd_<mode>_mask3<round_name>,
531 <avx512>_fnmsub_<mode>_mask<round_name>,
532 <avx512>_fnmsub_<mode>_mask3<round_name>,
533 <avx512>_fmaddsub_<mode>_mask<round_name>,
534 <avx512>_fmaddsub_<mode>_mask3<round_name>,
535 <avx512>_fmsubadd_<mode>_mask<round_name>,
536 <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
537 (*vec_widen_umult_even_v16si<mask_name>,
538 *vec_widen_smult_even_v16si<mask_name>): Likewise.
539 (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
540
541 2017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
542
543 * extend.texi: Add 'nocf_check' documentation.
544 * gimple.texi: Add second parameter to
545 gimple_build_call_from_tree.
546 * invoke.texi: Add -fcf-protection documentation.
547 * rtl.texi: Add REG_CALL_NOTRACK documenation.
548
549 2017-10-20 Richard Biener <rguenther@suse.de>
550
551 PR tree-optimization/82473
552 * tree-vect-loop.c (vectorizable_reduction): Properly get at
553 the largest input type.
554
555 2017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
556
557 * c-attribs.c (handle_nocf_check_attribute): New function.
558 (c_common_attribute_table): Add 'nocf_check' handling.
559 * gimple-parser.c: Add second argument NULL to
560 gimple_build_call_from_tree.
561 * attrib.c (comp_type_attributes): Check nocf_check attribute.
562 * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
563 call insn.
564 * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
565 * common.opt: Add fcf-protection flag.
566 * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
567 * flag-types.h: Add enum cf_protection_level.
568 * gimple.c (gimple_build_call_from_tree): Add second parameter.
569 Add 'nocf_check' attribute propagation to gimple call.
570 * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
571 (gimple_build_call_from_tree): Update prototype.
572 (gimple_call_nocf_check_p): New function.
573 (gimple_call_set_nocf_check): Likewise.
574 * gimplify.c: Add second argument to gimple_build_call_from_tree.
575 * ipa-icf.c: Add nocf_check attribute in statement hash.
576 * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
577 * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
578 * toplev.c (process_options): Add flag_cf_protection handling.
579
580 2017-10-19 Jan Hubicka <hubicka@ucw.cz>
581
582 * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
583
584 2017-10-20 Richard Biener <rguenther@suse.de>
585
586 PR tree-optimization/82603
587 * tree-if-conv.c (predicate_mem_writes): Make sure to only
588 remove false predicated stores.
589
590 2017-10-20 Richard Biener <rguenther@suse.de>
591
592 * graphite-isl-ast-to-gimple.c
593 (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
594 Remove return value and simplify, dump copied stmt after lhs
595 adjustment.
596 (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
597 Reduce dump verbosity.
598 (gsi_insert_earliest): Likewise.
599 (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
600 * graphite.c (print_global_statistics): Adjust dumping.
601 (print_graphite_scop_statistics): Likewise.
602 (print_graphite_statistics): Do not dump loops here.
603 (graphite_transform_loops): But here.
604
605 2017-10-20 Nicolas Roche <roche@adacore.com>
606
607 * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
608 * configure: Regenerate.
609
610 2017-10-20 Jakub Jelinek <jakub@redhat.com>
611
612 PR target/82158
613 * tree-cfg.c (pass_warn_function_return::execute): In noreturn
614 functions when optimizing replace GIMPLE_RETURN stmts with
615 calls to __builtin_unreachable ().
616
617 PR sanitizer/82595
618 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
619 for -fsanitize=thread link of executables.
620 (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
621 link of executables.
622
623 PR target/82370
624 * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
625 New mode iterators.
626 (<shift_insn><mode>3<mask_name>): Change the last of the 3
627 define_insns for logical vector shifts to use VI248_AVX512BW
628 iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
629 condition, useless isa and prefix attributes. Change the first
630 2 of these define_insns to ...
631 (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
632 define_insn for avx512vl.
633 (<shift_insn><mode>3): ... and this, new define_insn without
634 masking for non-avx512vl.
635
636 PR target/82370
637 * config/i386/sse.md (*andnot<mode>3,
638 <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
639 (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
640 and 256-bit vectors, the (=x,x,xm) alternative and when mask is
641 not applied use empty suffix even for TARGET_AVX512VL.
642 * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
643 is applied, supply evex,evex or evex,evex,evex instead of just
644 evex.
645
646 2017-10-20 Julia Koval <julia.koval@intel.com>
647
648 * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
649 (OPTION_MASK_ISA_GFNI_UNSET): New.
650 (ix86_handle_option): Handle OPT_mgfni.
651 * config/i386/cpuid.h (bit_GFNI): New.
652 * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
653 * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
654 * config/i386/i386.c (ix86_target_string): Add -mgfni.
655 (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
656 * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
657 * config/i386/i386.opt: Add mgfni.
658
659 2017-10-20 Orlando Arias <oarias@knights.ucf.edu>
660
661 * config/msp430/msp430.c (msp430_option_override): Disable
662 -fdelete-null-pointer-checks.
663 * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
664
665 2017-10-19 Jan Hubicka <hubicka@ucw.cz>
666
667 * x86-tune-costs.h (generic_cost, core_cost): Correct costs
668 of x87 and SSE instructions.
669
670 2017-10-19 Jan Hubicka <hubicka@ucw.cz>
671
672 * asan.c (create_cond_insert_point): Do not update edge count.
673 * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
674 (afdo_propagate_circuit): Likewise.
675 (afdo_calculate_branch_prob): Likewise.
676 (afdo_annotate_cfg): Likewise.
677 * basic-block.h (struct edge_def): Remove count.
678 (edge_def::count): New accessor.
679 * bb-reorder.c (rotate_loop): Update.
680 (find_traces_1_round): Update.
681 (connect_traces): Update.
682 (sanitize_hot_paths): Update.
683 * cfg.c (unchecked_make_edge): Update.
684 (make_single_succ_edge): Update.
685 (check_bb_profile): Update.
686 (dump_edge_info): Update.
687 (update_bb_profile_for_threading): Update.
688 (scale_bbs_frequencies_int): Update.
689 (scale_bbs_frequencies_gcov_type): Update.
690 (scale_bbs_frequencies_profile_count): Update.
691 (scale_bbs_frequencies): Update.
692 * cfganal.c (connect_infinite_loops_to_exit): Update.
693 * cfgbuild.c (compute_outgoing_frequencies): Update.
694 (find_many_sub_basic_blocks): Update.
695 * cfgcleanup.c (try_forward_edges): Update.
696 (try_crossjump_to_edge): Update
697 * cfgexpand.c (expand_gimple_cond): Update
698 (expand_gimple_tailcall): Update
699 (construct_exit_block): Update
700 * cfghooks.c (verify_flow_info): Update
701 (redirect_edge_succ_nodup): Update
702 (split_edge): Update
703 (make_forwarder_block): Update
704 (duplicate_block): Update
705 (account_profile_record): Update
706 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
707 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
708 * cfgloopmanip.c (scale_loop_profile): Update.
709 (loopify): Update.
710 (lv_adjust_loop_entry_edge): Update.
711 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
712 (force_nonfallthru_and_redirect): Update.
713 (purge_dead_edges): Update.
714 (rtl_flow_call_edges_add): Update.
715 * cgraphunit.c (init_lowered_empty_function): Update.
716 (cgraph_node::expand_thunk): Update.
717 * gimple-pretty-print.c (dump_probability): Update.
718 (dump_edge_probability): Update.
719 * gimple-ssa-isolate-paths.c (isolate_path): Update.
720 * haifa-sched.c (sched_create_recovery_edges): Update.
721 * hsa-gen.c (convert_switch_statements): Update.
722 * ifcvt.c (dead_or_predicable): Update.
723 * ipa-inline-transform.c (inline_transform): Update.
724 * ipa-split.c (split_function): Update.
725 * ipa-utils.c (ipa_merge_profiles): Update.
726 * loop-doloop.c (add_test): Update.
727 * loop-unroll.c (unroll_loop_runtime_iterations): Update.
728 * lto-streamer-in.c (input_cfg): Update.
729 (input_function): Update.
730 * lto-streamer-out.c (output_cfg): Update.
731 * modulo-sched.c (sms_schedule): Update.
732 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
733 * predict.c (maybe_hot_edge_p): Update.
734 (unlikely_executed_edge_p): Update.
735 (probably_never_executed_edge_p): Update.
736 (dump_prediction): Update.
737 (drop_profile): Update.
738 (propagate_unlikely_bbs_forward): Update.
739 (determine_unlikely_bbs): Update.
740 (force_edge_cold): Update.
741 * profile.c (compute_branch_probabilities): Update.
742 * reg-stack.c (better_edge): Update.
743 * shrink-wrap.c (handle_simple_exit): Update.
744 * tracer.c (better_p): Update.
745 * trans-mem.c (expand_transaction): Update.
746 (split_bb_make_tm_edge): Update.
747 * tree-call-cdce.c: Update.
748 * tree-cfg.c (gimple_find_sub_bbs): Update.
749 (gimple_split_edge): Update.
750 (gimple_duplicate_sese_region): Update.
751 (gimple_duplicate_sese_tail): Update.
752 (gimple_flow_call_edges_add): Update.
753 (insert_cond_bb): Update.
754 (execute_fixup_cfg): Update.
755 * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
756 * tree-complex.c (expand_complex_div_wide): Update.
757 * tree-eh.c (lower_resx): Update.
758 (unsplit_eh): Update.
759 (cleanup_empty_eh_move_lp): Update.
760 * tree-inline.c (copy_edges_for_bb): Update.
761 (freqs_to_counts): Update.
762 (copy_cfg_body): Update.
763 * tree-ssa-dce.c (remove_dead_stmt): Update.
764 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
765 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
766 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
767 (unloop_loops): Update.
768 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
769 * tree-ssa-loop-split.c (connect_loops): Update.
770 (split_loop): Update.
771 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
772 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
773 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
774 * tree-ssa-reassoc.c (branch_fixup): Update.
775 * tree-ssa-tail-merge.c (replace_block_by): Update.
776 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
777 (compute_path_counts): Update.
778 (update_profile): Update.
779 (recompute_probabilities): Update.
780 (update_joiner_offpath_counts): Update.
781 (estimated_freqs_path): Update.
782 (freqs_to_counts_path): Update.
783 (clear_counts_path): Update.
784 (ssa_fix_duplicate_block_edges): Update.
785 (duplicate_thread_path): Update.
786 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
787 (case_bit_test_cmp): Update.
788 (collect_switch_conv_info): Update.
789 (gen_inbound_check): Update.
790 (do_jump_if_equal): Update.
791 (emit_cmp_and_jump_insns): Update.
792 * tree-tailcall.c (decrease_profile): Update.
793 (eliminate_tail_call): Update.
794 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
795 (vect_do_peeling): Update.
796 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
797 * ubsan.c (ubsan_expand_null_ifn): Update.
798 (ubsan_expand_ptr_ifn): Update.
799 * value-prof.c (gimple_divmod_fixed_value): Update.
800 (gimple_mod_pow2): Update.
801 (gimple_mod_subtract): Update.
802 (gimple_ic): Update.
803 (gimple_stringop_fixed_value): Update.
804
805 2017-10-19 Uros Bizjak <ubizjak@gmail.com>
806
807 PR target/82618
808 * config/i386/i386.md (sub to cmp): New peephole2 pattern.
809
810 2017-10-19 Alexander Monakov <amonakov@ispras.ru>
811
812 PR rtl-optimization/82395
813 * ira-color.c (allocno_priority_compare_func): Fix comparison step
814 based on non_spilled_static_chain_regno_p.
815
816 2017-10-19 Uros Bizjak <ubizjak@gmail.com>
817
818 * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
819 (ix86_emit_mode_set): Rewrite insn mnemonic construction.
820 (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
821
822 2017-10-19 Martin Sebor <msebor@redhat.com>
823
824 PR tree-optimization/82596
825 * tree.c (array_at_struct_end_p): Handle STRING_CST.
826
827 2017-10-19 Eric Botcazou <ebotcazou@adacore.com>
828
829 * asan.c (handle_builtin_alloca): Deal with all alloca variants.
830 (get_mem_refs_of_builtin_call): Likewise.
831 * builtins.c (expand_builtin_apply): Adjust call to
832 allocate_dynamic_stack_space.
833 (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
834 the third argument to allocate_dynamic_stack_space, otherwise -1.
835 (expand_builtin): Deal with all alloca variants.
836 (is_inexpensive_builtin): Likewise.
837 * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
838 * calls.c (special_function_p): Deal with all alloca variants.
839 (initialize_argument_information): Adjust call to
840 allocate_dynamic_stack_space.
841 (expand_call): Likewise.
842 * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
843 * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
844 * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
845 use it for the stack usage computation.
846 * explow.h (allocate_dynamic_stack_space): Adjust prototype.
847 * function.c (gimplify_parameters): Call build_alloca_call_expr.
848 * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
849 Take into account 3rd argument of __builtin_alloca_with_align_and_max.
850 (in_loop_p): Remove first argument and useless check.
851 (pass_walloca::execute): Remove useless test and adjust call to above.
852 * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
853 * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
854 (gimplify_call_expr): Deal with all alloca variants.
855 * hsa-gen.c (gen_hsa_alloca): Likewise.
856 (gen_hsa_insns_for_call): Likewise.
857 * ipa-pure-const.c (special_builtin_state): Likewise.
858 * tree-chkp.c (chkp_build_returned_bound): Likewise.
859 * tree-object-size.c (alloc_object_size): Likewise.
860 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
861 (call_may_clobber_ref_p_1): Likewise.
862 * tree-ssa-ccp.c (evaluate_stmt): Likewise.
863 (ccp_fold_stmt): Likewise.
864 (optimize_stack_restore): Likewise.
865 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
866 (mark_all_reaching_defs_necessary_1): Likewise.
867 (propagate_necessity): Likewise.
868 (eliminate_unnecessary_stmts): Likewise.
869 * tree.c (build_common_builtin_nodes): Build
870 BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
871 (build_alloca_call_expr): New function.
872 * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
873 (CASE_BUILT_IN_ALLOCA): Likewise.
874 (build_alloca_call_expr): Declare.
875 * varasm.c (incorporeal_function_p): Deal with all alloca variants.
876
877 2017-10-19 Eric Botcazou <ebotcazou@adacore.com>
878
879 PR debug/82509
880 * dwarf2out.c (new_die_raw): New static inline function.
881 (new_die): Use it to create the DIE.
882 (add_AT_external_die_ref): Likewise.
883 (clone_die): Likewise.
884 (clone_as_declaration): Likewise.
885 (dwarf2out_vms_debug_main_pointer): Likewise.
886 (base_type_die): Likewise. Remove early return for corner cases.
887 Do not call add_pubtype on the DIE here.
888 (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
889 (modified_type_die): Adjust the lookup for reverse order DIEs. Skip
890 typedefs for base types with DW_AT_endianity. Make sure a DIE with
891 native order exists for base types, attach the DIE manually and call
892 add_pubtype on it. Do not equate a reverse order DIE to the type.
893
894 2017-10-19 Richard Earnshaw <rearnsha@arm.com>
895
896 * config/arm/arm.c (align_ok_ldrd_strd): New function.
897 (mem_ok_for_ldrd_strd): New parameter align. Extract the alignment of
898 the mem into it.
899 (gen_operands_ldrd_strd): Validate the alignment of the accesses.
900
901 2017-10-19 Jakub Jelinek <jakub@redhat.com>
902
903 * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN. Or
904 SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
905 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
906 BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
907 * opts.c (sanitizer_opts): Add builtin.
908 * ubsan.c (instrument_builtin): New function.
909 (pass_ubsan::execute): Call it.
910 (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
911 * doc/invoke.texi: Document -fsanitize=builtin.
912
913 * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
914 builtins, store max (log2 (align), 0) into uchar field instead of
915 align into uptr field.
916 (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
917 store uchar 0 field instead of uptr 0 field.
918 (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
919 instead of passing one address of struct with 2 locations pass
920 two addresses of structs with 1 location each.
921 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
922 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
923 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
924 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
925 (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
926 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
927 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
928 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
929
930 2017-10-19 Martin Liska <mliska@suse.cz>
931
932 PR driver/81829
933 * file-find.c (remove_prefix): Remove.
934 * file-find.h (remove_prefix): Likewise.
935 * gcc-ar.c: Remove smartness of lookup.
936
937 2017-10-19 Segher Boessenkool <segher@kernel.crashing.org>
938
939 * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
940 *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
941 *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
942
943 2017-10-19 Jakub Jelinek <jakub@redhat.com>
944
945 PR target/82580
946 * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
947 (setcc + and to xor + setcc): New peephole2.
948
949 2017-10-19 Tom de Vries <tom@codesourcery.com>
950
951 * doc/sourcebuild.texi (Test Directives, Variants of
952 dg-require-support): Add dg-require-stack-size.
953
954 2017-10-19 Martin Liska <mliska@suse.cz>
955
956 PR sanitizer/82517
957 * gimplify.c (gimplify_decl_expr): Do not instrument variables
958 that have a large alignment.
959 (gimplify_target_expr): Likewise.
960
961 2017-10-18 Segher Boessenkool <segher@kernel.crashing.org>
962
963 PR rtl-optimization/82602
964 * ira.c (rtx_moveable_p): Return false for volatile asm.
965
966 2017-10-18 Uros Bizjak <ubizjak@gmail.com>
967
968 PR target/82580
969 * config/i386/i386-modes.def (CCGZ): New CC mode.
970 * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
971 * config/i386/predicates.md (ix86_comparison_operator):
972 Handle CCGZmode.
973 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
974 Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
975 with double-word subtraction.
976 (put_condition_code): Handle CCGZmode.
977
978 2017-10-18 Aldy Hernandez <aldyh@redhat.com>
979
980 * wide-int.cc (debug (const wide_int &)): New.
981 (debug (const wide_int *)): New.
982 (debug (const widest_int &)): New.
983 (debug (const widest_int *)): New.
984
985 2017-10-18 Vladimir Makarov <vmakarov@redhat.com>
986
987 PR middle-end/82556
988 * lra-constraints.c (curr_insn_transform): Use non-input operand
989 instead of output one for matched reload.
990
991 2017-10-18 Bin Cheng <bin.cheng@arm.com>
992
993 * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
994 (tree-ssa-loop-ivopts.h): New header file.
995 (struct builtin_info): New fields.
996 (classify_builtin_1): Compute and record base and offset parts for
997 memset builtin partition by calling strip_offset.
998 (offset_cmp, fuse_memset_builtins): New functions.
999 (finalize_partitions): Fuse adjacent memset partitions by calling
1000 above function.
1001 * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
1002 Expose the interface.
1003 * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
1004
1005 2017-10-18 Bin Cheng <bin.cheng@arm.com>
1006
1007 PR tree-optimization/82574
1008 * tree-loop-distribution.c (find_single_drs): New parameter. Check
1009 that data reference must be executed exactly once per iteration
1010 against the outermost loop in nest.
1011 (classify_partition): Update call to above function.
1012
1013 2017-10-18 Richard Biener <rguenther@suse.de>
1014
1015 PR tree-optimization/82591
1016 * graphite.c (graphite_transform_loops): Move code gen message
1017 printing ...
1018 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
1019 Here. Handle scop_to_isl_ast failing.
1020 (scop_to_isl_ast): Limit the number of ISL operations.
1021
1022 2017-10-18 Richard Biener <rguenther@suse.de>
1023
1024 * graphite-isl-ast-to-gimple.c
1025 (translate_isl_ast_to_gimple::set_rename): Simplify.
1026 (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
1027 (graphite_copy_stmts_from_block): ... here.
1028 (copy_bb_and_scalar_dependences): Simplify.
1029 (add_parameters_to_ivs_params): Canonicalize.
1030 (generate_entry_out_of_ssa_copies): Simplify.
1031 * graphite-sese-to-poly.c (extract_affine_name): Simplify
1032 by passing in ISL dimension.
1033 (parameter_index_in_region_1): Rename to ...
1034 (parameter_index_in_region): ... this.
1035 (extract_affine): Adjust assert, pass down parameter index.
1036 (add_param_constraints): Use range-info when available.
1037 (build_scop_context): Adjust.
1038 * sese.c (new_sese_info): Adjust.
1039 (free_sese_info): Likewise.
1040 * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
1041 Remove unused typedefs.
1042 (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
1043
1044 2017-10-18 Martin Liska <mliska@suse.cz>
1045
1046 * combine.c (simplify_compare_const): Add gcc_fallthrough.
1047
1048 2017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
1049
1050 * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
1051 (s390_sched_init): Do not reset s390_sched_state if we entered the
1052 current basic block via a fallthru edge and all others are unlikely.
1053
1054 2017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
1055
1056 * config/s390/s390.c (NUM_SIDES): New variable.
1057 (LONGRUNNING_THRESHOLD): New variable.
1058 (LATENCY_FACTOR): New variable.
1059 (s390_sched_score): Decrease score for long-running instructions on
1060 wrong side.
1061 (s390_sched_variable_issue): Perform bookkeeping for long-running
1062 instructions.
1063
1064 2017-10-18 Richard Biener <rguenther@suse.de>
1065
1066 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
1067 Simplify with removal of the parameter rename map.
1068 (set_rename): Likewise.
1069 (should_copy_to_new_region): Likewise.
1070 (graphite_copy_stmts_from_block): Likewise.
1071 (copy_bb_and_scalar_dependences): Remove initialization of
1072 unused copied_bb_map.
1073 (copy_def): Remove.
1074 (copy_internal_parameters): Likewise.
1075 (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
1076 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
1077 Use INTEGRAL_TYPE_P.
1078 (parameter_index_in_region_1): Rename to ...
1079 (assign_parameter_index_in_region): ... this. Assert we have
1080 a parameter we handle.
1081 (scan_tree_for_params): Adjust.
1082 * sese.h (parameter_rename_map_t): Remove.
1083 (struct sese_info_t): Remove unused parameter_rename_map and
1084 copied_bb_map members.
1085 * sese.c (new_sese_info): Adjust.
1086 (free_sese_info): Likewise.
1087
1088 2017-10-18 Martin Liska <mliska@suse.cz>
1089
1090 PR sanitizer/82545
1091 * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
1092 on an abnormal edge.
1093
1094 2017-10-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
1095
1096 * doc/invoke.texi (ffunction-sections and fdata-sections):
1097 Update.
1098
1099 2017-10-17 Eric Botcazou <ebotcazou@adacore.com>
1100
1101 * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
1102 the use statement can throw internally.
1103
1104 2017-10-17 Eric Botcazou <ebotcazou@adacore.com>
1105
1106 * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
1107 any RTX present on the RHS of a SET.
1108 * compare-elim.c (try_eliminate_compare): Restore comment.
1109
1110 2017-10-17 Jakub Jelinek <jakub@redhat.com>
1111
1112 * langhooks.h (struct lang_hooks): Document that tree_size langhook
1113 may be also called on tcc_type nodes.
1114 * langhooks.c (lhd_tree_size): Likewise.
1115
1116 2017-10-17 David Malcolm <dmalcolm@redhat.com>
1117
1118 * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
1119 format_warning_at_substring.
1120 (maybe_warn): Convert source_range * param to a location_t. Pass
1121 UNKNOWN_LOCATION rather than NULL to fmtwarn.
1122 (format_directive): Remove code to extract source_ranges and
1123 source_range * in favor of just a location_t.
1124 (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
1125 fmtwarn.
1126 * substring-locations.c (format_warning_va): Convert
1127 source_range * param to a location_t.
1128 (format_warning_at_substring): Likewise.
1129 * substring-locations.h (format_warning_va): Likewise.
1130 (format_warning_at_substring): Likewise.
1131
1132 2017-10-17 Jan Hubicka <hubicka@ucw.cz>
1133
1134 * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
1135 vec_scatter_store
1136 * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
1137 and scatter/gather ops.
1138
1139 * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
1140 vec_gather_load and vec_scatter_store.
1141 * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
1142 * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
1143 * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
1144 * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
1145 * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
1146 * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
1147
1148 2017-10-17 Uros Bizjak <ubizjak@gmail.com>
1149
1150 * reg-stack.c (compare_for_stack_reg): Add bool argument.
1151 Detect FTST instruction and handle its register pops. Only pop
1152 second operand if can_pop_second_op is true.
1153 (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
1154 set can_pop_second_op to false in the compare_for_stack_reg call.
1155
1156 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
1157 output_fp_compare for stack register operands.
1158 * config/i386/i386.c (output_fp_compare): Do not output SSE compare
1159 instructions here. Do not emit stack register pops here. Assert
1160 that FCOMPP pops next to top stack register. Rewrite function.
1161
1162 2017-10-17 Nathan Sidwell <nathan@acm.org>
1163
1164 PR middle-end/82577
1165 * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
1166 use DECL_ASSEMBLER_NAME_RAW.
1167
1168 PR middle-end/82546
1169 * tree.c (tree_code_size): Reformat. Punt to lang hook for unknown
1170 TYPE nodes.
1171
1172 2017-10-17 Qing Zhao <qing.zhao@oracle.com>
1173 Wilco Dijkstra <wilco.dijkstra@arm.com>
1174
1175 * builtins.c (expand_builtin_update_setjmp_buf): Add a
1176 converstion to Pmode from the buf_addr.
1177
1178 2017-10-17 Richard Biener <rguenther@suse.de>
1179
1180 * graphite-dependences.c (scop_get_reads_and_writes): Change
1181 output parameters to references.
1182
1183 2017-10-17 Jackson Woodruff <jackson.woodruff@arm.com>
1184
1185 PR 71026/tree-optimization
1186 * fold-const.c (distribute_real_division): Removed.
1187 (fold_binary_loc): Remove calls to distribute_real_divison.
1188
1189 2017-10-17 Richard Biener <rguenther@suse.de>
1190
1191 * graphite-scop-detection.c
1192 (scop_detection::stmt_has_simple_data_refs_p): Always use
1193 the full nest as region.
1194 (try_generate_gimple_bb): Likewise.
1195 * sese.c (scalar_evolution_in_region): Simplify now that
1196 SCEV can handle instantiation in regions.
1197 * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
1198 in the non-loop part of a function if requested.
1199
1200 2017-10-17 Richard Biener <rguenther@suse.de>
1201
1202 PR tree-optimization/82563
1203 * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
1204 New function.
1205 (graphite_regenerate_ast_isl): Call it.
1206 * graphite-scop-detection.c (build_scops): Remove entry edge split.
1207
1208 2017-10-17 Jakub Jelinek <jakub@redhat.com>
1209
1210 PR tree-optimization/82549
1211 * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
1212 Formatting fixes. Instead of calling make_bit_field_ref with negative
1213 bitpos return 0.
1214
1215 2017-10-17 Olga Makhotina <olga.makhotina@intel.com>
1216
1217 * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
1218 _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
1219 _mm_maskz_reduce_ss): New.
1220 * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
1221 __builtin_ia32_reducess_mask): Ditto..
1222 (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
1223 * config/i386/sse.md (reduces<mode>): Renamed to ...
1224 (reduces<mode><mask_scalar_name>): ... this.
1225 (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}): Changed
1226 to ...
1227 (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
1228 %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
1229
1230 2017-10-16 David Malcolm <dmalcolm@redhat.com>
1231
1232 * Makefile.in (OBJS): Add unique-ptr-tests.o.
1233 * selftest-run-tests.c (selftest::run_tests): Call
1234 selftest::unique_ptr_tests_cc_tests.
1235 * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
1236 * unique-ptr-tests.cc: New file.
1237
1238 2017-10-16 Vladimir Makarov <vmakarov@redhat.com>
1239
1240 PR sanitizer/82353
1241 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
1242 locations.
1243 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
1244 (make_hard_regno_born, make_hard_regno_dead): Update
1245 bb_killed_pseudos and bb_gen_pseudos for fixed regs.
1246
1247 2017-10-16 Jeff Law <law@redhat.com>
1248
1249 * tree-ssa-dse.c (live_bytes_read): Fix thinko.
1250
1251 2017-10-16 Jan Hubicka <hubicka@ucw.cz>
1252
1253 * x86-tune-costs.h (znver1_cost): Fix move cost tables.
1254
1255 2017-10-16 Olivier Hainque <hainque@adacore.com>
1256
1257 * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
1258 with_cpu if we were configured for an e500v2 target cpu name.
1259
1260 2017-10-16 Thomas Preud'homme <thomas.preudhomme@arm.com>
1261
1262 * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
1263 * doc/invoke.texi: Document +nodsp as a valid extension for
1264 -mcpu=cortex-m33.
1265
1266 2017-10-16 Martin Liska <mliska@suse.cz>
1267
1268 * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
1269 (test_set_range): Likewise.
1270 (test_range_functions): Rename to ...
1271 (test_bit_in_range): ... this.
1272 (sbitmap_c_tests): Add new test.
1273
1274 2017-10-16 Tamar Christina <tamar.christina@arm.com>
1275
1276 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): New.
1277 (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
1278 (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
1279
1280 2017-10-16 Tamar Christina <tamar.christina@arm.com>
1281
1282 * config/aarch64/aarch64-builtins.c
1283 (aarch64_types_quadopu_lane_qualifiers): New.
1284 (TYPES_QUADOPU_LANE): New.
1285 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
1286 (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
1287 (aarch64_<sur>dot_laneq<vsi2qi>): New.
1288 * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
1289 (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
1290 * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
1291 (Vdottype, DOTPROD): New.
1292 (sur): Add SDOT and UDOT.
1293
1294 2017-10-16 Tamar Christina <tamar.christina@arm.com>
1295
1296 * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
1297 (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
1298 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add TARGET_DOTPROD.
1299 * config/aarch64/aarch64-option-extensions.def (dotprod): New.
1300 * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75): Enable TARGET_DOTPROD.
1301 (cortex-a75.cortex-a55): Likewise.
1302 * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
1303
1304 2017-10-16 Tamar Christina <tamar.christina@arm.com>
1305
1306 * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
1307 (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS): New.
1308 * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane): new.
1309 * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
1310 (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
1311 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
1312 (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
1313 * config/arm/types.md (neon_dot, neon_dot_q): New.
1314 * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
1315
1316 2017-10-16 Tamar Christina <tamar.christina@arm.com>
1317
1318 * config/arm/arm.h (TARGET_DOTPROD): New.
1319 * config/arm/arm.c (arm_arch_dotprod): New.
1320 (arm_option_reconfigure_globals): Add arm_arch_dotprod.
1321 * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
1322 * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
1323 (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
1324 (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
1325 * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
1326 * doc/invoke.texi (armv8.2-a): Document dotprod
1327
1328 2017-10-14 Jan Hubicka <hubicka@ucw.cz>
1329
1330 * i386.c (ix86_vec_cost): New function.
1331 (ix86_rtx_costs): Handle vector operations better.
1332 * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
1333 * x86-tune-costs.h: Add new costs to all tables.
1334
1335 2017-10-14 Jan Hubicka <hubicka@ucw.cz>
1336
1337 * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
1338 operations.
1339 * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
1340 divsd, sqrtss and sqrtsd
1341 * x86-tune-costs.h: Add new entries to all costs.
1342 (znver1_cost): Fix to match real instruction latencies.
1343
1344 2017-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1345 Michael Collison <michael.collison@arm.com>
1346
1347 * compare-elim.c: Include emit-rtl.h.
1348 (can_merge_compare_into_arith): New function.
1349 (try_validate_parallel): Likewise.
1350 (try_merge_compare): Likewise.
1351 (try_eliminate_compare): Call the above when no previous clobber
1352 is available.
1353 (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
1354 dataflow problems.
1355
1356 2017-10-14 Jakub Jelinek <jakub@redhat.com>
1357
1358 PR middle-end/62263
1359 PR middle-end/82498
1360 * tree-ssa-phiopt.c (value_replacement): Comment fix. Handle
1361 up to 2 preparation statements for ASSIGN in MIDDLE_BB.
1362
1363 PR middle-end/62263
1364 PR middle-end/82498
1365 * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
1366 to be any operand_equal_p operands. For & (B - 1) require
1367 B to be power of 2. Recognize
1368 (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
1369
1370 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
1371
1372 PR bootstrap/82553
1373 * optabs.c (expand_memory_blockage): Fix call of
1374 targetm.have_memory_blockage.
1375
1376 2017-10-14 Jakub Jelinek <jakub@redhat.com>
1377
1378 PR bootstrap/82548
1379 * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
1380 x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
1381 objects to extra_objs instead of overwriting it.
1382
1383 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
1384
1385 * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
1386 Use any_fp_register_operand as operand[3] predicate. Simplify
1387 equality test for operands[2] and operands[4] memory location.
1388 (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
1389 (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
1390 (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
1391 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
1392 any_fp_register_operand as operand[1] predicate. Simplify
1393 equality test for operands[0] and operands[3] memory location.
1394 (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
1395 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
1396 (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
1397
1398 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
1399
1400 * target-insns.def: Add memory_blockage.
1401 * optabs.c (expand_memory_blockage): New function.
1402 (expand_asm_memory_barrier): Rename ...
1403 (expand_asm_memory_blockage): ... to this.
1404 (expand_mem_thread_fence): Call expand_memory_blockage
1405 instead of expand_asm_memory_barrier.
1406 (expand_mem_singnal_fence): Ditto.
1407 (expand_atomic_load): Ditto.
1408 (expand_atomic_store): Ditto.
1409 * doc/md.texi (Standard Pattern Names For Generation):
1410 Document memory_blockage instruction pattern.
1411
1412 2017-10-13 Sebastian Perta <sebastian.perta@renesas.com>
1413
1414 * config/rl78/rl78.c (rl78_emit_libcall): New function.
1415 * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
1416 * config/rl78/rl78.md: New define_expand "adddi3".
1417
1418 2017-10-13 Jan Hubicka <hubicka@ucw.cz>
1419
1420 * cfghooks.c (verify_flow_info): Disable check that all probabilities
1421 are set correctly.
1422
1423 2017-10-13 Jeff Law <law@redhat.com>
1424
1425 * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
1426
1427 2017-10-13 Jakub Jelinek <jakub@redhat.com>
1428
1429 PR target/82274
1430 * internal-fn.c (expand_mul_overflow): If both operands have
1431 the same highpart of -1 or 0 and the topmost bit of lowpart
1432 is different, overflow is if res <= 0 rather than res < 0.
1433
1434 2017-10-13 Pat Haugen <pthaugen@us.ibm.com>
1435
1436 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
1437 TARGET_P9_VECTOR code for unaligned_load case.
1438
1439 2017-10-13 Jan Hubicka <hubicka@ucw.cz>
1440
1441 * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
1442
1443 2017-10-13 Nathan Sidwell <nathan@acm.org>
1444
1445 * tree-core.h (tree_contains_struct): Make bool.
1446 * tree.c (tree_contains_struct): Likewise.
1447 * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
1448 (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
1449 MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
1450 MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
1451 MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
1452
1453 2017-10-13 Richard Biener <rguenther@suse.de>
1454
1455 * graphite-isl-ast-to-gimple.c
1456 (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
1457 parameters and dominance check.
1458 (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
1459 (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
1460 (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
1461 Do not update SSA form here or do intermediate IL verification.
1462 * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
1463 (graphite_initialize): Remove check on the number of loops in
1464 the function and inline into graphite_transform_loops.
1465 (graphite_finalize): Inline into graphite_transform_loops.
1466 (graphite_transform_loops): Perform SSA update and IL verification
1467 here.
1468 * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
1469
1470 2017-10-13 Richard Biener <rguenther@suse.de>
1471
1472 * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
1473 graphite_expression_type_precision): Avoid global constructor
1474 by moving ...
1475 (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
1476 (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
1477 (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
1478 (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
1479 (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
1480 * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
1481
1482 2017-10-13 H.J. Lu <hongjiu.lu@intel.com>
1483
1484 PR target/82499
1485 * config/i386/i386.h (ix86_red_zone_size): New.
1486 * config/i386/i386.md (push peephole2s): Replace
1487 "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
1488
1489 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
1490 Alan Hayward <alan.hayward@arm.com>
1491 David Sherwood <david.sherwood@arm.com>
1492
1493 * combine.c (can_change_dest_mode): Reject changes in
1494 REGMODE_NATURAL_SIZE.
1495
1496 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
1497 Alan Hayward <alan.hayward@arm.com>
1498 David Sherwood <david.sherwood@arm.com>
1499
1500 * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
1501 (expand_debug_source_expr): Likewise.
1502 * combine.c (combine_simplify_rtx): Likewise.
1503 * cse.c (fold_rtx): Likewise.
1504 * fwprop.c (canonicalize_address): Likewise.
1505 * targhooks.c (default_shift_truncation_mask): Likewise.
1506
1507 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
1508 Alan Hayward <alan.hayward@arm.com>
1509 David Sherwood <david.sherwood@arm.com>
1510
1511 * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
1512 (widened_mode): Likewise.
1513 (expand_unop): Likewise.
1514 * ree.c (transform_ifelse): Likewise.
1515 (merge_def_and_ext): Likewise.
1516 (combine_reaching_defs): Likewise.
1517 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1518
1519 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
1520 Alan Hayward <alan.hayward@arm.com>
1521 David Sherwood <david.sherwood@arm.com>
1522
1523 * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
1524 * combine.c (gen_lowpart_for_combine): Likewise.
1525 * dwarf2out.c (rtl_for_decl_location): Likewise.
1526 * final.c (alter_subreg): Likewise.
1527 * rtlhooks.c (gen_lowpart_general): Likewise.
1528 (gen_lowpart_if_possible): Likewise.
1529
1530 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
1531 Alan Hayward <alan.hayward@arm.com>
1532 David Sherwood <david.sherwood@arm.com>
1533
1534 * calls.c (expand_call): Use subreg_lowpart_offset.
1535 * cse.c (cse_insn): Likewise.
1536 * regcprop.c (copy_value): Likewise.
1537 (copyprop_hardreg_forward_1): Likewise.
1538
1539 2017-10-13 Jakub Jelinek <jakub@redhat.com>
1540
1541 PR target/82524
1542 * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
1543 *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
1544 =Q constraints to +Q and into insn condition add check
1545 that operands[0] and operands[1] are equal.
1546 (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
1547 =Q constraints to +Q and into insn condition add check
1548 that operands[0] is equal to either operands[1] or operands[2].
1549
1550 PR target/82498
1551 * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
1552 instead of handling MINUS_EXPR twice (once for each argument),
1553 canonicalize operand order and handle just once, use rtype where
1554 possible. Handle (A << B) | (A >> (-B & (Z - 1))).
1555
1556 PR target/82498
1557 * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
1558 any values of __C while still being pattern recognizable as a simple
1559 rotate instruction.
1560
1561 2017-10-13 Richard Biener <rguenther@suse.de>
1562
1563 PR tree-optimization/82451
1564 Revert
1565 2017-10-02 Richard Biener <rguenther@suse.de>
1566
1567 PR tree-optimization/82355
1568 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
1569 a mapping for the enclosing loop but avoid generating one for
1570 the loop tree root.
1571 (copy_bb_and_scalar_dependences): Remove premature codegen
1572 error on PHIs in blocks duplicated into multiple places.
1573 * graphite-scop-detection.c
1574 (scop_detection::stmt_has_simple_data_refs_p): For a loop not
1575 in the region use it as loop and nest to analyze the DR in.
1576 (try_generate_gimple_bb): Likewise.
1577 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
1578 (add_loop_constraints): For blocks in a loop not in the region
1579 create a dimension with a single iteration.
1580 * sese.h (gbb_loop_at_index): Remove assert.
1581
1582 * cfgloop.c (loop_preheader_edge): For the loop tree root
1583 return the single successor of the entry block.
1584 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
1585 Reset the SCEV hashtable and niters.
1586 * graphite-scop-detection.c
1587 (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
1588 assert that we only have POLYNOMIAL_CHREC that vary in loops
1589 contained in the region.
1590 (scop_detection::graphite_can_represent_expr): Adjust.
1591 (scop_detection::stmt_has_simple_data_refs_p): For loops
1592 not in the region set loop to NULL. The nest is now the
1593 entry edge to the region.
1594 (try_generate_gimple_bb): Likewise.
1595 * sese.c (scalar_evolution_in_region): Adjust for
1596 instantiate_scev change.
1597 * tree-data-ref.h (graphite_find_data_references_in_stmt):
1598 Make nest parameter the edge into the region.
1599 (create_data_ref): Likewise.
1600 * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
1601 entry edge into a region and adjust instantiate_scev calls.
1602 (create_data_ref): Likewise.
1603 (graphite_find_data_references_in_stmt): Likewise.
1604 (find_data_references_in_stmt): Pass the loop preheader edge
1605 from the nest argument.
1606 * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
1607 parameter the edge into the region.
1608 (instantiate_parameters): Use the loop preheader edge as entry.
1609 * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
1610 NULL loop.
1611 (get_instantiated_value_entry): Make instantiate_below parameter
1612 the edge into the region.
1613 (instantiate_scev_name): Likewise. Adjust dominance checks,
1614 when we cannot use loop-based instantiation instantiate by
1615 walking use-def chains.
1616 (instantiate_scev_poly): Adjust.
1617 (instantiate_scev_binary): Likewise.
1618 (instantiate_scev_convert): Likewise.
1619 (instantiate_scev_not): Likewise.
1620 (instantiate_array_ref): Remove.
1621 (instantiate_scev_3): Likewise.
1622 (instantiate_scev_2): Likewise.
1623 (instantiate_scev_1): Likewise.
1624 (instantiate_scev_r): Do not blindly handle N-operand trees.
1625 Do not instantiate array-refs. Handle all constants and invariants.
1626 (instantiate_scev): Make instantiate_below parameter
1627 the edge into the region.
1628 (resolve_mixers): Use the loop preheader edge for the region
1629 parameter to instantiate_scev_r.
1630 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
1631
1632 2017-10-13 Richard Biener <rguenther@suse.de>
1633
1634 PR tree-optimization/82525
1635 * graphite-isl-ast-to-gimple.c
1636 (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
1637 out from ...
1638 (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
1639 Fail code generation when we cannot represent the isl integer.
1640 (binary_op_to_tree): Elide modulo operations that are no-ops
1641 in the type we code generate. Remove now superfluous code
1642 generation errors.
1643
1644 2017-10-13 Richard Biener <rguenther@suse.de>
1645
1646 * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
1647 (scop_detection::harmful_loop_in_region): Remove premature
1648 IV type restriction.
1649 (scop_detection::graphite_can_represent_scev): We can handle
1650 pointer IVs just fine.
1651
1652 2017-10-13 Alan Modra <amodra@gmail.com>
1653
1654 * doc/extend.texi (Extended Asm <Clobbers>): Rename to
1655 "Clobbers and Scratch Registers". Add paragraph on
1656 alternative to clobbers for scratch registers and OpenBLAS
1657 example.
1658
1659 2017-10-13 Alan Modra <amodra@gmail.com>
1660
1661 * doc/extend.texi (Clobbers): Correct vax example. Delete old
1662 example of a memory input for a string of known length. Move
1663 commentary out of table. Add a number of new examples
1664 covering array memory inputs.
1665
1666 2017-10-12 Martin Liska <mliska@suse.cz>
1667
1668 PR tree-optimization/82493
1669 * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
1670 (test_range_functions): New function.
1671 (sbitmap_c_tests): Likewise.
1672 * selftest-run-tests.c (selftest::run_tests): Run new tests.
1673 * selftest.h (sbitmap_c_tests): New function.
1674
1675 * tree-ssa-dse.c (live_bytes_read): Fix thinko.
1676
1677 2017-10-12 Michael Meissner <meissner@linux.vnet.ibm.com>
1678
1679 * config/rs6000/amo.h: Fix spacing issue.
1680
1681 2017-10-12 Jakub Jelinek <jakub@redhat.com>
1682
1683 PR target/82498
1684 * config/i386/i386.md (*ashl<mode>3_mask_1,
1685 *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
1686 *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
1687 patterns.
1688
1689 2017-10-12 Jan Hubicka <hubicka@ucw.cz>
1690
1691 * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
1692 (profile_probability): Set max_probability
1693 to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
1694 in temporaries.
1695 * profile-count.c (profile_probability::differs_from_p): Do not
1696 rely on max_probaiblity == 10000
1697
1698 2017-10-12 Jeff Law <law@redhat.com>
1699
1700 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
1701 negative offsets.
1702
1703 2017-10-12 Martin Sebor <msebor@redhat.com>
1704
1705 PR other/82301
1706 PR c/82435
1707 * cgraphunit.c (maybe_diag_incompatible_alias): New function.
1708 (handle_alias_pairs): Call it.
1709 * common.opt (-Wattribute-alias): New option.
1710 * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
1711 * doc/invoke.texi (-Wattribute-alias): Document.
1712
1713 2017-10-12 Vladimir Makarov <vmakarov@redhat.com>
1714
1715 Revert
1716 2017-10-11 Vladimir Makarov <vmakarov@redhat.com>
1717 PR sanitizer/82353
1718 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
1719 locations.
1720 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
1721 (make_hard_regno_born, make_hard_regno_dead): Update
1722 bb_killed_pseudos and bb_gen_pseudos.
1723
1724 2017-10-12 Jan Hubicka <hubicka@ucw.cz>
1725
1726 * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
1727
1728 2017-10-12 Uros Bizjak <ubizjak@gmail.com>
1729
1730 * config/alpha/alpha.c (alpha_split_conditional_move):
1731 Use std::swap instead of manually swapping.
1732 (alpha_stdarg_optimize_hook): Ditto.
1733 (alpha_canonicalize_comparison): Ditto.
1734
1735 2017-10-12 Bin Cheng <bin.cheng@arm.com>
1736
1737 * tree-loop-distribution.c (struct builtin_info): New struct.
1738 (struct partition): Refactor fields into struct builtin_info.
1739 (partition_free): Free struct builtin_info.
1740 (build_size_arg_loc, build_addr_arg_loc): Delete.
1741 (generate_memset_builtin, generate_memcpy_builtin): Get memory range
1742 information from struct builtin_info.
1743 (find_single_drs): New function refactored from classify_partition.
1744 Also moved builtin validity checks to this function.
1745 (compute_access_range, alloc_builtin): New functions.
1746 (classify_builtin_st, classify_builtin_ldst): New functions.
1747 (classify_partition): Refactor code into functions find_single_drs,
1748 classify_builtin_st and classify_builtin_ldst.
1749 (distribute_loop): Don't do runtime alias check when distributing
1750 loop nest.
1751 (find_seed_stmts_for_distribution): New function.
1752 (pass_loop_distribution::execute): Refactor code finding seed
1753 stmts into above function. Support distribution for the innermost
1754 two-level loop nest. Adjust dump information.
1755
1756 2017-10-12 Bin Cheng <bin.cheng@arm.com>
1757
1758 * tree-loop-distribution.c: Adjust the general comment.
1759 (NUM_PARTITION_THRESHOLD): New macro.
1760 (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
1761 (classify_partition): Skip builtin pattern of loop nest's inner loop.
1762 (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
1763 in call to build_partition_graph.
1764 (finalize_partitions): New parameter. Make loop distribution more
1765 conservative by fusing more partitions.
1766 (distribute_loop): Don't do runtime alias check in case of loop nest
1767 distribution.
1768 (find_seed_stmts_for_distribution): New function.
1769 (prepare_perfect_loop_nest): New function.
1770 (pass_loop_distribution::execute): Refactor code finding seed stmts
1771 and loop nest into above functions. Support loop nest distribution.
1772 Adjust dump information accordingly.
1773
1774 2017-10-12 Bin Cheng <bin.cheng@arm.com>
1775
1776 * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
1777 and set PTYPE_SEQUENTIAL for merged partition.
1778
1779 2017-10-12 Richard Biener <rguenther@suse.de>
1780
1781 PR tree-optimization/69728
1782 Revert
1783 2017-09-19 Richard Biener <rguenther@suse.de>
1784
1785 PR tree-optimization/69728
1786 * graphite-sese-to-poly.c (schedule_error): New global.
1787 (add_loop_schedule): Handle empty domain by failing the
1788 schedule.
1789 (build_original_schedule): Handle schedule_error.
1790
1791 * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
1792 domain by returning an unchanged schedule.
1793
1794 2017-10-12 Jakub Jelinek <jakub@redhat.com>
1795
1796 * genrecog.c (validate_pattern): For VEC_SELECT verify that
1797 CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
1798
1799 2017-10-12 Aldy Hernandez <aldyh@redhat.com>
1800
1801 * Makefile.in (TAGS): Merge all the *.def files into one pattern.
1802 Handle params.def.
1803
1804 2017-10-12 Jakub Jelinek <jakub@redhat.com>
1805
1806 PR c++/82159
1807 * expr.c (store_field): Don't optimize away bitsize == 0 store
1808 from CALL_EXPR with addressable return type.
1809
1810 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org>
1811
1812 * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
1813 * config/rs6000/rs6000.md (sel): Delete mode attribute.
1814 (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
1815 *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
1816 TARGET_ISEL instead of TARGET_ISEL<sel>.
1817
1818 2017-10-11 David Edelsohn <dje.gcc@gmail.com>
1819
1820 * config/rs6000/rs6000.c
1821 (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
1822
1823 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org>
1824
1825 * config/rs6000/predicates.md (zero_constant, all_ones_constant):
1826 Move up in file.
1827 (reg_or_cint_operand): Fix comment.
1828 (reg_or_zero_operand): New predicate.
1829 * config/rs6000/rs6000-protos.h (output_isel): Delete.
1830 * config/rs6000/rs6000.c (output_isel): Delete.
1831 * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
1832 instead of reg_or_cint_operand. Output instruction directly (not via
1833 output_isel).
1834 (isel_unsigned_<mode>): Ditto.
1835 (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
1836 gpc_reg_operand. Add an instruction alternative for this. Output
1837 instruction directly.
1838 (*isel_reversed_unsigned_<mode>): Ditto.
1839
1840 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
1841
1842 * config/i386/i386.c (ix86_canonicalize_comparison): New function.
1843 (TARGET_CANONICALIZE_COMPARISON): Define.
1844
1845 2017-10-11 Qing Zhao <qing.zhao@oracle.com>
1846
1847 PR target/81422
1848 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1849 Check whether the dest is REG before adding REG_EQUIV note.
1850
1851 2017-10-11 Vladimir Makarov <vmakarov@redhat.com>
1852
1853 PR sanitizer/82353
1854 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
1855 locations.
1856 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
1857 (make_hard_regno_born, make_hard_regno_dead): Update
1858 bb_killed_pseudos and bb_gen_pseudos.
1859
1860 2017-10-11 Nathan Sidwell <nathan@acm.org>
1861
1862 * incpath.h (enum incpath_kind): Name enum, prefix values.
1863 (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
1864 * incpath.c (heads, tails): Use INC_MAX.
1865 (add_env_var_paths, add_standard_paths): Use incpath_kind.
1866 (merge_include_chains, split_quote_chain,
1867 register_include_chains): Update incpath_kind names.
1868 (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
1869 * config/darwin-c.c (add_system_framework_path): Update incpath_kind
1870 names.
1871 (add_framework_path, darwin_register_objc_includes): Likewise.
1872 * config/vms/vms-c.c (vms_c_register_includes): Likewise.
1873
1874 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
1875
1876 * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
1877 Do not use float_operator operator predicate.
1878 (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
1879 * config/i386/predicates.md (float_operator): Remove predicate.
1880
1881 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
1882
1883 * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
1884 (*jccxf_i387): Ditto.
1885 (*jcc<mode>_i387): Ditto.
1886 (*jccu<mode>_i387): Ditto.
1887 (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
1888 (*jcc_*_i387 splitters): Remove.
1889 * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
1890 * config/i386/i386.c (ix86_split_fp_branch): Remove.
1891 * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
1892 Remove predicate.
1893
1894 2017-10-11 Jan Hubicka <hubicka@ucw.cz>
1895
1896 * profile-count.h (slow_safe_scale_64bit): New function.
1897 (safe_scale_64bit): New inline.
1898 (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
1899 * profile-count.c: Include wide-int.h
1900 (slow_safe_scale_64bit): New.
1901
1902 2017-10-11 Nathan Sidwell <nathan@acm.org>
1903
1904 * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
1905 HAS_DECL_ASSEMBLER_NAME_P.
1906 * gimple-expr.c (gimple_decl_printable_name: Check
1907 HAS_DECL_ASSEMBLER_NAME_P too.
1908 * ipa-utils.h (type_in_anonymous_namespace_p): Check
1909 DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
1910 (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
1911 * passes.c (rest_of_decl_compilation): Check
1912 HAS_DECL_ASSEMBLER_NAME_P too.
1913 * recog.c (verify_changes): Likewise.
1914 * tree-pretty-print.c (dump_decl_name): Likewise.
1915 * tree-ssa-structalias.c (alias_get_name): Likewise. Reimplement.
1916
1917 * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
1918 (SET_DECL_ASSEMBLER_NAME): Use it.
1919 (DECL_ASSEMBLER_NAME_SET_P): Likewise.
1920 (COPY_DECL_ASSEMBLER_NAME): Likewise.
1921 * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
1922
1923 2017-10-11 Jan Hubicka <hubicka@ucw.cz>
1924
1925 * config.gcc (i386, x86_64): Add extra objects.
1926 * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
1927 (ix86_min_insn_size): Declare.
1928 (ix86_issue_rate): Declare.
1929 (ix86_adjust_cost): Declare.
1930 (ia32_multipass_dfa_lookahead): Declare.
1931 (ix86_macro_fusion_p): Declare.
1932 (ix86_macro_fusion_pair_p): Declare.
1933 (ix86_bd_has_dispatch): Declare.
1934 (ix86_bd_do_dispatch): Declare.
1935 (ix86_core2i7_init_hooks): Declare.
1936 (ix86_atom_sched_reorder): Declare.
1937 * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
1938 (COSTS_N_BYTES): Move to x86-tune-costs.h.
1939 (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
1940 (rip_relative_addr_p): Rename to ...
1941 (ix86_rip_relative_addr_p): ... this one; export.
1942 (memory_address_length): Update.
1943 (ix86_issue_rate): Move to x86-tune-sched.c.
1944 (ix86_flags_dependent): Move to x86-tune-sched.c.
1945 (ix86_agi_dependent): Move to x86-tune-sched.c.
1946 (exact_dependency_1): Move to x86-tune-sched.c.
1947 (exact_store_load_dependency): Move to x86-tune-sched.c.
1948 (ix86_adjust_cost): Move to x86-tune-sched.c.
1949 (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
1950 (ix86_macro_fusion_p): Move to x86-tune-sched.c.
1951 (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
1952 (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
1953 (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
1954 (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
1955 (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
1956 (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
1957 (min_insn_size): Rename to ...
1958 (ix86_min_insn_size): ... this one; export.
1959 (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
1960 (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
1961 (core2i7_first_cycle_multipass_backtrack): Move to
1962 x86-tune-sched-core.c.
1963 (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
1964 (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
1965 (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
1966 (ix86_avoid_jump_mispredicts): Update.
1967 (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
1968 (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
1969 (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
1970 (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
1971 (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
1972 (MAX_INSN): Move to ix86-tune-sched-bd.c.
1973 (MAX_IMM): Move to ix86-tune-sched-bd.c.
1974 (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
1975 (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
1976 (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
1977 (MAX_LOAD): Move to ix86-tune-sched-bd.c.
1978 (MAX_STORE): Move to ix86-tune-sched-bd.c.
1979 (BIG): Move to ix86-tune-sched-bd.c.
1980 (enum dispatch_group): Move to ix86-tune-sched-bd.c.
1981 (enum insn_path): Move to ix86-tune-sched-bd.c.
1982 (get_mem_group): Move to ix86-tune-sched-bd.c.
1983 (is_cmp): Move to ix86-tune-sched-bd.c.
1984 (dispatch_violation): Move to ix86-tune-sched-bd.c.
1985 (is_branch): Move to ix86-tune-sched-bd.c.
1986 (is_prefetch): Move to ix86-tune-sched-bd.c.
1987 (init_window): Move to ix86-tune-sched-bd.c.
1988 (allocate_window): Move to ix86-tune-sched-bd.c.
1989 (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
1990 (is_end_basic_block): Move to ix86-tune-sched-bd.c.
1991 (process_end_window): Move to ix86-tune-sched-bd.c.
1992 (allocate_next_window): Move to ix86-tune-sched-bd.c.
1993 (find_constant): Move to ix86-tune-sched-bd.c.
1994 (get_num_immediates): Move to ix86-tune-sched-bd.c.
1995 (has_immediate): Move to ix86-tune-sched-bd.c.
1996 (get_insn_path): Move to ix86-tune-sched-bd.c.
1997 (get_insn_group): Move to ix86-tune-sched-bd.c.
1998 (count_num_restricted): Move to ix86-tune-sched-bd.c.
1999 (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
2000 (add_insn_window): Move to ix86-tune-sched-bd.c.
2001 (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
2002 (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
2003 (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
2004 (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
2005 (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
2006 (do_dispatch): Move to ix86-tune-sched-bd.c.
2007 (has_dispatch): Move to ix86-tune-sched-bd.c.
2008 * config/i386/t-i386: Add new object files.
2009 * config/i386/x86-tune-costs.h: New file.
2010 * config/i386/x86-tune-sched-atom.c: New file.
2011 * config/i386/x86-tune-sched-bd.c: New file.
2012 * config/i386/x86-tune-sched-core.c: New file.
2013 * config/i386/x86-tune-sched.c: New file.
2014
2015 2017-10-11 Liu Hao <lh_mouse@126.com>
2016
2017 * pretty-print.c [_WIN32] (colorize_init): Remove. Use
2018 the generic version below instead.
2019 (should_colorize): Recognize Windows consoles as terminals
2020 for MinGW targets.
2021 * pretty-print.c [__MINGW32__] (write_all): New function.
2022 [__MINGW32__] (find_esc_head): Likewise.
2023 [__MINGW32__] (find_esc_terminator): Likewise.
2024 [__MINGW32__] (eat_esc_sequence): Likewise.
2025 [__MINGW32__] (mingw_ansi_fputs): New function that handles
2026 ANSI escape codes.
2027 (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
2028 for MinGW targets.
2029
2030 2017-10-11 Richard Biener <rguenther@suse.de>
2031
2032 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
2033 Properly call analyze_scalar_evolution with the loop of the stmt.
2034
2035 2017-10-11 Richard Biener <rguenther@suse.de>
2036
2037 * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
2038 * tree-core.h (tree_base): Add chrec_var union member.
2039 * tree.h (CHREC_VAR): Remove.
2040 (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
2041 * tree-chrec.h (build_polynomial_chrec): Adjust.
2042 * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
2043 * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
2044
2045 2017-10-11 Marc Glisse <marc.glisse@inria.fr>
2046
2047 * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
2048 * match.pd: ... here.
2049 ((T) X == (T) Y): Relax condition.
2050
2051 2017-10-11 Bin Cheng <bin.cheng@arm.com>
2052
2053 PR tree-optimization/82472
2054 * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
2055 comment.
2056 (break_alias_scc_partitions): Update postorder number.
2057
2058 2017-10-11 Martin Liska <mliska@suse.cz>
2059
2060 PR sanitizer/82490
2061 * opts.c (parse_no_sanitize_attribute): Do not use error_value
2062 variable.
2063 * opts.h (parse_no_sanitize_attribute): Remove last argument.
2064
2065 2017-10-11 Martin Liska <mliska@suse.cz>
2066
2067 * print-rtl.c (print_insn): Move declaration of idbuf
2068 to same scope as name.
2069
2070 2017-10-11 Martin Liska <mliska@suse.cz>
2071
2072 Revert r253637:
2073
2074 PR sanitizer/82484
2075 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
2076 volatile arguments.
2077
2078 2017-10-11 Martin Liska <mliska@suse.cz>
2079
2080 PR sanitizer/82484
2081 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
2082 volatile arguments.
2083
2084 2017-10-11 Adhemerval Zanella <adhemerval.zanella@linaro.org>
2085
2086 * config.gcc (default_gnu_indirect_function): Default to yes for
2087 arm*-*-linux* with glibc.
2088
2089 2017-10-11 Richard Biener <rguenther@suse.de>
2090
2091 * tree-scalar-evolution.c (get_scalar_evolution): Handle
2092 default-defs and types we do not want to analyze.
2093 (interpret_loop_phi): Replace unreachable code with an assert.
2094 (compute_scalar_evolution_in_loop): Remove and inline ...
2095 (analyze_scalar_evolution_1): ... here, replacing condition with
2096 what makes the intent clearer. Remove handling of cases
2097 get_scalar_evolution now handles.
2098
2099 2017-10-10 Jim Wilson <wilson@tuliptree.org>
2100
2101 PR rtl-optimization/81434
2102 * haifa-sched.c (prune_ready_list): Init min_cost_group to 0. Update
2103 comment for main loop. In sched_group_found if, also add checks for
2104 pass and min_cost_group.
2105
2106 2017-10-10 Segher Boessenkool <segher@kernel.crashing.org>
2107
2108 * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
2109 (rs6000_insn_cost): New function.
2110 * config/rs6000/rs6000.md (cost): New attribute.
2111
2112 2017-10-10 Jakub Jelinek <jakub@redhat.com>
2113 H.J. Lu <hongjiu.lu@intel.com>
2114
2115 PR target/79565
2116 PR target/82483
2117 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
2118 OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
2119 __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
2120 (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
2121 to OPTION_MASK_ISA_AVX512VL - builtins that have both
2122 OPTION_MASK_ISA_MMX and some other bit set require both
2123 mmx and the ISAs without the mmx bit.
2124 * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
2125 __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
2126 __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
2127 __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
2128 __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
2129 __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
2130 __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
2131 __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
2132 __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
2133 __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
2134 __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
2135 __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
2136 __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
2137 __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
2138 Add OPTION_MASK_ISA_MMX.
2139
2140 2017-10-10 Andreas Tobler <andreast@gcc.gnu.org>
2141
2142 * config.gcc (armv7*-*-freebsd*): New target.
2143 (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
2144
2145 2017-10-10 Jan Hubicka <hubicka@ucw.cz>
2146
2147 * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
2148 X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
2149 spot in the file.
2150
2151 2017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
2152
2153 * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
2154 a template parameter.
2155 (WIDE_INT_REF_FOR): Update accordingly.
2156 * tree.h (wi::int_traits <const_tree>): Delete.
2157 (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
2158 (wi::to_widest, wi::to_offset): Use them. Expand commentary.
2159 (wi::tree_to_wide_ref): New typedef.
2160 (wi::to_wide): New function.
2161 * calls.c (get_size_range): Use wi::to_wide when operating on
2162 trees as wide_ints.
2163 * cgraph.c (cgraph_node::create_thunk): Likewise.
2164 * config/i386/i386.c (ix86_data_alignment): Likewise.
2165 (ix86_local_alignment): Likewise.
2166 * dbxout.c (stabstr_O): Likewise.
2167 * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
2168 * expr.c (const_vector_from_tree): Likewise.
2169 * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
2170 * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
2171 (fold_negate_expr_1, int_const_binop_1, const_binop)
2172 (fold_convert_const_int_from_real, optimize_bit_field_compare)
2173 (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
2174 (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
2175 (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
2176 (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
2177 (fold_not_const, round_up_loc): Likewise.
2178 * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
2179 * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
2180 (alloca_call_type): Likewise.
2181 * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
2182 * godump.c (go_output_typedef): Likewise.
2183 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
2184 * internal-fn.c (get_min_precision): Likewise.
2185 * ipa-cp.c (ipcp_store_vr_results): Likewise.
2186 * ipa-polymorphic-call.c
2187 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
2188 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
2189 (ipa_modify_call_arguments): Likewise.
2190 * match.pd: Likewise.
2191 * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
2192 * print-tree.c (print_node_brief, print_node): Likewise.
2193 * stmt.c (expand_case): Likewise.
2194 * stor-layout.c (layout_type): Likewise.
2195 * tree-affine.c (tree_to_aff_combination): Likewise.
2196 * tree-cfg.c (group_case_labels_stmt): Likewise.
2197 * tree-data-ref.c (dr_analyze_indices): Likewise.
2198 (prune_runtime_alias_test_list): Likewise.
2199 * tree-dump.c (dequeue_and_dump): Likewise.
2200 * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
2201 * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
2202 * tree-pretty-print.c (dump_generic_node): Likewise.
2203 * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
2204 (simple_iv_with_niters): Likewise.
2205 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
2206 * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
2207 * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
2208 * tree-ssa-loop-niter.c (split_to_var_and_offset)
2209 (refine_value_range_using_guard, number_of_iterations_ne_max)
2210 (number_of_iterations_lt_to_ne, number_of_iterations_lt)
2211 (get_cst_init_from_scev, record_nonwrapping_iv)
2212 (scev_var_range_cant_overflow): Likewise.
2213 * tree-ssa-phiopt.c (minmax_replacement): Likewise.
2214 * tree-ssa-pre.c (compute_avail): Likewise.
2215 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
2216 (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
2217 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
2218 * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
2219 * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
2220 * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
2221 (dump_case_nodes, try_switch_expansion): Likewise.
2222 * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
2223 (vect_do_peeling): Likewise.
2224 * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
2225 * tree-vect-stmts.c (vectorizable_load): Likewise.
2226 * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
2227 (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
2228 (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
2229 (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
2230 (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
2231 (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
2232 (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
2233 (evrp_dom_walker::before_dom_children): Likewise.
2234 * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
2235 (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
2236 (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
2237 (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
2238 (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
2239 (get_range_pos_neg): Likewise.
2240 * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
2241 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
2242 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
2243 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
2244 * config/avr/avr.c (avr_fold_builtin): Likewise.
2245 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
2246 * config/msp430/msp430.c (msp430_attr): Likewise.
2247 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
2248 * config/powerpcspe/powerpcspe-c.c
2249 (altivec_resolve_overloaded_builtin): Likewise.
2250 * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
2251 (rs6000_expand_ternop_builtin): Likewise.
2252 * config/rs6000/rs6000-c.c
2253 (altivec_resolve_overloaded_builtin): Likewise.
2254 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
2255 (rs6000_expand_ternop_builtin): Likewise.
2256 * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
2257
2258 2017-10-10 Bin Cheng <bin.cheng@arm.com>
2259
2260 * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
2261 when copying loop nest with only one inner loop.
2262
2263 2017-10-10 Richard Biener <rguenther@suse.de>
2264
2265 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
2266 blocks if SCEV is active.
2267 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
2268 dead code.
2269 (analyze_scalar_evolution): Handle cached evolutions the obvious way.
2270 (scev_initialize): Assert we are not yet initialized.
2271
2272 2017-10-10 Bin Cheng <bin.cheng@arm.com>
2273
2274 * tree-loop-distribution.c (generate_loops_for_partition): Remove
2275 inner loop's exit stmt by making it always exit the loop, otherwise
2276 we would generate an infinite empty loop.
2277
2278 2017-10-10 Bin Cheng <bin.cheng@arm.com>
2279
2280 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
2281 renaming variables in new preheader if it's deleted.
2282
2283 2017-10-10 Bin Cheng <bin.cheng@arm.com>
2284
2285 * tree-loop-distribution.c (struct partition): Remove unused field
2286 loops of the structure.
2287 (partition_alloc, partition_free): Ditto.
2288 (build_rdg_partition_for_vertex): Ditto.
2289
2290 2017-10-09 Jeff Law <law@redhat.com>
2291
2292 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
2293 return type to match prototype and documentation.
2294
2295 2010-10-09 Segher Boessenkool <segher@kernel.crashing.org>
2296
2297 * config/rs6000/rs6000.c (processor_costs): Move to ...
2298 * config/rs6000/rs6000.h: ... here.
2299 (rs6000_cost): Declare.
2300
2301 2017-10-09 Eric Botcazou <ebotcazou@adacore.com>
2302
2303 * except.c (setjmp_fn): New global variable.
2304 (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
2305 (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
2306 if DONT_USE_BUILTIN_SETJMP is defined.
2307
2308 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
2309
2310 * target.def (insn_cost): New hook.
2311 * doc/tm.texi.in (TARGET_INSN_COST): New hook.
2312 * doc/tm.texi: Regenerate.
2313 * rtlanal.c (insn_cost): Use the new hook.
2314
2315 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
2316
2317 * combine.c (combine_validate_cost): Compute the new insn_cost,
2318 not just pattern_cost.
2319 (try_combine): Adjust comment.
2320
2321 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
2322
2323 * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
2324 insn_cost.
2325 * combine.c (uid_insn_cost): Adjust comment.
2326 (combine_validate_cost): Adjust comment. Use pattern_cost instead
2327 of insn_rtx_cost
2328 (combine_instructions): Use insn_cost instead of insn_rtx_cost.
2329 * dse.c (find_shift_sequence): Ditto.
2330 * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
2331 (bb_valid_for_noce_process_p): Use pattern_cost.
2332 * rtl.h (insn_rtx_cost): Delete.
2333 (pattern_cost): New prototype.
2334 (insn_cost): New prototype.
2335 * rtlanal.c (insn_rtx_cost): Rename to...
2336 (pattern_cost): ... this.
2337 (insn_cost): New.
2338
2339 2017-10-09 Uros Bizjak <ubizjak@gmail.com>
2340
2341 * config/i386/i386.md (*jcc_2): Remove insn pattern.
2342 (*jcc<mode>_0_r_i387): Ditto.
2343 (*jccxf_r_i387): Ditto.
2344 (*jcc<mode>_r_i387): Ditto.
2345 (*jccu<mode>_r_i387): Ditto.
2346 (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
2347 (*jcc): Rename from *jcc_1.
2348
2349 2017-10-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2350
2351 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
2352 deferred rescans after the lvx/stvx recombination pre-pass.
2353
2354 2017-10-09 Michael Meissner <meissner@linux.vnet.ibm.com>
2355
2356 * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
2357 memory operation instruction support.
2358 * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
2359 (rs6000-ibm-aix[789]*): Likewise.
2360 * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
2361 Document new functions.
2362
2363 2017-10-09 Richard Biener <rguenther@suse.de>
2364
2365 PR tree-optimization/82397
2366 * tree-data-ref.c (data_ref_compare_tree): Make sure to return
2367 equality only for semantically equal trees.
2368
2369 2017-10-09 Richard Biener <rguenther@suse.de>
2370
2371 PR tree-optimization/82449
2372 * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
2373 * tree-chrec.h (evolution_function_is_constant_p): Adjust to
2374 allow constant addresses.
2375 * tree-chrec.c (scev_is_linear_expression): Constant evolutions
2376 are linear.
2377
2378 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2379
2380 * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
2381 flags.
2382
2383 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2384
2385 PR target/82463
2386 * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
2387 definitions.
2388
2389 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2390
2391 PR target/82465
2392 * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
2393
2394 2017-10-09 Jakub Jelinek <jakub@redhat.com>
2395
2396 PR target/82464
2397 * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
2398 s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
2399
2400 2017-10-09 Richard Sandiford <richard.sandiford@linaro.org>
2401
2402 * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
2403 (WI_BINARY_PREDICATE_RESULT): Likewise.
2404 (wi::binary_traits::operator_result): New type.
2405 (wi::binary_traits::predicate_result): Likewise.
2406 (generic_wide_int::operator~, unary generic_wide_int::operator-)
2407 (generic_wide_int::operator==, generic_wide_int::operator!=)
2408 (generic_wide_int::operator&, generic_wide_int::and_not)
2409 (generic_wide_int::operator|, generic_wide_int::or_not)
2410 (generic_wide_int::operator^, generic_wide_int::operator+
2411 (binary generic_wide_int::operator-, generic_wide_int::operator*):
2412 Delete.
2413 (operator~, unary operator-, operator==, operator!=, operator&)
2414 (operator|, operator^, operator+, binary operator-, operator*): New
2415 functions.
2416 * expr.c (get_inner_reference): Use wi::bit_and_not.
2417 * fold-const.c (fold_binary_loc): Likewise.
2418 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
2419 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
2420 (bit_value_binop): Likewise.
2421 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
2422 * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
2423 (extract_range_from_binary_expr_1): Likewise.
2424 (masked_increment): Likewise.
2425 (simplify_bit_ops_using_ranges): Likewise.
2426
2427 2017-10-09 Martin Jambor <mjambor@suse.cz>
2428
2429 PR hsa/82416
2430 * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
2431 * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
2432 (hsa_type_for_scalar_tree_type): Use it. Always force min32int for
2433 COMPLEX types.
2434 (hsa_fixup_mov_insn_type): New function.
2435 (hsa_op_with_type::get_in_type): Use it.
2436 (hsa_build_append_simple_mov): Likewise. Allow sub-32bit
2437 immediates in an assert.
2438 (hsa_op_with_type::extend_int_to_32bit): New method.
2439 (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
2440 types. Convert to dest type if necessary.
2441 (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
2442 (reg_for_gimple_ssa): Pass false as min32int to
2443 hsa_type_for_scalar_tree_type.
2444 (gen_hsa_addr): Fixup type when creating addresable temporary.
2445 (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
2446 (gen_hsa_unary_operation): Extend operands and convert to dest type if
2447 necessary. Call hsa_fixup_mov_insn_type.
2448 (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
2449 extend operands and convert to dest type if necessary.
2450 (gen_hsa_insns_for_operation_assignment): Extend operands and convert
2451 to dest type if necessary.
2452 (set_output_in_type): Call hsa_fixup_mov_insn_type. Just ude dest
2453 if conversion nt necessary and size matches.
2454 (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
2455 to dest type if necessary.
2456 (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
2457 (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
2458 necessary.
2459 (gen_hsa_clrsb): Likewise.
2460 (gen_hsa_ffs): Likewise.
2461 (gen_hsa_divmod): Extend operands and convert to dest type if
2462 necessary.
2463 (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
2464
2465 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org>
2466
2467 * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
2468 Remove empty default arguments. Use a brace block as output
2469 statement.
2470 (conditional return): Ditto.
2471 (jump): Ditto.
2472 (indirect_jump): Ditto. Use b%T0 instead of bctr/blr.
2473 (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
2474 Ditto.
2475 (group_ending_nop): Ditto.
2476 (doloop_end): Ditto.
2477 (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
2478 (splitters for those): Ditto.
2479
2480 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org>
2481
2482 * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
2483 a conditional jump (and the compare for it) so that pc_rtx is the
2484 last operand.
2485 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
2486 for the deleted and renamed ctr<mode>_internal[234] patterns.
2487 * config/rs6000/rs6000.md: Delete second conditional branch pattern.
2488 Delete second conditional return pattern.
2489 (ctr<mode>_internal2): Delete this second bdnz pattern.
2490 (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
2491 (ctr<mode>_internal4): Delete this second bdz pattern.
2492
2493 2017-10-08 Eric Botcazou <ebotcazou@adacore.com>
2494
2495 * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
2496 (always_initialized_rtx_for_ssa_name_p): New predicate.
2497 * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
2498 (finish_out_of_ssa): Free new field of SA.
2499 * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
2500 * tree-ssa-coalesce.c: Include tree-ssa.h.
2501 (get_parm_default_def_partitions): Remove extern keyword.
2502 (get_undefined_value_partitions): New function.
2503 * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
2504 not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
2505 uninitialized bits.
2506 * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
2507
2508 2017-10-08 Eric Botcazou <ebotcazou@adacore.com>
2509
2510 * builtins.def (BUILT_IN_SETJMP): Revert latest change.
2511
2512 2017-10-08 Jan Hubicka <hubicka@ucw.cz>
2513
2514 * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
2515 for targets that preffer 128bit.
2516
2517 2017-10-08 Jan Hubicka <hubicka@ucw.cz>
2518
2519 * config/i386/i386.c (has_dispatch): Disable for Ryzen.
2520
2521 2017-10-08 Olivier Hainque <hainque@adacore.com>
2522
2523 * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
2524 on the target mem instead of RTX_FRAME_RELATED_P on the insn to
2525 prevent DSE.
2526 (thumb_set_return_address): Likewise.
2527
2528 2017-10-08 Olivier Hainque <hainque@adacore.com>
2529
2530 * common/config/arm/arm-common.c (arm_except_unwind_info):
2531 Handle DWARF2_UNWIND_INFO.
2532
2533 2017-10-07 Michael Collison <michael.collison@arm.com>
2534
2535 * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
2536 New pattern.
2537
2538 2017-10-07 Eric Botcazou <ebotcazou@adacore.com>
2539
2540 * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
2541 of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
2542 * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
2543 defined, force the creation of a new block for a dispatch label.
2544
2545 2017-10-07 Jan Hubicka <hubicka@ucw.cz>
2546
2547 * invoke.texi (Wsuggest-attribute=cold): Document.
2548 * common.opt (Wsuggest-attribute=cold): New
2549 * ipa-pure-const.c (warn_function_cold): New function.
2550 * predict.c (compute_function_frequency): Use it.
2551 * predict.h (warn_function_cold): Declare.
2552
2553 2017-10-06 Jan Hubicka <hubicka@ucw.cz>
2554
2555 * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
2556 Update profile.
2557
2558 2017-10-06 Martin Liska <mliska@suse.cz>
2559
2560 * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
2561 keyword for member functions.
2562 (struct sanopt_tree_couple): New struct.
2563 (struct sanopt_tree_couple_hash): New function.
2564 (struct sanopt_ctx): Add new hash_map.
2565 (has_dominating_ubsan_ptr_check): New function.
2566 (record_ubsan_ptr_check_stmt): Likewise.
2567 (maybe_optimize_ubsan_ptr_ifn): Likewise.
2568 (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
2569 (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
2570
2571 2017-10-06 Sudakshina Das <sudi.das@arm.com>
2572
2573 PR target/82440
2574 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
2575 aarch64_simd_valid_immediate on CONST_VECTORs.
2576 (aarch64_reg_or_bic_imm): Likewise.
2577
2578 2017-10-06 Wilco Dijkstra <wdijkstr@arm.com>
2579
2580 PR rtl-optimization/82396
2581 * haifa-sched.c (ready_sort_real): Disable qsort checking.
2582
2583 2017-10-06 Sebastian Pop <sebpop@gmail.com>
2584
2585 * graphite-dependences.c (scop_get_reads): Move code to...
2586 (scop_get_must_writes): Move code to...
2587 (scop_get_may_writes): Move code to...
2588 (scop_get_reads_and_writes): ... here.
2589 (scop_get_dependences): Call scop_get_reads_and_writes.
2590
2591 2017-10-06 Jakub Jelinek <jakub@redhat.com>
2592
2593 PR tree-optimization/82434
2594 * fold-const.h (can_native_encode_type_p,
2595 can_native_encode_string_p): Remove.
2596 * fold-const.c (native_encode_int): Formatting fixes. If ptr is NULL,
2597 don't encode anything, just return what would be otherwise returned.
2598 (native_encode_fixed, native_encode_complex, native_encode_vector):
2599 Likewise.
2600 (native_encode_string): Likewise. Inline by hand
2601 can_native_encode_string_p.
2602 (can_native_encode_type_p): Remove.
2603 (can_native_encode_string_p): Remove.
2604 * tree-vect-stmts.c (vectorizable_store): Instead of testing just
2605 STRING_CSTs using can_native_encode_string_p, test all
2606 CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
2607 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
2608 argument from native_encode_expr.
2609 (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
2610 (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
2611 but just 2.
2612
2613 2017-10-06 Richard Biener <rguenther@suse.de>
2614
2615 PR tree-optimization/82397
2616 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
2617 operand_equal_p but rely on data_ref_compare_tree for detecting
2618 equalities.
2619 (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
2620 to match up with dr_group_sort_cmp.
2621
2622 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2623
2624 PR target/82322
2625 * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
2626 builtin.
2627 * config/s390/s390-builtin-types.def: Regenerate.
2628
2629 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2630
2631 PR target/82317
2632 * config/s390/s390-builtin-types.def: Regenerate.
2633 * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
2634 Change flag from B_VXE to B_VX.
2635 (s390_vec_min_dbl): Remove B_VXE flag.
2636
2637 2017-10-06 Richard Biener <rguenther@suse.de>
2638
2639 * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
2640 (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
2641 translate_isl_ast_to_gimple::is_valid_rename,
2642 translate_isl_ast_to_gimple::get_rename,
2643 translate_isl_ast_to_gimple::get_def_bb_for_const,
2644 translate_isl_ast_to_gimple::get_new_name,
2645 translate_isl_ast_to_gimple::collect_all_ssa_names,
2646 translate_isl_ast_to_gimple::copy_loop_phi_args,
2647 translate_isl_ast_to_gimple::collect_all_ssa_names,
2648 translate_isl_ast_to_gimple::copy_loop_phi_args,
2649 translate_isl_ast_to_gimple::copy_loop_phi_nodes,
2650 translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
2651 translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
2652 translate_isl_ast_to_gimple::copy_loop_close_phi_args,
2653 translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
2654 translate_isl_ast_to_gimple::copy_cond_phi_args,
2655 translate_isl_ast_to_gimple::copy_cond_phi_nodes,
2656 translate_isl_ast_to_gimple::edge_for_new_close_phis,
2657 translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
2658 translate_isl_ast_to_gimple::rename_uses,
2659 translate_isl_ast_to_gimple::rename_all_uses): Remove.
2660 (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
2661 (set_rename_for_each_def): Likewise.
2662 (graphite_copy_stmts_from_block): Handle debug stmt resetting
2663 here. Handle rewriting SCEV analyzable uses here.
2664 (copy_bb_and_scalar_dependences): Generate code for PHI
2665 copy-in/outs.
2666 (graphite_regenerate_ast_isl): Adjust.
2667 * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
2668 (add_write, add_read): New functions.
2669 (build_cross_bb_scalars_def): Use it and simplify.
2670 (build_cross_bb_scalars_use): Likewise.
2671 (graphite_find_cross_bb_scalar_vars): Inline into...
2672 (try_generate_gimple_bb): ...here. Add dependences for PHIs,
2673 simulating out-of-SSA. Compute liveout and add dependencies.
2674 (build_scops): Force an empty entry block.
2675 * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
2676 members.
2677 (sese_build_liveouts): Declare.
2678 (sese_trivially_empty_bb_p): Likewise.
2679 * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
2680 compute liveout and debug_liveout.
2681 (sese_bad_liveouts_use): Remove.
2682 (sese_reset_debug_liveouts_bb): Likewise.
2683 (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
2684 (sese_build_liveouts): Build liveout and debug_liveout and store
2685 it in region.
2686 (new_sese_info): Adjust.
2687 (free_sese_info): Likewise.
2688 (sese_insert_phis_for_liveouts): Reset debug stmts from here,
2689 do not build liveout here.
2690 (move_sese_in_condition): Adjust region entry.
2691 (scev_analyzable_p): Match up with chrec_apply requirements.
2692 (sese_trivially_empty_bb_p): New.
2693 * tree-into-ssa.c (get_reaching_def): Properly support generating
2694 default-defs for incremental rewrite of anonymous names.
2695
2696 2017-10-06 Richard Biener <rguenther@suse.de>
2697
2698 * graphite-sese-to-poly.c (extract_affine): For casts increasing
2699 precision do not perform modulo reduction.
2700
2701 2017-10-06 Richard Biener <rguenther@suse.de>
2702
2703 PR tree-optimization/82436
2704 * tree-vect-slp.c (vect_supported_load_permutation_p): More
2705 conservatively choose the vectorization factor when checking
2706 whether we can perform the required load permutation.
2707 (vect_transform_slp_perm_load): Assert when we may not fail.
2708
2709 2017-10-05 Segher Boessenkool <segher@kernel.crashing.org>
2710
2711 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
2712 message for incompatible -msdata=* and -mcall-* options.
2713
2714 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
2715
2716 * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
2717 rate for post-reload scheduling.
2718
2719 2017-10-05 Tamar Christina <tamar.christina@arm.com>
2720
2721 * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
2722
2723 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
2724
2725 * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
2726 to improve monte carlo in scimark.
2727
2728 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
2729
2730 * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
2731 pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
2732 athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
2733 pentium4_cost, nocona_cost): Set reassociation width to 1.
2734 (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
2735 width to 2 for fp operations and 1 otherwise.
2736 (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
2737 for int and fp.
2738 (atom_cost): Set reassociation width to 2.
2739 (slm_cost, generic_cost): Set fp reassociation width
2740 to 2 and 1 otherwise.
2741 (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
2742 (core_cost): Set fp reassociation width to 4 and vector to 2.
2743 (ix86_reassociation_width): Rewrite using cost table; special case
2744 plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
2745 and TARGET_AVX128_OPTIMAL.
2746 * config/i386/i386.h (processor_costs): Add
2747 reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
2748 (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
2749 TARGET_REASSOC_FP_TO_PARALLEL): Remove.
2750 * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
2751 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
2752 (X86_TUNE_VECTOR_PARALLEL_EXECUTION): Remove.
2753
2754 2017-10-05 Nathan Sidwell <nathan@acm.org>
2755
2756 * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
2757
2758 2017-10-05 Tamar Christina <tamar.christina@arm.com>
2759
2760 * config/arm/arm.c (arm_test_fpu_data): New.
2761 (arm_run_selftests): Call arm_test_fpu_data.
2762
2763 2017-10-04 Nathan Sidwell <nathan@acm.org>
2764
2765 * toplev.c (toplev::main): Remove excess parens on pretty_printer
2766 decl.
2767 * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
2768
2769 2017-10-04 Sudakshina Das <sudi.das@arm.com>
2770
2771 * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
2772 check type for aarch64_simd_valid_immediate.
2773 (aarch64_output_simd_mov_immediate): Update prototype.
2774 (aarch64_simd_valid_immediate): Update prototype.
2775 * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
2776 support for ORR-immediate.
2777 (and<mode>3): modified pattern to add support for BIC-immediate.
2778 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
2779 now checks for valid immediate for BIC and ORR based on new enum
2780 argument.
2781 (aarch64_output_simd_mov_immediate): Function now used to output
2782 BIC/ORR imm as well based on new enum argument.
2783 * config/aarch64/constraints.md (Do): New vector immediate constraint.
2784 (Db) : Likewise.
2785 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
2786 (aarch64_reg_or_bic_imm): Likewise.
2787
2788 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2789
2790 * config/s390/vx-builtins.md ("vec_mergeh<mode>")
2791 ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
2792
2793 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com>
2794
2795 Revert r253399:
2796
2797 PR rtl-optimization/82396
2798 * haifa-sched.c (autopref_multipass_init): Simplify
2799 initialization.
2800 (autopref_rank_data): Simplify sort order.
2801 * sched-int.h (autopref_multipass_data_): Remove
2802 multi_mem_insn_p, min_offset and max_offset.
2803
2804 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2805
2806 * doc/sourcebuild.texi: Document vect_peeling_profitable.
2807
2808 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2809
2810 * doc/sourcebuild.texi: Document vect_intdouble_cvt and
2811 vect_doubleint_cvt.
2812
2813 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2814
2815 * doc/sourcebuild.texi: Document vect_long_mult.
2816
2817 2017-10-04 Richard Sandiford <richard.sandiford@linaro.org>
2818
2819 PR tree-optimization/82413
2820 * fold-const.c (build_range_check): Use widest_int when comparing
2821 the maximum ETYPE value with HIGH.
2822
2823 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com>
2824
2825 PR rtl-optimization/82396
2826 * haifa-sched.c (autopref_multipass_init): Simplify
2827 initialization.
2828 (autopref_rank_data): Simplify sort order.
2829 * sched-int.h (autopref_multipass_data_): Remove
2830 multi_mem_insn_p, min_offset and max_offset.
2831
2832 2017-10-04 Jakub Jelinek <jakub@redhat.com>
2833
2834 PR tree-optimization/82381
2835 * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
2836 oeN->rank first. Return 1 or -1 if one op is SSA_NAME and the other
2837 is not.
2838
2839 PR tree-optimization/82374
2840 * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
2841 DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
2842 DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
2843 current_function_decl to the new decl.
2844
2845 2017-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2846
2847 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
2848 helper macro for IEEE float128 hardware built-in functions.
2849 (SQRTF128_ODD): Add built-in functions with the round-to-odd
2850 semantics.
2851 (TRUNCF128_ODD): Likewise.
2852 (ADDF128_ODD): Likewise.
2853 (SUBF128_ODD): Likewise.
2854 (MULF128_ODD): Likewise.
2855 (DIVF128_ODD): Likewise.
2856 (FMAF128_ODD): Likewise.
2857 * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
2858 UNSPEC_TRUNC_ROUND_TO_ODD.
2859 (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
2860 (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
2861 floating point round to odd instructions.
2862 (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
2863 (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
2864 (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
2865 (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
2866 (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
2867 (trunc<mode>sf2_hw): Change the truncate with round to odd
2868 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
2869 (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
2870 to odd hardware instructions.
2871 (sub<mode>3_odd): Likewise.
2872 (mul<mode>3_odd): Likewise.
2873 (div<mode>3_odd): Likewise.
2874 (sqrt<mode>2_odd): Likewise.
2875 (fma<mode>4_odd): Likewise.
2876 (fms<mode>4_odd): Likewise.
2877 (nfma<mode>4_odd): Likewise.
2878 (nfms<mode>4_odd): Likewise.
2879 (trunc<mode>df2_odd): Change the truncate with round to odd
2880 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. Add a generator
2881 function.
2882 * doc/extend.texi (PowerPC built-in functions): Update documentation
2883 for existing IEEE float128-bit built-in functions. Add built-in
2884 functions that generate the IEEE 128-bit floating point round to
2885 odd instructions.
2886
2887 2017-10-03 Segher Boessenkool <segher@kernel.crashing.org>
2888
2889 PR rtl-optimization/77729
2890 * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
2891 to (X&(C1&~C2))|C2 transformations.
2892
2893 2017-10-03 Martin Jambor <mjambor@suse.cz>
2894
2895 PR tree-optimization/82363
2896 * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
2897 mismatch, mark lacc written regardless of racc.
2898
2899 2017-10-03 Jakub Jelinek <jakub@redhat.com>
2900
2901 PR tree-optimization/82381
2902 * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
2903 stmt_to_insert nor wheather SSA_NAMEs are default defs.
2904 Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
2905 fallthrough into reassoc_stmt_dominates_stmt_p.
2906
2907 PR target/82386
2908 * combine.c (combine_instructions): Don't combine in unreachable
2909 basic blocks.
2910
2911 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
2912
2913 PR target/80210
2914 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
2915 function to not use the have_cpu variable. Do not set cpu_index,
2916 rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
2917 or the default cpu.
2918 (rs6000_valid_attribute_p): Remove duplicate initializations of
2919 old_optimize and func_optimize.
2920 (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
2921 (rs6000_activate_target_options): Make global.
2922 * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
2923 prototype.
2924
2925 2017-10-02 Jakub Jelinek <jakub@redhat.com>
2926
2927 * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
2928 if *poffset + *pmax_size overflows in HOST_WIDE_INT.
2929 Set *poffset to 0 and *psize and *pmax_size to -1 if
2930 *poffset + *psize overflows in HOST_WIDE_INT.
2931
2932 PR tree-optimization/82387
2933 PR tree-optimization/82388
2934 PR tree-optimization/82389
2935 * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
2936 instead of live_bytes non-NULL.
2937
2938 2017-10-02 Georg-Johann Lay <avr@gjlay.de>
2939
2940 PR target/41076
2941 * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
2942 alternative.
2943
2944 2017-10-02 Richard Biener <rguenther@suse.de>
2945
2946 * graphite-isl-ast-to-gimple.c (set_codegen_error): With
2947 -fchecking and --param graphite-allow-codegen-errors=0 ICE.
2948 * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
2949
2950 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org>
2951
2952 * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
2953 requested precision matches the type's.
2954 * calls.c (alloc_max_size): Calculate the new candidate size as
2955 a widest_int and use wi::to_widest when comparing it with the
2956 current candidate size.
2957 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
2958 zero rather than integer_zero_node.
2959 * match.pd: Check for a no-op conversion before using wi::add
2960 rather than after. Use tree_to_uhwi when summing small shift
2961 counts into an unsigned int.
2962
2963 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org>
2964 Alan Hayward <alan.hayward@arm.com>
2965 David Sherwood <david.sherwood@arm.com>
2966
2967 PR target/71307
2968 * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
2969 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
2970 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
2971 POINTER_AND_FP_REGS.
2972
2973 2017-10-02 Richard Biener <rguenther@suse.de>
2974
2975 PR tree-optimization/82355
2976 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
2977 a mapping for the enclosing loop but avoid generating one for
2978 the loop tree root.
2979 (copy_bb_and_scalar_dependences): Remove premature codegen
2980 error on PHIs in blocks duplicated into multiple places.
2981 * graphite-scop-detection.c
2982 (scop_detection::stmt_has_simple_data_refs_p): For a loop not
2983 in the region use it as loop and nest to analyze the DR in.
2984 (try_generate_gimple_bb): Likewise.
2985 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
2986 (add_loop_constraints): For blocks in a loop not in the region
2987 create a dimension with a single iteration.
2988 * sese.h (gbb_loop_at_index): Remove assert.
2989
2990 2017-10-01 Kevin Buettner <kevinb@redhat.com>
2991
2992 * omp-expand.c (adjust_context_scope): New function.
2993 (expand_parallel_call): Call adjust_context_scope.
2994
2995 2017-10-01 Jeff Law <law@redhat.com>
2996
2997 * tree-ssa-dom.c (optimize_stmt): Make this a method within the
2998 dom_opt_dom_walker class with direct access to private members.
2999 Add comments. Call test_for_singularity.
3000 (dom_opt_dom_walker::before_dom_children): Corresponding changes.
3001 (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
3002 m_dummy_cond anymore.
3003 (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
3004 class ctor.
3005 (pass_dominator:execute): Build the dummy_cond here and pass it
3006 to the dom_opt_dom_walker ctor.
3007 (test_for_singularity): New function.
3008
3009 2017-09-30 Krister Walfridsson <krister.walfridsson@gmail.com>
3010 Maya Rashish <coypu@sdf.org>
3011
3012 * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
3013 netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
3014 (alpha*-*-netbsd*) Use nbsd_tm_file.
3015 (arm*-*-netbsdelf*) Likewise.
3016 (i[34567]86-*-netbsdelf*) Likewise.
3017 (x86_64-*-netbsd*) Likewise.
3018 (mips*-*-netbsd*) Likewise.
3019 (powerpc-*-netbsd*) Likewise.
3020 (sh*-*-netbsd*) Likewise.
3021 (sparc-*-netbsdelf*) Likewise.
3022 (sparc64-*-netbsd*) Likewise.
3023 (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
3024 to tm_defines.
3025 (vax-*-netbsdelf*) Likewise.
3026 * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
3027 (UINT_FAST8_TYPE) Likewise.
3028 (INT_FAST16_TYPE) Check CHAR_FAST16.
3029 (UINT_FAST16_TYPE) Likewise.
3030
3031 2017-09-30 Jakub Jelinek <jakub@redhat.com>
3032
3033 PR target/82361
3034 * config/i386/i386.md
3035 (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
3036 (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
3037 *divmodsi4_zext_2): New define_insn_and_split.
3038 (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
3039 (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
3040 (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
3041 *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
3042 New define_insn_and_split.
3043 (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
3044 * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
3045 operands[1] having DImode when mode is SImode.
3046
3047 * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
3048 always SImode for DIV and MOD in REG_EQUAL notes.
3049
3050 2017-09-29 Yury Gribov <tetra2005@gmail.com>
3051
3052 PR middle-end/82319
3053 * match.pd: Fix handling of NaNs in pattern.
3054
3055 2017-09-29 Jeff Law <law@redhat.com>
3056
3057 * sbitmap.c (bitmap_bit_in_range_p): New function.
3058 * sbitmap.h (bitmap_bit_in_range_p): Prototype.
3059 * tree-ssa-dse.c (live_bytes_read): New function.
3060 (dse_classify_store): Ignore reads of dead bytes.
3061
3062 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
3063 typos and whitespace errors.
3064 * config/i386/predicates.md (address_no_seg_operand): Likewise.
3065 * config/s390/s390.c (s390_emit_prologue): Likewise.
3066
3067 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
3068
3069 PR target/81481
3070 * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
3071 with a symbol for LRA.
3072
3073 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
3074
3075 PR rtl-optimization/82338
3076 * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
3077
3078 2017-09-29 Alexander Monakov <amonakov@ispras.ru>
3079
3080 * genmodes.c (calc_wider_mode): Suppress qsort macro.
3081 * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
3082 (qsort_chk): Declare.
3083 * vec.c [CHECKING_P] (qsort_chk_error): New static function.
3084 (qsort_chk): New function.
3085
3086 2017-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3087
3088 PR tree-optimization/82337
3089 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
3090 phi definition if the PHI result appears in an abnormal PHI.
3091 (find_basis_for_base_expr): Don't record a basis if the LHS of the
3092 basis appears in an abnormal PHI.
3093
3094 2017-09-29 Richard Biener <rguenther@suse.de>
3095
3096 * graphite-isl-ast-to-gimple.c
3097 (translate_isl_ast_to_gimple::set_codegen_error): New function.
3098 (binary_op_to_tree): Use it.
3099 (get_rename_from_scev): Likewise.
3100 (copy_loop_phi_nodes): Likewise.
3101 (copy_bb_and_scalar_dependences): Likewise.
3102 (translate_pending_phi_nodes): Likewise.
3103
3104 2017-09-29 Jakub Jelinek <jakub@redhat.com>
3105
3106 PR target/82339
3107 * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
3108 for movabsq $(i32 << shift), r64.
3109
3110 2017-09-28 Uros Bizjak <ubizjak@gmail.com>
3111
3112 * config/i386/i386.c (ix86_print_operand_address_as): Do not check
3113 index when encoding %esp as %rsp to avoid 0x67 prefix.
3114
3115 2017-09-28 Sergey Shalnov <Sergey.Shalnov@intel.com>
3116
3117 * config/i386/i386.md (*movsf_internal, *movdf_internal):
3118 Return 256-bit AVX modes for TARGET_PREFER_AVX256.
3119
3120 2017-09-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
3121
3122 * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
3123 Extensions with more than 16 double VFP registers.
3124 (cmse_nonsecure_entry_clear_before_return): Remove second entry of
3125 to_clear_mask and all code related to it. Replace the remaining
3126 entry by a sbitmap and adapt code accordingly.
3127
3128 2017-09-28 Henry Linjamäki <henry.linjamaki@parmance.com>
3129
3130 * brig-builtins.def: Change pure attributes to const.
3131
3132 2017-09-28 Joseph Myers <joseph@codesourcery.com>
3133
3134 * config.gcc (default_gnu_indirect_function): Default to yes for
3135 sparc*-*-linux* with glibc.
3136
3137 2017-09-28 Joseph Myers <joseph@codesourcery.com>
3138
3139 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
3140 (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
3141 when creating .init_array and .fini_array sections with priority
3142 specified.
3143
3144 2017-09-27 Christophe Lyon <christophe.lyon@linaro.org>
3145
3146 PR target/71727
3147 * config/aarch64/aarch64.c
3148 (aarch64_builtin_support_vector_misalignment): Always return false
3149 when misalignment is unknown.
3150
3151 2017-09-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
3152
3153 * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
3154 this function to return false if the definition used by the swap
3155 instruction is artificial, or if the memory address from which the
3156 constant value is loaded is not represented by a base address held
3157 in a register or if the base address register is a frame or stack
3158 pointer. Additionally, return false if the base address of the
3159 loaded constant is a SYMBOL_REF but is not considered to be a
3160 constant.
3161 (replace_swapped_load_constant): New function.
3162 (rs6000_analyze_swaps): Add a new pass to replace a swap of a
3163 loaded constant vector with a load of a swapped constant vector.
3164
3165 2017-09-27 Carl Love <cel@us.ibm.com>
3166
3167 * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
3168 (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
3169 * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
3170 fctiw instruction.
3171
3172 2017-09-27 Alexander Monakov <amonakov@ispras.ru>
3173
3174 * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
3175 first, always call autopref_rank_data otherwise.
3176
3177 2017-09-27 Richard Biener <rguenther@suse.de>
3178
3179 * graphite-scop-detection.c (find_scop_parameters): Move
3180 loop bound handling ...
3181 (gather_bbs::before_dom_children): ... here, avoiding the need
3182 to build scop_info->loop_nest.
3183 (record_loop_in_sese): Remove.
3184 * sese.h (sese_info_t::loop_nest): Remove.
3185 * sese.c (new_sese_info): Do not allocate loop_nest.
3186 (free_sese_info): Do not free loop_nest.
3187
3188 2017-09-27 Jakub Jelinek <jakub@redhat.com>
3189
3190 PR c++/82159
3191 * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
3192 lhs from calls if the lhs has addressable type.
3193
3194 2017-09-27 Richard Biener <rguenther@suse.de>
3195
3196 * graphite.h (scop::max_alias_set): New member.
3197 * graphite-scop-detection.c: Remove references to non-existing
3198 --param in comments.
3199 (build_alias_sets): Record the maximum alias set used for drs.
3200 (build_scops): Support zero as unlimited for
3201 --param graphite-max-arrays-per-scop.
3202 * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
3203 and inline into ...
3204 (build_poly_sr_1): ... here. Compute alias set based on the
3205 maximum alias set used for drs rather than
3206 PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
3207
3208 2017-09-27 Richard Biener <rguenther@suse.de>
3209
3210 * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
3211 --param loop-block-tile-size=0 to disable tiling.
3212
3213 2017-09-27 Richard Biener <rguenther@suse.de>
3214
3215 * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
3216 (graphite-max-nb-scop-params): Document special value zero.
3217 * domwalk.h (dom_walker::STOP): New symbolical constant.
3218 (dom_walker::dom_walker): Add optional parameter for bb to
3219 RPO mapping.
3220 (dom_walker::~dom_walker): Declare.
3221 (dom_walker::before_dom_children): Document STOP return value.
3222 (dom_walker::m_user_bb_to_rpo): New member.
3223 (dom_walker::m_bb_to_rpo): Likewise.
3224 * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
3225 mapping here if not provided by the user.
3226 (dom_walker::~dom_walker): Free bb to RPO mapping if not
3227 provided by the user.
3228 (dom_walker::STOP): Define.
3229 (dom_walker::walk): Do not compute bb to RPO mapping here.
3230 Support STOP return value from before_dom_children to stop
3231 walking.
3232 * graphite-optimize-isl.c (optimize_isl): If the schedule
3233 is the same still generate code if -fgraphite-identity
3234 or -floop-parallelize-all are given.
3235 * graphite-scop-detection.c: Include cfganal.h.
3236 (gather_bbs::gather_bbs): Get and pass through bb to RPO
3237 mapping.
3238 (gather_bbs::before_dom_children): Return STOP for BBs
3239 not in the region.
3240 (build_scops): Compute bb to RPO mapping and pass it to
3241 the domwalk. Treat --param graphite-max-nb-scop-params=0
3242 as not limiting the number of params.
3243 * graphite.c (graphite_initialize): Remove limit on the
3244 number of basic-blocks in a function.
3245 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
3246 (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
3247 default value of 10.
3248
3249 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3250
3251 * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
3252 Adjust code to eliminate needing to do the shift right 32-bits
3253 operation after XSCVDPSPN.
3254
3255 2017-09-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3256
3257 * match.pd ((X / Y) == 0 -> X < Y): New pattern.
3258 ((X / Y) != 0 -> X >= Y): Likewise.
3259
3260 2017-09-26 Carl Love <cel@us.ibm.com>
3261
3262 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
3263 P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
3264 vector unsigned char vec_xl_len_r (unsigned char *, size_t);
3265 void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
3266 * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
3267 * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
3268 definitions and overloading.
3269 * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
3270 statement for P9V_BUILTIN_XST_LEN_R.
3271 (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
3272 * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
3273 define_expand and define_insn for the instructions and builtins.
3274 * doc/extend.texi: Update the built-in documentation file for the new
3275 built-in functions.
3276 * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
3277 define_insn for the instructions
3278
3279 2017-09-26 Krister Walfridsson <krister.walfridsson@gmail.com>
3280
3281 PR target/39570
3282 * gcc/config/netbsd-protos.h: New file.
3283 * gcc/config/netbsd.c: New file.
3284 * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
3285 * gcc/config/t-netbsd: New file.
3286 * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
3287 (tmake_file) Add t-netbsd.
3288 (extra_objs) Add netbsd.o.
3289
3290 2017-09-26 Janus Weil <janus@gcc.gnu.org>
3291
3292 PR fortran/82143
3293 PR fortran/82324
3294 * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
3295
3296 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3297
3298 * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
3299 sign extension from a vector register to a GPR by doing a 32-bit
3300 direct move and then an EXTSW.
3301 (extendsi<mode>2 splitter): Likewise.
3302 (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
3303 right or vector extract after doing XSCVDPSPN. Use
3304 zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
3305 the GPRs.
3306 (movdi_from_sf_zero_ext): Likewise.
3307 (reload_gpr_from_vsxsf): Likewise.
3308 (p8_mfvsrd_4_disf): Delete, no longer used.
3309 (movsi_from_df): Optimize converting a DFmode to a SFmode, and
3310 then needing to move the SFmode to a GPR to use the XSCVDPSP
3311 instruction instead of FRSP and XSCVDPSPN.
3312 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
3313 it is adjacent to the other XSCVSPDP insns.
3314 (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
3315 SFmode to be in traditional Altivec registers.
3316 (vsx_xscvdpspn): Eliminate useless alternative constraint.
3317 (vsx_xscvspdpn): Likewise.
3318 (vsx_xscvspdpn_scalar): Likewise.
3319
3320 2017-09-26 Martin Jambor <mjambor@suse.cz>
3321
3322 * tree-sra.c (compare_access_positions): Put integral types first,
3323 stabilize sorting of integral types, remove conditions putting
3324 non-full-precision integers last.
3325 (sort_and_splice_var_accesses): Disable scalarization if a
3326 non-integert would be represented by a non-full-precision integer.
3327
3328 2017-09-26 Joseph Myers <joseph@codesourcery.com>
3329
3330 * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
3331 * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
3332 * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
3333 * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
3334 Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
3335 conditionals inside the function instead of around it. Call
3336 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
3337 (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
3338
3339 2017-09-26 Richard Biener <rguenther@suse.de>
3340
3341 * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
3342 fold in ...
3343 (scop_detection::build_scop_breadth): ... this. Removed.
3344 (scop_detection::loop_is_valid_in_scop): Fold into single caller.
3345 (scop_detection::harmful_stmt_in_bb): Likewise.
3346 (scop_detection::graphite_can_represent_stmt): Likewise.
3347 (scop_detection::loop_body_is_valid_scop): Likewise. Remove recursion.
3348 (scop_detection::can_represent_loop): Remove recursion, fold in ...
3349 (scop_detection::can_represent_loop_1): ... this. Removed.
3350 (scop_detection::harmful_loop_in_region): Simplify after inlining
3351 the above and remove more quadraticness.
3352 (build_scops): Adjust.
3353 * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
3354 quadraticness.
3355
3356 2017-09-26 Jakub Jelinek <jakub@redhat.com>
3357
3358 PR target/82267
3359 * config/i386/i386.c (ix86_print_operand_address_as): Only test
3360 REGNO (base) == SP_REG if base is a REG.
3361
3362 PR middle-end/35691
3363 * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
3364 if it is different SSA_NAME.
3365 (optimize_range_tests_cmp_bitwise): New function.
3366 (optimize_range_tests): Call it.
3367
3368 2017-09-26 Richard Biener <rguenther@suse.de>
3369
3370 PR tree-optimization/82321
3371 * graphite.c (canonicalize_loop_closed_ssa): Properly check
3372 for the def being inside the loop.
3373
3374 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3375
3376 * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
3377 assembler output.
3378 * config/s390/s390-builtins.def: Fix constraint on op4.
3379
3380 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3381
3382 * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
3383 independent expanders.
3384 * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
3385 ("vec_ordered", "vec_unordered"): New expanders.
3386
3387 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3388
3389 * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
3390 for SFmode.
3391
3392 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3393
3394 * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
3395 vec_unpacks_lo_v16qi.
3396 ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
3397
3398 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3399
3400 * config/s390/vector.md ("vec_unpacks_lo_v4sf")
3401 ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
3402 ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
3403
3404 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3405
3406 * config/s390/predicates.md ("const_shift_by_byte_operand"): New
3407 predicate.
3408 * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
3409 and V16QI.
3410 ("*vec_slb<mode>"): New insn pattern.
3411 ("vec_shr_<mode>"): New expander.
3412 * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
3413 and force the shift count operand to V16QImode.
3414 ("vec_srb<mode>"): Set shift count mode to V16QI.
3415
3416 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3417
3418 * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
3419 ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
3420 ("vec_widen_smult_hi_<mode>"): New expander definitions.
3421
3422 2017-09-26 Richard Earnshaw <rearnsha@arm.com>
3423
3424 PR target/82175
3425 * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
3426
3427 2017-09-26 Richard Biener <rguenther@suse.de>
3428
3429 PR tree-optimization/82320
3430 * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
3431 isn't a change.
3432
3433 2017-09-25 Jeff Law <law@redhat.com>
3434
3435 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
3436 prototype for new argument.
3437 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
3438 mostly extracted from rs6000_emit_allocate_stack.
3439 (rs6000_emit_probe_stack_range_stack_clash): New function.
3440 (rs6000_emit_allocate_stack): Call
3441 rs6000_emit_probe_stack_range_stack_clash as needed.
3442 (rs6000_emit_probe_stack_range): Add additional argument
3443 to call to gen_probe_stack_range{si,di}.
3444 (output_probe_stack_range): New.
3445 (output_probe_stack_range_1): Renamed from output_probe_stack_range.
3446 (output_probe_stack_range_stack_clash): New.
3447 (rs6000_emit_prologue): Emit notes into dump file as requested.
3448 * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
3449 (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
3450 Add additional operand and pass it to output_probe_stack_range.
3451
3452 2017-09-25 Bin Cheng <bin.cheng@arm.com>
3453
3454 PR tree-optimization/82163
3455 * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
3456 (checking_verify_loop_closed_ssa): New parameter.
3457 * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
3458 (check_loop_closed_ssa_stmt): Delete.
3459 (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
3460 (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
3461 (tree_transform_and_unroll_loop): Check loop closed ssa form only for
3462 changed loops.
3463
3464 2017-09-25 Pekka Jaaskelainen <pekka@parmance.com>
3465
3466 * brig-builtins.def: Treat HSAIL barrier builtins as
3467 setjmp/longjump style functions.
3468
3469 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org>
3470
3471 * target.def (constant_alignment): New hook.
3472 * defaults.h (CONSTANT_ALIGNMENT): Delete.
3473 * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
3474 (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
3475 * doc/tm.texi: Regenerate.
3476 * targhooks.h (default_constant_alignment): Declare.
3477 (constant_alignment_word_strings): Likewise.
3478 * targhooks.c (default_constant_alignment): New function.
3479 (constant_alignment_word_strings): Likewise.
3480 * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
3481 instead of CONSTANT_ALIGNMENT.
3482 * varasm.c (align_variable, get_variable_align, build_constant_desc)
3483 (force_const_mem): Likewise.
3484 * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
3485 * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
3486 (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
3487 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3488 * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
3489 definition.
3490 * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
3491 * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3492 constant_alignment_word_strings.
3493 * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
3494 (CONSTANT_ALIGNMENT): Likewise.
3495 * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3496 (arm_constant_alignment): New function.
3497 * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
3498 * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3499 constant_alignment_word_strings.
3500 * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
3501 * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3502 constant_alignment_word_strings.
3503 * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
3504 * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3505 (cris_constant_alignment): New function.
3506 * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
3507 * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3508 (epiphany_constant_alignment): New function.
3509 * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
3510 * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3511 constant_alignment_word_strings.
3512 * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
3513 * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3514 constant_alignment_word_strings.
3515 * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
3516 * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3517 constant_alignment_word_strings.
3518 * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
3519 * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
3520 * config/i386/i386.c (ix86_constant_alignment): Make static.
3521 Use the same interface as the target hook.
3522 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3523 * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
3524 * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3525 constant_alignment_word_strings.
3526 * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
3527 * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
3528 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3529 * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
3530 * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3531 constant_alignment_word_strings.
3532 * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
3533 * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3534 constant_alignment_word_strings.
3535 * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
3536 * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3537 constant_alignment_word_strings.
3538 * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
3539 * config/microblaze/microblaze.c (microblaze_constant_alignment):
3540 New function.
3541 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3542 * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
3543 * config/mips/mips.c (mips_constant_alignment): New function.
3544 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3545 * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
3546 * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
3547 * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3548 (mmix_constant_alignment): Make static. Use the same interface
3549 as the target hook.
3550 * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
3551 * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3552 constant_alignment_word_strings.
3553 * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
3554 * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3555 constant_alignment_word_strings.
3556 * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
3557 * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3558 constant_alignment_word_strings.
3559 * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
3560 * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3561 (rs6000_constant_alignment): New function.
3562 * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
3563 * config/riscv/riscv.c (riscv_constant_alignment): New function.
3564 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3565 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
3566 * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3567 (rs6000_constant_alignment): New function.
3568 * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
3569 * config/s390/s390.c (s390_constant_alignment): New function.
3570 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3571 * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
3572 * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3573 constant_alignment_word_strings.
3574 * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
3575 * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3576 (sparc_constant_alignment): New function.
3577 * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
3578 * config/spu/spu.c (spu_constant_alignment): New function.
3579 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3580 * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
3581 * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3582 constant_alignment_word_strings.
3583 * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
3584 * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3585 constant_alignment_word_strings.
3586 * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
3587 * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3588 constant_alignment_word_strings.
3589 * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
3590 * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3591 (visium_constant_alignment): New function.
3592 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
3593 * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3594 (xtensa_constant_alignment): New function.
3595 * system.h (CONSTANT_ALIGNMENT): Poison.
3596
3597 2017-09-25 Will Schmidt <will_schmidt@vnet.ibm.com>
3598
3599 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
3600 for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
3601 (rs6000_builtin_valid_without_lhs): New helper function.
3602 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3603 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
3604
3605 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org>
3606
3607 * target.h (vec_perm_indices): Use unsigned short rather than
3608 unsigned char.
3609 (auto_vec_perm_indices): Likewise.
3610 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
3611 Use unsigned int rather than unsigned char.
3612 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
3613
3614 2017-09-25 Richard Biener <rguenther@suse.de>
3615
3616 * cfgloop.h (sort_sibling_loops): Declare.
3617 * cfgloop.c (sort_sibling_loops_cmp): New helper.
3618 (sort_sibling_loops): New function sorting the sibling loop list
3619 in RPO order.
3620 * graphite.c (graphite_transform_loops): Sort sibling loops.
3621
3622 2017-09-25 Richard Sandiford <richard.sandifird@linaro.org>
3623
3624 * target.def (vec_perm_const_ok): Change sel parameter to
3625 vec_perm_indices.
3626 * optabs-query.c (can_vec_perm_p): Update accordingly.
3627 * doc/tm.texi: Regenerate.
3628 * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
3629 auto_vec_perm_indices and remove separate nelt field.
3630 (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
3631 (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
3632 (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
3633 (aarch64_expand_vec_perm_const): Update accordingly.
3634 (aarch64_vectorize_vec_perm_const_ok): Likewise. Change sel
3635 to vec_perm_indices.
3636 * config/arm/arm.c (expand_vec_perm_d): Change perm to
3637 auto_vec_perm_indices and remove separate nelt field.
3638 (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
3639 (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
3640 (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
3641 accordingly.
3642 (arm_vectorize_vec_perm_const_ok): Likewise. Change sel
3643 to vec_perm_indices.
3644 * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
3645 sel to vec_perm_indices.
3646 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
3647 * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
3648 * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
3649 Likewise.
3650 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
3651 Likewise.
3652
3653 2017-09-25 Pierre-Marie de Rodat <derodat@adacore.com>
3654
3655 PR debug/82155
3656 * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
3657 on the FUNCTION_DECL function context if it has a DIE that is a
3658 declaration.
3659
3660 2017-09-25 Richard Biener <rguenther@suse.de>
3661
3662 PR tree-optimization/82285
3663 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
3664 enumeral types.
3665
3666 2017-09-25 Tom de Vries <tom@codesourcery.com>
3667
3668 PR target/80035
3669 PR target/81069
3670 * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
3671 noreturn function.
3672
3673 2017-09-25 Richard Biener <rguenther@suse.de>
3674
3675 * graphite-optimize-isl.c (optimize_isl): Fail and dump if
3676 ISL errors other than isl_error_quota happen. Dump if the
3677 schedule is the same.
3678 * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
3679 errors instead of aborting inside ISL.
3680
3681 2017-09-25 Iain Sandoe <iain@codesourcery.com>
3682
3683 PR target/80556
3684 * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
3685 of libgcc_eh for m64.
3686 * config/i386/darwin64.h: Likewise.
3687
3688 2017-09-25 Richard Biener <rguenther@suse.de>
3689
3690 PR middle-end/82144
3691 * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
3692 attribute for incomplete types nor twice for complete ones.
3693
3694 2017-09-24 Uros Bizjak <ubizjak@gmail.com>
3695
3696 PR target/82267
3697 * config/i386/i386.c (ix86_print_operand_address_as): Encode
3698 %esp as %rsp to avoid 0x67 prefix if there is no index or base
3699 register.
3700
3701 2017-09-23 Uros Bizjak <ubizjak@gmail.com>
3702
3703 PR bootstrap/82306
3704 * config/i386/i386.opt (mprefer-avx256): Use
3705 ix86_target_flags variable.
3706 * config/i386/i386.c (ix86_target_string): Move
3707 -mprefer-avx256 to flag2_opts.
3708
3709 2017-09-22 Jakub Jelinek <jakub@redhat.com>
3710
3711 PR middle-end/35691
3712 * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
3713 and x != -1 | y != -1 into (x & y) != -1.
3714
3715 2017-09-22 Steve Ellcey <sellcey@cavium.com>
3716
3717 * config.gcc: Add new case statement to set
3718 default_gnu_indirect_function. Remove it from x86_64-*-linux*,
3719 i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
3720 s390x-*-linux* case statements. Added aarch64 to the list of
3721 supported architectures.
3722
3723 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
3724
3725 PR tree-optimization/82289
3726 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
3727 STMT_VINFO_RELEVANT_P.
3728
3729 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
3730 Alan Hayward <alan.hayward@arm.com>
3731 David Sherwood <david.sherwood@arm.com>
3732
3733 * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
3734 for VR_RANGE only; don't allow VR_ANTI_RANGE.
3735 (extract_range_from_binary_expr_1): Don't call
3736 extract_range_from_multiplicative_op_1 if !range_int_cst_p.
3737
3738 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
3739 Alan Hayward <alan.hayward@arm.com>
3740 David Sherwood <david.sherwood@arm.com>
3741
3742 * target.def (preferred_vector_alignment): New hook.
3743 * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
3744 hook.
3745 * doc/tm.texi: Regenerate.
3746 * targhooks.h (default_preferred_vector_alignment): Declare.
3747 * targhooks.c (default_preferred_vector_alignment): New function.
3748 * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
3749 Expand commentary.
3750 (DR_TARGET_ALIGNMENT): New macro.
3751 (aligned_access_p): Update commentary.
3752 (vect_known_alignment_in_bytes): New function.
3753 * tree-vect-data-refs.c (vect_calculate_required_alignment): New
3754 function.
3755 (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
3756 Calculate the misalignment based on the target alignment rather than
3757 the vector size.
3758 (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
3759 rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
3760 (vect_enhance_data_refs_alignment): Mask the byte misalignment with
3761 the target alignment, rather than masking the element misalignment
3762 with the number of elements in a vector. Also use the target
3763 alignment when calculating the maximum number of peels.
3764 (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
3765 instead of TYPE_ALIGN_UNIT.
3766 (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
3767 Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
3768 (vect_create_addr_base_for_vector_ref): Update call accordingly.
3769 (vect_create_data_ref_ptr): Likewise.
3770 (vect_setup_realignment): Realign by ANDing with
3771 -DR_TARGET_MISALIGNMENT.
3772 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
3773 the number of peels based on DR_TARGET_ALIGNMENT.
3774 * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
3775 with the guaranteed alignment boundary when deciding whether
3776 overrun is OK.
3777 (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
3778 relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
3779 (ensure_base_align): Remove stmt_info parameter. Get the
3780 target base alignment from DR_TARGET_ALIGNMENT.
3781 (vectorizable_store): Update call accordingly. Interpret
3782 DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
3783 TYPE_ALIGN_UNIT.
3784 (vectorizable_load): Likewise.
3785
3786 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
3787 Alan Hayward <alan.hayward@arm.com>
3788 David Sherwood <david.sherwood@arm.com>
3789
3790 * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
3791 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
3792 (vect_enhance_data_refs_alignment): Likewise.
3793
3794 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com>
3795
3796 * config/arm/parsecpu.awk (fatal): Note that we've encountered an
3797 error. Only quit immediately if parsing is complete.
3798 (BEGIN): Initialize fatal_err and parse_done.
3799 (begin fpu, end fpu): Check number of arguments.
3800 (begin arch, end arch): Likewise.
3801 (begin cpu, end cpu): Likewise.
3802 (cname, tune for, tune flags, architecture, fpu, option): Likewise.
3803 (optalias): Likewise.
3804
3805 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com>
3806
3807 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
3808 * config/arm/arm-isa.h: Delete. Move definitions to ...
3809 * arm-cpus.in: ... here. Use new feature and fgroup values.
3810 * config/arm/arm.c (arm_option_override): Use lower case for feature
3811 bit names.
3812 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
3813 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
3814 * config/arm/parsecpu.awk (END): Add new command 'isa'.
3815 (isa_pfx): Delete.
3816 (print_isa_bits_for): New function.
3817 (gen_isa): New function.
3818 (gen_comm_data): Use print_isa_bits_for.
3819 (define feature): New keyword.
3820 (define fgroup): New keyword.
3821 * config/arm/t-arm (TM_H): Remove.
3822 (GTM_H): Add arm-isa.h.
3823 (arm-isa.h): Add rule to generate file.
3824 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
3825 case for feature bit names.
3826
3827 2017-09-22 Richard Biener <rguenther@suse.de>
3828
3829 * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
3830 single caller.
3831 (graphite_regenerate_ast_isl): Do not reset SCEV. Move debug
3832 print of no dependency loops ...
3833 * graphite.c (graphite_transform_loops): ... here.
3834 (canonicalize_loop_closed_ssa_form): Work from inner to outer
3835 loops.
3836 (same_close_phi_node, remove_duplicate_close_phi,
3837 make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
3838 (canonicalize_loop_closed_ssa): ... here and simplify.
3839 * graphite-optimize-isl.c: Include tree-vectorizer.h.
3840 (optimize_isl): Use dump_printf_loc to tell when we stopped
3841 optimizing because of an ISL timeout.
3842
3843 2017-09-22 Richard Biener <rguenther@suse.de>
3844
3845 PR tree-optimization/82291
3846 * tree-if-conv.c (predicate_mem_writes): Make sure to
3847 remove writes in blocks predicated with false.
3848
3849 2017-09-22 Richard Biener <rguenther@suse.de>
3850
3851 * sese.c: Include cfganal.h.
3852 (if_region_set_false_region): Remove.
3853 (create_if_region_on_edge): Likewise.
3854 (move_sese_in_condition): Re-implement without destroying
3855 dominators.
3856
3857 2017-09-22 Richard Biener <rguenther@suse.de>
3858
3859 * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
3860 Verify both BBs contain loop PHI nodes before dispatching to
3861 copy_loop_phi_args.
3862 (graphite_regenerate_ast_isl): Do not recompute dominators,
3863 do not verify three times. Restructure for clarity.
3864 * graphite-scop-detection.c (same_close_phi_node,
3865 remove_duplicate_close_phi, make_close_phi_nodes_unique,
3866 defined_in_loop_p, canonicalize_loop_closed_ssa,
3867 canonicalize_loop_closed_ssa_form): Simplify, remove excess
3868 checking and SSA rewrite, move to ...
3869 * graphite.c: ... here. Include ssa.h and tree-ssa-loop-manip.h.
3870 (graphite_initialize): Do not pass in ctx, do not reset the
3871 SCEV cache, compute only dominators.
3872 (graphite_transform_loops): Allocate ISL ctx after
3873 graphite_initialize. Call canonicalize_loop_closed_ssa_form.
3874 Maintain post-dominators only around build_scops.
3875 * sese.c (if_region_set_false_region): Make static. Free
3876 and recompute dominators.
3877 (move_sese_in_condition): Assert we don't get called with
3878 post-dominators computed.
3879 * sese.h (if_region_set_false_region): Remove.
3880
3881 2017-09-22 Sergey Shalnov <sergey.shalnov@intel.com>
3882
3883 * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
3884 mode attribute for TARGET_AVX512VL.
3885
3886 2017-09-21 Sergey Shalnov <sergey.shalnov@intel.com>
3887
3888 * config/i386/i386.opt (mprefer-avx256): New option.
3889 * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
3890 to flag_opts.
3891 (ix86_preferred_simd_mode): Return 256-bit AVX modes
3892 for TARGET_PREFER_AVX256.
3893 * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
3894
3895 2017-09-21 Jeff Law <law@redhat.com>
3896
3897 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
3898 Fix dump output if the only stack space is for pushed registers.
3899
3900 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
3901
3902 * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
3903 of insn_cost.
3904
3905 2017-09-21 Martin Sebor <msebor@redhat.com>
3906
3907 PR c/81882
3908 * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
3909 code (in C++) or code that triggers warnings.
3910
3911 2017-09-21 Eric Botcazou <ebotcazou@adacore.com>
3912
3913 * stor-layout.c (bit_from_pos): Do not distribute the conversion.
3914
3915 2017-09-21 Segher Boessenkool <segher@kernel.crashing.org>
3916
3917 * haifa-sched.c: Rename insn_cost to insn_sched_cost.
3918 * sched-rgn.c: Ditto.
3919 * sel-sched-ir.c: Ditto.
3920
3921 2017-09-21 Alexander Monakov <amonakov@ispras.ru>
3922
3923 * toplev.h (set_random_seed): Adjust return type.
3924 * toplev.c (init_local_tick): Move eager initialization of random_seed
3925 to get_random_seed. Adjust comment.
3926 (init_random_seed): Inline to get_random_seed, delete.
3927 (get_random_seed): Initialize random_seed lazily.
3928 (set_random_seed): Do not return previous value.
3929 (print_switch_value): Do not call get_random_seed.
3930
3931 2017-09-21 Evgeny Kudryashov <kudryashov@ispras.ru>
3932
3933 * cgraph.c (delete_function_version): New, broken out from...
3934 (cgraph_node::delete_function_version): ...here. Rename to
3935 cgraph_node::delete_function_version_by_decl. Update all uses.
3936 (cgraph_node::remove): Call delete_function_version.
3937
3938 2017-09-21 Jakub Jelinek <jakub@redhat.com>
3939
3940 PR sanitizer/81715
3941 * tree-inline.c (expand_call_inline): Emit clobber stmts for
3942 VAR_DECLs to which addressable non-volatile parameters are mapped
3943 and for id->retvar after the return value assignment. Clear
3944 id->retval and id->retbnd after inlining.
3945
3946 2017-09-21 Richard Biener <rguenther@suse.de>
3947
3948 PR tree-optimization/82276
3949 PR tree-optimization/82244
3950 * tree-vrp.c (build_assert_expr_for): Set
3951 SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
3952 has it set.
3953 (remove_range_assertions): Revert earlier change.
3954
3955 2017-09-21 Wilco Dijkstra <wdijkstr@arm.com>
3956
3957 PR target/71951
3958 * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
3959
3960 2017-09-21 Richard Biener <rguenther@suse.de>
3961
3962 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
3963 Restore valid IL after code generation errors.
3964 * graphite.c (graphite_transform_loops): Diagnose code
3965 generation issues as MSG_MISSED_OPTIMIZATION and continue
3966 with processing SCOPs.
3967
3968 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
3969 Alan Hayward <alan.hayward@arm.com>
3970 David Sherwood <david.sherwood@arm.com>
3971
3972 * calls.c (compute_argument_addresses): Use simplify_gen_binary
3973 rather than choosing between plus_constant and gen_rtx_<CODE>.
3974 * expr.c (emit_push_insn): Likewise.
3975 (expand_expr_real_2): Likewise.
3976
3977 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
3978 Alan Hayward <alan.hayward@arm.com>
3979 David Sherwood <david.sherwood@arm.com>
3980
3981 * loop-unroll.c (split_iv): Call copy_rtx on the step.
3982
3983 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
3984 Alan Hayward <alan.hayward@arm.com>
3985 David Sherwood <david.sherwood@arm.com>
3986
3987 * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
3988 calling tree_to_uhwi.
3989
3990 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
3991 Alan Hayward <alan.hayward@arm.com>
3992 David Sherwood <david.sherwood@arm.com>
3993
3994 * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
3995 INTEGER_CST rather than a negative test for ADDR_EXPR.
3996
3997 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
3998 Alan Hayward <alan.hayward@arm.com>
3999 David Sherwood <david.sherwood@arm.com>
4000
4001 * tree-vrp.c (extract_range_from_binary_expr_1): Check
4002 int_cst_rangeN before calling value_range_constant_singleton (&vrN).
4003
4004 2017-09-21 Richard Biener <rguenther@suse.de>
4005
4006 PR tree-optimization/71351
4007 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
4008 graphite_create_new_loop_guard): Remove, fold remaining parts
4009 into caller ...
4010 (translate_isl_ast_node_for): ... here and simplify.
4011
4012 2017-09-21 Jakub Jelinek <jakub@redhat.com>
4013
4014 PR target/82260
4015 * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
4016 with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
4017 latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
4018 alternative always use QI mode, for -Os imov (=R,R) alternative
4019 always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
4020 ignore -Os.
4021
4022 2017-09-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4023 Jeff Law <law@redhat.com>
4024
4025 * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
4026 (allocate_stack_space): New function, partially extracted from
4027 s390_emit_prologue.
4028 (s390_emit_prologue): Track offset to most recent stack probe.
4029 Code to allocate space moved into allocate_stack_space.
4030 Dump actions when no stack is allocated.
4031 (s390_prologue_plus_offset): New function.
4032 (s390_emit_stack_probe): Likewise.
4033
4034 2017-09-20 Alexandre Oliva <aoliva@redhat.com>
4035
4036 * common.opt (Wa, Wl, Wp, g, gz=): Add
4037 RejectNegative.
4038 (gno-column-info): Remove.
4039 (gcolumn-info): Drop RejectNegative.
4040 (gno-): New prefix.
4041 (gno-record-gcc-switches): Remove.
4042 (grecord-gcc-switches): Drop RejectNegative.
4043 (gno-split-dwarf): Remove.
4044 (gsplit-dwarf): Drop RejectNegative.
4045 (gno-strict-dwarf): Remove.
4046 (gstrict-dwarf): Drop RejectNegative.
4047 * config/darwin.opt (gfull, gused): Add RejectNegative.
4048 * dwarf2out.c (gen_producer_string): Drop
4049 gno-record-gcc-switches handler.
4050 * optc-gen.awk: Add g to prefixes with negative forms.
4051 * opts-common.c (remapping_prefix_p): New.
4052 (find_opt): Check it.
4053 (generate_canonical_option): Test g prefix.
4054 (option_map): Add -gno- mapping.
4055 (add_misspelling_candidates): Check remapping_prefix_p.
4056
4057 2017-09-20 Jeff Law <law@redhat.com>
4058
4059 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
4060 thinko in stack clash protection support.
4061
4062 * explow.c (compute_stack_clash_protection_loop_data): Use
4063 CONST_INT_P instead of explicit test. Verify object is a
4064 CONST_INT_P before looking at INTVAL.
4065 (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
4066 instead of explicit test.
4067
4068 2017-09-20 Segher Boessenkool <segher@kernel.crashing.org>
4069
4070 PR target/77687
4071 * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
4072 address instead of to r1 and r11.
4073
4074 2017-09-20 Sebastian Peryt <sebastian.peryt@intel.com>
4075
4076 * config.gcc: Support "knm".
4077 * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
4078 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4079 PROCESSOR_KNM.
4080 * config/i386/i386.c (m_KNM): Define.
4081 (processor_target_table): Add "knm".
4082 (PTA_KNM): Define.
4083 (ix86_option_override_internal): Add "knm".
4084 (ix86_issue_rate): Add PROCESSOR_KNM.
4085 (ix86_adjust_cost): Ditto.
4086 (ia32_multipass_dfa_lookahead): Ditto.
4087 (get_builtin_code_for_version): Handle PROCESSOR_KNM.
4088 (fold_builtin_cpu): Add M_INTEL_KNM.
4089 * config/i386/i386.h (processor_costs): Define TARGET_KNM.
4090 (processor_type): Add PROCESSOR_KNM.
4091 * config/i386/x86-tune.def: Add m_KNM.
4092 * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
4093
4094 2017-09-20 Richard Biener <rguenther@suse.de>
4095
4096 PR tree-optimization/80213
4097 * graphite-scop-detection.c (trivially_empty_bb_p): Labels
4098 are allowed in empty BBs as well.
4099 (canonicalize_loop_closed_ssa): Also look for other complex
4100 edges.
4101 (scop_detection::get_sese): Include the loop-closed PHI block
4102 in loop SESEs.
4103 (scop_detection::merge_sese): Remove code adding extra blocks.
4104 (scop_detection::region_has_one_loop): Adjust for get_sese changes.
4105 (build_scops): Assert the final returned scop is invalid.
4106
4107 2017-09-20 Richard Biener <rguenther@suse.de>
4108
4109 PR tree-optimization/82264
4110 * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
4111 for GIMPLE_CONDs.
4112 (vn_phi_lookup): Likewise.
4113 (vn_phi_insert): Likewise.
4114
4115 2017-09-20 Jakub Jelinek <jakub@redhat.com>
4116
4117 * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
4118 that fits into uhwi or shwi, add DW_AT_const_value regardless
4119 of early_dwarf without going through RTL, using add_AT_unsigned
4120 or add_AT_int.
4121
4122 * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
4123 (DEBUG_LTO_ABBREV_SECTION): Likewise.
4124 (DEBUG_LTO_MACINFO_SECTION): Likewise.
4125 (DEBUG_MACRO_SECTION): Likewise.
4126 (DEBUG_LTO_MACRO_SECTION): Likewise.
4127 (DEBUG_STR_DWO_SECTION): Likewise.
4128 (DEBUG_LTO_STR_DWO_SECTION): Likewise.
4129 (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
4130 (DEBUG_LTO_DWO_LINE_SECTION): Define.
4131 (DEBUG_LTO_LINE_STR_SECTION): Define.
4132 (init_sections_and_labels): Initialize debug_line_str_section
4133 variable. Initialize debug_loc_section for -gdwarf-5 to
4134 DEBUG_LOCLISTS_SECTION. Formatting fixes.
4135
4136 2017-09-20 Richard Biener <rguenther@suse.de>
4137
4138 * graphite-sese-to-poly.c (extract_affine): Properly handle
4139 POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
4140
4141 2017-09-20 Richard Biener <rguenther@suse.de>
4142
4143 PR tree-optimization/81373
4144 * graphite-scop-detection.c (build_cross_bb_scalars_def):
4145 Force SESE live-out defs to be handled even if they are
4146 scev_analyzable_p.
4147
4148 2017-09-19 Jeff Law <law@redhat.com>
4149
4150 * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
4151 nothing for stack adjustments with REG_STACK_CHECK.
4152 * sched-deps.c (parse_add_or_inc): Reject insns with
4153 REG_STACK_CHECK from dependency breaking.
4154 * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
4155 (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
4156 * reg-notes.def (STACK_CHECK): New note.
4157
4158 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
4159 (ix86_expand_prologue): Dump stack clash info as needed.
4160 Call ix86_adjust_stack_and_probe_stack_clash as needed.
4161
4162 * function.c (dump_stack_clash_frame_info): New function.
4163 * function.h (dump_stack_clash_frame_info): Prototype.
4164 (enum stack_clash_probes): New enum.
4165
4166 * config/alpha/alpha.c (alpha_expand_prologue): Also check
4167 flag_stack_clash_protection.
4168 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
4169 (arm_expand_prologue, thumb1_expand_prologue): Likewise.
4170 (arm_frame_pointer_required): Likewise.
4171 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
4172 (ia64_expand_prologue): Likewise.
4173 * config/mips/mips.c (mips_expand_prologue): Likewise.
4174 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
4175 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4176 (sparc_flat_expand_prologue): Likewise.
4177 * config/spu/spu.c (spu_expand_prologue): Likewise.
4178
4179 * explow.c: Include "params.h".
4180 (anti_adjust_stack_and_probe_stack_clash): New function.
4181 (get_stack_check_protect): Likewise.
4182 (compute_stack_clash_protection_loop_data): Likewise.
4183 (emit_stack_clash_protection_loop_start): Likewise.
4184 (emit_stack_clash_protection_loop_end): Likewise.
4185 (allocate_dynamic_stack_space): Use get_stack_check_protect.
4186 Use anti_adjust_stack_and_probe_stack_clash.
4187 * explow.h (compute_stack_clash_protection_loop_data): Prototype.
4188 (emit_stack_clash_protection_loop_start): Likewise.
4189 (emit_stack_clash_protection_loop_end): Likewise.
4190 * rtl.h (get_stack_check_protect): Prototype.
4191 * target.def (stack_clash_protection_final_dynamic_probe): New hook.
4192 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
4193 * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
4194 Prototype.
4195 * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
4196 Add @hook.
4197 * doc/tm.texi: Rebuilt.
4198 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
4199 get_stack_check_protect.
4200 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
4201 * config/arm/arm.c (arm_expand_prologue): Likewise.
4202 (arm_frame_pointer_required): Likewise.
4203 * config/i386/i386.c (ix86_expand_prologue): Likewise.
4204 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
4205 * config/mips/mips.c (mips_expand_prologue): Likewise.
4206 * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
4207 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
4208 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4209 (sparc_flat_expand_prologue): Likewise.
4210
4211 * common.opt (-fstack-clash-protection): New option.
4212 * flag-types.h (enum stack_check_type): Note difference between
4213 -fstack-check= and -fstack-clash-protection.
4214 * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
4215 (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
4216 * toplev.c (process_options): Issue warnings/errors for cases
4217 not handled with -fstack-clash-protection.
4218 * doc/invoke.texi (-fstack-clash-protection): Document new option.
4219 (-fstack-check): Note additional problem with -fstack-check=generic.
4220 Note that -fstack-check is primarily for Ada and refer users
4221 to -fstack-clash-protection for stack-clash-protection.
4222 Document new params for stack clash protection.
4223
4224 2017-09-19 Uros Bizjak <ubizjak@gmail.com>
4225
4226 * config/i386/i386.c (ix86_split_long_move): Do not handle
4227 address used for LEA in a special way.
4228
4229 2017-09-19 Segher Boessenkool <segher@kernel.crashing.org>
4230
4231 * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
4232
4233 2017-09-19 Martin Sebor <msebor@redhat.com>
4234
4235 PR c/81854
4236 * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
4237 of incompatible types.
4238
4239 2017-09-19 Will Schmidt <will_schmidt@vnet.ibm.com>
4240
4241 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
4242 for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
4243 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4244 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
4245
4246 2017-09-19 Richard Biener <rguenther@suse.de>
4247
4248 PR tree-optimization/82244
4249 * tree-vrp.c (remove_range_assertions): Do not propagate
4250 a constant to abnormals but replace the assert with a copy.
4251
4252 2017-09-19 Alexander Monakov <amonakov@ispras.ru>
4253
4254 PR rtl-optimization/57878
4255 PR rtl-optimization/68988
4256 * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
4257 avoidance test involving non_reload_pseudos. Move frequency test
4258 below the general fragmentation avoidance test.
4259
4260 2017-09-19 Richard Biener <rguenther@suse.de>
4261
4262 PR tree-optimization/69728
4263 * graphite-sese-to-poly.c (schedule_error): New global.
4264 (add_loop_schedule): Handle empty domain by failing the
4265 schedule.
4266 (build_original_schedule): Handle schedule_error.
4267
4268 2017-09-19 Richard Biener <rguenther@suse.de>
4269
4270 * graphite-scop-detection.c (scop_detection::can_represent_loop):
4271 Do not iterate to sibling loops but only to siblings of inner
4272 loops.
4273
4274 2017-09-18 Andreas Schwab <schwab@linux-m68k.org>
4275
4276 PR target/81613
4277 * config/m68k/m68k.md (moveq feeding equality comparison): Check
4278 that the registers are different.
4279
4280 2017-09-18 Uros Bizjak <ubizjak@gmail.com>
4281
4282 * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
4283 to processor_model and "amdfam17h" to arch_names_table.
4284 * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
4285
4286 2017-09-18 Jakub Jelinek <jakub@redhat.com>
4287
4288 PR c/82234
4289 * doc/extend.texi: Add @findex entry for __builtin_shuffle.
4290
4291 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4292 Alan Hayward <alan.hayward@arm.com>
4293 David Sherwood <david.sherwood@arm.com>
4294
4295 * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
4296 with a vec_info *.
4297 * tree-vect-loop.c (vect_analyze_loop_operations): Update call
4298 accordingly.
4299 * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
4300 parameter. Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
4301 vect_schedule_slp_instance.
4302 (vect_slp_analyze_operations): Replace parameters with a vec_info *.
4303 Update call to vect_slp_analyze_node_operations. Simplify return
4304 value.
4305 (vect_slp_analyze_bb_1): Update call accordingly.
4306 (vect_schedule_slp_instance): Remove vectorization_factor parameter.
4307 Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
4308 (vect_schedule_slp): Update call accordingly.
4309
4310 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4311 Alan Hayward <alan.hayward@arm.com>
4312 David Sherwood <david.sherwood@arm.com>
4313
4314 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
4315 with types that aren't in fact scalar.
4316
4317 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4318
4319 * tree-vect-slp.c (vect_record_max_nunits): New function,
4320 split out from...
4321 (vect_build_slp_tree_1): ...here.
4322 (vect_build_slp_tree_2): Call it for phis too.
4323
4324 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4325
4326 * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
4327 to vect_get_vec_def_for_operand when getting the mask operand.
4328
4329 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4330 Alan Hayward <alan.hayward@arm.com>
4331 David Sherwood <david.sherwood@arm.com>
4332
4333 * tree-vect-loop.c (vectorizable_live_operation): Fix type of
4334 bitstart.
4335
4336 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4337 Alan Hayward <alan.hayward@arm.com>
4338 David Sherwood <david.sherwood@arm.com>
4339
4340 * tree-vect-loop.c (vectorizable_live_operation): Fix element size
4341 calculation for vector booleans.
4342
4343 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4344 Alan Hayward <alan.hayward@arm.com>
4345 David Sherwood <david.sherwood@arm.com>
4346
4347 * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
4348 split out from...
4349 (vect_transform_stmt): ...here.
4350 (vect_analyze_stmt): Use it instead of calling
4351 vectorizable_live_operation directly.
4352
4353 2017-09-18 Cesar Philippidis <cesar@codesourcery.com>
4354
4355 * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
4356 non-SIMT targets in acc vector loops.
4357
4358 2017-09-18 Claudiu Zissulescu <claziss@synopsys.com>
4359
4360 * configure.ac: Add arc and check if assembler supports gdwarf2.
4361 * configure: Regenerate.
4362
4363 2017-09-18 Richard Biener <rguenther@suse.de>
4364
4365 PR tree-optimization/82220
4366 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
4367 epilogue niters from the min_profitable_iters compute.
4368
4369 2017-09-18 Jakub Jelinek <jakub@redhat.com>
4370
4371 PR target/82145
4372 * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
4373 changes. Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
4374 (ix86_init_pic_reg): Revert 2017-09-01 changes.
4375
4376 2017-09-18 Eric Botcazou <ebotcazou@adacore.com>
4377
4378 PR target/81361
4379 * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
4380 switching to a new text section.
4381
4382 2017-09-18 Richard Biener <rguenther@suse.de>
4383
4384 * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
4385 Simplify.
4386 (build_alias_set): Reject aliases with no access function.
4387
4388 2017-09-18 Richard Biener <rguenther@suse.de>
4389
4390 PR tree-optimization/79622
4391 * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
4392 handle PHIs.
4393 (build_cross_bb_scalars_use): Likewise.
4394
4395 2017-09-18 Pierre-Marie de Rodat <derodat@adacore.com>
4396
4397 * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
4398
4399 2017-09-18 Alan Modra <amodra@gmail.com>
4400
4401 PR target/81996
4402 * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
4403 stack_pointer_rtx for count 0. Update comments. Break up
4404 large rtl expression.
4405
4406 2017-09-17 Daniel Santos <daniel.santos@pobox.com>
4407
4408 * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
4409 Increase to 20 bytes.
4410 (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
4411 (xlogue_layout::get_stub_name): Modify to select the appropairate sse
4412 or avx version of the stub.
4413
4414 2017-09-17 H.J. Lu <hongjiu.lu@intel.com>
4415
4416 PR target/82166
4417 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
4418 compute the minimum stack alignment. Also update preferred stack
4419 boundary for leaf functions.
4420
4421 2017-09-16 Richard Sandiford <richard.sandiford@linaro.org>
4422
4423 PR tree-optimization/82228
4424 * tree-vect-loop.c (vectorizable_live_operation): Move initialization
4425 of ncopies.
4426
4427 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com>
4428
4429 * common/config/nds32/nds32-common.c
4430 (nds32_option_optimization_table): Refine formatting.
4431 (nds32_option_optimization_table): Use -fsched-pressure and
4432 -fomit-frame-pointer for specific optimization level.
4433
4434 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com>
4435
4436 * config/nds32/nds32.c: Refine formatting and comments.
4437 * config/nds32/nds32.h: Likewise.
4438 * config/nds32/nds32.md: Likewise.
4439 * config/nds32/nds32-cost.c: Likewise.
4440 * config/nds32/nds32-isr.c: Likewise.
4441 * config/nds32/nds32-md-auxiliary.c: Likewise.
4442 * config/nds32/nds32-multiple.md: Likewise.
4443 * config/nds32/nds32-predicates.c: Likewise.
4444
4445 2017-09-15 Andrew Sutton <andrew.n.sutton@gmail.com>
4446 Jakub Jelinek <jakub@redhat.com>
4447
4448 Add support for -std=c++2a.
4449 * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
4450 or -std=gnu+2a.
4451 * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
4452
4453 2017-09-15 Steve Ellcey <sellcey@cavium.com>
4454
4455 PR target/82066
4456 * doc/extend.texi (Common Function Attributes): Add
4457 references to ARM, AArch64, and S/390 specific attributes.
4458 (Function Specific Option Pragmas): Add AArch64 and S/390
4459 to list of back ends that support the target pragma.
4460
4461 2017-09-15 Nathan Sidwell <nathan@acm.org>
4462
4463 * doc/standards.texi: Fix C++17 description. Update URLs for
4464 C++11 & 14.
4465
4466 2017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
4467
4468 * common.opt (Wcast-align=strict): New warning option.
4469 * doc/invoke.texi: Document -Wcast-align=strict.
4470
4471 2017-09-15 Pierre-Marie de Rodat <derodat@adacore.com>
4472
4473 * cgraph.h (cgraph_thunk_info): Add comments.
4474 * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
4475 assert for VIRTUAL_* arguments stricter.
4476
4477 2017-09-15 Jackson Woodruff <jackson.woodruff@arm.com>
4478
4479 PR tree-optimization/71026
4480 * match.pd: Move RDIV patterns from fold-const.c
4481 * fold-const.c (distribute_real_division): Removed.
4482 (fold_binary_loc): Remove calls to distribute_real_divison.
4483
4484 2017-09-15 Jakub Jelinek <jakub@redhat.com>
4485
4486 * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
4487 c++1z and gnu++1z as deprecated. Change other references to
4488 -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
4489 Change -Wc++1z-compat to -Wc++17-compat.
4490 * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
4491 * dwarf2out.c (highest_c_language): Handle C++17.
4492 (gen_compile_unit_die): Likewise.
4493
4494 2017-09-15 Jakub Jelinek <jakub@redhat.com>
4495
4496 PR rtl-optimization/82192
4497 * combine.c (make_extraction): Don't look through non-paradoxical
4498 SUBREGs or TRUNCATE if pos + len is or might be bigger than
4499 inner's mode.
4500
4501 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
4502 Alan Hayward <alan.hayward@arm.com>
4503 David Sherwood <david.sherwood@arm.com>
4504
4505 * target.def (function_arg_offset): New hook.
4506 * targhooks.h (default_function_arg_offset): Declare.
4507 * targhooks.c (default_function_arg_offset): New function.
4508 * function.c (locate_and_pad_parm): Use
4509 targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
4510 * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
4511 (TARGET_FUNCTION_ARG_OFFSET): ...this.
4512 * doc/tm.texi: Regenerate.
4513 * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
4514 * config/spu/spu.c (spu_function_arg_offset): New function.
4515 (TARGET_FUNCTION_ARG_OFFSET): Redefine.
4516 * system.h (FUNCTION_ARG_OFFSET): Poison.
4517
4518 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
4519 Alan Hayard <alan.hayward@arm.com>
4520 David Sherwood <david.sherwood@arm.com>
4521
4522 * target.def (truly_noop_truncation): New hook.
4523 (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
4524 than TRULY_NOOP_TRUNCATION.
4525 * hooks.h (hook_bool_uint_uint_true): Declare.
4526 * hooks.c (hook_bool_uint_uint_true): New function.
4527 * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
4528 (TARGET_TRULY_NOOP_TRUNCATION): ...this.
4529 * doc/tm.texi: Regenerate.
4530 * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
4531 rather than TRULY_NOOP_TRUNCATION in comments.
4532 (simplify_comparison): Likewise.
4533 (record_truncated_value): Likewise.
4534 * expmed.c (extract_bit_field_1): Likewise.
4535 (extract_split_bit_field): Likewise.
4536 * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
4537 instead of TRULY_NOOP_TRUNCATION.
4538 * function.c (assign_parm_setup_block): Likewise.
4539 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
4540 * rtlhooks.c: Include target.h.
4541 * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
4542 * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
4543 * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
4544 * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
4545 * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
4546 * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
4547 * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
4548 * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
4549 * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
4550 * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
4551 * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
4552 * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
4553 * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
4554 * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
4555 * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
4556 * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
4557 * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
4558 * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
4559 * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
4560 * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
4561 * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
4562 * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
4563 * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
4564 * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
4565 * config/mips/mips.c (mips_truly_noop_truncation): New function.
4566 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
4567 * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
4568 rather than TRULY_NOOP_TRUNCATION in comments.
4569 * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
4570 * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
4571 * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
4572 * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
4573 * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
4574 * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
4575 * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
4576 * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
4577 * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
4578 * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
4579 * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
4580 * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
4581 rather than TRULY_NOOP_TRUNCATION in comments.
4582 * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
4583 * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
4584 * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
4585 * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
4586 * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
4587 TRULY_NOOP_TRUNCATION condition.
4588 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4589 (TRULY_NOOP_TRUNCATION): Delete.
4590 * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
4591 * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
4592 * config/spu/spu.c (spu_truly_noop_truncation): New function.
4593 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
4594 * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
4595 * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
4596 * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
4597 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
4598 * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
4599 rather than TRULY_NOOP_TRUNCATION in comments.
4600 * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
4601 * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
4602 * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
4603 * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
4604 * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
4605 * system.h (TRULY_NOOP_TRUNCATION): Poison.
4606
4607 2017-09-15 Christophe Lyon <christophe.lyon@linaro.org>
4608
4609 PR target/67591
4610 * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
4611 (*cmp_ior): Likewise.
4612 (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
4613 (*ior_scc_scc_cmp): Likewise.
4614 (*and_scc_scc): Likewise.
4615 (*and_scc_scc_cmp): Likewise.
4616
4617 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
4618 Alan Hayard <alan.hayward@arm.com>
4619 David Sherwood <david.sherwood@arm.com>
4620
4621 * target.def (can_change_mode_class): New hook.
4622 (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
4623 (hard_regno_nregs): Likewise.
4624 * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
4625 * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
4626 * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
4627 (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
4628 (LOAD_EXTEND_OP): Update accordingly.
4629 * doc/tm.texi: Regenerate.
4630 * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
4631 CANNOT_CHANGE_MODE_CLASS.
4632 * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
4633 (REG_CAN_CHANGE_MODE_P): ...this new macro.
4634 * combine.c (simplify_set): Update accordingly.
4635 * emit-rtl.c (validate_subreg): Likewise.
4636 * recog.c (general_operand): Likewise.
4637 * regcprop.c (mode_change_ok): Likewise.
4638 * reload1.c (choose_reload_regs): Likewise.
4639 (inherit_piecemeal_p): Likewise.
4640 * rtlanal.c (simplify_subreg_regno): Likewise.
4641 * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
4642 instead of CANNOT_CHANGE_MODE_CLASS.
4643 (reload_cse_simplify_operands): Likewise.
4644 * reload.c (push_reload): Use targetm.can_change_mode_class
4645 instead of CANNOT_CHANGE_MODE_CLASS.
4646 (push_reload): Likewise. Also use REG_CAN_CHANGE_MODE_P instead of
4647 REG_CANNOT_CHANGE_MODE_P.
4648 * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4649 * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
4650 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4651 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4652 * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4653 (arm_can_change_mode_class): New function.
4654 * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
4655 than CANNOT_CHANGE_MODE_CLASS in comments.
4656 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4657 * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
4658 * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
4659 (ix86_can_change_mode_class): ...this new function, inverting the
4660 sense of the return value.
4661 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4662 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4663 * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4664 (ia64_can_change_mode_class): New function.
4665 * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4666 * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
4667 * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
4668 (m32c_can_change_mode_class): ...this new function, inverting the
4669 sense of the return value.
4670 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4671 * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4672 * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
4673 * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
4674 (mips_can_change_mode_class): ...this new function, inverting the
4675 sense of the return value.
4676 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4677 * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4678 * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4679 (msp430_can_change_mode_class): New function.
4680 * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4681 * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
4682 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4683 * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4684 * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4685 * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
4686 * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4687 (pa_cannot_change_mode_class): Replace with...
4688 (pa_can_change_mode_class): ...this new function, inverting the
4689 sense of the return value.
4690 (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
4691 than CANNOT_CHANGE_MODE_CLASS in comments.
4692 * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4693 * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
4694 * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4695 (pdp11_cannot_change_mode_class): Replace with...
4696 (pdp11_can_change_mode_class): ...this new function, inverting the
4697 sense of the return value.
4698 * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4699 * config/powerpcspe/powerpcspe-protos.h
4700 (rs6000_cannot_change_mode_class_ptr): Delete.
4701 * config/powerpcspe/powerpcspe.c
4702 (rs6000_cannot_change_mode_class_ptr): Delete.
4703 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4704 (rs6000_option_override_internal): Assign to
4705 targetm.can_change_mode_class instead of
4706 rs6000_cannot_change_mode_class_ptr.
4707 (rs6000_cannot_change_mode_class): Replace with...
4708 (rs6000_can_change_mode_class): ...this new function, inverting the
4709 sense of the return value.
4710 (rs6000_debug_cannot_change_mode_class): Replace with...
4711 (rs6000_debug_can_change_mode_class): ...this new function.
4712 * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4713 * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
4714 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4715 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4716 * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
4717 Delete.
4718 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
4719 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4720 (rs6000_option_override_internal): Assign to
4721 targetm.can_change_mode_class instead of
4722 rs6000_cannot_change_mode_class_ptr.
4723 (rs6000_cannot_change_mode_class): Replace with...
4724 (rs6000_can_change_mode_class): ...this new function, inverting the
4725 sense of the return value.
4726 (rs6000_debug_cannot_change_mode_class): Replace with...
4727 (rs6000_debug_can_change_mode_class): ...this new function.
4728 * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4729 * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
4730 * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
4731 (s390_can_change_mode_class): ...this new function, inverting the
4732 sense of the return value.
4733 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4734 * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4735 * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
4736 * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4737 (sh_cannot_change_mode_class): Replace with...
4738 (sh_can_change_mode_class): ...this new function, inverting the
4739 sense of the return value.
4740 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4741 * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4742 (sparc_can_change_mode_class): New function.
4743 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4744 * config/spu/spu.c (spu_can_change_mode_class): New function.
4745 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4746 * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4747 * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4748 (visium_can_change_mode_class): New function.
4749 * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
4750
4751 2017-09-15 Richard Biener <rguenther@suse.de>
4752
4753 PR tree-optimization/82217
4754 * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
4755 but not undefined case.
4756
4757 2017-09-15 Jakub Jelinek <jakub@redhat.com>
4758
4759 PR target/82145
4760 * postreload.c (reload_cse_simplify_operands): Skip
4761 NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
4762
4763 2017-09-15 Richard Biener <rguenther@suse.de>
4764
4765 PR tree-optimization/68823
4766 * graphite-scop-detection.c (build_alias_set): If we have a
4767 possible dependence check whether we can handle them by just
4768 looking at the DRs DR_ACCESS_FNs.
4769 (build_scops): If build_alias_set fails, fail the SCOP.
4770
4771 2017-09-14 Michael Meissner <meissner@linux.vnet.ibm.com>
4772
4773 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
4774 to support float128 built-in functions that require the ISA 3.0
4775 hardware.
4776 (BU_FLOAT128_3_HW): Likewise.
4777 (SQRTF128): Add support for the IEEE 128-bit square root and fma
4778 built-in functions.
4779 (FMAF128): Likewise.
4780 (FMAQ): Likewise.
4781 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
4782 support for built-in functions that need the ISA 3.0 IEEE 128-bit
4783 floating point instructions.
4784 (rs6000_invalid_builtin): Likewise.
4785 (rs6000_builtin_mask_names): Likewise.
4786 * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
4787 (RS6000_BTM_FLOAT128_HW): Likewise.
4788 (RS6000_BTM_COMMON): Likewise.
4789 * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
4790 function.
4791 * doc/extend.texi (RS/6000 built-in functions): Document the
4792 IEEE 128-bit floating point square root and fused multiply-add
4793 built-in functions.
4794
4795 2017-09-14 Pat Haugen <pthaugen@us.ibm.com>
4796
4797 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
4798 reg (r2) isn't in the set of registers defined in the prologue.
4799
4800 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4801 Alan Hayward <alan.hayward@arm.com>
4802 David Sherwood <david.sherwood@arm.com>
4803
4804 * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
4805 (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
4806 (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
4807 (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
4808 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
4809 accordingly.
4810 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
4811 max_vectorization_factor.
4812 (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
4813
4814 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4815 Alan Hayward <alan.hayward@arm.com>
4816 David Sherwood <david.sherwood@arm.com>
4817
4818 * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
4819 (vect_worthwhile_without_simd_p): Declare.
4820 * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
4821 (vectorizable_reduction): Use it.
4822 * tree-vect-stmts.c (vectorizable_shift): Likewise.
4823 (vectorizable_operation): Likewise.
4824
4825 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4826 Alan Hayward <alan.hayward@arm.com>
4827 David Sherwood <david.sherwood@arm.com>
4828
4829 * tree-vectorizer.h (vect_get_num_copies): New function.
4830 * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
4831 * tree-vect-loop.c (vectorizable_reduction): Likewise.
4832 (vectorizable_induction): Likewise.
4833 (vectorizable_live_operation): Likewise.
4834 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
4835 (vectorizable_bswap): Likewise.
4836 (vectorizable_call): Likewise.
4837 (vectorizable_conversion): Likewise.
4838 (vectorizable_assignment): Likewise.
4839 (vectorizable_shift): Likewise.
4840 (vectorizable_operation): Likewise.
4841 (vectorizable_store): Likewise.
4842 (vectorizable_load): Likewise.
4843 (vectorizable_condition): Likewise.
4844 (vectorizable_comparison): Likewise.
4845 (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
4846
4847 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4848 Alan Hayward <alan.hayward@arm.com>
4849 David Sherwood <david.sherwood@arm.com>
4850
4851 * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
4852 of vect_init_vector.
4853
4854 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4855 Alan Hayward <alan.hayward@arm.com>
4856 David Sherwood <david.sherwood@arm.com>
4857
4858 * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
4859 an inline wrapper that provides a location.
4860 (gimple_build_vector): Likewise.
4861 * gimple-fold.c (gimple_build_vector_from_val): New function.
4862 (gimple_build_vector): Likewise.
4863 * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
4864 functions to build the initial value. Always return a gimple value.
4865 (get_initial_defs_for_reduction): Likewise. Only compute
4866 neutral_vec once.
4867 (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
4868 vect_init_vector on the results from get_initial_def(s)_for_reduction.
4869 (vectorizable_induction): Use gimple_build_vector rather than
4870 vect_init_vector.
4871
4872 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4873 Alan Hayward <alan.hayward@arm.com>
4874 David Sherwood <david.sherwood@arm.com>
4875
4876 * target.h (vec_perm_indices): New typedef.
4877 (auto_vec_perm_indices): Likewise.
4878 * optabs-query.h: Include target.h
4879 (can_vec_perm_p): Take a vec_perm_indices *.
4880 * optabs-query.c (can_vec_perm_p): Likewise.
4881 (can_mult_highpart_p): Update accordingly. Use auto_vec_perm_indices.
4882 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
4883 * tree-vect-generic.c (lower_vec_perm): Likewise.
4884 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
4885 (vect_grouped_load_supported): Likewise.
4886 (vect_shift_permute_load_chain): Likewise.
4887 (vect_permute_store_chain): Use auto_vec_perm_indices.
4888 (vect_permute_load_chain): Likewise.
4889 * fold-const.c (fold_vec_perm): Take vec_perm_indices.
4890 (fold_ternary_loc): Update accordingly. Use auto_vec_perm_indices.
4891 Update uses of can_vec_perm_p.
4892 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
4893 mode with a number of elements. Take a vec_perm_indices *.
4894 (vect_create_epilog_for_reduction): Update accordingly.
4895 Use auto_vec_perm_indices.
4896 (have_whole_vector_shift): Likewise. Update call to can_vec_perm_p.
4897 * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
4898 (vect_transform_slp_perm_load): Likewise.
4899 (vect_schedule_slp_instance): Use auto_vec_perm_indices.
4900 * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
4901 (vect_gen_perm_mask_checked): Likewise.
4902 * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
4903 (vect_gen_perm_mask_checked): Likewise.
4904 (vectorizable_mask_load_store): Use auto_vec_perm_indices.
4905 (vectorizable_store): Likewise.
4906 (vectorizable_load): Likewise.
4907 (perm_mask_for_reverse): Likewise. Update call to can_vec_perm_p.
4908 (vectorizable_bswap): Likewise.
4909
4910 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4911 Alan Hayward <alan.hayward@arm.com>
4912 David Sherwood <david.sherwood@arm.com>
4913
4914 * tree.h (build_vector): Take a vec<tree> instead of a tree *.
4915 * tree.c (build_vector): Likewise.
4916 (build_vector_from_ctor): Update accordingly.
4917 (build_vector_from_val): Likewise.
4918 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
4919 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
4920 * tree-vect-generic.c (add_rshift): Likewise.
4921 (expand_vector_divmod): Likewise.
4922 (optimize_vector_constructor): Likewise.
4923 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4924 (vect_transform_slp_perm_load): Likewise.
4925 (vect_schedule_slp_instance): Likewise.
4926 * tree-vect-stmts.c (vectorizable_bswap): Likewise.
4927 (vectorizable_call): Likewise.
4928 (vect_gen_perm_mask_any): Likewise. Add elements in order.
4929 * expmed.c (make_tree): Likewise.
4930 * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
4931 a vector passed to build_vector.
4932 (fold_convert_const): Likewise.
4933 (exact_inverse): Likewise.
4934 (fold_ternary_loc): Likewise.
4935 (fold_relational_const): Likewise.
4936 (const_binop): Likewise. Use VECTOR_CST_ELT directly when operating
4937 on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
4938 (const_unop): Likewise. Store the reduction accumulator in a
4939 variable rather than an array.
4940 (vec_cst_ctor_to_array): Take the number of elements as a parameter.
4941 (fold_vec_perm): Update calls accordingly. Use auto_vec<tree> for
4942 the new vector, rather than constructing it after the input arrays.
4943 (native_interpret_vector): Use auto_vec<tree> when building
4944 a vector passed to build_vector. Add elements in order.
4945 * tree-vect-loop.c (get_initial_defs_for_reduction): Use
4946 auto_vec<tree> when building a vector passed to build_vector.
4947 (vect_create_epilog_for_reduction): Likewise.
4948 (vectorizable_induction): Likewise.
4949 (get_initial_def_for_reduction): Likewise. Fix indentation of
4950 case statements.
4951 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
4952 to a vec<tree> *.
4953 (sparc_fold_builtin): Use auto_vec<tree> when building a vector
4954 passed to build_vector.
4955
4956 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4957 Alan Hayward <alan.hayward@arm.com>
4958 David Sherwood <david.sherwood@arm.com>
4959
4960 * tree-core.h (tree_base::u): Add an "nelts" field.
4961 (tree_vector): Use VECTOR_CST_NELTS as the length.
4962 * tree.c (tree_size): Likewise.
4963 (make_vector): Initialize VECTOR_CST_NELTS.
4964 * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
4965 * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
4966 TYPE_VECTOR_SUBPARTS.
4967 * expr.c (const_vector_mask_from_tree): Consistently use "units"
4968 as the number of units, setting it from VECTOR_CST_NELTS.
4969 (const_vector_from_tree): Likewise.
4970 * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
4971 TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
4972 (fold_negate_expr_1): Likewise.
4973 (fold_convert_const): Likewise.
4974 (const_binop): Likewise. Differentiate the number of output and
4975 input elements.
4976 (const_unop): Likewise.
4977 (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
4978 in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
4979 in cases that did the opposite.
4980
4981 2017-09-14 Richard Biener <rguenther@suse.de>
4982
4983 * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
4984 to VN_TOP.
4985
4986 2017-09-14 Eric Botcazou <ebotcazou@adacore.com>
4987
4988 * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
4989
4990 2017-09-14 Jakub Jelinek <jakub@redhat.com>
4991
4992 PR target/81325
4993 * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
4994 if and where to split a bb, except for splitting before debug insn
4995 sequences followed by non-label real insn. Delete debug insns
4996 in between basic blocks.
4997
4998 * combine.c (make_compound_operation_int): Formatting fixes.
4999
5000 * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
5001 * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
5002 * config/netbsd.h (LINK_EH_SPEC): Likewise.
5003 * config/sol2.h (LINK_EH_SPEC): Likewise.
5004 * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
5005 * config/s390/linux.h (LINK_SPEC): Likewise.
5006 * config/freebsd.h (LINK_EH_SPEC): Likewise.
5007 * config/openbsd.h (LINK_EH_SPEC): Likewise.
5008 * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
5009 * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
5010 * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
5011 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
5012 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
5013 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
5014
5015 2017-09-13 Jakub Jelinek <jakub@redhat.com>
5016
5017 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
5018 support.
5019 (ENDFILE_LINUX_SPEC): Likewise.
5020 (LINK_EH_SPEC): Likewise.
5021 * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
5022 (LINK_OS_LINUX_SPEC32): Likewise.
5023 (LINK_OS_LINUX_SPEC64): Likewise.
5024 * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
5025 (LINK_OS_LINUX_SPEC): Likewise.
5026
5027 2017-09-13 Martin Liska <mliska@suse.cz>
5028
5029 PR middle-end/82154
5030 * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
5031 CASE_HIGH is NULL_TREE.
5032
5033 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
5034 Alan Hayward <alan.hayward@arm.com>
5035 David Sherwood <david.sherwood@arm.com>
5036
5037 * target.def (secondary_memory_needed): New hook.
5038 (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
5039 instead of SECONDARY_MEMORY_NEEDED.
5040 (secondary_memory_needed_mode): Likewise.
5041 * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
5042 * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
5043 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
5044 (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
5045 (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
5046 * doc/tm.texi: Regenerate.
5047 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
5048 * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
5049 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5050 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
5051 * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
5052 * config/i386/i386.c (inline_secondary_memory_needed): Put the
5053 mode argument first and change the reg_class arguments to reg_class_t.
5054 (ix86_secondary_memory_needed): Likewise. Remove the strict parameter.
5055 Make static. Update the call to inline_secondary_memory_needed.
5056 (ix86_register_move_cost): Update the call to
5057 inline_secondary_memory_needed.
5058 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5059 * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
5060 definition.
5061 * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
5062 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
5063 in comment.
5064 * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
5065 * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
5066 * config/mips/mips.c (mips_secondary_memory_needed): Make static
5067 and match hook interface. Add comment from mips.h.
5068 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5069 * config/mmix/mmix.md (truncdfsf2): Refer to
5070 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
5071 in comment.
5072 * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
5073 (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
5074 * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5075 (pa_secondary_memory_needed): New function.
5076 * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
5077 * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
5078 * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5079 (pdp11_secondary_memory_needed): Make static and match hook interface.
5080 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
5081 * config/powerpcspe/powerpcspe-protos.h
5082 (rs6000_secondary_memory_needed_ptr): Delete.
5083 * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
5084 Delete.
5085 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5086 (rs6000_option_override_internal): Assign to
5087 targetm.secondary_memory_needed rather than
5088 rs6000_secondary_memory_needed_ptr.
5089 (rs6000_secondary_memory_needed): Match hook interface.
5090 (rs6000_debug_secondary_memory_needed): Likewise.
5091 * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
5092 * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
5093 (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
5094 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5095 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
5096 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
5097 Delete.
5098 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
5099 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5100 (rs6000_option_override_internal): Assign to
5101 targetm.secondary_memory_needed rather than
5102 rs6000_secondary_memory_needed_ptr.
5103 (rs6000_secondary_memory_needed): Match hook interface.
5104 (rs6000_debug_secondary_memory_needed): Likewise.
5105 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
5106 * config/s390/s390.c (s390_secondary_memory_needed): New function.
5107 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5108 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
5109 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5110 (sparc_secondary_memory_needed): New function.
5111 * lra-constraints.c (check_and_process_move): Refer to
5112 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
5113 in comment.
5114 (curr_insn_transform): Likewise.
5115 (process_alt_operands): Use targetm.secondary_memory_needed
5116 instead of TARGET_SECONDARY_MEMORY_NEEDED.
5117 (check_secondary_memory_needed_p): Likewise.
5118 (choose_split_class): Likewise.
5119 * reload.c: Unconditionally include code that was previously
5120 conditional on SECONDARY_MEMORY_NEEDED.
5121 (push_secondary_reload): Use targetm.secondary_memory_needed
5122 instead of TARGET_SECONDARY_MEMORY_NEEDED.
5123 (push_reload): Likewise.
5124 * reload1.c: Unconditionally include code that was previously
5125 conditional on SECONDARY_MEMORY_NEEDED.
5126 (choose_reload_regs): Use targetm.secondary_memory_needed
5127 instead of TARGET_SECONDARY_MEMORY_NEEDED.
5128 (gen_reload): Likewise.
5129 * system.h (SECONDARY_MEMORY_NEEDED): Poison.
5130
5131 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
5132 Alan Hayward <alan.hayward@arm.com>
5133 David Sherwood <david.sherwood@arm.com>
5134
5135 * target.def (secondary_memory_needed_mode): New hook:
5136 * targhooks.c (default_secondary_memory_needed_mode): Declare.
5137 * targhooks.h (default_secondary_memory_needed_mode): New function.
5138 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
5139 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
5140 * doc/tm.texi: Regenerate.
5141 * lra-constraints.c (check_and_process_move): Use
5142 targetm.secondary_memory_needed_mode instead of
5143 TARGET_SECONDARY_MEMORY_NEEDED_MODE.
5144 (curr_insn_transform): Likewise.
5145 * reload.c (get_secondary_mem): Likewise.
5146 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5147 * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
5148 function.
5149 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5150 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5151 * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
5152 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5153 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
5154 Delete.
5155 * config/powerpcspe/powerpcspe-protos.h
5156 (rs6000_secondary_memory_needed_mode): Delete.
5157 * config/powerpcspe/powerpcspe.c
5158 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5159 (rs6000_secondary_memory_needed_mode): Make static.
5160 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5161 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
5162 Delete.
5163 * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
5164 Redefine.
5165 (rs6000_secondary_memory_needed_mode): Make static.
5166 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5167 * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
5168 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5169 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5170 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
5171 Redefine.
5172 (sparc_secondary_memory_needed_mode): New function.
5173 * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
5174
5175 2017-09-13 Jackson Woodruff <jackson.woodruff@arm.com>
5176
5177 * config/aarch64/constraints.md (Umq): New constraint.
5178 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
5179 Change to use Umq.
5180 (mov<mode>): Update condition.
5181
5182 2017-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5183
5184 * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
5185 when bitposition is the same.
5186
5187 2017-09-13 Richard Biener <rguenther@suse.de>
5188
5189 * dwarf2out.c (output_die_symbol): Remove.
5190 (output_die): Do not output a DIEs symbol.
5191
5192 2017-09-13 Richard Biener <rguenther@suse.de>
5193
5194 PR middle-end/82128
5195 * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
5196 default-def to avoid breaking iterator update with the weird
5197 interaction with cgraph_update_edges_for_call_stmt_node.
5198
5199 2017-09-13 Richard Biener <rguenther@suse.de>
5200
5201 * tree-cfg.c (verify_gimple_assign_binary): Add verification
5202 for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
5203 VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
5204 (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
5205
5206 2017-09-13 Kugan Vivekanandarajah <kuganv@linaro.org>
5207
5208 * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
5209 Disable pc relative literal load irrespective of
5210 TARGET_FIX_ERR_A53_84341 for default.
5211
5212 2017-09-12 Eric Botcazou <ebotcazou@adacore.com>
5213
5214 * config/sparc/sparc.c (output_return): Output the source location of
5215 the insn in the delay slot, if any.
5216 (output_sibcall): Likewise.
5217
5218 2017-09-12 H.J. Lu <hongjiu.lu@intel.com>
5219
5220 PR driver/81498
5221 * common.opt (-static-pie): New alias.
5222 (shared): Negate static-pie.
5223 (-no-pie): Update help text.
5224 (-pie): Likewise.
5225 (static-pie): New option.
5226 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
5227 -static-pie support.
5228 (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
5229 (LINK_EH_SPEC): Likewise.
5230 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
5231 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
5232 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
5233 * gcc.c (LINK_COMMAND_SPEC): Likewise.
5234 (init_gcc_specs): Likewise.
5235 (init_spec): Likewise.
5236 (display_help): Update help message for -pie.
5237 * doc/invoke.texi: Update -pie, -no-pie and -static. Document
5238 -static-pie.
5239
5240 2017-09-12 Wilco Dijkstra <wdijkstr@arm.com>
5241
5242 * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
5243 (movdi_aarch64): Likewise.
5244 (movti_aarch64): Likewise.
5245
5246 2017-09-12 Simon Wright <simon@pushface.org>
5247
5248 PR target/80204
5249 * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
5250 calculation of the minor version, always output as 0.
5251
5252 2017-09-12 Jakub Jelinek <jakub@redhat.com>
5253
5254 PR target/82112
5255 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
5256 ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
5257 on it early, rather than manual conversion late. For
5258 ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
5259 instead of performing manual conversion.
5260
5261 2017-09-12 Carl Love <cel@us.ibm.com>
5262
5263 * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
5264 vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
5265 vmulouw, vmulosw.
5266 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
5267 VMULOSW): Add definitions.
5268 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5269 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
5270 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
5271 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
5272 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
5273
5274 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
5275
5276 * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
5277 types correctly.
5278 (movti_aarch64): Likewise.
5279 (movdf_aarch64): Likewise.
5280 (movtf_aarch64): Likewise.
5281 (load_pairdi): Likewise.
5282 (store_pairdi): Likewise.
5283 (load_pairdf): Likewise.
5284 (store_pairdf): Likewise.
5285 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
5286 (storewb_pair<GPI:mode>_<P:mode>): Likewise.
5287 (ldr_got_small_<mode>): Likewise.
5288 (ldr_got_small_28k_<mode>): Likewise.
5289 (ldr_got_tiny): Likewise.
5290 * config/aarch64/iterators.md (ldst_sz): New.
5291 (ldpstp_sz): Likewise.
5292 * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
5293 to store_16.
5294 (thunderx_load): Split load_8 to load_16.
5295 * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
5296 load_8 to load_16.
5297 (thunderx2t99_storepair_basic): Split store_8 to store_16.
5298 * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
5299 (xgene1_store_pair): Split store_8 to store_16.
5300 * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
5301 (falkor_st_0_st_sd): Split store_8 to store_16.
5302
5303 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
5304
5305 * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
5306 and store1/2/3/4 to store_4/8/12/16.
5307 * config/aarch64/aarch64.md: Update for rename.
5308 * config/arm/arm.md: Likewise.: Likewise.
5309 * config/arm/arm.c: Likewise.
5310 * config/arm/thumb1.md: Likewise.
5311 * config/arm/thumb2.md: Likewise.
5312 * config/arm/vfp.md: Likewise.
5313 * config/arm/arm-generic.md: Likewise.
5314 * config/arm/arm1020e.md: Likewise.
5315 * config/arm/arm1026ejs.md: Likewise.
5316 * config/arm/arm1136jfs.md: Likewise.
5317 * config/arm/arm926ejs.md: Likewise.
5318 * config/arm/cortex-a15.md: Likewise.
5319 * config/arm/cortex-a17.md: Likewise.
5320 * config/arm/cortex-a5.md: Likewise.
5321 * config/arm/cortex-a53.md: Likewise.
5322 * config/arm/cortex-a57.md: Likewise.
5323 * config/arm/cortex-a7.md: Likewise.
5324 * config/arm/cortex-a8.md: Likewise.
5325 * config/arm/cortex-a9.md: Likewise.
5326 * config/arm/cortex-m4.md: Likewise.
5327 * config/arm/cortex-m7.md: Likewise.
5328 * config/arm/cortex-r4.md: Likewise.
5329 * config/arm/exynos-m1.md: Likewise.
5330 * config/arm/fa526.md: Likewise.
5331 * config/arm/fa606te.md: Likewise.
5332 * config/arm/fa626te.md: Likewise.
5333 * config/arm/fa726te.md: Likewise.
5334 * config/arm/fmp626.md: Likewise.
5335 * config/arm/iwmmxt.md: Likewise.
5336 * config/arm/ldmstm.md: Likewise.
5337 * config/arm/marvell-pj4.md: Likewise.
5338 * config/arm/xgene1.md: Likewise.
5339 * config/aarch64/thunderx.md: Likewise.
5340 * config/aarch64/thunderx2t99.md: Likewise.
5341 * config/aarch64/falkor.md: Likewise.
5342
5343 2017-09-12 Martin Liska <mliska@suse.cz>
5344
5345 * attribs.c (private_lookup_attribute): New function.
5346 * attribs.h (private_lookup_attribute): Declared here.
5347 (lookup_attribute): Called from this place.
5348
5349 2017-09-12 Richard Biener <rguenther@suse.de>
5350
5351 PR tree-optimization/82157
5352 * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
5353 stmts with side-effects.
5354
5355 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5356 Alan Hayward <alan.hayward@arm.com>
5357 David Sherwood <david.sherwood@arm.com>
5358
5359 * target.def (hard_regno_nregs): New hook.
5360 (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
5361 * targhooks.h (default_hard_regno_nregs): Declare.
5362 * targhooks.c (default_hard_regno_nregs): New function.
5363 * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
5364 (TARGET_HARD_REGNO_NREGS): ...this hook.
5365 (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
5366 (CLASS_MAX_NREGS): Likewise.
5367 * doc/tm.texi: Regenerate.
5368 * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
5369 instead of HARD_REGNO_NREGS.
5370 * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
5371 HARD_REGNO_NREGS in the comment.
5372 * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
5373 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
5374 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
5375 Return an unsigned int.
5376 (TARGET_HARD_REGNO_NREGS): Redefine.
5377 * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
5378 * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
5379 * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
5380 (arc_hard_regno_nregs): New function.
5381 * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
5382 * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
5383 (arm_hard_regno_nregs): New function.
5384 * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
5385 * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
5386 * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
5387 (TARGET_HARD_REGNO_NREGS): Redefine.
5388 * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
5389 * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
5390 (HARD_REGNO_NREGS): Delete.
5391 * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
5392 (cr16_hard_regno_nregs): New function.
5393 (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
5394 * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
5395 * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
5396 (cris_hard_regno_nregs): New function.
5397 * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
5398 * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
5399 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
5400 * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
5401 (CLASS_MAX_NREGS): Remove outdated copy of documentation.
5402 * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
5403 * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
5404 (frv_hard_regno_nregs): Make static. Take and return an
5405 unsigned int.
5406 (frv_class_max_nregs): Remove outdated copy of documentation.
5407 * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
5408 * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
5409 * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
5410 * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
5411 * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
5412 * config/i386/i386.c (ix86_hard_regno_nregs): New function.
5413 (TARGET_HARD_REGNO_NREGS): Redefine.
5414 * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
5415 (CLASS_MAX_NREGS): Update comment.
5416 * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
5417 (ia64_hard_regno_nregs): New function.
5418 * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
5419 * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
5420 * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
5421 * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
5422 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
5423 an unsigned int.
5424 (m32c_hard_regno_nregs): Likewise. Make static.
5425 (TARGET_HARD_REGNO_NREGS): Redefine.
5426 * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
5427 * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
5428 * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
5429 (m68k_hard_regno_nregs): New function.
5430 * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
5431 * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
5432 * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
5433 * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
5434 * config/mips/mips.c (mips_hard_regno_nregs): Make static.
5435 Take and return an unsigned int.
5436 (TARGET_HARD_REGNO_NREGS): Redefine.
5437 * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
5438 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
5439 * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
5440 * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
5441 * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
5442 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
5443 * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
5444 (msp430_hard_regno_nregs): Make static. Take and return an
5445 unsigned int.
5446 * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
5447 * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
5448 * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
5449 (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
5450 * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
5451 * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
5452 * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
5453 (TARGET_HARD_REGNO_NREGS): Redefine.
5454 * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
5455 (PA_HARD_REGNO_NREGS): ...this.
5456 * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
5457 (PA_HARD_REGNO_NREGS): ...this.
5458 * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
5459 (pa_hard_regno_nregs): New function.
5460 * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
5461 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
5462 (pdp11_hard_regno_nregs): New function.
5463 * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
5464 * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
5465 (rs6000_hard_regno_nregs_hook): New function.
5466 * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
5467 * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
5468 * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
5469 Take and return an unsigned int. Move earlier in file.
5470 (TARGET_HARD_REGNO_NREGS): Redefine.
5471 * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
5472 * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
5473 * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
5474 (rl78_hard_regno_nregs): Make static. Take and return an
5475 unsigned int.
5476 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
5477 * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
5478 (rs6000_hard_regno_nregs_hook): New function.
5479 * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
5480 * config/rx/rx.c (rx_hard_regno_nregs): New function.
5481 (TARGET_HARD_REGNO_NREGS): Redefine.
5482 * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
5483 * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
5484 instead of HARD_REGNO_NREGS.
5485 (s390_hard_regno_nregs): New function.
5486 (s390_hard_regno_mode_ok): Add comment from s390.h.
5487 (TARGET_HARD_REGNO_NREGS): Redefine.
5488 * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
5489 * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
5490 (sh_hard_regno_nregs): New function.
5491 (sh_pass_in_reg_p): Use it.
5492 * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
5493 * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
5494 (sparc_hard_regno_nregs): New function.
5495 * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
5496 * config/spu/spu.c (spu_hard_regno_nregs): New function.
5497 (spu_function_arg_advance): Use it, supplying a valid register number.
5498 (TARGET_HARD_REGNO_NREGS): Redefine.
5499 * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
5500 * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
5501 * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
5502 * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
5503 * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
5504 * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
5505 (CLASS_MAX_NREGS): Remove copy of old documentation.
5506 * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
5507 (visium_hard_regno_nregs): New function.
5508 (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
5509 * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
5510 * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
5511 xtensa_hard_regno_nregs): New function.
5512 * system.h (HARD_REGNO_NREGS): Poison.
5513
5514 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5515
5516 * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
5517 hard_regno_nregs instead of HARD_REGNO_NREGS.
5518 (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
5519 * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
5520 (c6x_expand_epilogue): Likewise.
5521 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
5522 (frv_read_iacc_argument): Likewise.
5523 * config/sh/sh.c: Include regs.h.
5524 (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
5525 (regs_used): Likewise.
5526 (output_stack_adjust): Likewise.
5527 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
5528 * expmed.c: Include regs.h.
5529 (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
5530 * ree.c: Include regs.h.
5531 (combine_reaching_defs): Use hard_regno_nregs instead of
5532 HARD_REGNO_NREGS.
5533 (add_removable_extension): Likewise.
5534
5535 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5536
5537 * regs.h (hard_regno_nregs): Turn into a function.
5538 (end_hard_regno): Update accordingly.
5539 * caller-save.c (setup_save_areas): Likewise.
5540 (save_call_clobbered_regs): Likewise.
5541 (replace_reg_with_saved_mem): Likewise.
5542 (insert_restore): Likewise.
5543 (insert_save): Likewise.
5544 * combine.c (can_change_dest_mode): Likewise.
5545 (move_deaths): Likewise.
5546 (distribute_notes): Likewise.
5547 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
5548 * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
5549 (rs6000_split_multireg_move): Likewise.
5550 (rs6000_register_move_cost): Likewise.
5551 (rs6000_memory_move_cost): Likewise.
5552 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
5553 (rs6000_split_multireg_move): Likewise.
5554 (rs6000_register_move_cost): Likewise.
5555 (rs6000_memory_move_cost): Likewise.
5556 * cselib.c (cselib_reset_table): Likewise.
5557 (cselib_lookup_1): Likewise.
5558 * emit-rtl.c (set_mode_and_regno): Likewise.
5559 * function.c (aggregate_value_p): Likewise.
5560 * ira-color.c (setup_profitable_hard_regs): Likewise.
5561 (check_hard_reg_p): Likewise.
5562 (calculate_saved_nregs): Likewise.
5563 (assign_hard_reg): Likewise.
5564 (improve_allocation): Likewise.
5565 (calculate_spill_cost): Likewise.
5566 * ira-emit.c (modify_move_list): Likewise.
5567 * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
5568 (ira_hard_reg_in_set_p): Likewise.
5569 * ira.c (setup_reg_mode_hard_regset): Likewise.
5570 (clarify_prohibited_class_mode_regs): Likewise.
5571 (check_allocation): Likewise.
5572 * lra-assigns.c (find_hard_regno_for_1): Likewise.
5573 (lra_setup_reg_renumber): Likewise.
5574 (setup_try_hard_regno_pseudos): Likewise.
5575 (spill_for): Likewise.
5576 (assign_hard_regno): Likewise.
5577 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
5578 * lra-constraints.c (in_class_p): Likewise.
5579 (lra_constraint_offset): Likewise.
5580 (simplify_operand_subreg): Likewise.
5581 (lra_constraints): Likewise.
5582 (split_reg): Likewise.
5583 (split_if_necessary): Likewise.
5584 (invariant_p): Likewise.
5585 (inherit_in_ebb): Likewise.
5586 * lra-lives.c (process_bb_lives): Likewise.
5587 * lra-remat.c (reg_overlap_for_remat_p): Likewise.
5588 (get_hard_regs): Likewise.
5589 (do_remat): Likewise.
5590 * lra-spills.c (assign_spill_hard_regs): Likewise.
5591 * mode-switching.c (create_pre_exit): Likewise.
5592 * postreload.c (reload_combine_recognize_pattern): Likewise.
5593 * recog.c (peep2_find_free_register): Likewise.
5594 * regcprop.c (kill_value_regno): Likewise.
5595 (set_value_regno): Likewise.
5596 (copy_value): Likewise.
5597 (maybe_mode_change): Likewise.
5598 (find_oldest_value_reg): Likewise.
5599 (copyprop_hardreg_forward_1): Likewise.
5600 * regrename.c (check_new_reg_p): Likewise.
5601 (regrename_do_replace): Likewise.
5602 * reload.c (push_reload): Likewise.
5603 (combine_reloads): Likewise.
5604 (find_dummy_reload): Likewise.
5605 (operands_match_p): Likewise.
5606 (find_reloads): Likewise.
5607 (find_equiv_reg): Likewise.
5608 (reload_adjust_reg_for_mode): Likewise.
5609 * reload1.c (count_pseudo): Likewise.
5610 (count_spilled_pseudo): Likewise.
5611 (find_reg): Likewise.
5612 (clear_reload_reg_in_use): Likewise.
5613 (free_for_value_p): Likewise.
5614 (allocate_reload_reg): Likewise.
5615 (choose_reload_regs): Likewise.
5616 (reload_adjust_reg_for_temp): Likewise.
5617 (emit_reload_insns): Likewise.
5618 (delete_output_reload): Likewise.
5619 * rtlanal.c (subreg_get_info): Likewise.
5620 * sched-deps.c (sched_analyze_reg): Likewise.
5621 * sel-sched.c (init_regs_for_mode): Likewise.
5622 (mark_unavailable_hard_regs): Likewise.
5623 (choose_best_reg_1): Likewise.
5624 (verify_target_availability): Likewise.
5625 * valtrack.c (dead_debug_insert_temp): Likewise.
5626 * var-tracking.c (track_loc_p): Likewise.
5627 (emit_note_insn_var_location): Likewise.
5628 * varasm.c (make_decl_rtl): Likewise.
5629 * reginfo.c (choose_hard_reg_mode): Likewise.
5630 (init_reg_modes_target): Refer directly to
5631 this_target_regs->x_hard_regno_nregs.
5632
5633 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5634
5635 * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
5636 instead of hard_regno_nregs.
5637
5638 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5639
5640 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
5641 end_hard_regno instead of hard_regno_nregs.
5642 * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
5643 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
5644 * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
5645 * ira-color.c (improve_allocation): Likewise.
5646 * lra-assigns.c (find_hard_regno_for_1): Likewise.
5647 * lra-lives.c (mark_regno_live): Likewise.
5648 (mark_regno_dead): Likewise.
5649 * lra-remat.c (operand_to_remat): Likewise.
5650 * lra.c (collect_non_operand_hard_regs): Likewise.
5651 * postreload.c (reload_combine_note_store): Likewise.
5652 (move2add_valid_value_p): Likewise.
5653 * reload.c (regno_clobbered_p): Likewise.
5654
5655 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5656
5657 * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
5658 hard_regno_nregs.
5659 * config/v850/v850.c (v850_reorg): Likewise.
5660 * reload.c (refers_to_regno_for_reload_p): Likewise.
5661 (find_equiv_reg): Likewise.
5662 * reload1.c (reload_reg_reaches_end_p): Likewise.
5663
5664 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5665
5666 * caller-save.c (add_used_regs): Use REG_NREGS instead of
5667 hard_regno_nregs.
5668 * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
5669 * config/arm/arm.c (output_move_neon): Likewise.
5670 (arm_attr_length_move_neon): Likewise.
5671 (neon_split_vcombine): Likewise.
5672 * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
5673 (c6x_mark_reg_written): Likewise.
5674 (c6x_dwarf_register_span): Likewise.
5675 * config/i386/i386.c (ix86_save_reg): Likewise.
5676 * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
5677 (rws_access_reg): Likewise.
5678 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
5679 * mode-switching.c (create_pre_exit): Likewise.
5680 * ree.c (combine_reaching_defs): Likewise.
5681 (add_removable_extension): Likewise.
5682 * regcprop.c (find_oldest_value_reg): Likewise.
5683 (copyprop_hardreg_forward_1): Likewise.
5684 * reload.c (reload_inner_reg_of_subreg): Likewise.
5685 (push_reload): Likewise.
5686 (combine_reloads): Likewise.
5687 (find_dummy_reload): Likewise.
5688 (reload_adjust_reg_for_mode): Likewise.
5689 * reload1.c (find_reload_regs): Likewise.
5690 (forget_old_reloads_1): Likewise.
5691 (reload_reg_free_for_value_p): Likewise.
5692 (reload_adjust_reg_for_temp): Likewise.
5693 (emit_reload_insns): Likewise.
5694 (delete_output_reload): Likewise.
5695 * sel-sched.c (choose_best_reg_1): Likewise.
5696 (choose_best_pseudo_reg): Likewise.
5697
5698 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5699 Alan Hayward <alan.hayward@arm.com>
5700 David Sherwood <david.sherwood@arm.com>
5701
5702 * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
5703 * target.def (slow_unaligned_access): New hook.
5704 * targhooks.h (default_slow_unaligned_access): Declare.
5705 * targhooks.c (default_slow_unaligned_access): New function.
5706 * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
5707 (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
5708 * doc/tm.texi: Regenerate.
5709 * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
5710 * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
5711 * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
5712 definition.
5713 * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
5714 * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
5715 Redefine.
5716 (rs6000_slow_unaligned_access): New function.
5717 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
5718 (expand_block_compare): Likewise.
5719 (expand_strn_compare): Likewise.
5720 (rs6000_rtx_costs): Likewise.
5721 * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
5722 (riscv_slow_unaligned_access): Likewise.
5723 * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
5724 (riscv_slow_unaligned_access_p): ...this and make static.
5725 (riscv_option_override): Update accordingly.
5726 (riscv_slow_unaligned_access): New function.
5727 (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
5728 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
5729 * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
5730 (rs6000_slow_unaligned_access): New function.
5731 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
5732 (rs6000_rtx_costs): Likewise.
5733 * config/rs6000/rs6000-string.c (expand_block_compare)
5734 (expand_strn_compare): Use targetm.slow_unaligned_access instead
5735 of SLOW_UNALIGNED_ACCESS.
5736 * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
5737 * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
5738 * calls.c (expand_call): Use targetm.slow_unaligned_access instead
5739 of SLOW_UNALIGNED_ACCESS.
5740 * expmed.c (simple_mem_bitfield_p): Likewise.
5741 * expr.c (alignment_for_piecewise_move): Likewise.
5742 (emit_group_load_1): Likewise.
5743 (emit_group_store): Likewise.
5744 (copy_blkmode_from_reg): Likewise.
5745 (emit_push_insn): Likewise.
5746 (expand_assignment): Likewise.
5747 (store_field): Likewise.
5748 (expand_expr_real_1): Likewise.
5749 * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
5750 * lra-constraints.c (simplify_operand_subreg): Likewise.
5751 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
5752 * gimple-ssa-store-merging.c: Likewise in block comment at start
5753 of file.
5754 * tree-ssa-strlen.c: Include target.h.
5755 (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
5756 of SLOW_UNALIGNED_ACCESS.
5757 * system.h (SLOW_UNALIGNED_ACCESS): Poison.
5758
5759 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5760
5761 PR rtl-optimization/82185
5762 * expmed.c (emit_store_flag_int): Only test tem if it has been
5763 initialized.
5764
5765 2017-09-12 Richard Biener <rguenther@suse.de>
5766
5767 PR middle-end/82149
5768 * match.pd ((FTYPE) N CMP CST): Fix typo.
5769
5770 2017-09-12 Simon Atanasyan <simon.atanasyan@imgtec.com>
5771
5772 * config/mips/mips.c (mips_attribute_table): Add 'short_call'
5773 attribute.
5774 (mips_near_type_p): Add 'short_call' attribute as a synonym
5775 for 'near'.
5776 * doc/extend.texi (short_call): Document new function attribute.
5777
5778 2017-09-12 Jakub Jelinek <jakub@redhat.com>
5779
5780 PR target/82112
5781 * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
5782 assertion check that in the condition.
5783 (get_atomic_generic_size): Likewise. Before testing if parameter
5784 has pointer type, if it has array type, call for C++
5785 default_conversion to perform array-to-pointer conversion.
5786
5787 2017-09-12 Richard Biener <rguenther@suse.de>
5788
5789 * tree-vect-generic.c (expand_vector_operations_1): Do nothing
5790 for operations we cannot scalarize.
5791
5792 2017-09-12 Aldy Hernandez <aldyh@redhat.com>
5793
5794 * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
5795 vectors heap vectors. Clean up comments.
5796 Make visited_bbs a reference.
5797 (profitable_jump_thread_path): Make GC
5798 vectors heap vectors. Clean up comments.
5799 Misc cleanups.
5800 (convert_and_register_jump_thread_path): Make GC vectors heap
5801 vectors.
5802 (check_subpath_and_update_thread_path): Same. Clean up comments.
5803 Make visited_bbs a reference.
5804 (handle_phi): Abstract common code to to
5805 register_jump_thread_path_if_profitable.
5806 Rename VAR_BB to DEF_BB.
5807 Update comments.
5808 Make GC vectors heap vectors.
5809 Make visited_bbs a reference.
5810 (handle_assignment): Same.
5811 (register_jump_thread_path_if_profitable): New.
5812 (fsm_find_control_statement_thread_paths): Rename VAR_BB to
5813 DEF_BB.
5814 Make GC vectors heap vectors. Clean up comments.
5815 Make visited_bbs a reference.
5816 (find_jump_threads_backwards): Make visited_bbs live in the stack.
5817 * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
5818 comment.
5819
5820 2017-09-11 Max Filippov <jcmvbkbc@gmail.com>
5821
5822 PR target/82181
5823 * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
5824 words of E_DImode object are reachable by xtensa_uimm8x4 access.
5825
5826 2017-09-11 Vidya Praveen <vidyapraveen@arm.com>
5827
5828 Revert r251800 and r251799.
5829
5830 2017-09-11 Martin Jambor <mjambor@suse.cz>
5831
5832 PR hsa/82119
5833 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
5834 arguments in advance.
5835 * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
5836 use it to find predecessor edges.
5837 (naive_outof_ssa): Collect vector of predecessors.
5838
5839 2017-09-08 Jason Merrill <jason@redhat.com>
5840
5841 PR c++/70029 - ICE with ref-qualifier and -flto
5842 * langhooks.h (struct lang_hooks_for_types): Add
5843 copy_lang_qualifiers.
5844 * attribs.c (build_type_attribute_qual_variant): Use it.
5845 * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
5846 NULL.
5847 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
5848 * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
5849
5850 2017-09-08 Eric Botcazou <ebotcazou@adacore.com>
5851
5852 PR target/81988
5853 * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
5854 (*mulsi3_sp64): New instruction.
5855 (mulsi3): New expander.
5856
5857 2017-09-08 Uros Bizjak <ubizjak@gmail.com>
5858
5859 * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
5860
5861 2017-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5862
5863 * sancov.c: Include memmodel.h.
5864
5865 2017-09-07 Eric Botcazou <ebotcazou@adacore.com>
5866
5867 PR target/80897
5868 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
5869 large offsets.
5870
5871 2017-09-07 Carl Love <cel@us.ibm.com>
5872
5873 * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
5874 the sldi instruction.
5875
5876 2017-09-07 David Edelsohn <dje.gcc@gmail.com>
5877
5878 * sancov.c: Include tm_p.h.
5879
5880 2017-09-07 Jakub Jelinek <jakub@redhat.com>
5881
5882 PR target/81979
5883 * output.h (switch_to_other_text_partition): New declaration.
5884 * varasm.c (switch_to_other_text_partition): New function.
5885 * config/rs6000/rs6000.c (uses_TOC): Return 2 if
5886 NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
5887 (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
5888 to the other text partition before emitting LCL label and switch back
5889 after emitting the word after it.
5890
5891 2017-09-07 Richard Biener <rguenther@suse.de>
5892
5893 * passes.def (pass_split_crit_edges): Remove instance before PRE.
5894 * tree-ssa-pre.c (pass_pre::execute): Instead manually split
5895 critical edges here, after loop init.
5896 (pass_data_pre): Remove PROP_no_crit_edges flags.
5897 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
5898 for valueization of call args to avoid leaking VN_TOP.
5899 (visit_use): Assert we do not visit default defs.
5900 (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
5901 Use error_mark_node to more easily detect leaking VN_TOP.
5902 All default-defs are varying, not VN_TOP. Mark them visited.
5903 (run_scc_vn): Make code match comment.
5904
5905 2017-09-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5906
5907 * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
5908 OPTION_MASK_FLOAT128_KEYWORD.
5909 (POWERPC_MASKS): Likewise.
5910 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
5911 support for the -mfloat128-type option, and make -mfloat128
5912 default on PowerPC Linux systems. Define or undefine
5913 __FLOAT128__ and __FLOAT128_HARDWARE__ for the current options.
5914 Define __float128 to be __ieee128 if IEEE 128-bit support is
5915 enabled, or undefine it.
5916 (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
5917 Delete defining __FLOAT128_TYPE__.
5918 * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
5919 -mfloat128-type option and make -mfloat128 default on PowerPC
5920 Linux systems.
5921 (TARGET_FLOAT128_TYPE): Likewise.
5922 (-mfloat128-type): Likewise.
5923 * config/rs6000/rs6000.c (rs6000_option_override_internal):
5924 Delete the -mfloat128-type option and make -mfloat128 default on
5925 PowerPC Linux systems. Always use __ieee128 to be the keyword for
5926 the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
5927 128-bit floating point is enabled. Change tests from using
5928 -mfloat128-type to -mfloat128.
5929 (rs6000_mangle_type): Use the correct mangling for the __float128
5930 type even if normal long double is restricted to 64-bits.
5931 (floatn_mode): Enable the _Float128 type by default on VSX Linux
5932 systems.
5933 * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
5934 (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
5935 (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
5936 -mfloat128-type.
5937 * doc/invoke.texi (RS/6000 and PowerPC Options): Update
5938 documentation for -mfloat128.
5939
5940 2017-09-06 Olivier Hainque <hainque@adacore.com>
5941
5942 * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
5943
5944 2017-09-06 Wish Wu <wishwu007@gmail.com>
5945 Jakub Jelinek <jakub@redhat.com>
5946
5947 * asan.c (initialize_sanitizer_builtins): Add
5948 BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
5949 BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
5950 BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
5951 BT_FN_VOID_UINT64_PTR variables.
5952 * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
5953 (BT_FN_VOID_UINT16_UINT16): Likewise.
5954 (BT_FN_VOID_UINT32_UINT32): Likewise.
5955 (BT_FN_VOID_FLOAT_FLOAT): Likewise.
5956 (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
5957 (BT_FN_VOID_UINT64_PTR): Likewise.
5958 * common.opt (flag_sanitize_coverage): New variable.
5959 (fsanitize-coverage=trace-pc): Remove.
5960 (fsanitize-coverage=): Add.
5961 * flag-types.h (enum sanitize_coverage_code): New enum.
5962 * fold-const.c (fold_range_test): Disable non-short-circuit
5963 optimization if flag_sanitize_coverage.
5964 (fold_truth_andor): Likewise.
5965 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
5966 * opts.c (COVERAGE_SANITIZER_OPT): Define.
5967 (coverage_sanitizer_opts): New array.
5968 (get_closest_sanitizer_option): Add OPTS argument, handle also
5969 OPT_fsanitize_coverage_.
5970 (parse_sanitizer_options): Adjusted to also handle
5971 OPT_fsanitize_coverage_.
5972 (common_handle_option): Add OPT_fsanitize_coverage_.
5973 * sancov.c (instrument_comparison, instrument_switch): New function.
5974 (sancov_pass): Add trace-cmp support.
5975 * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
5976 BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
5977 BUILT_IN_SANITIZER_COV_TRACE_CMP8,
5978 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
5979 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
5980 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
5981 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
5982 BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
5983 BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
5984 * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
5985
5986 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
5987
5988 * config/arm/parsecpu.awk (fatal): Note that we've encountered an
5989 error. Only quit immediately if parsing is complete.
5990 (BEGIN): Initialize fatal_err and parse_done.
5991 (begin fpu, end fpu): Check number of arguments.
5992 (begin arch, end arch): Likewise.
5993 (begin cpu, end cpu): Likewise.
5994 (cname, tune for, tune flags, architecture, fpu, option): Likewise.
5995 (optalias): Likewise.
5996
5997 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
5998
5999 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
6000 * config/arm/arm-isa.h: Delete. Move definitions to ...
6001 * arm-cpus.in: ... here. Use new feature and fgroup values.
6002 * config/arm/arm.c (arm_option_override): Use lower case for feature
6003 bit names.
6004 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
6005 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
6006 * config/arm/parsecpu.awk (END): Add new command 'isa'.
6007 (isa_pfx): Delete.
6008 (print_isa_bits_for): New function.
6009 (gen_isa): New function.
6010 (gen_comm_data): Use print_isa_bits_for.
6011 (define feature): New keyword.
6012 (define fgroup): New keyword.
6013 * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
6014 (arm-isa.h): Add rule to generate file.
6015 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
6016 case for feature bit names.
6017
6018 2017-09-06 Richard Biener <rguenther@suse.de>
6019
6020 * tree-ssa-pre.c (NECESSARY): Remove.
6021 (create_expression_by_pieces): Do not touch pass-local flags.
6022 (insert_into_preds_of_block): Likewise.
6023 (do_pre_regular_insertion): Likewise.
6024 (eliminate_insert): Likewise.
6025 (eliminate_dom_walker::before_dom_children): Likewise.
6026 (fini_eliminate): Do not look at inserted_exprs.
6027 (mark_operand_necessary): Remove.
6028 (remove_dead_inserted_code): Replace with simple work-list
6029 algorithm based on inserted_exprs and SSA uses.
6030 (pass_pre::execute): Re-order fini_eliminate and
6031 remove_dead_inserted_code.
6032
6033 2017-09-06 Olivier Hainque <hainque@adacore.com>
6034
6035 * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
6036 for VxWorks 7. Adjust surrounding comments.
6037
6038 2017-09-06 Richard Biener <rguenther@suse.de>
6039
6040 * gimple-ssa-strength-reduction.c
6041 (find_candidates_dom_walker::before_dom_children): Also allow
6042 pointer types.
6043
6044 2017-09-06 Richard Biener <rguenther@suse.de>
6045
6046 PR tree-optimization/82108
6047 * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
6048 for gap in the non-permutation SLP case.
6049
6050 2017-09-06 Martin Jambor <mjambor@suse.cz>
6051
6052 PR tree-optimization/82078
6053 * tree-sra.c (sort_and_splice_var_accesses): Move call to
6054 add_access_to_work_queue...
6055 (build_accesses_from_assign): ...here.
6056 (propagate_all_subaccesses): Make sure racc is the group
6057 representative, if there is one.
6058
6059 2017-09-06 Jakub Jelinek <jakub@redhat.com>
6060
6061 PR middle-end/82095
6062 * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
6063 NULL DECL_INITIAL.
6064
6065 2017-09-06 Richard Biener <rguenther@suse.de>
6066
6067 * gimple-ssa-strength-reduction.c
6068 (find_candidates_dom_walker::before_doom_children): Use a
6069 type and not a mode check.
6070
6071 2017-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
6072
6073 PR target/77308
6074 * config/arm/predicates.md (arm_general_adddi_operand): Create new
6075 non-vfp predicate.
6076 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
6077
6078 2017-09-05 Jeff Law <law@redhat.com>
6079
6080 PR tree-optimization/64910
6081 * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
6082 cases where we have 3 or more operands.
6083
6084 2017-09-05 Jakub Jelinek <jakub@redhat.com>
6085
6086 PR middle-end/81768
6087 * omp-low.c (lower_omp_for): Recompute tree invariant if
6088 gimple_omp_for_initial/final is ADDR_EXPR.
6089
6090 PR middle-end/81768
6091 * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
6092 into gimple val before gimplification fo the COND_EXPR.
6093
6094 2017-09-05 Aldy Hernandez <aldyh@redhat.com>
6095
6096 * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
6097 REGION_COPY argument.
6098 (thread_through_all_blocks): Remove unused argument to
6099 duplicate_thread_path.
6100
6101 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6102 Alan Hayward <alan.hayward@arm.com>
6103 David Sherwood <david.sherwood@arm.com>
6104
6105 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
6106 Take a scalar_mode rather than a machine_mode.
6107 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
6108 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
6109 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
6110 (aarch64_gen_adjusted_ldpstp): Likewise.
6111 (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
6112
6113 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6114 Alan Hayward <alan.hayward@arm.com>
6115 David Sherwood <david.sherwood@arm.com>
6116
6117 * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
6118 Take a scalar_int_mode instead of a machine_mode.
6119 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
6120 (aarch64_output_scalar_simd_mov_immediate): Likewise.
6121 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
6122 (aarch64_simd_attr_length_rglist): Delete.
6123 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
6124 a scalar_int_mode instead of a machine_mode.
6125 (aarch64_add_offset): Likewise.
6126 (aarch64_internal_mov_immediate): Likewise
6127 (aarch64_add_constant_internal): Likewise.
6128 (aarch64_add_constant): Likewise.
6129 (aarch64_movw_imm): Likewise.
6130 (aarch64_rtx_arith_op_extract_p): Likewise.
6131 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
6132 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
6133 Remove assert that the mode isn't a vector.
6134 (aarch64_output_scalar_simd_mov_immediate): Likewise.
6135 (aarch64_expand_mov_immediate): Update calls after above changes.
6136 (aarch64_output_casesi): Use as_a <scalar_int_mode>.
6137 (aarch64_and_bitmask_imm): Check for scalar integer modes.
6138 (aarch64_move_imm): Likewise.
6139 (aarch64_can_const_movi_rtx_p): Likewise.
6140 (aarch64_strip_extend): Likewise.
6141 (aarch64_extr_rtx_p): Likewise.
6142 (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
6143 a CONST_INT when the mode parameter is VOIDmode.
6144 (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
6145
6146 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6147
6148 * machmode.h (bitwise_mode_for_mode): Return opt_mode.
6149 * stor-layout.c (bitwise_mode_for_mode): Likewise.
6150 (bitwise_type_for_mode): Update accordingly.
6151
6152 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6153
6154 * stor-layout.h (mode_for_size_tree): Return an opt_mode.
6155 * stor-layout.c (mode_for_size_tree): Likewise.
6156 (mode_for_array): Update accordingly.
6157 (layout_decl): Likewise.
6158 (compute_record_mode): Likewise. Only set the mode once.
6159
6160 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6161
6162 * target.def (get_mask_mode): Change return type to opt_mode.
6163 Expand commentary.
6164 * doc/tm.texi: Regenerate.
6165 * targhooks.h (default_get_mask_mode): Return an opt_mode.
6166 * targhooks.c (default_get_mask_mode): Likewise.
6167 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
6168 * optabs-query.c (can_vec_mask_load_store_p): Update use of
6169 targetm.get_mask_mode.
6170 * tree.c (build_truth_vector_type): Likewise.
6171
6172 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6173
6174 * machmode.h (mode_for_vector): Return an opt_mode.
6175 * stor-layout.c (mode_for_vector): Likewise.
6176 (mode_for_int_vector): Update accordingly.
6177 (layout_type): Likewise.
6178 * config/i386/i386.c (emit_memmov): Likewise.
6179 (ix86_expand_set_or_movmem): Likewise.
6180 (ix86_expand_vector_init): Likewise.
6181 (ix86_get_mask_mode): Likewise.
6182 * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
6183 Likewise.
6184 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
6185 * expmed.c (extract_bit_field_1): Likewise.
6186 * expr.c (expand_expr_real_2): Likewise.
6187 * optabs-query.c (can_vec_perm_p): Likewise.
6188 (can_vec_mask_load_store_p): Likewise.
6189 * optabs.c (expand_vec_perm): Likewise.
6190 * targhooks.c (default_get_mask_mode): Likewise.
6191 * tree-vect-stmts.c (vectorizable_store): Likewise.
6192 (vectorizable_load): Likewise.
6193 (get_vectype_for_scalar_type_and_size): Likewise.
6194
6195 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6196
6197 * machmode.h (mode_for_int_vector): New function.
6198 * stor-layout.c (mode_for_int_vector): Likewise.
6199 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
6200 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
6201 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
6202 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
6203 (s390_expand_vcond): Likewise.
6204
6205 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6206
6207 * machmode.h (opt_machine_mode): New type.
6208 (opt_mode<T>): Allow construction from anything that can be
6209 converted to a T.
6210 (is_a, as_a, dyn_cast): Add overloads for opt_mode.
6211 (mode_for_size): Return an opt_machine_mode.
6212 * stor-layout.c (mode_for_size): Likewise.
6213 (mode_for_size_tree): Update call accordingly.
6214 (bitwise_mode_for_mode): Likewise.
6215 (make_fract_type): Likewise.
6216 (make_accum_type): Likewise.
6217 * caller-save.c (replace_reg_with_saved_mem): Update call
6218 accordingly.
6219 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
6220 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
6221 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
6222 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
6223 * expmed.c (extract_bit_field_1): Likewise.
6224 * reload.c (get_secondary_mem): Likewise.
6225 * varasm.c (assemble_integer): Likewise.
6226 * lower-subreg.c (simplify_subreg_concatn): Likewise. Move
6227 early-out.
6228
6229 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6230
6231 * machmode.h (decimal_float_mode_for_size): New function.
6232 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
6233 (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
6234 (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
6235 (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
6236 (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
6237 (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
6238
6239 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6240
6241 * builtins.c (expand_builtin_powi): Use int_mode_for_size.
6242 (get_builtin_sync_mode): Likewise.
6243 (expand_ifn_atomic_compare_exchange): Likewise.
6244 (expand_builtin_atomic_clear): Likewise.
6245 (expand_builtin_atomic_test_and_set): Likewise.
6246 (fold_builtin_atomic_always_lock_free): Likewise.
6247 * calls.c (compute_argument_addresses): Likewise.
6248 (emit_library_call_value_1): Likewise.
6249 (store_one_arg): Likewise.
6250 * combine.c (combine_instructions): Likewise.
6251 * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
6252 * config/arm/arm.c (arm_function_value): Likewise.
6253 (aapcs_allocate_return_reg): Likewise.
6254 * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
6255 * config/i386/i386.c (construct_container): Likewise.
6256 (ix86_gimplify_va_arg): Likewise.
6257 (ix86_expand_sse_cmp): Likewise.
6258 (emit_memmov): Likewise.
6259 (emit_memset): Likewise.
6260 (expand_small_movmem_or_setmem): Likewise.
6261 (ix86_expand_pextr): Likewise.
6262 (ix86_expand_pinsr): Likewise.
6263 * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
6264 * config/microblaze/microblaze.c (microblaze_block_move_straight):
6265 Likewise.
6266 * config/mips/mips.c (mips_function_value_1) Likewise.
6267 (mips_block_move_straight): Likewise.
6268 (mips_expand_ins_as_unaligned_store): Likewise.
6269 * config/powerpcspe/powerpcspe.c
6270 (rs6000_darwin64_record_arg_advance_flush): Likewise.
6271 (rs6000_darwin64_record_arg_flush): Likewise.
6272 * config/rs6000/rs6000.c
6273 (rs6000_darwin64_record_arg_advance_flush): Likewise.
6274 (rs6000_darwin64_record_arg_flush): Likewise.
6275 * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
6276 (sparc_function_value_1): Likewise.
6277 * config/spu/spu.c (adjust_operand): Likewise.
6278 (spu_emit_branch_or_set): Likewise.
6279 (arith_immediate_p): Likewise.
6280 * emit-rtl.c (gen_lowpart_common): Likewise.
6281 * expr.c (expand_expr_real_1): Likewise.
6282 * function.c (assign_parm_setup_block): Likewise.
6283 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
6284 * reload1.c (alter_reg): Likewise.
6285 * stor-layout.c (mode_for_vector): Likewise.
6286 (layout_type): Likewise.
6287
6288 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6289
6290 * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
6291 (spu_convert_move): Likewise.
6292 * lower-subreg.c (resolve_simple_move): Likewise.
6293
6294 2017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6295
6296 PR target/81833
6297 * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
6298 define_insn to a define_expand.
6299 (altivec_vsum2sws_direct): New define_insn.
6300 (altivec_vsumsws): Convert from a define_insn to a define_expand.
6301
6302 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
6303
6304 * config/arm/arm.c (arm_option_params_internal): Improve setting of
6305 max_insns_skipped.
6306
6307 2017-09-05 H.J. Lu <hongjiu.lu@intel.com>
6308
6309 PR target/59501
6310 PR target/81624
6311 PR target/81769
6312 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
6313 realign stack if stack alignment needed is less than incoming
6314 stack boundary.
6315
6316 2017-09-05 Marek Polacek <polacek@redhat.com>
6317
6318 PR sanitizer/82072
6319 * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
6320 check earlier.
6321
6322 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
6323
6324 * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
6325
6326 2017-09-05 Richard Biener <rguenther@suse.de>
6327
6328 PR tree-optimization/82084
6329 * fold-const.c (can_native_encode_string_p): Handle wide characters.
6330
6331 2017-09-05 Richard Biener <rguenther@suse.de>
6332
6333 PR tree-optimization/82102
6334 * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
6335
6336 2017-09-05 Martin Liska <mliska@suse.cz>
6337
6338 PR tree-optimization/82032
6339 * tree-cfg.c (generate_range_test): New function.
6340 * tree-cfg.h (generate_range_test): Declared here.
6341 * tree-cfgcleanup.c (convert_single_case_switch): New function.
6342 (cleanup_control_expr_graph): Use it.
6343 * tree-switch-conversion.c (try_switch_expansion): Remove
6344 assert.
6345 (emit_case_nodes): Use generate_range_test.
6346
6347 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
6348
6349 PR target/82098
6350 * config/i386/i386.md (*<btsc><mode>_mask): Add
6351 TARGET_USE_BT to insn constraint.
6352 (*btr<mode>_mask): Ditto.
6353
6354 2017-09-04 Wilco Dijkstra <wdijkstr@arm.com>
6355
6356 * config/arm/arm.c (arm_legitimate_index_p): Add comment.
6357 (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
6358
6359 2017-09-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6360
6361 PR target/77308
6362 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
6363 TARGET_NEON and TARGET_IWMMXT.
6364 (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
6365 TARGET_NEON and TARGET_IWMMXT.
6366 (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
6367
6368 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
6369
6370 * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
6371 (ix86_rewrite_tls_address): Ditto.
6372 * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
6373 (ix86_rewrite_tls_address_1): Ditto.
6374 (ix86_rewrite_tls_address): Ditto.
6375 * config/i386/predicates.md (tls_address_pattern): New predicate.
6376 * config/i386/i386.md (TLS address splitter): New splitter.
6377
6378 2017-09-04 Richard Biener <rguenther@suse.de>
6379
6380 PR tree-optimization/82084
6381 * fold-const.h (can_native_encode_string_p): Declare.
6382 * fold-const.c (can_native_encode_string_p): Factor out from ...
6383 (native_encode_string): ... here.
6384 * tree-vect-stmts.c (vectorizable_store): Call it to avoid
6385 vectorizing stores from constants we later cannot handle.
6386
6387 2017-09-04 Marek Polacek <polacek@redhat.com>
6388
6389 PR c/81783
6390 * doc/invoke.texi: Update -Wtautological-compare documentation.
6391
6392 2017-09-04 Jeff Law <law@redhat.com>
6393
6394 PR tree-optimization/64910
6395 * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
6396 swap the first and last operand if the last is a constant.
6397
6398 2017-09-04 Marek Polacek <polacek@redhat.com>
6399
6400 PR sanitizer/82072
6401 * convert.c (do_narrow): When sanitizing signed integer overflows,
6402 bail out for signed types.
6403 (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
6404
6405 2017-09-04 Richard Biener <rguenther@suse.de>
6406
6407 PR tree-optimization/82060
6408 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6409 Move devirtualization after stmt folding and before EH/AB/noreturn
6410 cleanup to get the stmt refs canonicalized. Use a bool instead
6411 of gimple_modified_p since that doesn't work for NOPs. Schedule
6412 NOPs generated by folding for removal.
6413
6414 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
6415 Alan Hayward <alan.hayward@arm.com>
6416 David Sherwood <david.sherwood@arm.com>
6417
6418 * coretypes.h (pad_direction): New enum.
6419 * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
6420 (FUNCTION_ARG_PADDING): Likewise.
6421 * target.def (function_arg_padding): New hook.
6422 * targhooks.h (default_function_arg_padding): Declare.
6423 * targhooks.c (default_function_arg_padding): New function.
6424 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
6425 (TARGET_FUNCTION_ARG_PADDING): ...this.
6426 * doc/tm.texi: Regenerate.
6427 * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
6428 instead of direction.
6429 (compute_argument_addresses): Likewise.
6430 (load_register_parameters): Likewise.
6431 (emit_library_call_value_1): Likewise.
6432 (store_one_arg): Use targetm.calls.function_arg_padding instead
6433 of FUNCTION_ARG_PADDING.
6434 (must_pass_in_stack_var_size_or_pad): Likewise.
6435 * expr.c (emit_group_load_1): Use pad_direction instead of direction.
6436 (emit_group_store): Likewise.
6437 (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
6438 instead of FUNCTION_ARG_PADDING.
6439 (emit_push_insn): Likewise, and propagate enum change throughout
6440 function.
6441 * function.h (direction): Delete.
6442 (locate_and_pad_arg_data::where_pad): Use pad_direction instead
6443 of direction.
6444 * function.c (assign_parm_find_stack_rtl): Likewise.
6445 (assign_parm_setup_block_p): Likewise.
6446 (assign_parm_setup_block): Likewise.
6447 (gimplify_parameters): Likewise.
6448 (locate_and_pad_parm): Use targetm.calls.function_arg_padding
6449 instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
6450 function.
6451 * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
6452 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
6453 * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
6454 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
6455 (aarch64_function_arg_padding): ...this new function.
6456 (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
6457 (TARGET_FUNCTION_ARG_PADDING): Redefine.
6458 * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
6459 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
6460 * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
6461 * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6462 (arm_pad_arg_upward): Replace with...
6463 (arm_function_arg_padding): ...this new function.
6464 * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
6465 of direction.
6466 * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
6467 * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
6468 * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6469 (ia64_hpux_function_arg_padding): Replace with...
6470 (ia64_function_arg_padding): ...this new function. Use pad_direction
6471 instead of direction. Check for TARGET_HPUX.
6472 * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
6473 * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6474 (iq2000_function_arg_padding): New function.
6475 * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
6476 * config/mips/mips.c (mips_pad_arg_upward): Replace with...
6477 (mips_function_arg_padding): ...this new function.
6478 (mips_pad_reg_upward): Update accordingly.
6479 (TARGET_FUNCTION_ARG_PADDING): Redefine.
6480 * config/mips/mips.h (PAD_VARARGS_DOWN): Use
6481 targetm.calls.function_arg_padding.
6482 (FUNCTION_ARG_PADDING): Delete.
6483 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
6484 * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
6485 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
6486 * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
6487 (nios2_block_reg_padding): Return pad_direction instead of direction.
6488 * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
6489 instead of direction.
6490 (nios2_function_arg_padding): Likewise. Make static.
6491 (TARGET_FUNCTION_ARG_PADDING): Redefine.
6492 * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
6493 (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
6494 * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
6495 * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6496 (pa_function_arg_padding): Make static. Return pad_direction instead
6497 of direction.
6498 * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
6499 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
6500 * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
6501 instead of direction. Use targetm.calls.function_arg_padding.
6502 * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
6503 * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
6504 * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
6505 * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
6506 * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
6507 Redefine.
6508 (function_arg_padding): Rename to...
6509 (rs6000_function_arg_padding): ...this. Make static. Return
6510 pad_direction instead of direction.
6511 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
6512 * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
6513 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
6514 * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
6515 instead of direction. Use targetm.calls.function_arg_padding.
6516 * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
6517 * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
6518 * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
6519 * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
6520 * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6521 (function_arg_padding): Rename to...
6522 (rs6000_function_arg_padding): ...this. Make static. Return
6523 pad_direction instead of direction.
6524 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
6525 * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
6526 * config/s390/s390.c (s390_function_arg_padding): New function.
6527 (TARGET_FUNCTION_ARG_PADDING): Redefine.
6528 * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
6529 * config/sparc/sparc-protos.h (function_arg_padding): Delete.
6530 * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6531 (function_arg_padding): Rename to...
6532 (sparc_function_arg_padding): ...this. Make static. Return
6533 pad_direction instead of direction.
6534 * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
6535 * config/spu/spu.c (spu_function_arg_padding): New function.
6536 (TARGET_FUNCTION_ARG_PADDING): Redefine.
6537 * system.h (FUNCTION_ARG_PADDING): Poison.
6538
6539 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
6540 Alan Hayward <alan.hayward@arm.com>
6541 David Sherwood <david.sherwood@arm.com>
6542
6543 * target.def (modes_tieable_p): New hook.
6544 * doc/tm.texi (MODES_TIEABLE_P): Replace with...
6545 (TARGET_MODES_TIEABLE_P): ...this.
6546 * doc/tm.texi.in: Regenerate.
6547 * hooks.h (hook_bool_mode_mode_true): Declare.
6548 * hooks.c (hook_bool_mode_mode_true): New function.
6549 * combine.c (subst): Use targetm.modes_tieable_p instead of
6550 MODES_TIEABLE_P.
6551 * dse.c (find_shift_sequence): Likewise.
6552 * expmed.c (extract_low_bits): Likewise.
6553 * lower-subreg.c: Include target.h.
6554 (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
6555 MODES_TIEABLE_P.
6556 * rtlanal.c (rtx_cost): Likewise.
6557 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
6558 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
6559 * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
6560 (TARGET_MODES_TIEABLE_P): Redefine.
6561 * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
6562 * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
6563 (TARGET_MODES_TIEABLE_P): Redefine.
6564 * config/arc/arc.h (MODES_TIEABLE_P): Delete.
6565 * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
6566 (arc_modes_tieable_p): New function.
6567 * config/arm/arm.h (MODES_TIEABLE_P): Delete.
6568 * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
6569 * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
6570 (arm_modes_tieable_p): Make static.
6571 * config/avr/avr.h (MODES_TIEABLE_P): Delete.
6572 * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
6573 * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
6574 (TARGET_MODES_TIEABLE_P): Redefine.
6575 * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
6576 * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
6577 (TARGET_MODES_TIEABLE_P): Redefine.
6578 * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
6579 * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
6580 (cr16_modes_tieable_p): New function.
6581 * config/cris/cris.h (MODES_TIEABLE_P): Delete.
6582 * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
6583 * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
6584 (TRULY_NOOP_TRUNCATION): Update comment.
6585 * config/frv/frv.h (MODES_TIEABLE_P): Delete.
6586 (TRULY_NOOP_TRUNCATION): Update comment.
6587 * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
6588 (frv_modes_tieable_p): New function.
6589 * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
6590 * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
6591 * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
6592 (TARGET_MODES_TIEABLE_P): Redefine.
6593 * config/i386/i386.h (MODES_TIEABLE_P): Delete.
6594 * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
6595 * config/i386/i386.c (ix86_modes_tieable_p): Make static.
6596 (TARGET_MODES_TIEABLE_P): Redefine.
6597 * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
6598 * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
6599 (ia64_modes_tieable_p): New function.
6600 * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
6601 * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
6602 (iq2000_modes_tieable_p): New function.
6603 * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
6604 * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
6605 (lm32_modes_tieable_p): New function.
6606 * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
6607 * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
6608 * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
6609 (TARGET_MODES_TIEABLE_P): Redefine.
6610 * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
6611 * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
6612 (m32r_modes_tieable_p): New function.
6613 * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
6614 * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
6615 (m68k_modes_tieable_p): New function.
6616 * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
6617 * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
6618 (mcore_modes_tieable_p): New function.
6619 * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
6620 * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
6621 function.
6622 (TARGET_MODES_TIEABLE_P): Redefine.
6623 * config/mips/mips.h (MODES_TIEABLE_P): Delete.
6624 * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
6625 * config/mips/mips.c (mips_modes_tieable_p): Make static.
6626 (TARGET_MODES_TIEABLE_P): Redefine.
6627 * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
6628 * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
6629 * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
6630 * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
6631 (mn10300_modes_tieable_p): ...this and make static.
6632 (TARGET_MODES_TIEABLE_P): Redefine.
6633 * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
6634 * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
6635 * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
6636 * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
6637 (msp430_modes_tieable_p): Make static.
6638 * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
6639 * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
6640 (TARGET_MODES_TIEABLE_P): Redefine.
6641 * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
6642 * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
6643 * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
6644 (TARGET_MODES_TIEABLE_P): Redefine.
6645 * config/pa/pa.h (MODES_TIEABLE_P): Delete.
6646 * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
6647 * config/pa/pa.c (pa_modes_tieable_p): Make static.
6648 (TARGET_MODES_TIEABLE_P): Redefine.
6649 * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
6650 * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
6651 (pdp11_modes_tieable_p): New function.
6652 * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
6653 * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
6654 (rs6000_modes_tieable_p): New function.
6655 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
6656 * config/powerpcspe/powerpcspe.md: Update comment.
6657 * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
6658 * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
6659 (TARGET_MODES_TIEABLE_P): Redefine.
6660 * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
6661 * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
6662 (rl78_modes_tieable_p): New function.
6663 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
6664 * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
6665 (rs6000_modes_tieable_p): New function.
6666 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
6667 * config/rs6000/rs6000.md: Update comment.
6668 * config/rx/rx.h (MODES_TIEABLE_P): Delete.
6669 * config/rx/rx.c (rx_modes_tieable_p): New function.
6670 (TARGET_MODES_TIEABLE_P): Redefine.
6671 * config/s390/s390.h (MODES_TIEABLE_P): Delete.
6672 * config/s390/s390.c (s390_modes_tieable_p): New function.
6673 (TARGET_MODES_TIEABLE_P): Redefine.
6674 * config/sh/sh.h (MODES_TIEABLE_P): Delete.
6675 * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
6676 (sh_modes_tieable_p): New function.
6677 * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
6678 * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
6679 * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
6680 (sparc_modes_tieable_p): Make static.
6681 * config/spu/spu.h (MODES_TIEABLE_P): Delete.
6682 * config/spu/spu.c (spu_modes_tieable_p): New function.
6683 (TARGET_MODES_TIEABLE_P): Redefine.
6684 * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
6685 * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
6686 (TARGET_MODES_TIEABLE_P): Redefine.
6687 * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
6688 * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
6689 * config/v850/v850.h (MODES_TIEABLE_P): Delete.
6690 * config/v850/v850.c (v850_modes_tieable_p): New function.
6691 (TARGET_MODES_TIEABLE_P): Redefine.
6692 * config/vax/vax.h (MODES_TIEABLE_P): Delete.
6693 * config/visium/visium.h (MODES_TIEABLE_P): Delete.
6694 * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
6695 (visium_modes_tieable_p): New function.
6696 * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
6697 * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
6698 (xtensa_modes_tieable_p): New function.
6699 * system.h (MODES_TIEABLE_P): Poison.
6700
6701 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
6702 Alan Hayward <alan.hayward@arm.com>
6703 David Sherwood <david.sherwood@arm.com>
6704
6705 * target.def (hard_regno_mode_ok): New hook.
6706 * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
6707 (TARGET_HARD_REGNO_MODE_OK): ...this.
6708 * doc/tm.texi.in: Regenerate.
6709 * hooks.h (hook_bool_uint_mode_true): Declare.
6710 * hooks.c (hook_bool_uint_mode_true): New function.
6711 * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
6712 HARD_REGNO_MODE_OK.
6713 * genpreds.c (write_insn_preds_c): Add an include of target.h.
6714 * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
6715 instead of HARD_REGNO_MODE_OK.
6716 * caller-save.c: Include target.h.
6717 (reg_save_code): Use targetm.hard_regno_mode_ok instead of
6718 HARD_REGNO_MODE_OK.
6719 * combine.c (can_combine_p): Likewise.
6720 (combinable_i3pat): Likewise.
6721 (can_change_dest_mode): Likewise.
6722 * expr.c (init_expr_target): Likewise.
6723 (convert_move): Likewise.
6724 (convert_modes): Likewise.
6725 * ira.c (setup_prohibited_class_mode_regs): Likewise.
6726 (setup_prohibited_mode_move_regs): Likewise.
6727 * ira.h (target_ira): Likewise.
6728 * lra-assigns.c (find_hard_regno_for_1): Likewise.
6729 * lra-constraints.c (process_alt_operands): Likewise.
6730 (split_reg): Likewise.
6731 * recog.c (peep2_find_free_register): Likewise.
6732 * ree.c (combine_reaching_defs): Likewise.
6733 * regcprop.c (maybe_mode_change): Likewise.
6734 * reginfo.c (init_reg_sets_1): Likewise.
6735 (choose_hard_reg_mode): Likewise.
6736 (simplifiable_subregs): Likewise.
6737 * regrename.c (check_new_reg_p): Likewise.
6738 * reload.c (find_valid_class): Likewise.
6739 (find_valid_class_1): Likewise.
6740 (reload_inner_reg_of_subreg): Likewise.
6741 (push_reload): Likewise.
6742 (combine_reloads): Likewise.
6743 (find_dummy_reload): Likewise.
6744 (find_reloads): Likewise.
6745 * reload1.c (find_reg): Likewise.
6746 (set_reload_reg): Likewise.
6747 (allocate_reload_reg): Likewise.
6748 (choose_reload_regs): Likewise.
6749 (reload_adjust_reg_for_temp): Likewise.
6750 * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
6751 (simplify_subreg_regno): Likewise.
6752 * sel-sched.c (init_regs_for_mode): Likewise.
6753 * varasm.c (make_decl_rtl): Likewise.
6754 * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
6755 (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
6756 HARD_REGNO_MODE_OK.
6757 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
6758 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
6759 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6760 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
6761 * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
6762 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6763 * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
6764 (arc_mode_class): Delete.
6765 (HARD_REGNO_MODE_OK): Delete.
6766 * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6767 (arc_hard_regno_mode_ok): Rename old array to...
6768 (arc_hard_regno_mode_ok_modes): ...this.
6769 (arc_conditional_register_usage): Update accordingly.
6770 (arc_mode_class): Make static.
6771 (arc_hard_regno_mode_ok): New function.
6772 * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
6773 * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
6774 * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6775 (arm_hard_regno_mode_ok): Make static.
6776 * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
6777 HARD_REGNO_MODE_OK.
6778 * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
6779 * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
6780 * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
6781 return a bool.
6782 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6783 * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
6784 * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
6785 * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
6786 (bfin_hard_regno_mode_ok): ...this. Make static and return a bool.
6787 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6788 * config/bfin/predicates.md (valid_reg_operand): Use
6789 targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
6790 * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
6791 * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
6792 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6793 * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
6794 * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
6795 * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6796 (cr16_hard_regno_mode_ok): Make static and return a bool.
6797 * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
6798 * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6799 (cris_hard_regno_mode_ok): New function.
6800 * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
6801 (epiphany_mode_class): Delete.
6802 (HARD_REGNO_MODE_OK): Delete.
6803 * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
6804 * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6805 (hard_regno_mode_ok): Rename to...
6806 (epiphany_hard_regno_mode_ok): ...this. Make static and return a bool.
6807 * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
6808 * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
6809 HARD_REGNO_MODE_OK.
6810 * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
6811 * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
6812 * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6813 (frv_hard_regno_mode_ok): Make static and return a bool.
6814 * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
6815 HARD_REGNO_MODE_OK.
6816 * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
6817 * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
6818 * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
6819 * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
6820 and return a bool.
6821 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6822 * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
6823 * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
6824 * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
6825 return a bool.
6826 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6827 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
6828 * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6829 (ia64_hard_regno_mode_ok): New function.
6830 * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
6831 * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6832 (iq2000_hard_regno_mode_ok): New function.
6833 * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
6834 * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6835 (lm32_hard_regno_mode_ok): New function.
6836 * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
6837 * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
6838 * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
6839 instead of HARD_REGNO_MODE_OK.
6840 (m32c_hard_regno_ok): Rename to...
6841 (m32c_hard_regno_mode_ok): ...this. Make static and return a bool.
6842 (m32c_cannot_change_mode_class): Update accordingly.
6843 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6844 * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
6845 (m32r_mode_class): Delete.
6846 (HARD_REGNO_MODE_OK): Delete.
6847 * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6848 (m32r_hard_regno_mode_ok): Rename to...
6849 (m32r_hard_regno_modes): ...this.
6850 (m32r_mode_class): Make static.
6851 (m32r_hard_regno_mode_ok): New function.
6852 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
6853 * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
6854 * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6855 (m68k_hard_regno_mode_ok): Make static.
6856 * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
6857 * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6858 (mcore_hard_regno_mode_ok): New function.
6859 * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
6860 (HARD_REGNO_MODE_OK): Delete.
6861 * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
6862 Rename to...
6863 (microblaze_hard_regno_mode_ok_p): ...this and make static.
6864 (microblaze_hard_regno_mode_ok): New function.
6865 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6866 * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
6867 (mips_hard_regno_mode_ok): Delete.
6868 * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
6869 (mips_hard_regno_mode_ok_p): ...this and make static.
6870 (mips_hard_regno_mode_ok_p): Rename to...
6871 (mips_hard_regno_mode_ok_uncached): ...this.
6872 (mips_hard_regno_mode_ok): New function.
6873 (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
6874 of HARD_REGNO_MODE_OK.
6875 (mips_option_override): Update after above name changes.
6876 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6877 * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
6878 * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
6879 * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
6880 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
6881 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6882 * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
6883 * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
6884 * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
6885 * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6886 (msp430_hard_regno_mode_ok): Make static and return a bool.
6887 * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
6888 * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
6889 * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
6890 and return a bool.
6891 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6892 * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
6893 * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
6894 * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
6895 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
6896 (PA_HARD_REGNO_MODE_OK): ...this
6897 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
6898 (PA_HARD_REGNO_MODE_OK): ...this.
6899 * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6900 (pa_hard_regno_mode_ok): New function.
6901 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
6902 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6903 (pdp11_hard_regno_mode_ok): New function.
6904 * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
6905 * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
6906 Delete.
6907 * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
6908 Make static.
6909 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6910 (rs6000_hard_regno_mode_ok): Rename to...
6911 (rs6000_hard_regno_mode_ok_uncached): ...this.
6912 (rs6000_init_hard_regno_mode_ok): Update accordingly.
6913 (rs6000_hard_regno_mode_ok): New function.
6914 * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
6915 * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
6916 * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
6917 (riscv_hard_regno_mode_ok): ...this and make static.
6918 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6919 * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
6920 * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
6921 * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6922 (rl78_hard_regno_mode_ok): Make static and return bool.
6923 * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
6924 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
6925 Delete.
6926 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
6927 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6928 (rs6000_hard_regno_mode_ok): Rename to...
6929 (rs6000_hard_regno_mode_ok_uncached): ...this.
6930 (rs6000_init_hard_regno_mode_ok): Update accordingly.
6931 (rs6000_hard_regno_mode_ok): New function.
6932 * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
6933 * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
6934 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6935 * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
6936 * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
6937 * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
6938 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6939 * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
6940 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
6941 * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6942 (sh_hard_regno_mode_ok): Make static.
6943 * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
6944 instead of HARD_REGNO_MODE_OK.
6945 * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
6946 (sparc_mode_class): Delete.
6947 (HARD_REGNO_MODE_OK): Delete.
6948 * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6949 (hard_regno_mode_classes): Make static.
6950 (sparc_mode_class): Likewise.
6951 (sparc_hard_regno_mode_ok): New function.
6952 * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
6953 * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
6954 * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
6955 function.
6956 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6957 * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
6958 * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
6959 * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
6960 * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
6961 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6962 * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
6963 * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
6964 * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6965 (visium_hard_regno_mode_ok): New function.
6966 * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
6967 instead of HARD_REGNO_MODE_OK.
6968 * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
6969 (HARD_REGNO_MODE_OK): Delete.
6970 * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
6971 (xtensa_hard_regno_mode_ok_p): ...this and make static.
6972 (xtensa_option_override): Update accordingly.
6973 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6974 (xtensa_hard_regno_mode_ok): New function.
6975 * system.h (HARD_REGNO_MODE_OK): Poison.
6976
6977 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
6978 Alan Hayward <alan.hayward@arm.com>
6979 David Sherwood <david.sherwood@arm.com>
6980
6981 * target.def (hard_regno_call_part_clobbered): New hook.
6982 * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
6983 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
6984 * doc/tm.texi: Regenerate.
6985 * hooks.h (hook_bool_uint_mode_false): Declare.
6986 * hooks.c (hook_bool_uint_mode_false): New function.
6987 * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6988 * cselib.c (cselib_process_insn): Use
6989 targetm.hard_regno_call_part_clobbered instead of
6990 HARD_REGNO_CALL_PART_CLOBBERED.
6991 * ira-conflicts.c (ira_build_conflicts): Likewise.
6992 * ira-costs.c (ira_tune_allocno_costs): Likewise.
6993 * lra-constraints.c (need_for_call_save_p): Likewise.
6994 * lra-lives.c: Include target.h.
6995 (check_pseudos_live_through_calls): Use
6996 targetm.hard_regno_call_part_clobbered instead of
6997 HARD_REGNO_CALL_PART_CLOBBERED.
6998 * regcprop.c: Include target.h.
6999 (copyprop_hardreg_forward_1): Use
7000 targetm.hard_regno_call_part_clobbered instead of
7001 HARD_REGNO_CALL_PART_CLOBBERED.
7002 * reginfo.c (choose_hard_reg_mode): Likewise.
7003 * regrename.c (check_new_reg_p): Likewise.
7004 * reload.c (find_equiv_reg): Likewise.
7005 * reload1.c (emit_reload_insns): Likewise.
7006 * sched-deps.c (deps_analyze_insn): Likewise.
7007 * sel-sched.c (init_regs_for_mode): Likewise.
7008 (mark_unavailable_hard_regs): Likewise.
7009 * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
7010 * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7011 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
7012 New function.
7013 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7014 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7015 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
7016 Delete.
7017 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
7018 and return a bool.
7019 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7020 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7021 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
7022 function.
7023 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7024 * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7025 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
7026 function.
7027 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7028 * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
7029 Delete.
7030 * config/powerpcspe/powerpcspe.c
7031 (rs6000_hard_regno_call_part_clobbered): New function.
7032 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7033 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7034 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
7035 New function.
7036 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7037 * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7038 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
7039 function.
7040 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7041 * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7042 * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
7043
7044 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
7045 Alan Hayward <alan.hayward@arm.com>
7046 David Sherwood <david.sherwood@arm.com>
7047
7048 * rtl.h (subreg_memory_offset): Declare.
7049 * emit-rtl.c (subreg_memory_offset): New function.
7050 * expmed.c (store_bit_field_1): Use it.
7051 * expr.c (undefined_operand_subword_p): Likewise.
7052 * simplify-rtx.c (simplify_subreg): Likewise.
7053
7054 2017-09-04 Alexander Monakov <amonakov@ispras.ru>
7055
7056 PR rtl-optimization/57448
7057 PR target/67458
7058 PR target/81316
7059 * optabs.c (expand_atomic_load): Place compiler memory barriers if
7060 using atomic_load pattern.
7061 (expand_atomic_store): Likewise.
7062
7063 2017-09-04 Jakub Jelinek <jakub@redhat.com>
7064
7065 PR sanitizer/81981
7066 * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
7067 and UBSAN_BOUNDS internal calls. Clean up IFN_UBSAN_OBJECT_SIZE
7068 handling. Use replace_call_with_value with NULL instead of
7069 gsi_replace, unlink_stmt_vdef and release_defs.
7070
7071 * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
7072 instead of tab.
7073
7074 * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
7075
7076 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
7077
7078 PR bootstrap/82045
7079 * rtl.h (emit_library_call_value_1): Declare.
7080 (emit_library_call): Replace declaration with a series of overloads.
7081 Remove the parameter count argument.
7082 (emit_library_call_value): Likewise.
7083 * calls.c (emit_library_call_value_1): Make global. Replace varargs
7084 with an "rtx_mode_t *".
7085 (emit_library_call_value): Delete.
7086 (emit_library_call): Likewise.
7087 * asan.c (asan_emit_stack_protection): Update calls accordingly.
7088 (asan_emit_allocas_unpoison): Likewise.
7089 * builtins.c (expand_builtin_powi): Likewise.
7090 (expand_asan_emit_allocas_unpoison): Likewise.
7091 * cfgexpand.c (expand_main_function): Likewise.
7092 * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
7093 * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
7094 * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
7095 * config/arm/arm.c (arm_trampoline_init): Likewise.
7096 (arm_call_tls_get_addr): Likewise.
7097 (arm_expand_divmod_libfunc): Likewise.
7098 * config/bfin/bfin.md (umulsi3_highpart): Likewise.
7099 (smulsi3_highpart): Likewise.
7100 * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
7101 (c6x_expand_compare): Likewise.
7102 (c6x_expand_movmem): Likewise.
7103 * config/frv/frv.c (frv_trampoline_init): Likewise.
7104 * config/i386/i386.c (ix86_trampoline_init): Likewise.
7105 (ix86_expand_divmod_libfunc): Likewise.
7106 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
7107 (ia64_expand_compare): Likewise.
7108 (ia64_profile_hook): Likewise.
7109 * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
7110 (nonlocal_goto): Likewise.
7111 (restore_stack_nonlocal): Likewise.
7112 * config/m32r/m32r.c (block_move_call): Likewise.
7113 (m32r_trampoline_init): Likewise.
7114 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
7115 * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
7116 (m68k_call_m68k_read_tp): Likewise.
7117 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
7118 (microblaze_expand_divide): Likewise.
7119 * config/mips/mips.h (mips_args): Likewise.
7120 * config/mips/sdemtk.h (mips_sync_icache): Likewise.
7121 (MIPS_ICACHE_SYNC): Likewise.
7122 * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
7123 (nios2_trampoline_init): Likewise.
7124 * config/pa/pa.c (hppa_tls_call): Likewise.
7125 (pa_trampoline_init): Likewise.
7126 * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
7127 * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
7128 (expand_strn_compare): Likewise.
7129 (rs6000_generate_compare): Likewise.
7130 (rs6000_expand_float128_convert): Likewise.
7131 (output_profile_hook): Likewise.
7132 (rs6000_trampoline_init): Likewise.
7133 * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
7134 * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
7135 * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
7136 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
7137 (rs6000_generate_compare): Likewise.
7138 (rs6000_expand_float128_convert): Likewise.
7139 (output_profile_hook): Likewise.
7140 (rs6000_trampoline_init): Likewise.
7141 * config/rs6000/rs6000.md (neg<mode>2): Likewise.
7142 * config/sh/sh.c (sh_trampoline_init): Likewise.
7143 * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
7144 (sparc_emit_float_lib_cmp): Likewise.
7145 (sparc32_initialize_trampoline): Likewise.
7146 (sparc64_initialize_trampoline): Likewise.
7147 (sparc_profile_hook): Likewise.
7148 * config/spu/spu.c (ea_load_store): Likewise.
7149 * config/spu/spu.md (floatunssidf2): Likewise.
7150 * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
7151 * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
7152 * config/visium/visium.c (expand_block_move_4): Likewise.
7153 (expand_block_move_2): Likewise.
7154 (expand_block_move_1): Likewise.
7155 (expand_block_set_4): Likewise.
7156 (expand_block_set_2): Likewise.
7157 (expand_block_set_1): Likewise.
7158 (visium_trampoline_init): Likewise.
7159 (visium_profile_hook): Likewise.
7160 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
7161 (xtensa_setup_frame_addresses): Likewise.
7162 (xtensa_trampoline_init): Likewise.
7163 * except.c (sjlj_emit_function_enter): Likewise.
7164 (sjlj_emit_function_exit): Likewise.
7165 * explow.c (allocate_dynamic_stack_space): Likewise.
7166 (probe_stack_range): Likewise.
7167 * expr.c (convert_mode_scalar): Likewise.
7168 * optabs.c (expand_binop): Likewise.
7169 (expand_twoval_binop_libfunc): Likewise.
7170 (expand_unop): Likewise.
7171 (prepare_cmp_insn): Likewise.
7172 (prepare_float_lib_cmp): Likewise.
7173 (expand_float): Likewise.
7174 (expand_fix): Likewise.
7175 (expand_fixed_convert): Likewise.
7176 (maybe_emit_sync_lock_test_and_set): Likewise.
7177 (expand_atomic_compare_and_swap): Likewise.
7178 (expand_mem_thread_fence): Likewise.
7179 (expand_atomic_fetch_op): Likewise.
7180
7181 2017-09-03 Gerald Pfeifer <gerald@pfeifer.com>
7182
7183 * doc/generic.texi (OpenACC): Adjust URL.
7184 * doc/invoke.texi (C Dialect Options): Ditto.
7185
7186 2017-09-03 Uros Bizjak <ubizjak@gmail.com>
7187
7188 * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
7189 predicate for operand 1. Add (m,<S>) constraint.
7190 (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
7191 Prevent memory operand 1 with register operand 2.
7192
7193 2017-09-01 Segher Boessenkool <segher@kernel.crashing.org>
7194
7195 PR rtl-optimization/82024
7196 * combine.c (try_combine): If the combination result is a PARALLEL,
7197 and we only need to retain the SET in there that would be placed
7198 at I2, check that we can place that at I3 instead, before doing so.
7199
7200 2017-09-01 Jakub Jelinek <jakub@redhat.com>
7201
7202 PR target/81766
7203 * config/i386/i386.c (ix86_init_large_pic_reg): Return label
7204 instead of void.
7205 (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
7206 if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
7207 and label.
7208
7209 2017-09-01 Joerg Sonnenberger <joerg@bec.de>
7210 Jeff Law <law@redhat.com>
7211
7212 * varasm.c (bss_initializer_p): Do not put constants into .bss
7213 (categorize_decl_for_section): Handle bss_initializer_p returning
7214 false when DECL_INITIAL is NULL.
7215
7216 2017-09-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7217
7218 PR target/82012
7219 * config/s390/s390.c (s390_can_inline_p): New function.
7220
7221 2017-09-01 Jeff Law <law@redhat.com>
7222
7223 PR tree-optimization/82052
7224 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
7225 Always initialize the returned slot after a hash table miss
7226 when INSERT is true.
7227
7228 2017-09-01 Alexander Monakov <amonakov@ispras.ru>
7229
7230 * config/s390/s390.md (mem_signal_fence): Remove.
7231 * doc/md.texi (mem_signal_fence): Remove.
7232 * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
7233 Update comments.
7234 * target-insns.def (mem_signal_fence): Remove.
7235
7236 2017-09-01 Jakub Jelinek <jakub@redhat.com>
7237
7238 PR sanitizer/81902
7239 * doc/invoke.texi: Document -fsanitize=pointer-overflow.
7240
7241 PR sanitizer/81923
7242 * asan.c (create_odr_indicator): Strip name encoding from assembler
7243 name before appending it after __odr_asan_.
7244
7245 2017-09-01 Martin Liska <mliska@suse.cz>
7246
7247 PR tree-optimization/82059
7248 * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
7249 frequency only when an edge is redirected.
7250
7251 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
7252
7253 * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
7254 * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
7255 (arc_conditional_register_usage): Remove ARC600 lp_count
7256 exception.
7257 (arc_file_start): Emit Tag_ARC_CPU_variation.
7258 (arc_can_use_doloop_p): New conditions to use ZOLs.
7259 (hwloop_fail): New function.
7260 (hwloop_optimize): Likewise.
7261 (hwloop_pattern_reg): Likewise.
7262 (arc_doloop_hooks): New struct, to be used with reorg_loops.
7263 (arc_reorg_loops): New function, calls reorg_loops.
7264 (arc_reorg): Call arc_reorg_loops. Remove old ZOL handling.
7265 (arc600_corereg_hazard): Remove ZOL checking, case handled by
7266 hwloop_optimize.
7267 (arc_loop_hazard): Remove function, functionality moved into
7268 hwloop_optimize.
7269 (arc_hazard): Remove arc_loop_hazard call.
7270 (arc_adjust_insn_length): Remove ZOL handling, functionality moved
7271 into hwloop_optimize.
7272 (arc_label_align): Remove ZOL handling.
7273 * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
7274 * config/arc/arc.md (doloop_begin): Remove pattern.
7275 (doloop_begin_i): Likewise.
7276 (doloop_end_i): Likewise.
7277 (doloop_fallback): Likewise.
7278 (doloop_fallback_m): Likewise.
7279 (doloop_end): Reimplement expand.
7280 (arc_lp): New pattern for LP instruction.
7281 (loop_end): New pattern.
7282 (loop_fail): Likewise.
7283 (decrement_and_branch_until_zero): Likewise.
7284 * config/arc/arc.opt (mlpc-width): New option.
7285 * doc/invoke.texi (mlpc-width): Document option.
7286
7287 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
7288
7289 * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
7290 (arc_ccfsm_advance): Fix checking for delay slots.
7291 (arc_reorg): Add rtl dump after each call to arc_ifcvt.
7292
7293 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
7294
7295 * config/arc/arc.md (movqi_insn): Add stores to save constant long
7296 immediates.
7297 (movhi_insn): Update store instruction constraint which are saving
7298 6-bit short immediates.
7299 (movsi_insn): Consider also short scaled load operations.
7300 (zero_extendhisi2_i): Use Usd constraint instead of T.
7301 (extendhisi2_i): Add q constraint.
7302 (arc_clzsi2): Add type and length attributes.
7303 (arc_ctzsi2): Likewise.
7304 * config/arc/constraints.md (Usc): Update constraint, the
7305 assembler can parse two relocations for a single instruction.
7306
7307 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
7308
7309 * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
7310 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
7311
7312 2017-08-31 Olivier Hainque <hainque@adacore.com>
7313
7314 * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
7315 match as powerpc-wrs-vxworks*.
7316
7317 2017-08-31 James Greenhalgh <james.greenhalgh@arm.com>
7318
7319 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
7320 register constraint for by-element operand.
7321 (aarch64_mls_elt_merge<mode>): Likewise.
7322
7323 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
7324
7325 * config/arc/arc.c (arc_can_follow_jump): Check for short
7326 branches.
7327
7328 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
7329
7330 * config.gcc: Use g.opt for arc.
7331 * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
7332 functionality moved to ...
7333 (legitimate_scaled_address_p): New function, ...here.
7334 (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
7335 (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
7336 (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
7337 condition.
7338 (arc_override_options): Handle G option.
7339 (arc_output_pic_addr_const): Correct function definition.
7340 (arc_legitimate_address_p): Use legitimate_scaled_address_p.
7341 (arc_decl_anon_ns_mem_p): Delete.
7342 (arc_in_small_data_p): Overhaul this function to take into
7343 consideration the value given via G option.
7344 (arc_rewrite_small_data_1): Renamed and corrected old
7345 arc_rewrite_small_data function.
7346 (arc_rewrite_small_data): New function.
7347 (small_data_pattern): Don't use pic_offset_table_rtx.
7348 * config/arc/arc.h (CC1_SPEC): Recognize G option.
7349 * config/arc/simdext.md (movmisalignv2hi): Use
7350 prepare_move_operands function.
7351 (mov*): Likewise.
7352 (movmisalign*): Likewise.
7353 * doc/invoke.texi (ARC options): Document -G option.
7354
7355 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
7356
7357 * config/arc/arc-protos.h (compact_sda_memory_operand): Update
7358 prototype.
7359 * config/arc/arc.c (arc_print_operand): Output scalled address for
7360 sdata whenever is possible.
7361 (arc_in_small_data_p): Allow sdata for 64bit datum when double
7362 load/stores are available.
7363 (compact_sda_memory_operand): Check for the alignment required by
7364 code density instructions.
7365 * config/arc/arc.md (movsi_insn): Use newly introduced Us0
7366 constraint.
7367 * config/arc/constraints.md (Usd): Update constraint.
7368 (Us0): New constraint.
7369 (Usc): Update constraint.
7370
7371 2017-08-31 Richard Biener <rguenther@suse.de>
7372
7373 PR middle-end/82054
7374 * dwarf2out.c (dwarf2out_early_global_decl): Process each
7375 function only once.
7376
7377 2017-08-31 Tamar Christina <tamar.christina@arm.com>
7378
7379 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
7380 Resize type_signature.
7381
7382 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
7383 Alan Hayward <alan.hayward@arm.com>
7384 David Sherwood <david.sherwood@arm.com>
7385
7386 * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
7387 subregs whose inner modes can be stored in GPRs.
7388 (aarch64_classify_index): Likewise.
7389
7390 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
7391 Alan Hayward <alan.hayward@arm.com>
7392 David Sherwood <david.sherwood@arm.com>
7393
7394 * config/aarch64/iterators.md (V_cmp_result): Rename to...
7395 (V_INT_EQUIV): ...this.
7396 (v_cmp_result): Rename to...
7397 (v_int_equiv): ...this.
7398 * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
7399 * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
7400 (copysign<mode>3): Likewise.
7401 (aarch64_simd_bsl<mode>_internal): Likewise.
7402 (aarch64_simd_bsl<mode>): Likewise.
7403 (vec_cmp<mode><mode>): Likewise.
7404 (vcond<mode><mode>): Likewise.
7405 (vcond<v_cmp_mixed><mode>): Likewise.
7406 (vcondu<mode><v_cmp_mixed>): Likewise.
7407 (aarch64_cm<optab><mode>): Likewise.
7408 (aarch64_cmtst<mode>): Likewise.
7409 (aarch64_fac<optab><mode>): Likewise.
7410 (vec_perm_const<mode>): Likewise.
7411 (vcond_mask_<mode><v_cmp_result>): Rename to...
7412 (vcond_mask_<mode><v_int_equiv>): ...this.
7413 (vec_cmp<mode><v_cmp_result>): Rename to...
7414 (vec_cmp<mode><v_int_equiv>): ...this.
7415
7416 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
7417 Alan Hayward <alan.hayward@arm.com>
7418 David Sherwood <david.sherwood@arm.com>
7419
7420 * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
7421 vector modes.
7422 * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
7423 * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
7424 (UNSPEC_LD4_DREG): New unspecs.
7425 * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
7426 (aarch64_ld2<mode>_dreg_be): Replace with...
7427 (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
7428 unspec.
7429 (aarch64_ld3<mode>_dreg_le)
7430 (aarch64_ld3<mode>_dreg_be): Replace with...
7431 (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
7432 unspec.
7433 (aarch64_ld4<mode>_dreg_le)
7434 (aarch64_ld4<mode>_dreg_be): Replace with...
7435 (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
7436 unspec.
7437
7438 2017-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7439
7440 PR tree-optimization/81987
7441 * gimple-ssa-strength-reduction.c (insert_initializers): Don't
7442 insert an initializer in a location not dominated by the stride
7443 definition.
7444
7445 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
7446
7447 * tree-eh.c (lower_try_finally_switch): Set the location of the finally
7448 on the entire header of the finally block in the fallthru case.
7449
7450 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
7451
7452 * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
7453
7454 2017-08-30 Pat Haugen <pthaugen@us.ibm.com>
7455
7456 * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
7457 rs6000_emit_move_from_cr and call renamed function.
7458 (rs6000_emit_prologue): Call renamed functions.
7459 * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
7460 movesi_from_cr, remove volatile CRs.
7461
7462 2017-08-30 Jon Beniston <jon@beniston.com>
7463 Richard Biener <rguenther@suse.de>
7464
7465 * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
7466 of VECTOR_MODE_P check.
7467 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
7468 element vector types.
7469
7470 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7471
7472 * df.h (df_read_modify_subreg_p): Remove in favor of...
7473 * rtl.h (read_modify_subreg_p): ...this new function. Take a
7474 const_rtx instead of an rtx.
7475 * cprop.c (local_cprop_find_used_regs): Update accordingly.
7476 * df-problems.c (df_word_lr_mark_ref): Likewise.
7477 * ira-lives.c (mark_pseudo_reg_live): Likewise.
7478 (mark_pseudo_reg_dead): Likewise.
7479 (mark_ref_dead): Likewise.
7480 * reginfo.c (init_subregs_of_mode): Likewise.
7481 * sched-deps.c (sched_analyze_1): Likewise.
7482 * df-scan.c (df_def_record_1): Likewise.
7483 (df_uses_record): Likewise.
7484 (df_read_modify_subreg_p): Remove in favor of...
7485 * rtlanal.c (read_modify_subreg_p): ...this new function. Take a
7486 const_rtx instead of an rtx.
7487
7488 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7489 Alan Hayward <alan.hayward@arm.com>
7490 David Sherwood <david.sherwood@arm.com>
7491
7492 * rtl.h (partial_subreg_p): New function.
7493 * caller-save.c (save_call_clobbered_regs): Use it.
7494 * calls.c (expand_call): Likewise.
7495 * combine.c (combinable_i3pat): Likewise.
7496 (simplify_set): Likewise.
7497 (make_extraction): Likewise.
7498 (make_compound_operation_int): Likewise.
7499 (gen_lowpart_or_truncate): Likewise.
7500 (force_to_mode): Likewise.
7501 (make_field_assignment): Likewise.
7502 (reg_truncated_to_mode): Likewise.
7503 (record_truncated_value): Likewise.
7504 (move_deaths): Likewise.
7505 * cse.c (record_jump_cond): Likewise.
7506 (cse_insn): Likewise.
7507 * cselib.c (cselib_lookup_1): Likewise.
7508 * expmed.c (extract_bit_field_using_extv): Likewise.
7509 * function.c (assign_parm_setup_reg): Likewise.
7510 * ifcvt.c (noce_convert_multiple_sets): Likewise.
7511 * ira-build.c (create_insn_allocnos): Likewise.
7512 * lra-coalesce.c (merge_pseudos): Likewise.
7513 * lra-constraints.c (match_reload): Likewise.
7514 (simplify_operand_subreg): Likewise.
7515 (curr_insn_transform): Likewise.
7516 * lra-lives.c (process_bb_lives): Likewise.
7517 * lra.c (new_insn_reg): Likewise.
7518 (lra_substitute_pseudo): Likewise.
7519 * regcprop.c (mode_change_ok): Likewise.
7520 (maybe_mode_change): Likewise.
7521 (copyprop_hardreg_forward_1): Likewise.
7522 * reload.c (push_reload): Likewise.
7523 (find_reloads): Likewise.
7524 (find_reloads_subreg_address): Likewise.
7525 * reload1.c (alter_reg): Likewise.
7526 (eliminate_regs_1): Likewise.
7527 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7528
7529 2017-08-30 David Edelsohn <dje.gcc@gmail.com>
7530
7531 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
7532 back to if statements, including unpack.
7533
7534 2017-08-30 Martin Liska <mliska@suse.cz>
7535
7536 PR inline-asm/82001
7537 * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
7538 Rename to ...
7539 (func_checker::compare_asm_inputs_outputs): ... this function.
7540 (func_checker::compare_gimple_asm): Use the function to compare
7541 also ASM constrains.
7542 * ipa-icf-gimple.h: Rename the function.
7543
7544 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7545 Alan Hayward <alan.hayward@arm.com>
7546 David Sherwood <david.sherwood@arm.com>
7547
7548 * coretypes.h (complex_mode): New type.
7549 * gdbhooks.py (build_pretty_printer): Handle it.
7550 * machmode.h (complex_mode): New class.
7551 (complex_mode::includes_p): New function.
7552 (is_complex_int_mode): Likewise.
7553 (is_complex_float_mode): Likewise.
7554 * genmodes.c (get_mode_class): Handle complex mode classes.
7555 * function.c (expand_function_end): Use is_complex_int_mode.
7556
7557 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7558 Alan Hayward <alan.hayward@arm.com>
7559 David Sherwood <david.sherwood@arm.com>
7560
7561 * coretypes.h (scalar_mode_pod): New typedef.
7562 * gdbhooks.py (build_pretty_printer): Handle it.
7563 * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
7564 * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
7565 * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
7566 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
7567 as_a <scalar_mode>.
7568
7569 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7570 Alan Hayward <alan.hayward@arm.com>
7571 David Sherwood <david.sherwood@arm.com>
7572
7573 * machmode.h (mode_for_vector): Take a scalar_mode instead
7574 of a machine_mode.
7575 * stor-layout.c (mode_for_vector): Likewise.
7576 * explow.c (promote_mode): Use as_a <scalar_mode>.
7577 * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
7578
7579 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7580 Alan Hayward <alan.hayward@arm.com>
7581 David Sherwood <david.sherwood@arm.com>
7582
7583 * target.def (preferred_simd_mode): Take a scalar_mode
7584 instead of a machine_mode.
7585 * targhooks.h (default_preferred_simd_mode): Likewise.
7586 * targhooks.c (default_preferred_simd_mode): Likewise.
7587 * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
7588 * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
7589 * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
7590 * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
7591 * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
7592 * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
7593 * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
7594 * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
7595 Likewise.
7596 * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
7597 * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
7598 * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
7599 * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
7600 (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
7601 * doc/tm.texi: Regenerate.
7602 * optabs-query.c (can_vec_mask_load_store_p): Return false for
7603 non-scalar modes.
7604
7605 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7606 Alan Hayward <alan.hayward@arm.com>
7607 David Sherwood <david.sherwood@arm.com>
7608
7609 * target.def (scalar_mode_supported_p): Take a scalar_mode
7610 instead of a machine_mode.
7611 * targhooks.h (default_scalar_mode_supported_p): Likewise.
7612 * targhooks.c (default_scalar_mode_supported_p): Likewise.
7613 * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
7614 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
7615 * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
7616 * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
7617 * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
7618 * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
7619 * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
7620 * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
7621 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
7622 * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
7623 * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
7624 * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
7625 Likewise.
7626 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
7627 * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
7628 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
7629 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
7630 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
7631 Likewise.
7632 * doc/tm.texi: Regenerate.
7633
7634 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7635 Alan Hayward <alan.hayward@arm.com>
7636 David Sherwood <david.sherwood@arm.com>
7637
7638 * coretypes.h (opt_scalar_mode): New typedef.
7639 * gdbhooks.py (build_pretty_printers): Handle it.
7640 * machmode.h (mode_iterator::get_2xwider): Add overload for
7641 opt_mode<T>.
7642 * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
7643 over scalar modes.
7644 * expr.c (convert_mode_scalar): Likewise.
7645 * omp-low.c (omp_clause_aligned_alignment): Likewise.
7646 * optabs.c (expand_float): Likewise.
7647 (expand_fix): Likewise.
7648 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7649
7650 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7651 Alan Hayward <alan.hayward@arm.com>
7652 David Sherwood <david.sherwood@arm.com>
7653
7654 * optabs.c (expand_float): Explicitly check for scalars before
7655 using a branching expansion.
7656 (expand_fix): Likewise.
7657
7658 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7659 Alan Hayward <alan.hayward@arm.com>
7660 David Sherwood <david.sherwood@arm.com>
7661
7662 * expr.c (convert_mode): Split scalar handling out into...
7663 (convert_mode_scalar): ...this new function. Treat the modes
7664 as scalar_modes.
7665
7666 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7667 Alan Hayward <alan.hayward@arm.com>
7668 David Sherwood <david.sherwood@arm.com>
7669
7670 * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
7671 and scalar_mode.
7672 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
7673
7674 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7675 Alan Hayward <alan.hayward@arm.com>
7676 David Sherwood <david.sherwood@arm.com>
7677
7678 * fixed-value.h (fixed_from_double_int): Take a scalar_mode
7679 rather than a machine_mode.
7680 (fixed_from_string): Likewise.
7681 (fixed_convert): Likewise.
7682 (fixed_convert_from_int): Likewise.
7683 (fixed_convert_from_real): Likewise.
7684 (real_convert_from_fixed): Likewise.
7685 * fixed-value.c (fixed_from_double_int): Likewise.
7686 (fixed_from_string): Likewise.
7687 (fixed_convert): Likewise.
7688 (fixed_convert_from_int): Likewise.
7689 (fixed_convert_from_real): Likewise.
7690 (real_convert_from_fixed): Likewise.
7691 * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
7692
7693 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7694 Alan Hayward <alan.hayward@arm.com>
7695 David Sherwood <david.sherwood@arm.com>
7696
7697 * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
7698 of separate mode class checks. Do not allow vector modes here.
7699 (immed_wide_int_const): Use as_a <scalar_mode>.
7700 * explow.c (trunc_int_for_mode): Likewise.
7701 * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
7702 (wi::shwi): Likewise.
7703 (wi::min_value): Likewise.
7704 (wi::max_value): Likewise.
7705 * dwarf2out.c (loc_descriptor): Likewise.
7706 * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
7707 for CONST_WIDE_INT.
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 * tree.h (SCALAR_TYPE_MODE): New macro.
7714 * expr.c (expand_expr_addr_expr_1): Use it.
7715 (expand_expr_real_2): Likewise.
7716 * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
7717 (fold_convert_const_fixed_from_int): Likewise.
7718 (fold_convert_const_fixed_from_real): Likewise.
7719 (native_encode_fixed): Likewise
7720 (native_encode_complex): Likewise
7721 (native_encode_vector): Likewise.
7722 (native_interpret_fixed): Likewise.
7723 (native_interpret_real): Likewise.
7724 (native_interpret_complex): Likewise.
7725 (native_interpret_vector): Likewise.
7726 * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
7727 (simd_clone_adjust_argument_types): Likewise.
7728 (simd_clone_init_simd_arrays): Likewise.
7729 (simd_clone_adjust): Likewise.
7730 * stor-layout.c (layout_type): Likewise.
7731 * tree.c (build_minus_one_cst): Likewise.
7732 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
7733 * tree-inline.c (estimate_move_cost): Likewise.
7734 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
7735 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
7736 (vectorizable_reduction): Likewise.
7737 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
7738 (vect_recog_mixed_size_cond_pattern): Likewise.
7739 (check_bool_pattern): Likewise.
7740 (adjust_bool_pattern): Likewise.
7741 (search_type_for_mask_1): Likewise.
7742 * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
7743 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7744 (vectorizable_load): Likewise.
7745 (vectorizable_store): Likewise.
7746 * ubsan.c (ubsan_encode_value): Likewise.
7747 * varasm.c (output_constant): Likewise.
7748
7749 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7750 Alan Hayward <alan.hayward@arm.com>
7751 David Sherwood <david.sherwood@arm.com>
7752
7753 * coretypes.h (scalar_mode): New class.
7754 * machmode.h (scalar_mode): Likewise.
7755 (scalar_mode::includes_p): New function.
7756 (mode_to_inner): Return a scalar_mode rather than a machine_mode.
7757 * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
7758 * genmodes.c (get_mode_class): Handle remaining scalar modes.
7759 * cfgexpand.c (expand_debug_expr): Use scalar_mode.
7760 * expmed.c (store_bit_field_1): Likewise.
7761 (extract_bit_field_1): Likewise.
7762 * expr.c (write_complex_part): Likewise.
7763 (read_complex_part): Likewise.
7764 (emit_move_complex_push): Likewise.
7765 (expand_expr_real_2): Likewise.
7766 * function.c (assign_parm_setup_reg): Likewise.
7767 (assign_parms_unsplit_complex): Likewise.
7768 * optabs.c (expand_binop): Likewise.
7769 * rtlanal.c (subreg_get_info): Likewise.
7770 * simplify-rtx.c (simplify_immed_subreg): Likewise.
7771 * varasm.c (output_constant_pool_2): Likewise.
7772
7773 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7774 Alan Hayward <alan.hayward@arm.com>
7775 David Sherwood <david.sherwood@arm.com>
7776
7777 * expmed.c (extract_high_half): Use scalar_int_mode and remove
7778 assertion.
7779 (expmed_mult_highpart_optab): Likewise.
7780 (expmed_mult_highpart): Likewise.
7781
7782 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7783 Alan Hayward <alan.hayward@arm.com>
7784 David Sherwood <david.sherwood@arm.com>
7785
7786 * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
7787 instead of a machine_mode.
7788 (builtin_memset_read_str): Likewise.
7789 * builtins.c (c_readstr): Likewise.
7790 (builtin_memcpy_read_str): Likewise.
7791 (builtin_strncpy_read_str): Likewise.
7792 (builtin_memset_read_str): Likewise.
7793 (builtin_memset_gen_str): Likewise.
7794 (expand_builtin_signbit): Use scalar_int_mode for local variables.
7795 * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
7796 instead of a machine_mode.
7797 * combine.c (simplify_if_then_else): Use scalar_int_mode for local
7798 variables.
7799 (make_extraction): Likewise.
7800 (try_widen_shift_mode): Take and return scalar_int_modes instead
7801 of machine_modes.
7802 * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
7803 a scalar_int_mode instead of a machine_mode.
7804 * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
7805 (avr_addr_space_pointer_mode): Likewise.
7806 * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
7807 * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
7808 (msp430_unwind_word_mode): Likewise.
7809 * config/spu/spu.c (spu_unwind_word_mode): Likewise.
7810 (spu_addr_space_pointer_mode): Likewise.
7811 (spu_addr_space_address_mode): Likewise.
7812 (spu_libgcc_cmp_return_mode): Likewise.
7813 (spu_libgcc_shift_count_mode): Likewise.
7814 * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
7815 (rl78_addr_space_pointer_mode): Likewise.
7816 (fl78_unwind_word_mode): Likewise.
7817 (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
7818 machine_mode.
7819 * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
7820 * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
7821 * config/mips/mips.c (mips_mode_rep_extended): Likewise.
7822 (mips_valid_pointer_mode): Likewise.
7823 * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
7824 * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
7825 (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
7826 of a machine_mode.
7827 (ft32_addr_space_address_mode): Likewise.
7828 * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
7829 scalar_int_mode instead of a machine_mode.
7830 (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
7831 of a machine_mode.
7832 (m32c_addr_space_address_mode): Likewise.
7833 * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
7834 (rs6000_eh_return_filter_mode): Likewise.
7835 * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
7836 (rs6000_eh_return_filter_mode): Likewise.
7837 * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
7838 (s390_libgcc_shift_count_mode): Likewise.
7839 (s390_unwind_word_mode): Likewise.
7840 (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
7841 machine_mode.
7842 * target.def (mode_rep_extended): Likewise.
7843 (valid_pointer_mode): Likewise.
7844 (addr_space.valid_pointer_mode): Likewise.
7845 (eh_return_filter_mode): Return a scalar_int_mode rather than
7846 a machine_mode.
7847 (libgcc_cmp_return_mode): Likewise.
7848 (libgcc_shift_count_mode): Likewise.
7849 (unwind_word_mode): Likewise.
7850 (addr_space.pointer_mode): Likewise.
7851 (addr_space.address_mode): Likewise.
7852 * doc/tm.texi: Regenerate.
7853 * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
7854 a machine_mode.
7855 (do_jump): Use scalar_int_mode for local variables.
7856 * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
7857 rather than a machine_mode.
7858 * dwarf2out.c (convert_descriptor_to_mode): Likewise.
7859 (scompare_loc_descriptor_wide): Likewise.
7860 (scompare_loc_descriptor_narrow): Likewise.
7861 * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
7862 variables.
7863 * except.c (sjlj_emit_dispatch_table): Likewise.
7864 (expand_builtin_eh_copy_values): Likewise.
7865 * explow.c (convert_memory_address_addr_space_1): Likewise.
7866 Take a scalar_int_mode rather than a machine_mode.
7867 (convert_memory_address_addr_space): Take a scalar_int_mode rather
7868 than a machine_mode.
7869 (memory_address_addr_space): Use scalar_int_mode for local variables.
7870 * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
7871 rather than a machine_mode.
7872 * expmed.c (mask_rtx): Likewise.
7873 (init_expmed_one_conv): Likewise.
7874 (expand_mult_highpart_adjust): Likewise.
7875 (extract_high_half): Likewise.
7876 (expmed_mult_highpart_optab): Likewise.
7877 (expmed_mult_highpart): Likewise.
7878 (expand_smod_pow2): Likewise.
7879 (expand_sdiv_pow2): Likewise.
7880 (emit_store_flag_int): Likewise.
7881 (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
7882 variables.
7883 (extract_low_bits): Likewise.
7884 * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
7885 a machine_mode.
7886 * expr.c (pieces_addr::adjust): Likewise.
7887 (can_store_by_pieces): Likewise.
7888 (store_by_pieces): Likewise.
7889 (clear_by_pieces_1): Likewise.
7890 (expand_expr_addr_expr_1): Likewise.
7891 (expand_expr_addr_expr): Use scalar_int_mode for local variables.
7892 (expand_expr_real_1): Likewise.
7893 (try_casesi): Likewise.
7894 * final.c (shorten_branches): Likewise.
7895 * fold-const.c (fold_convert_const_int_from_fixed): Change the
7896 type of "mode" to machine_mode.
7897 * internal-fn.c (expand_arith_overflow_result_store): Take a
7898 scalar_int_mode rather than a machine_mode.
7899 (expand_mul_overflow): Use scalar_int_mode for local variables.
7900 * loop-doloop.c (doloop_modify): Likewise.
7901 (doloop_optimize): Likewise.
7902 * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
7903 than a machine_mode.
7904 (expand_doubleword_shift_condmove): Likewise.
7905 (expand_doubleword_shift): Likewise.
7906 (expand_doubleword_clz): Likewise.
7907 (expand_doubleword_popcount): Likewise.
7908 (expand_doubleword_parity): Likewise.
7909 (expand_absneg_bit): Use scalar_int_mode for local variables.
7910 (prepare_float_lib_cmp): Likewise.
7911 * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
7912 rather than a machine_mode.
7913 (convert_memory_address_addr_space): Likewise.
7914 (get_mode_bounds): Likewise.
7915 (get_address_mode): Return a scalar_int_mode rather than a
7916 machine_mode.
7917 * rtlanal.c (get_address_mode): Likewise.
7918 * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
7919 than a machine_mode.
7920 * targhooks.c (default_mode_rep_extended): Likewise.
7921 (default_valid_pointer_mode): Likewise.
7922 (default_addr_space_valid_pointer_mode): Likewise.
7923 (default_eh_return_filter_mode): Return a scalar_int_mode rather
7924 than a machine_mode.
7925 (default_libgcc_cmp_return_mode): Likewise.
7926 (default_libgcc_shift_count_mode): Likewise.
7927 (default_unwind_word_mode): Likewise.
7928 (default_addr_space_pointer_mode): Likewise.
7929 (default_addr_space_address_mode): Likewise.
7930 * targhooks.h (default_eh_return_filter_mode): Likewise.
7931 (default_libgcc_cmp_return_mode): Likewise.
7932 (default_libgcc_shift_count_mode): Likewise.
7933 (default_unwind_word_mode): Likewise.
7934 (default_addr_space_pointer_mode): Likewise.
7935 (default_addr_space_address_mode): Likewise.
7936 (default_mode_rep_extended): Take a scalar_int_mode rather than
7937 a machine_mode.
7938 (default_valid_pointer_mode): Likewise.
7939 (default_addr_space_valid_pointer_mode): Likewise.
7940 * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
7941 local variables.
7942 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
7943 rather than a machine_mode.
7944 * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
7945 for local variables.
7946 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
7947 * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
7948 than a machine_mode.
7949
7950 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7951 Alan Hayward <alan.hayward@arm.com>
7952 David Sherwood <david.sherwood@arm.com>
7953
7954 * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
7955 the mode argument to scalar_int_mode.
7956 (do_jump_by_parts_zero_rtx): Likewise.
7957 (do_jump_by_parts_equality_rtx): Likewise.
7958 (do_jump_by_parts_greater): Take a mode argument.
7959 (do_jump_by_parts_equality): Likewise.
7960 (do_jump_1): Update calls accordingly.
7961
7962 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7963 Alan Hayward <alan.hayward@arm.com>
7964 David Sherwood <david.sherwood@arm.com>
7965
7966 * is-a.h (safe_dyn_cast): New function.
7967 * rtl.h (rtx_jump_table_data::get_data_mode): New function.
7968 (jump_table_for_label): Likewise.
7969 * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
7970 instead of an rtx_insn *.
7971 (shorten_branches): Use dyn_cast instead of LABEL_P and
7972 JUMP_TABLE_DATA_P. Use jump_table_for_label and
7973 rtx_jump_table_data::get_data_mode.
7974 (final_scan_insn): Likewise.
7975
7976 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7977 Alan Hayward <alan.hayward@arm.com>
7978 David Sherwood <david.sherwood@arm.com>
7979
7980 * combine.c (try_combine): Use is_a <scalar_int_mode> when
7981 trying to combine a full-register integer set with a subreg
7982 integer set.
7983
7984 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7985 Alan Hayward <alan.hayward@arm.com>
7986 David Sherwood <david.sherwood@arm.com>
7987
7988 * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
7989 that is always either address_mode or pointer_mode.
7990
7991 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7992 Alan Hayward <alan.hayward@arm.com>
7993 David Sherwood <david.sherwood@arm.com>
7994
7995 * expr.c (expand_expr_real_2): Use word_mode instead of innermode
7996 when the two are known to be equal.
7997
7998 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7999 Alan Hayward <alan.hayward@arm.com>
8000 David Sherwood <david.sherwood@arm.com>
8001
8002 * simplify-rtx.c (simplify_const_unary_operation): Use
8003 is_a <scalar_int_mode> instead of checking for a nonzero
8004 precision. Forcibly convert op_mode to a scalar_int_mode
8005 in that case. More clearly differentiate the operand and
8006 result modes and use the former when deciding what the value
8007 of a count-bits operation should be. Use is_int_mode instead
8008 of checking for a MODE_INT. Remove redundant check for whether
8009 this mode has a zero precision.
8010
8011 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8012 Alan Hayward <alan.hayward@arm.com>
8013 David Sherwood <david.sherwood@arm.com>
8014
8015 * optabs.c (widen_leading): Change the type of the mode argument
8016 to scalar_int_mode. Use opt_scalar_int_mode for the mode iterator.
8017 (widen_bswap): Likewise.
8018 (expand_parity): Likewise.
8019 (expand_ctz): Change the type of the mode argument to scalar_int_mode.
8020 (expand_ffs): Likewise.
8021 (epand_unop): Check for scalar integer modes before calling the
8022 above routines.
8023
8024 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8025 Alan Hayward <alan.hayward@arm.com>
8026 David Sherwood <david.sherwood@arm.com>
8027
8028 * expr.c (const_scalar_mask_from_tree): Add a mode argument.
8029 Expand commentary.
8030 (expand_expr_real_1): Update call accordingly.
8031
8032 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8033 Alan Hayward <alan.hayward@arm.com>
8034 David Sherwood <david.sherwood@arm.com>
8035
8036 * expmed.c (store_bit_field_using_insv): Add op0_mode and
8037 value_mode arguments. Use scalar_int_mode internally.
8038 (store_bit_field_1): Rename the new integer mode from imode
8039 to op0_mode and use it instead of GET_MODE (op0). Update calls
8040 to store_split_bit_field, store_bit_field_using_insv and
8041 store_fixed_bit_field.
8042 (store_fixed_bit_field): Add op0_mode and value_mode arguments.
8043 Use scalar_int_mode internally. Use a bit count rather than a mode
8044 when calculating the largest bit size for get_best_mode.
8045 Update calls to store_split_bit_field and store_fixed_bit_field_1.
8046 (store_fixed_bit_field_1): Add mode and value_mode arguments.
8047 Remove assertion that OP0 has a scalar integer mode.
8048 (store_split_bit_field): Add op0_mode and value_mode arguments.
8049 Update calls to extract_fixed_bit_field.
8050 (extract_bit_field_using_extv): Add an op0_mode argument.
8051 Use scalar_int_mode internally.
8052 (extract_bit_field_1): Rename the new integer mode from imode to
8053 op0_mode and use it instead of GET_MODE (op0). Update calls to
8054 extract_split_bit_field, extract_bit_field_using_extv and
8055 extract_fixed_bit_field.
8056 (extract_fixed_bit_field): Add an op0_mode argument. Update calls
8057 to extract_split_bit_field and extract_fixed_bit_field_1.
8058 (extract_fixed_bit_field_1): Add a mode argument. Remove assertion
8059 that OP0 has a scalar integer mode. Use as_a <scalar_int_mode>
8060 on the target mode.
8061 (extract_split_bit_field): Add an op0_mode argument. Update call
8062 to extract_fixed_bit_field.
8063
8064 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8065 Alan Hayward <alan.hayward@arm.com>
8066 David Sherwood <david.sherwood@arm.com>
8067
8068 * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
8069 * explow.c (hard_function_value): Likewise.
8070 * expmed.c (extract_fixed_bit_field_1): Likewise. Move the
8071 convert_to_mode call outside the loop.
8072 * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
8073 for the mode iterator. Require the mode specified by max_pieces
8074 to exist.
8075 (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
8076 mode iterator.
8077 (copy_blkmode_to_reg): Likewise.
8078 (set_storage_via_setmem): Likewise.
8079 * optabs.c (prepare_cmp_insn): Likewise.
8080 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
8081 * stor-layout.c (finish_bitfield_representative): Likewise.
8082
8083 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8084 Alan Hayward <alan.hayward@arm.com>
8085 David Sherwood <david.sherwood@arm.com>
8086
8087 * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
8088 * expr.c (convert_move): Use them.
8089 (convert_modes): Likewise.
8090 (store_expr_with_bounds): Likewise.
8091
8092 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8093 Alan Hayward <alan.hayward@arm.com>
8094 David Sherwood <david.sherwood@arm.com>
8095
8096 * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
8097 parameter for the mode of "x". Remove the "known_x", "known_mode"
8098 and "known_ret" arguments. Change the type of the mode argument
8099 to scalar_int_mode.
8100 (rtl_hooks:reg_num_sign_bit_copies): Likewise.
8101 * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
8102 (reg_num_sign_bit_copies_for_combine): Likewise.
8103 * rtlanal.c (nonzero_bits1): Likewise.
8104 (num_sign_bit_copies1): Likewise.
8105 * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
8106 (reg_num_sign_bit_copies_general): Likewise.
8107 * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
8108 (reg_nonzero_bits_general): Likewise.
8109
8110 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8111 Alan Hayward <alan.hayward@arm.com>
8112 David Sherwood <david.sherwood@arm.com>
8113
8114 * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
8115 than in subroutines. Return 1 for non-integer modes.
8116 (cached_num_sign_bit_copies): Change the type of the mode parameter
8117 to scalar_int_mode.
8118 (num_sign_bit_copies1): Likewise. Remove early exit for other mode
8119 classes. Handle CONST_INT_P first and then check whether X also
8120 has a scalar integer mode. Check the same thing for inner registers
8121 of a SUBREG and for values that are being extended or truncated.
8122
8123 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8124 Alan Hayward <alan.hayward@arm.com>
8125 David Sherwood <david.sherwood@arm.com>
8126
8127 * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
8128 in subroutines. Return the mode mask for non-integer modes.
8129 (cached_nonzero_bits): Change the type of the mode parameter
8130 to scalar_int_mode.
8131 (nonzero_bits1): Likewise. Remove early exit for other mode
8132 classes. Handle CONST_INT_P first and then check whether X
8133 also has a scalar integer mode.
8134
8135 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8136 Alan Hayward <alan.hayward@arm.com>
8137 David Sherwood <david.sherwood@arm.com>
8138
8139 * expr.c (widest_int_mode_for_size): Make the comment match the code.
8140 Return a scalar_int_mode and assert that the size is greater than
8141 one byte.
8142 (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
8143 (op_by_pieces_d::op_by_pieces_d): Likewise.
8144 (op_by_pieces_d::run): Likewise.
8145 (can_store_by_pieces): Likewise.
8146
8147 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8148 Alan Hayward <alan.hayward@arm.com>
8149 David Sherwood <david.sherwood@arm.com>
8150
8151 * combine.c (extract_left_shift): Add a mode argument and update
8152 recursive calls.
8153 (make_compound_operation_int): Change the type of the mode parameter
8154 to scalar_int_mode and update the call to extract_left_shift.
8155
8156 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8157 Alan Hayward <alan.hayward@arm.com>
8158 David Sherwood <david.sherwood@arm.com>
8159
8160 * combine.c (simplify_and_const_int): Change the type of the mode
8161 parameter to scalar_int_mode.
8162 (simplify_and_const_int_1): Likewise. Update recursive call.
8163
8164 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8165 Alan Hayward <alan.hayward@arm.com>
8166 David Sherwood <david.sherwood@arm.com>
8167
8168 * combine.c (simplify_compare_const): Check that the mode is a
8169 scalar_int_mode (rather than VOIDmode) before testing its
8170 precision.
8171 (simplify_comparison): Move COMPARISON_P handling out of the
8172 loop and restrict the latter part of the loop to scalar_int_modes.
8173 Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
8174 and when considering SUBREG_REGs. Use is_int_mode instead of
8175 checking GET_MODE_CLASS against MODE_INT.
8176
8177 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8178 Alan Hayward <alan.hayward@arm.com>
8179 David Sherwood <david.sherwood@arm.com>
8180
8181 * combine.c (try_widen_shift_mode): Move check for equal modes to...
8182 (simplify_shift_const_1): ...here. Use scalar_int_mode for
8183 shift_unit_mode and for modes involved in scalar shifts.
8184
8185 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8186 Alan Hayward <alan.hayward@arm.com>
8187 David Sherwood <david.sherwood@arm.com>
8188
8189 * combine.c (force_int_to_mode): New function, split out from...
8190 (force_to_mode): ...here. Keep xmode up-to-date and use it
8191 instead of GET_MODE (x).
8192
8193 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8194 Alan Hayward <alan.hayward@arm.com>
8195 David Sherwood <david.sherwood@arm.com>
8196
8197 * optabs-query.h (extraction_insn::struct_mode): Change type to
8198 opt_scalar_int_mode and update comment.
8199 (extraction_insn::field_mode): Change type to scalar_int_mode.
8200 (extraction_insn::pos_mode): Likewise.
8201 * combine.c (make_extraction): Update accordingly.
8202 * optabs-query.c (get_traditional_extraction_insn): Likewise.
8203 (get_optab_extraction_insn): Likewise.
8204 * recog.c (simplify_while_replacing): Likewise.
8205 * expmed.c (narrow_bit_field_mem): Change the type of the mode
8206 parameter to opt_scalar_int_mode.
8207
8208 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8209 Alan Hayward <alan.hayward@arm.com>
8210 David Sherwood <david.sherwood@arm.com>
8211
8212 * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
8213 to a scalar_int_mode instead of a machine_mode.
8214 (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
8215 (get_best_mode): Return a boolean and use a pointer argument to store
8216 the selected mode. Replace the limit mode parameter with a bit limit.
8217 * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
8218 for the values returned by bit_field_mode_iterator::next_mode.
8219 (store_bit_field): Update call to get_best_mode.
8220 (store_fixed_bit_field): Likewise.
8221 (extract_fixed_bit_field): Likewise.
8222 * expr.c (optimize_bitfield_assignment_op): Likewise.
8223 * fold-const.c (optimize_bit_field_compare): Likewise.
8224 (fold_truth_andor_1): Likewise.
8225 * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
8226 Update for new type of m_mode.
8227 (get_best_mode): As above.
8228
8229 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8230 Alan Hayward <alan.hayward@arm.com>
8231 David Sherwood <david.sherwood@arm.com>
8232
8233 * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
8234 to scalar_int_mode. Remove check for SCALAR_INT_MODE_P.
8235 (store_bit_field): Check is_a <scalar_int_mode> before calling
8236 strict_volatile_bitfield_p.
8237 (extract_bit_field): Likewise.
8238
8239 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8240 Alan Hayward <alan.hayward@arm.com>
8241 David Sherwood <david.sherwood@arm.com>
8242
8243 * target.def (cstore_mode): Return a scalar_int_mode.
8244 * doc/tm.texi: Regenerate.
8245 * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
8246 * targhooks.h (default_cstore_mode): Likewise.
8247 * targhooks.c (default_cstore_mode): Likewise, using a forced
8248 conversion.
8249 * expmed.c (emit_cstore): Expect the target of the cstore to be
8250 a scalar_int_mode.
8251
8252 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8253 Alan Hayward <alan.hayward@arm.com>
8254 David Sherwood <david.sherwood@arm.com>
8255
8256 * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
8257 scalar_int_mode.
8258 (niter_desc): Likewise mode.
8259 (iv_analyze): Add a mode parameter.
8260 (biv_p): Likewise.
8261 (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
8262 and change its type to scalar_int_mode.
8263 * loop-iv.c: Update commentary at head of file.
8264 (iv_constant): Pass the mode paraeter before the rtx it describes
8265 and change its type to scalar_int_mode. Remove VOIDmode handling.
8266 (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
8267 (iv_extend): Likewise.
8268 (shorten_into_mode): Likewise.
8269 (iv_add): Use scalar_int_mode.
8270 (iv_mult): Likewise.
8271 (iv_shift): Likewise.
8272 (canonicalize_iv_subregs): Likewise.
8273 (get_biv_step_1): Pass the outer_mode parameter before the rtx
8274 it describes and change its mode to scalar_int_mode. Also change
8275 the type of the returned inner_mode to scalar_int_mode.
8276 (get_biv_step): Likewise, turning outer_mode from a pointer
8277 into a direct parameter. Update call to get_biv_step_1.
8278 (iv_analyze_biv): Add an outer_mode parameter. Update calls to
8279 iv_constant and get_biv_step.
8280 (iv_analyze_expr): Pass the mode parameter before the rtx it describes
8281 and change its type to scalar_int_mode. Don't initialise iv->mode
8282 to VOIDmode and remove later checks for its still being VOIDmode.
8283 Update calls to iv_analyze_op and iv_analyze_expr. Check
8284 is_a <scalar_int_mode> when changing the mode under consideration.
8285 (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
8286 Update call to iv_analyze_expr.
8287 (iv_analyze_op): Add a mode parameter. Reject subregs whose
8288 inner register is not also a scalar_int_mode. Update call to
8289 iv_analyze_biv.
8290 (iv_analyze): Add a mode parameter. Update call to iv_analyze_op.
8291 (biv_p): Add a mode parameter. Update call to iv_analyze_biv.
8292 (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
8293 separate mode class checks. Update calls to iv_analyze. Remove
8294 fix-up of VOIDmodes after iv_analyze_biv.
8295 * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
8296 don't have a scalar_int_mode. Update call to biv_p.
8297
8298 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8299 Alan Hayward <alan.hayward@arm.com>
8300 David Sherwood <david.sherwood@arm.com>
8301
8302 * cfgexpand.c (convert_debug_memory_address): Use
8303 as_a <scalar_int_mode>.
8304 * combine.c (expand_compound_operation): Likewise.
8305 (make_extraction): Likewise.
8306 (change_zero_ext): Likewise.
8307 (simplify_comparison): Likewise.
8308 * cse.c (cse_insn): Likewise.
8309 * dwarf2out.c (minmax_loc_descriptor): Likewise.
8310 (mem_loc_descriptor): Likewise.
8311 (loc_descriptor): Likewise.
8312 * expmed.c (init_expmed_one_mode): Likewise.
8313 (synth_mult): Likewise.
8314 (emit_store_flag_1): Likewise.
8315 (expand_divmod): Likewise. Use HWI_COMPUTABLE_MODE_P instead
8316 of a comparison with size.
8317 * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
8318 (reduce_to_bit_field_precision): Likewise.
8319 * function.c (expand_function_end): Likewise.
8320 * internal-fn.c (expand_arith_overflow_result_store): Likewise.
8321 * loop-doloop.c (doloop_modify): Likewise.
8322 * optabs.c (expand_binop): Likewise.
8323 (expand_unop): Likewise.
8324 (expand_copysign_absneg): Likewise.
8325 (prepare_cmp_insn): Likewise.
8326 (maybe_legitimize_operand): Likewise.
8327 * recog.c (const_scalar_int_operand): Likewise.
8328 * rtlanal.c (get_address_mode): Likewise.
8329 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8330 (simplify_cond_clz_ctz): Likewise.
8331 * tree-nested.c (get_nl_goto_field): Likewise.
8332 * tree.c (build_vector_type_for_mode): Likewise.
8333 * var-tracking.c (use_narrower_mode): Likewise.
8334
8335 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8336 Alan Hayward <alan.hayward@arm.com>
8337 David Sherwood <david.sherwood@arm.com>
8338
8339 * tree.h (SCALAR_INT_TYPE_MODE): New macro.
8340 * builtins.c (expand_builtin_signbit): Use it.
8341 * cfgexpand.c (expand_debug_expr): Likewise.
8342 * dojump.c (do_jump): Likewise.
8343 (do_compare_and_jump): Likewise.
8344 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
8345 * expmed.c (make_tree): Likewise.
8346 * expr.c (expand_expr_real_2): Likewise.
8347 (expand_expr_real_1): Likewise.
8348 (try_casesi): Likewise.
8349 * fold-const-call.c (fold_const_call_ss): Likewise.
8350 * fold-const.c (unextend): Likewise.
8351 (extract_muldiv_1): Likewise.
8352 (fold_single_bit_test): Likewise.
8353 (native_encode_int): Likewise.
8354 (native_encode_string): Likewise.
8355 (native_interpret_int): Likewise.
8356 * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
8357 * internal-fn.c (expand_addsub_overflow): Likewise.
8358 (expand_neg_overflow): Likewise.
8359 (expand_mul_overflow): Likewise.
8360 (expand_arith_overflow): Likewise.
8361 * match.pd: Likewise.
8362 * stor-layout.c (layout_type): Likewise.
8363 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
8364 * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
8365 * tree-ssanames.c (get_range_info): Likewise.
8366 * tree-switch-conversion.c (array_value_type) Likewise.
8367 * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
8368 (vect_recog_divmod_pattern): Likewise.
8369 (vect_recog_mixed_size_cond_pattern): Likewise.
8370 * tree-vrp.c (extract_range_basic): Likewise.
8371 (simplify_float_conversion_using_ranges): Likewise.
8372 * tree.c (int_fits_type_p): Likewise.
8373 * ubsan.c (instrument_bool_enum_load): Likewise.
8374 * varasm.c (mergeable_string_section): Likewise.
8375 (narrowing_initializer_constant_valid_p): Likewise.
8376 (output_constant): Likewise.
8377
8378 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8379 Alan Hayward <alan.hayward@arm.com>
8380 David Sherwood <david.sherwood@arm.com>
8381
8382 * machmode.h (NARROWEST_INT_MODE): New macro.
8383 * expr.c (alignment_for_piecewise_move): Use it instead of
8384 GET_CLASS_NARROWEST_MODE (MODE_INT).
8385 (push_block): Likewise.
8386 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
8387 Likewise.
8388 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
8389
8390 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8391 Alan Hayward <alan.hayward@arm.com>
8392 David Sherwood <david.sherwood@arm.com>
8393
8394 * postreload.c (move2add_valid_value_p): Change the type of the
8395 mode parameter to scalar_int_mode.
8396 (move2add_use_add2_insn): Add a mode parameter and use it instead
8397 of GET_MODE (reg).
8398 (move2add_use_add3_insn): Likewise.
8399 (reload_cse_move2add): Update accordingly.
8400
8401 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8402 Alan Hayward <alan.hayward@arm.com>
8403 David Sherwood <david.sherwood@arm.com>
8404
8405 * expr.c (expand_expr_real_2): Use scalar_int_mode for the
8406 double-word mode.
8407 * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
8408 * optabs.c (expand_unop): Likewise.
8409
8410 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8411 Alan Hayward <alan.hayward@arm.com>
8412 David Sherwood <david.sherwood@arm.com>
8413
8414 * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
8415 (clz_loc_descriptor): Likewise. Remove SCALAR_INT_MODE_P check.
8416 (popcount_loc_descriptor): Likewise.
8417 (bswap_loc_descriptor): Likewise.
8418 (rotate_loc_descriptor): Likewise.
8419 (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
8420 calling the functions above.
8421
8422 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8423 Alan Hayward <alan.hayward@arm.com>
8424 David Sherwood <david.sherwood@arm.com>
8425
8426 * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
8427 checks.
8428 (try_combine): Likewise.
8429 (simplify_if_then_else): Likewise.
8430 * cse.c (cse_insn): Likewise.
8431 * dwarf2out.c (mem_loc_descriptor): Likewise.
8432 * emit-rtl.c (gen_lowpart_common): Likewise.
8433 * simplify-rtx.c (simplify_truncation): Likewise.
8434 (simplify_binary_operation_1): Likewise.
8435 (simplify_const_relational_operation): Likewise.
8436 (simplify_ternary_operation): Likewise.
8437 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
8438
8439 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8440 Alan Hayward <alan.hayward@arm.com>
8441 David Sherwood <david.sherwood@arm.com>
8442
8443 * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
8444 * reload.c (push_reload): Likewise.
8445 (find_reloads): Likewise.
8446
8447 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8448 Alan Hayward <alan.hayward@arm.com>
8449 David Sherwood <david.sherwood@arm.com>
8450
8451 * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
8452 (make_compound_operation_int): Likewise.
8453 (change_zero_ext): Likewise.
8454 * expr.c (convert_move): Likewise.
8455 (convert_modes): Likewise.
8456 * fwprop.c (forward_propagate_subreg): Likewise.
8457 * loop-iv.c (get_biv_step_1): Likewise.
8458 * optabs.c (widen_operand): Likewise.
8459 * postreload.c (move2add_valid_value_p): Likewise.
8460 * recog.c (simplify_while_replacing): Likewise.
8461 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8462 (simplify_binary_operation_1): Likewise. Remove redundant
8463 mode equality check.
8464
8465 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8466 Alan Hayward <alan.hayward@arm.com>
8467 David Sherwood <david.sherwood@arm.com>
8468
8469 * combine.c (combine_simplify_rtx): Add checks for
8470 is_a <scalar_int_mode>.
8471 (simplify_if_then_else): Likewise.
8472 (make_field_assignment): Likewise.
8473 (simplify_comparison): Likewise.
8474 * ifcvt.c (noce_try_bitop): Likewise.
8475 * loop-invariant.c (canonicalize_address_mult): Likewise.
8476 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8477
8478 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8479 Alan Hayward <alan.hayward@arm.com>
8480 David Sherwood <david.sherwood@arm.com>
8481
8482 * gimple-fold.c (gimple_fold_builtin_memory_op): Use
8483 is_a <scalar_int_mode> instead of != BLKmode.
8484
8485 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8486 Alan Hayward <alan.hayward@arm.com>
8487 David Sherwood <david.sherwood@arm.com>
8488
8489 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
8490 instead of != VOIDmode.
8491 * combine.c (if_then_else_cond): Likewise.
8492 (change_zero_ext): Likewise.
8493 * dwarf2out.c (mem_loc_descriptor): Likewise.
8494 (loc_descriptor): Likewise.
8495 * rtlanal.c (canonicalize_condition): Likewise.
8496 * simplify-rtx.c (simplify_relational_operation_1): Likewise.
8497
8498 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8499 Alan Hayward <alan.hayward@arm.com>
8500 David Sherwood <david.sherwood@arm.com>
8501
8502 * simplify-rtx.c (simplify_binary_operation_1): Use
8503 is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
8504
8505 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8506 Alan Hayward <alan.hayward@arm.com>
8507 David Sherwood <david.sherwood@arm.com>
8508
8509 * wide-int.h (int_traits<unsigned char>) New class.
8510 (int_traits<unsigned short>) Likewise.
8511 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
8512 Use GET_MODE_UNIT_PRECISION and remove redundant test for
8513 SCALAR_INT_MODE_P.
8514 * combine.c (set_nonzero_bits_and_sign_copies): Use
8515 is_a <scalar_int_mode>.
8516 (find_split_point): Likewise.
8517 (combine_simplify_rtx): Likewise.
8518 (simplify_logical): Likewise.
8519 (expand_compound_operation): Likewise.
8520 (expand_field_assignment): Likewise.
8521 (make_compound_operation): Likewise.
8522 (extended_count): Likewise.
8523 (change_zero_ext): Likewise.
8524 (simplify_comparison): Likewise.
8525 * dwarf2out.c (scompare_loc_descriptor): Likewise.
8526 (ucompare_loc_descriptor): Likewise.
8527 (minmax_loc_descriptor): Likewise.
8528 (mem_loc_descriptor): Likewise.
8529 (loc_descriptor): Likewise.
8530 * expmed.c (init_expmed_one_mode): Likewise.
8531 * lra-constraints.c (lra_constraint_offset): Likewise.
8532 * optabs.c (prepare_libcall_arg): Likewise.
8533 * postreload.c (move2add_note_store): Likewise.
8534 * reload.c (operands_match_p): Likewise.
8535 * rtl.h (load_extend_op): Likewise.
8536 * rtlhooks.c (gen_lowpart_general): Likewise.
8537 * simplify-rtx.c (simplify_truncation): Likewise.
8538 (simplify_unary_operation_1): Likewise.
8539 (simplify_binary_operation_1): Likewise.
8540 (simplify_const_binary_operation): Likewise.
8541 (simplify_const_relational_operation): Likewise.
8542 (simplify_subreg): Likewise.
8543 * stor-layout.c (bitwise_mode_for_mode): Likewise.
8544 * var-tracking.c (adjust_mems): Likewise.
8545 (prepare_call_arguments): Likewise.
8546
8547 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8548 Alan Hayward <alan.hayward@arm.com>
8549 David Sherwood <david.sherwood@arm.com>
8550
8551 * machmode.h (is_int_mode): New fuction.
8552 * combine.c (find_split_point): Use it.
8553 (combine_simplify_rtx): Likewise.
8554 (simplify_if_then_else): Likewise.
8555 (simplify_set): Likewise.
8556 (simplify_shift_const_1): Likewise.
8557 (simplify_comparison): Likewise.
8558 * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
8559 * cse.c (notreg_cost): Likewise.
8560 (cse_insn): Likewise.
8561 * cselib.c (cselib_lookup_1): Likewise.
8562 * dojump.c (do_jump_1): Likewise.
8563 (do_compare_rtx_and_jump): Likewise.
8564 * dse.c (get_call_args): Likewise.
8565 * dwarf2out.c (rtl_for_decl_init): Likewise.
8566 (native_encode_initializer): Likewise.
8567 * expmed.c (emit_store_flag_1): Likewise.
8568 (emit_store_flag): Likewise.
8569 * expr.c (convert_modes): Likewise.
8570 (store_field): Likewise.
8571 (expand_expr_real_1): Likewise.
8572 * fold-const.c (fold_read_from_constant_string): Likewise.
8573 * gimple-ssa-sprintf.c (get_format_string): Likewise.
8574 * optabs-libfuncs.c (gen_int_libfunc): Likewise.
8575 * optabs.c (expand_binop): Likewise.
8576 (expand_unop): Likewise.
8577 (expand_abs_nojump): Likewise.
8578 (expand_one_cmpl_abs_nojump): Likewise.
8579 * simplify-rtx.c (mode_signbit_p): Likewise.
8580 (val_signbit_p): Likewise.
8581 (val_signbit_known_set_p): Likewise.
8582 (val_signbit_known_clear_p): Likewise.
8583 (simplify_relational_operation_1): Likewise.
8584 * tree.c (vector_type_mode): Likewise.
8585
8586 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8587 Alan Hayward <alan.hayward@arm.com>
8588 David Sherwood <david.sherwood@arm.com>
8589
8590 * machmode.h (smallest_mode_for_size): Fix formatting.
8591 (smallest_int_mode_for_size): New function.
8592 * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
8593 instead of smallest_mode_for_size.
8594 * combine.c (make_extraction): Likewise.
8595 * config/arc/arc.c (arc_expand_movmem): Likewise.
8596 * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
8597 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
8598 * config/s390/s390.c (s390_expand_insv): Likewise.
8599 * config/sparc/sparc.c (assign_int_registers): Likewise.
8600 * config/spu/spu.c (spu_function_value): Likewise.
8601 (spu_function_arg): Likewise.
8602 * coverage.c (get_gcov_type): Likewise.
8603 (get_gcov_unsigned_t): Likewise.
8604 * dse.c (find_shift_sequence): Likewise.
8605 * expmed.c (store_bit_field_1): Likewise.
8606 * expr.c (convert_move): Likewise.
8607 (store_field): Likewise.
8608 * internal-fn.c (expand_arith_overflow): Likewise.
8609 * optabs-query.c (get_best_extraction_insn): Likewise.
8610 * optabs.c (expand_twoval_binop_libfunc): Likewise.
8611 * stor-layout.c (layout_type): Likewise.
8612 (initialize_sizetypes): Likewise.
8613 * targhooks.c (default_get_mask_mode): Likewise.
8614 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
8615
8616 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8617 Alan Hayward <alan.hayward@arm.com>
8618 David Sherwood <david.sherwood@arm.com>
8619
8620 * machmode.h (opt_mode::else_blk): New function.
8621 (int_mode_for_mode): Declare.
8622 * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
8623 * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
8624 return type.
8625 * cfgexpand.c (expand_debug_expr): Likewise.
8626 * combine.c (gen_lowpart_or_truncate): Likewise.
8627 (gen_lowpart_for_combine): Likewise.
8628 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
8629 * config/avr/avr.c (avr_to_int_mode): Likewise.
8630 (avr_out_plus_1): Likewise.
8631 (avr_out_plus): Likewise.
8632 (avr_out_round): Likewise.
8633 * config/i386/i386.c (ix86_split_to_parts): Likewise.
8634 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
8635 (s390_expand_vcond): Likewise.
8636 * config/spu/spu.c (spu_split_immediate): Likewise.
8637 (spu_expand_mov): Likewise.
8638 * dse.c (get_stored_val): Likewise.
8639 * expmed.c (store_bit_field_1): Likewise.
8640 (convert_extracted_bit_field): Use int_mode_for_mode instead of
8641 int_mode_for_size.
8642 (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
8643 (extract_low_bits): Likewise.
8644 * expr.c (emit_group_load_1): Likewise. Separate out the BLKmode
8645 handling rather than repeating the check.
8646 (emit_group_store): Likewise.
8647 (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
8648 * optabs.c (expand_absneg_bit): Likewise.
8649 (expand_copysign_absneg): Likewise.
8650 (expand_copysign_bit): Likewise.
8651 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
8652 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
8653 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
8654 * var-tracking.c (prepare_call_arguments): Likewise.
8655 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
8656 int_mode_for_mode instead of mode_for_size.
8657 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
8658
8659 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8660 Alan Hayward <alan.hayward@arm.com>
8661 David Sherwood <david.sherwood@arm.com>
8662
8663 * machmode.h (int_mode_for_size): New function.
8664 * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
8665 instead of mode_for_size.
8666 * calls.c (save_fixed_argument_area): Likewise. Make use of BLKmode
8667 explicit.
8668 * combine.c (expand_field_assignment): Use int_mode_for_size
8669 instead of mode_for_size.
8670 (make_extraction): Likewise.
8671 (simplify_shift_const_1): Likewise.
8672 (simplify_comparison): Likewise.
8673 * dojump.c (do_jump): Likewise.
8674 * dwarf2out.c (mem_loc_descriptor): Likewise.
8675 * emit-rtl.c (init_derived_machine_modes): Likewise.
8676 * expmed.c (flip_storage_order): Likewise.
8677 (convert_extracted_bit_field): Likewise.
8678 * expr.c (copy_blkmode_from_reg): Likewise.
8679 * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
8680 * internal-fn.c (expand_mul_overflow): Likewise.
8681 * lower-subreg.c (simple_move): Likewise.
8682 * optabs-libfuncs.c (init_optabs): Likewise.
8683 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8684 * tree.c (vector_type_mode): Likewise.
8685 * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
8686 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
8687 * tree-vect-generic.c (expand_vector_parallel): Likewise.
8688 * tree-vect-stmts.c (vectorizable_load): Likewise.
8689 (vectorizable_store): Likewise.
8690
8691 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8692 Alan Hayward <alan.hayward@arm.com>
8693 David Sherwood <david.sherwood@arm.com>
8694
8695 * coretypes.h (pod_mode): New type.
8696 (scalar_int_mode_pod): New typedef.
8697 * machmode.h (pod_mode): New class.
8698 (int_n_data_t::m): Change type to scalar_int_mode_pod.
8699 * genmodes.c (emit_mode_int_n): Update accordingly.
8700 * lower-subreg.h (target_lower_subreg): Change type to
8701 scalar_int_mode_pod.
8702 * gdbhooks.py (build_pretty_printer): Handle pod_mode and
8703 scalar_int_mode_pod.
8704
8705 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8706 Alan Hayward <alan.hayward@arm.com>
8707 David Sherwood <david.sherwood@arm.com>
8708
8709 * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
8710 machine_mode to scalar_int_mode.
8711 * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
8712 (rs6000_option_override_internal): Remove cast to int.
8713 * config/rs6000/rs6000.h (rs6000_pmode): Change type from
8714 machine_mode to scalar_int_mode.
8715 * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
8716 (rs6000_option_override_internal): Remove cast to int.
8717 * config/s390/s390.h (Pmode): Remove cast to machine_mode.
8718 * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
8719 to machine_mode.
8720 * config/s390/s390.c (s390_expand_builtin): Likewise.
8721 * coretypes.h (scalar_int_mode): New type.
8722 (opt_scalar_int_mode): New typedef.
8723 * machmode.h (scalar_int_mode): New class.
8724 (scalar_int_mode::includes_p): New function.
8725 (byte_mode): Change type to scalar_int_mode.
8726 (word_mode): Likewise.
8727 (ptr_mode): Likewise.
8728 * emit-rtl.c (byte_mode): Likewise.
8729 (word_mode): Likewise.
8730 (ptr_mode): Likewise.
8731 (init_derived_machine_modes): Update accordingly.
8732 * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
8733 and MODE_PARTIAL_INT.
8734 * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
8735 opt_scalar_int_mode.
8736
8737 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8738 Alan Hayward <alan.hayward@arm.com>
8739 David Sherwood <david.sherwood@arm.com>
8740
8741 * target.def (libgcc_floating_mode_supported_p): Take a
8742 scalar_float_mode.
8743 * doc/tm.texi: Regenerate.
8744 * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
8745 scalar_float_mode.
8746 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
8747 * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
8748 Likewise.
8749
8750 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8751 Alan Hayward <alan.hayward@arm.com>
8752 David Sherwood <david.sherwood@arm.com>
8753
8754 * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
8755 * doc/tm.texi: Regenerate.
8756 * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
8757 * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
8758 * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
8759 * targhooks.h (default_floatn_mode): Likewise.
8760 * targhooks.c (default_floatn_mode): Likewise.
8761 * tree.c (build_common_tree_nodes): Update accordingly.
8762
8763 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8764 Alan Hayward <alan.hayward@arm.com>
8765 David Sherwood <david.sherwood@arm.com>
8766
8767 * machmode.h (mode_iterator::start): Provide overload for opt_modes.
8768 (mode_iterator::iterate_p): Likewise.
8769 (mode_iterator::get_wider): Likewise.
8770 * expr.c (init_expr_target): Use opt_scalar_float_mode.
8771
8772 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8773 Alan Hayward <alan.hayward@arm.com>
8774 David Sherwood <david.sherwood@arm.com>
8775
8776 * coretypes.h (opt_scalar_float_mode): New typedef.
8777 * machmode.h (float_mode_for_size): New function.
8778 * emit-rtl.c (double_mode): Delete.
8779 (init_emit_once): Use float_mode_for_size.
8780 * stor-layout.c (layout_type): Likewise.
8781 * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
8782
8783 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8784 Alan Hayward <alan.hayward@arm.com>
8785 David Sherwood <david.sherwood@arm.com>
8786
8787 * output.h (assemble_real): Take a scalar_float_mode.
8788 * config/arm/arm.c (arm_assemble_integer): Update accordingly.
8789 * config/arm/arm.md (consttable_4): Likewise.
8790 (consttable_8): Likewise.
8791 (consttable_16): Likewise.
8792 * config/mips/mips.md (consttable_float): Likewise.
8793 * config/s390/s390.c (s390_output_pool_entry): Likewise.
8794 * varasm.c (assemble_real): Take a scalar_float_mode.
8795 (output_constant_pool_2): Update accordingly.
8796 (output_constant): Likewise.
8797
8798 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8799 Alan Hayward <alan.hayward@arm.com>
8800 David Sherwood <david.sherwood@arm.com>
8801
8802 * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
8803 * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
8804 * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
8805 (native_encode_real): Likewise.
8806 (native_interpret_real): Likewise.
8807 * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
8808 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
8809
8810 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8811 Alan Hayward <alan.hayward@arm.com>
8812 David Sherwood <david.sherwood@arm.com>
8813
8814 * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
8815 <scalar_float_mode>. Simplify.
8816 (gen_extend_conv_libfunc): Likewise.
8817
8818 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8819 Alan Hayward <alan.hayward@arm.com>
8820 David Sherwood <david.sherwood@arm.com>
8821
8822 * coretypes.h (scalar_float_mode): New type.
8823 * machmode.h (mode_traits::from_int): Use machine_mode if
8824 USE_ENUM_MODES is defined.
8825 (is_a): New function.
8826 (as_a): Likewise.
8827 (dyn_cast): Likewise.
8828 (scalar_float_mode): New class.
8829 (scalar_float_mode::includes_p): New function.
8830 (is_float_mode): Likewise.
8831 * gdbhooks.py (MachineModePrinter): New class.
8832 (build_pretty_printer): Use it for scalar_float_mode.
8833 * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
8834 (format_helper::format_helper): Turn into a template.
8835 * genmodes.c (get_mode_class): New function.
8836 (emit_insn_modes_h): Give modes the class returned by get_mode_class,
8837 or machine_mode if none.
8838 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
8839 as_a <scalar_float_mode>.
8840 * dwarf2out.c (mem_loc_descriptor): Likewise.
8841 (insert_float): Likewise.
8842 (add_const_value_attribute): Likewise.
8843 * simplify-rtx.c (simplify_immed_subreg): Likewise.
8844 * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
8845 (expand_unop): Update accordingly.
8846 (expand_abs_nojump): Likewise.
8847 (expand_copysign_absneg): Take a scalar_float_mode.
8848 (expand_copysign_bit): Likewise.
8849 (expand_copysign): Update accordingly.
8850
8851 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8852 Alan Hayward <alan.hayward@arm.com>
8853 David Sherwood <david.sherwood@arm.com>
8854
8855 * coretypes.h (opt_mode): New class.
8856 * machmode.h (opt_mode): Likewise.
8857 (opt_mode::else_void): New function.
8858 (opt_mode::require): Likewise.
8859 (opt_mode::exists): Likewise.
8860 (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
8861 (GET_MODE_2XWIDER_MODE): Likewise.
8862 (mode_iterator::get_wider): Update accordingly.
8863 (mode_iterator::get_2xwider): Likewise.
8864 (mode_iterator::get_known_wider): Likewise, turning into a template.
8865 * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
8866 forcing a wider mode to exist.
8867 * config/cr16/cr16.h (LONG_REG_P): Likewise.
8868 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
8869 * config/c6x/c6x.c (c6x_rtx_costs): Update use of
8870 GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
8871 * lower-subreg.c (init_lower_subreg): Likewise.
8872 * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
8873 on the final iteration.
8874 * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
8875 a wider mode exists before asking for a move pattern.
8876 (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
8877 forcing a wider mode to exist.
8878 (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
8879 returning false if no such mode exists.
8880 * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
8881 * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
8882 * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
8883 Avoid checking for a MODE_INT if we already know the mode is not a
8884 SCALAR_INT_MODE_P.
8885 (extract_high_half): Update use of GET_MODE_WIDER_MODE,
8886 forcing a wider mode to exist.
8887 (expmed_mult_highpart_optab): Likewise.
8888 (expmed_mult_highpart): Likewise.
8889 * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
8890 using else_void.
8891 * lto-streamer-in.c (lto_input_mode_table): Likewise.
8892 * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
8893 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
8894 * internal-fn.c (expand_mul_overflow): Update use of
8895 GET_MODE_2XWIDER_MODE.
8896 * omp-low.c (omp_clause_aligned_alignment): Likewise.
8897 * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
8898 GET_MODE_WIDER_MODE.
8899 (convert_plusminus_to_widen): Likewise.
8900 * tree-switch-conversion.c (array_value_type): Likewise.
8901 * var-tracking.c (emit_note_insn_var_location): Likewise.
8902 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
8903 Return false inside rather than outside the loop if no wider mode
8904 exists
8905 * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
8906 and GET_MODE_2XWIDER_MODE
8907 (can_compare_p): Use else_void.
8908 * gdbhooks.py (OptMachineModePrinter): New class.
8909 (build_pretty_printer): Use it for opt_mode.
8910
8911 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8912 Alan Hayward <alan.hayward@arm.com>
8913 David Sherwood <david.sherwood@arm.com>
8914
8915 * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
8916 once. Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
8917
8918 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8919 Alan Hayward <alan.hayward@arm.com>
8920 David Sherwood <david.sherwood@arm.com>
8921
8922 * machmode.h (mode_traits): New structure.
8923 (get_narrowest_mode): New function.
8924 (mode_iterator::start): Likewise.
8925 (mode_iterator::iterate_p): Likewise.
8926 (mode_iterator::get_wider): Likewise.
8927 (mode_iterator::get_known_wider): Likewise.
8928 (mode_iterator::get_2xwider): Likewise.
8929 (FOR_EACH_MODE_IN_CLASS): New mode iterator.
8930 (FOR_EACH_MODE): Likewise.
8931 (FOR_EACH_MODE_FROM): Likewise.
8932 (FOR_EACH_MODE_UNTIL): Likewise.
8933 (FOR_EACH_WIDER_MODE): Likewise.
8934 (FOR_EACH_2XWIDER_MODE): Likewise.
8935 * builtins.c (expand_builtin_strlen): Use new mode iterators.
8936 * combine.c (simplify_comparison): Likewise
8937 * config/i386/i386.c (type_natural_mode): Likewise.
8938 * cse.c (cse_insn): Likewise.
8939 * dse.c (find_shift_sequence): Likewise.
8940 * emit-rtl.c (init_derived_machine_modes): Likewise.
8941 (init_emit_once): Likewise.
8942 * explow.c (hard_function_value): Likewise.
8943 * expmed.c (extract_fixed_bit_field_1): Likewise.
8944 (extract_bit_field_1): Likewise.
8945 (expand_divmod): Likewise.
8946 (emit_store_flag_1): Likewise.
8947 * expr.c (init_expr_target): Likewise.
8948 (convert_move): Likewise.
8949 (alignment_for_piecewise_move): Likewise.
8950 (widest_int_mode_for_size): Likewise.
8951 (emit_block_move_via_movmem): Likewise.
8952 (copy_blkmode_to_reg): Likewise.
8953 (set_storage_via_setmem): Likewise.
8954 (compress_float_constant): Likewise.
8955 * omp-low.c (omp_clause_aligned_alignment): Likewise.
8956 * optabs-query.c (get_best_extraction_insn): Likewise.
8957 * optabs.c (expand_binop): Likewise.
8958 (expand_twoval_unop): Likewise.
8959 (expand_twoval_binop): Likewise.
8960 (widen_leading): Likewise.
8961 (widen_bswap): Likewise.
8962 (expand_parity): Likewise.
8963 (expand_unop): Likewise.
8964 (prepare_cmp_insn): Likewise.
8965 (prepare_float_lib_cmp): Likewise.
8966 (expand_float): Likewise.
8967 (expand_fix): Likewise.
8968 (expand_sfix_optab): Likewise.
8969 * postreload.c (move2add_use_add2_insn): Likewise.
8970 * reg-stack.c (reg_to_stack): Likewise.
8971 * reginfo.c (choose_hard_reg_mode): Likewise.
8972 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
8973 * stor-layout.c (mode_for_size): Likewise.
8974 (smallest_mode_for_size): Likewise.
8975 (mode_for_vector): Likewise.
8976 (finish_bitfield_representative): Likewise.
8977 * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
8978 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
8979 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8980 * var-tracking.c (prepare_call_arguments): Likewise.
8981
8982 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8983 Alan Hayward <alan.hayward@arm.com>
8984 David Sherwood <david.sherwood@arm.com>
8985
8986 * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
8987 * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
8988 USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
8989 * machmode.h (mode_size): Move earlier in file.
8990 (mode_precision): Likewise.
8991 (mode_inner): Likewise.
8992 (mode_nunits): Likewise.
8993 (mode_unit_size): Likewise.
8994 (unit_unit_precision): Likewise.
8995 (mode_wider): Likewise.
8996 (mode_2xwider): Likewise.
8997 (machine_mode): New class.
8998 (mode_to_bytes): New function.
8999 (mode_to_bits): Likewise.
9000 (mode_to_precision): Likewise.
9001 (mode_to_inner): Likewise.
9002 (mode_to_unit_size): Likewise.
9003 (mode_to_unit_precision): Likewise.
9004 (mode_to_nunits): Likewise.
9005 (GET_MODE_SIZE): Use mode_to_bytes.
9006 (GET_MODE_BITSIZE): Use mode_to_bits.
9007 (GET_MODE_PRECISION): Use mode_to_precision.
9008 (GET_MODE_INNER): Use mode_to_inner.
9009 (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
9010 (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
9011 (GET_MODE_NUNITS): Use mode_to_nunits.
9012 * system.h (ALWAYS_INLINE): New macro.
9013 * config/powerpcspe/powerpcspe-c.c
9014 (altivec_resolve_overloaded_builtin): Use machine_mode instead of
9015 int for arg1_mode and arg2_mode.
9016
9017 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9018 Alan Hayward <alan.hayward@arm.com>
9019 David Sherwood <david.sherwood@arm.com>
9020
9021 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
9022 Prefix mode names with E_ in case statements.
9023 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9024 * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
9025 (aarch64_split_simd_move): Likewise.
9026 (aarch64_gen_storewb_pair): Likewise.
9027 (aarch64_gen_loadwb_pair): Likewise.
9028 (aarch64_gen_store_pair): Likewise.
9029 (aarch64_gen_load_pair): Likewise.
9030 (aarch64_get_condition_code_1): Likewise.
9031 (aarch64_constant_pool_reload_icode): Likewise.
9032 (get_rsqrte_type): Likewise.
9033 (get_rsqrts_type): Likewise.
9034 (get_recpe_type): Likewise.
9035 (get_recps_type): Likewise.
9036 (aarch64_gimplify_va_arg_expr): Likewise.
9037 (aarch64_simd_container_mode): Likewise.
9038 (aarch64_emit_load_exclusive): Likewise.
9039 (aarch64_emit_store_exclusive): Likewise.
9040 (aarch64_expand_compare_and_swap): Likewise.
9041 (aarch64_gen_atomic_cas): Likewise.
9042 (aarch64_emit_bic): Likewise.
9043 (aarch64_emit_atomic_swap): Likewise.
9044 (aarch64_emit_atomic_load_op): Likewise.
9045 (aarch64_evpc_trn): Likewise.
9046 (aarch64_evpc_uzp): Likewise.
9047 (aarch64_evpc_zip): Likewise.
9048 (aarch64_evpc_ext): Likewise.
9049 (aarch64_evpc_rev): Likewise.
9050 (aarch64_evpc_dup): Likewise.
9051 (aarch64_gen_ccmp_first): Likewise.
9052 (aarch64_gen_ccmp_next): Likewise.
9053 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
9054 (alpha_emit_xfloating_libcall): Likewise.
9055 (emit_insxl): Likewise.
9056 (alpha_arg_type): Likewise.
9057 * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
9058 (arc_preferred_simd_mode): Likewise.
9059 (arc_secondary_reload): Likewise.
9060 (get_arc_condition_code): Likewise.
9061 (arc_print_operand): Likewise.
9062 (arc_legitimate_constant_p): Likewise.
9063 * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9064 * config/arc/arc.md (casesi_load): Likewise.
9065 (casesi_compact_jump): Likewise.
9066 * config/arc/predicates.md (proper_comparison_operator): Likewise.
9067 (cc_use_register): Likewise.
9068 * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9069 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
9070 (arm_init_iwmmxt_builtins): Likewise.
9071 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
9072 (neon_expand_vector_init): Likewise.
9073 (arm_attr_length_move_neon): Likewise.
9074 (maybe_get_arm_condition_code): Likewise.
9075 (arm_emit_vector_const): Likewise.
9076 (arm_preferred_simd_mode): Likewise.
9077 (arm_output_iwmmxt_tinsr): Likewise.
9078 (thumb1_output_casesi): Likewise.
9079 (thumb2_output_casesi): Likewise.
9080 (arm_emit_load_exclusive): Likewise.
9081 (arm_emit_store_exclusive): Likewise.
9082 (arm_expand_compare_and_swap): Likewise.
9083 (arm_evpc_neon_vuzp): Likewise.
9084 (arm_evpc_neon_vzip): Likewise.
9085 (arm_evpc_neon_vrev): Likewise.
9086 (arm_evpc_neon_vtrn): Likewise.
9087 (arm_evpc_neon_vext): Likewise.
9088 (arm_validize_comparison): Likewise.
9089 * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
9090 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
9091 * config/avr/avr.c (avr_rtx_costs_1): Likewise.
9092 * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
9093 (c6x_preferred_simd_mode): Likewise.
9094 * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
9095 (epiphany_rtx_costs): Likewise.
9096 * config/epiphany/predicates.md (proper_comparison_operator):
9097 Likewise.
9098 * config/frv/frv.c (condexec_memory_operand): Likewise.
9099 (frv_emit_move): Likewise.
9100 (output_move_single): Likewise.
9101 (output_condmove_single): Likewise.
9102 (frv_hard_regno_mode_ok): Likewise.
9103 (frv_matching_accg_mode): Likewise.
9104 * config/h8300/h8300.c (split_adds_subs): Likewise.
9105 (h8300_rtx_costs): Likewise.
9106 (h8300_print_operand): Likewise.
9107 (compute_mov_length): Likewise.
9108 (output_logical_op): Likewise.
9109 (compute_logical_op_length): Likewise.
9110 (compute_logical_op_cc): Likewise.
9111 (h8300_shift_needs_scratch_p): Likewise.
9112 (output_a_shift): Likewise.
9113 (compute_a_shift_length): Likewise.
9114 (compute_a_shift_cc): Likewise.
9115 (expand_a_rotate): Likewise.
9116 (output_a_rotate): Likewise.
9117 * config/i386/i386.c (classify_argument): Likewise.
9118 (function_arg_advance_32): Likewise.
9119 (function_arg_32): Likewise.
9120 (function_arg_64): Likewise.
9121 (function_value_64): Likewise.
9122 (ix86_gimplify_va_arg): Likewise.
9123 (ix86_legitimate_constant_p): Likewise.
9124 (put_condition_code): Likewise.
9125 (split_double_mode): Likewise.
9126 (ix86_avx256_split_vector_move_misalign): Likewise.
9127 (ix86_expand_vector_logical_operator): Likewise.
9128 (ix86_split_idivmod): Likewise.
9129 (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
9130 (ix86_build_const_vector): Likewise.
9131 (ix86_build_signbit_mask): Likewise.
9132 (ix86_match_ccmode): Likewise.
9133 (ix86_cc_modes_compatible): Likewise.
9134 (ix86_expand_branch): Likewise.
9135 (ix86_expand_sse_cmp): Likewise.
9136 (ix86_expand_sse_movcc): Likewise.
9137 (ix86_expand_int_sse_cmp): Likewise.
9138 (ix86_expand_vec_perm_vpermi2): Likewise.
9139 (ix86_expand_vec_perm): Likewise.
9140 (ix86_expand_sse_unpack): Likewise.
9141 (ix86_expand_int_addcc): Likewise.
9142 (ix86_split_to_parts): Likewise.
9143 (ix86_vectorize_builtin_gather): Likewise.
9144 (ix86_vectorize_builtin_scatter): Likewise.
9145 (avx_vpermilp_parallel): Likewise.
9146 (inline_memory_move_cost): Likewise.
9147 (ix86_tieable_integer_mode_p): Likewise.
9148 (x86_maybe_negate_const_int): Likewise.
9149 (ix86_expand_vector_init_duplicate): Likewise.
9150 (ix86_expand_vector_init_one_nonzero): Likewise.
9151 (ix86_expand_vector_init_one_var): Likewise.
9152 (ix86_expand_vector_init_concat): Likewise.
9153 (ix86_expand_vector_init_interleave): Likewise.
9154 (ix86_expand_vector_init_general): Likewise.
9155 (ix86_expand_vector_set): Likewise.
9156 (ix86_expand_vector_extract): Likewise.
9157 (emit_reduc_half): Likewise.
9158 (ix86_emit_i387_round): Likewise.
9159 (ix86_mangle_type): Likewise.
9160 (ix86_expand_round_sse4): Likewise.
9161 (expand_vec_perm_blend): Likewise.
9162 (canonicalize_vector_int_perm): Likewise.
9163 (ix86_expand_vec_one_operand_perm_avx512): Likewise.
9164 (expand_vec_perm_1): Likewise.
9165 (expand_vec_perm_interleave3): Likewise.
9166 (expand_vec_perm_even_odd_pack): Likewise.
9167 (expand_vec_perm_even_odd_1): Likewise.
9168 (expand_vec_perm_broadcast_1): Likewise.
9169 (ix86_vectorize_vec_perm_const_ok): Likewise.
9170 (ix86_expand_vecop_qihi): Likewise.
9171 (ix86_expand_mul_widen_hilo): Likewise.
9172 (ix86_expand_sse2_abs): Likewise.
9173 (ix86_expand_pextr): Likewise.
9174 (ix86_expand_pinsr): Likewise.
9175 (ix86_preferred_simd_mode): Likewise.
9176 (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
9177 * config/i386/sse.md (*andnot<mode>3): Likewise.
9178 (<mask_codefor><code><mode>3<mask_name>): Likewise.
9179 (*<code><mode>3): Likewise.
9180 * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
9181 (ia64_expand_atomic_op): Likewise.
9182 (ia64_arg_type): Likewise.
9183 (ia64_mode_to_int): Likewise.
9184 (ia64_scalar_mode_supported_p): Likewise.
9185 (ia64_vector_mode_supported_p): Likewise.
9186 (expand_vec_perm_broadcast): Likewise.
9187 * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
9188 (iq2000_function_arg_advance): Likewise.
9189 (iq2000_function_arg): Likewise.
9190 * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
9191 * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
9192 (m68k_libcall_value): Likewise.
9193 (m68k_function_value): Likewise.
9194 (sched_attr_op_type): Likewise.
9195 * config/mcore/mcore.c (mcore_output_move): Likewise.
9196 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
9197 Likewise.
9198 (microblaze_function_arg): Likewise.
9199 * config/mips/mips.c (mips16_build_call_stub): Likewise.
9200 (mips_print_operand): Likewise.
9201 (mips_mode_ok_for_mov_fmt_p): Likewise.
9202 (mips_vector_mode_supported_p): Likewise.
9203 (mips_preferred_simd_mode): Likewise.
9204 (mips_expand_vpc_loongson_even_odd): Likewise.
9205 (mips_expand_vec_unpack): Likewise.
9206 (mips_expand_vi_broadcast): Likewise.
9207 (mips_expand_vector_init): Likewise.
9208 (mips_expand_vec_reduc): Likewise.
9209 (mips_expand_msa_cmp): Likewise.
9210 * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
9211 * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
9212 (cc_flags_for_mode): Likewise.
9213 * config/msp430/msp430.c (msp430_print_operand): Likewise.
9214 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
9215 (nds32_output_casesi_pc_relative): Likewise.
9216 * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9217 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
9218 (nvptx_gen_unpack): Likewise.
9219 (nvptx_gen_pack): Likewise.
9220 (nvptx_gen_shuffle): Likewise.
9221 (nvptx_gen_wcast): Likewise.
9222 (nvptx_preferred_simd_mode): Likewise.
9223 * config/pa/pa.c (pa_secondary_reload): Likewise.
9224 * config/pa/predicates.md (base14_operand): Likewise.
9225 * config/powerpcspe/powerpcspe-c.c
9226 (altivec_resolve_overloaded_builtin): Likewise.
9227 * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
9228 Likewise.
9229 (rs6000_preferred_simd_mode): Likewise.
9230 (output_vec_const_move): Likewise.
9231 (rs6000_expand_vector_extract): Likewise.
9232 (rs6000_split_vec_extract_var): Likewise.
9233 (reg_offset_addressing_ok_p): Likewise.
9234 (rs6000_legitimate_offset_address_p): Likewise.
9235 (rs6000_legitimize_address): Likewise.
9236 (rs6000_emit_set_const): Likewise.
9237 (rs6000_const_vec): Likewise.
9238 (rs6000_emit_move): Likewise.
9239 (spe_build_register_parallel): Likewise.
9240 (rs6000_darwin64_record_arg_recurse): Likewise.
9241 (swap_selector_for_mode): Likewise.
9242 (spe_init_builtins): Likewise.
9243 (paired_init_builtins): Likewise.
9244 (altivec_init_builtins): Likewise.
9245 (do_load_for_compare): Likewise.
9246 (rs6000_generate_compare): Likewise.
9247 (rs6000_expand_float128_convert): Likewise.
9248 (emit_load_locked): Likewise.
9249 (emit_store_conditional): Likewise.
9250 (rs6000_output_function_epilogue): Likewise.
9251 (rs6000_handle_altivec_attribute): Likewise.
9252 (rs6000_function_value): Likewise.
9253 (emit_fusion_gpr_load): Likewise.
9254 (emit_fusion_p9_load): Likewise.
9255 (emit_fusion_p9_store): Likewise.
9256 * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
9257 (fusion_gpr_mem_load): Likewise.
9258 (fusion_addis_mem_combo_load): Likewise.
9259 (fusion_addis_mem_combo_store): Likewise.
9260 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
9261 (fusion_gpr_mem_load): Likewise.
9262 (fusion_addis_mem_combo_load): Likewise.
9263 (fusion_addis_mem_combo_store): Likewise.
9264 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9265 Likewise.
9266 * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
9267 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
9268 (rs6000_preferred_simd_mode): Likewise.
9269 (output_vec_const_move): Likewise.
9270 (rs6000_expand_vector_extract): Likewise.
9271 (rs6000_split_vec_extract_var): Likewise.
9272 (reg_offset_addressing_ok_p): Likewise.
9273 (rs6000_legitimate_offset_address_p): Likewise.
9274 (rs6000_legitimize_address): Likewise.
9275 (rs6000_emit_set_const): Likewise.
9276 (rs6000_const_vec): Likewise.
9277 (rs6000_emit_move): Likewise.
9278 (rs6000_darwin64_record_arg_recurse): Likewise.
9279 (swap_selector_for_mode): Likewise.
9280 (paired_init_builtins): Likewise.
9281 (altivec_init_builtins): Likewise.
9282 (rs6000_expand_float128_convert): Likewise.
9283 (emit_load_locked): Likewise.
9284 (emit_store_conditional): Likewise.
9285 (rs6000_output_function_epilogue): Likewise.
9286 (rs6000_handle_altivec_attribute): Likewise.
9287 (rs6000_function_value): Likewise.
9288 (emit_fusion_gpr_load): Likewise.
9289 (emit_fusion_p9_load): Likewise.
9290 (emit_fusion_p9_store): Likewise.
9291 * config/rx/rx.c (rx_gen_move_template): Likewise.
9292 (flags_from_mode): Likewise.
9293 * config/s390/predicates.md (s390_alc_comparison): Likewise.
9294 (s390_slb_comparison): Likewise.
9295 * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
9296 (s390_vector_mode_supported_p): Likewise.
9297 (s390_cc_modes_compatible): Likewise.
9298 (s390_match_ccmode_set): Likewise.
9299 (s390_canonicalize_comparison): Likewise.
9300 (s390_emit_compare_and_swap): Likewise.
9301 (s390_branch_condition_mask): Likewise.
9302 (s390_rtx_costs): Likewise.
9303 (s390_secondary_reload): Likewise.
9304 (__SECONDARY_RELOAD_CASE): Likewise.
9305 (s390_expand_cs): Likewise.
9306 (s390_preferred_simd_mode): Likewise.
9307 * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
9308 * config/sh/sh.c (sh_print_operand): Likewise.
9309 (dump_table): Likewise.
9310 (sh_secondary_reload): Likewise.
9311 * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9312 * config/sh/sh.md (casesi_worker_1): Likewise.
9313 (casesi_worker_2): Likewise.
9314 * config/sparc/predicates.md (icc_comparison_operator): Likewise.
9315 (fcc_comparison_operator): Likewise.
9316 * config/sparc/sparc.c (sparc_expand_move): Likewise.
9317 (emit_soft_tfmode_cvt): Likewise.
9318 (sparc_preferred_simd_mode): Likewise.
9319 (output_cbranch): Likewise.
9320 (sparc_print_operand): Likewise.
9321 (sparc_expand_vec_perm_bmask): Likewise.
9322 (vector_init_bshuffle): Likewise.
9323 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
9324 (spu_vector_mode_supported_p): Likewise.
9325 (spu_expand_insv): Likewise.
9326 (spu_emit_branch_or_set): Likewise.
9327 (spu_handle_vector_attribute): Likewise.
9328 (spu_builtin_splats): Likewise.
9329 (spu_builtin_extract): Likewise.
9330 (spu_builtin_promote): Likewise.
9331 (spu_expand_sign_extend): Likewise.
9332 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
9333 (tilegx_simd_int): Likewise.
9334 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
9335 (tilepro_simd_int): Likewise.
9336 * config/v850/v850.c (const_double_split): Likewise.
9337 (v850_print_operand): Likewise.
9338 (ep_memory_offset): Likewise.
9339 * config/vax/vax.c (vax_rtx_costs): Likewise.
9340 (vax_output_int_move): Likewise.
9341 (vax_output_int_add): Likewise.
9342 (vax_output_int_subtract): Likewise.
9343 * config/visium/predicates.md (visium_branch_operator): Likewise.
9344 * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
9345 (visium_print_operand_address): Likewise.
9346 * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9347 * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
9348 (xtensa_expand_conditional_branch): Likewise.
9349 (xtensa_copy_incoming_a7): Likewise.
9350 (xtensa_output_literal): Likewise.
9351 * dfp.c (decimal_real_maxval): Likewise.
9352 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
9353
9354 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9355 Alan Hayward <alan.hayward@arm.com>
9356 David Sherwood <david.sherwood@arm.com>
9357
9358 * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
9359 (mode_nunits_inline): Likewise.
9360 (mode_inner_inline): Likewise.
9361 (mode_unit_size_inline): Likewise.
9362 (mode_unit_precision_inline): Likewise.
9363 (emit_insn_modes_h): Likewise. Also emit a #define of the
9364 unprefixed name.
9365 (emit_mode_wider): Add an E_ prefix to mode names.
9366 (emit_mode_complex): Likewise.
9367 (emit_mode_inner): Likewise.
9368 (emit_mode_adjustments): Likewise.
9369 (emit_mode_int_n): Likewise.
9370 * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
9371 (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
9372 (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
9373 (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
9374 (CRC32_BUILTIN, ENTRY): Likewise.
9375 * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
9376 (aarch64_pop_regs): Likewise.
9377 (aarch64_process_components): Likewise.
9378 * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
9379 * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
9380 (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
9381 (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
9382 * config/arm/arm.c (arm_init_libfuncs): Likewise.
9383 * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
9384 Likewise.
9385 * config/i386/i386-builtin.def (pcmpestr): Likewise.
9386 (pcmpistr): Likewise.
9387 * config/microblaze/microblaze.c (double_memory_operand): Likewise.
9388 * config/mmix/mmix.c (mmix_output_condition): Likewise.
9389 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
9390 Likewise.
9391 * config/rl78/rl78.c (mduc_regs): Likewise.
9392 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
9393 (htm_expand_builtin): Likewise.
9394 * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
9395 * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
9396 * config/xtensa/xtensa.c (print_operand): Likewise.
9397 * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
9398 (NUM_MODE_VECTOR_INT): Likewise.
9399 * genoutput.c (null_operand): Likewise.
9400 (output_operand_data): Likewise.
9401 * genrecog.c (print_parameter_value): Likewise.
9402 * lra.c (debug_operand_data): Likewise.
9403
9404 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9405
9406 * dwarf2out.c (scompare_loc_descriptor_wide)
9407 (scompare_loc_descriptor_narrow): New functions, split out from...
9408 (scompare_loc_descriptor): ...here.
9409 * expmed.c (emit_store_flag_int): New function, split out from...
9410 (emit_store_flag): ...here.
9411
9412 2017-08-30 Richard Biener <rguenther@suse.de>
9413
9414 * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
9415 (dwarf2out_early_finish): Move setting of AT_pubnames from
9416 early debug output to early finish.
9417
9418 2017-08-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
9419
9420 * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
9421 and -mdata-region to the assembler.
9422
9423 2017-08-30 Richard Biener <rguenther@suse.de>
9424
9425 * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
9426 attributes.
9427 (gen_subprogram_die): Add DW_AT_object_pointer only early.
9428 (dwarf2out_early_global_decl): Only generate a DIE for the
9429 abstract origin if it doesn't already exist or is a declaration DIE.
9430 (resolve_addr): Do not add the linkage name twice when
9431 generating a stub DIE for the DW_TAG_GNU_call_site target.
9432
9433 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9434
9435 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9436 Use machine_mode rather than int for arg1_mode.
9437
9438 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
9439
9440 PR target/82015
9441 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
9442 that the second argument of the built-in functions to unpack
9443 128-bit scalar types to 64-bit values is 0 or 1. Change to use a
9444 switch statement instead a lot of if statements.
9445 * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
9446 Allow 64-bit values to be in Altivec registers as well as
9447 traditional floating point registers.
9448 (pack<mode>, FMOVE128_VSX iterator): Likewise.
9449
9450 2017-08-29 Alexander Monakov <amonakov@ispras.ru>
9451
9452 * ira-costs.c (record_address_regs): Handle both operands of PLUS for
9453 MAX_REGS_PER_ADDRESS == 1.
9454
9455 2017-08-29 Uros Bizjak <ubizjak@gmail.com>
9456
9457 * config/i386/i386.opt (flag_fentry): Do not init to -1.
9458 * config/i386/i386.c (ix86_option_override_internal): Simplify
9459 setting of opts->x_flag_entry.
9460
9461 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9462 Jakub Jelinek <jakub@redhat.com>
9463 Richard Biener <rguenther@suse.de>
9464
9465 PR tree-optimization/81503
9466 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
9467 folded constant fits in the target type; reorder tests for clarity.
9468
9469 2017-08-29 Martin Liska <mliska@suse.cz>
9470
9471 * passes.def: Include pass_lower_switch.
9472 * stmt.c (dump_case_nodes): Remove and move to
9473 tree-switch-conversion.
9474 (case_values_threshold): Likewise.
9475 (expand_switch_as_decision_tree_p): Likewise.
9476 (emit_case_decision_tree): Likewise.
9477 (expand_case): Likewise.
9478 (balance_case_nodes): Likewise.
9479 (node_has_low_bound): Likewise.
9480 (node_has_high_bound): Likewise.
9481 (node_is_bounded): Likewise.
9482 (emit_case_nodes): Likewise.
9483 (struct simple_case_node): New struct.
9484 (add_case_node): Remove.
9485 (emit_case_dispatch_table): Use vector instead of case_list.
9486 (reset_out_edges_aux): Remove.
9487 (compute_cases_per_edge): Likewise.
9488 (expand_case): Build list of simple_case_node.
9489 (expand_sjlj_dispatch_table): Use it.
9490 * tree-switch-conversion.c (struct case_node): Moved from
9491 stmt.c and adjusted.
9492 (emit_case_nodes): Likewise.
9493 (node_has_low_bound): Likewise.
9494 (node_has_high_bound): Likewise.
9495 (node_is_bounded): Likewise.
9496 (case_values_threshold): Likewise.
9497 (reset_out_edges_aux): Likewise.
9498 (compute_cases_per_edge): Likewise.
9499 (add_case_node): Likewise.
9500 (dump_case_nodes): Likewise.
9501 (balance_case_nodes): Likewise.
9502 (expand_switch_as_decision_tree_p): Likewise.
9503 (emit_jump): Likewise.
9504 (emit_case_decision_tree): Likewise.
9505 (try_switch_expansion): Likewise.
9506 (do_jump_if_equal): Likewise.
9507 (emit_cmp_and_jump_insns): Likewise.
9508 (fix_phi_operands_for_edge): New function.
9509 (record_phi_operand_mapping): Likewise.
9510 (class pass_lower_switch): New pass.
9511 (pass_lower_switch::execute): New function.
9512 (make_pass_lower_switch): Likewise.
9513 (conditional_probability):
9514 * timevar.def: Add TV_TREE_SWITCH_LOWERING.
9515 * tree-pass.h: Add make_pass_lower_switch.
9516
9517 2017-08-29 Jozef Lawrynowicz <jozef.l@somniumtech.com>
9518
9519 PR target/80993
9520 * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
9521 handlers as used.
9522
9523 2017-08-29 Richard Biener <rguenther@suse.de>
9524
9525 * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
9526 we do not add a DW_AT_inline attribute twice.
9527 (gen_subprogram_die): Remove code setting DW_AT_inline on
9528 DECL_ABSTRACT_P nodes.
9529
9530 2017-08-29 Richard Sandiford <richard.sandiford@linaro.org>
9531
9532 * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
9533 calls to internal functions.
9534 (gimplify_modify_expr): Likewise.
9535 * tree-call-cdce.c (use_internal_fn): Likewise.
9536 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
9537 (convert_to_divmod): Set the nothrow flag.
9538 * tree-if-conv.c (predicate_mem_writes): Likewise.
9539 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
9540 (vectorizable_call): Likewise.
9541 (vectorizable_store): Likewise.
9542 (vectorizable_load): Likewise.
9543 * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
9544 (vect_recog_mask_conversion_pattern): Likewise.
9545
9546 2017-08-29 Martin Liska <mliska@suse.cz>
9547
9548 PR other/39851
9549 * gcc.c (driver_handle_option): Add new argument.
9550 * opts-common.c (handle_option): Pass
9551 target_option_override_hook.
9552 * opts-global.c (lang_handle_option): Add new option.
9553 (set_default_handlers): Add new argument.
9554 (decode_options): Likewise.
9555 * opts.c (target_handle_option): Likewise.
9556 (common_handle_option): Call target_option_override_hook.
9557 * opts.h (struct cl_option_handler_func): Add hook for
9558 target option override.
9559 (struct cl_option_handlers): Likewise.
9560 (set_default_handlers): Add new argument.
9561 (decode_options): Likewise.
9562 (common_handle_option): Likewise.
9563 (target_handle_option): Likewise.
9564 * toplev.c (toplev::main): Pass targetm.target_option.override
9565 hook.
9566
9567 2017-08-29 Richard Biener <rguenther@suse.de>
9568 Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
9569
9570 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
9571 life to the active subtree.
9572
9573 2017-08-28 Jeff Law <law@redhat.com>
9574
9575 * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
9576 derive_equivalences.
9577 (derive_equivalences_from_bit_ior, record_temporary_equivalences):
9578 Code moved into....
9579 (edge_info::derive_equivalences): New private member function
9580
9581 * tree-ssa-dom.c (class edge_info): Changed from a struct
9582 to a class. Add ctor/dtor, methods and data members.
9583 (edge_info::edge_info): Renamed from allocate_edge_info.
9584 Initialize additional members.
9585 (edge_info::~edge_info): New.
9586 (free_dom_edge_info): Delete the edge info.
9587 (record_edge_info): Use new class & associated member functions.
9588 Tighten forms for testing for edge equivalences.
9589 (record_temporary_equivalences): Iterate over the simple
9590 equivalences rather than assuming there's only one per edge.
9591 (cprop_into_successor_phis): Iterate over the simple
9592 equivalences rather than assuming there's only one per edge.
9593 (optimize_stmt): Use operand_equal_p rather than pointer
9594 equality for mini-DSE code.
9595
9596 2017-08-28 Nathan Sidwell <nathan@acm.org>
9597
9598 * gcc.c (execute): Fold SIGPIPE handling into switch
9599 statement. Adjust internal error message.
9600
9601 2017-08-28 Richard Biener <rguenther@suse.de>
9602
9603 PR debug/81993
9604 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
9605 Do nothing for removed DIEs.
9606
9607 2017-08-28 Richard Biener <rguenther@suse.de>
9608
9609 PR tree-optimization/81977
9610 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
9611 memcpy.
9612
9613 2017-08-28 Alexander Monakov <amonakov@ispras.ru>
9614
9615 PR target/80640
9616 * doc/md.texi (mem_thread_fence): Remove mention of mode. Rewrite.
9617 * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
9618 using targetm.gen_mem_thread_fence.
9619
9620 2017-08-27 Uros Bizjak <ubizjak@gmail.com>
9621
9622 PR target/81995
9623 * config/i386/i386.md (*<btsc><mode>): Change operand 2
9624 predicate to register_operand. Reorder operands.
9625 (*btr<mode>): Ditto.
9626 (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
9627 (*btr<mode>_mask): Ditto.
9628
9629 2017-08-25 Steven Munroe <munroesj@gcc.gnu.org>
9630
9631 * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
9632 * config/rs6000/xmmintrin.h: New file.
9633 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
9634
9635 2017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9636
9637 PR target/81504
9638 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
9639 parameter and_insn and return it.
9640 (recombine_lvx_pattern): Insert a copy to ensure availability of
9641 the base register of the copied masking operation at the point of
9642 the instruction replacement.
9643 (recombine_stvx_pattern): Likewise.
9644
9645 2017-08-25 Michael Meissner <meissner@linux.vnet.ibm.com>
9646
9647 * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
9648 undocumented switches.
9649 (-mpower9-dform-vector): Likewise.
9650 (-mpower9-dform): Likewise.
9651 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
9652 comments to delete references to -mpower9-dform* switches.
9653 * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
9654 Delete reference to -mpower9-dform* switches, test for
9655 -mpower9-vector instead.
9656 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
9657 (OTHER_P9_VECTOR_MASKS): Likewise.
9658 (POWERPC_MASKS): Likewise.
9659 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
9660 tests against -mpower9-dform* to -mpower9-vector. Delete code
9661 that checked for -mpower9-dform* consistancy with other options.
9662 Add test for -mpower9-misc to enable other power9 switches.
9663 (rs6000_init_hard_regno_mode_ok): Likewise.
9664 (rs6000_option_override_internal): Likewise.
9665 (rs6000_emit_prologue): Likewise.
9666 (rs6000_emit_epilogue): Likewise.
9667 (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
9668 (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
9669 (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
9670 -mpower9-vector.
9671 (emit_fusion_p9_store): Likewise.
9672 * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
9673 resetting these macros if the assembler does not support ISA 3.0
9674 instructions.
9675 (TARGET_P9_DFORM_VECTOR): Likewise.
9676 * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
9677 Change to use -mpower9-vector instead of -mpower9-dform-scalar.
9678
9679 2017-08-25 Alan Modra <amodra@gmail.com>
9680
9681 PR rtl-optimization/81747
9682 * cse.c (cse_extended_basic_block): Don't attempt to record
9683 equivalences for degenerate conditional branches that branch
9684 to their fall-through.
9685
9686 2017-08-24 Martin Sebor <msebor@redhat.com>
9687
9688 PR middle-end/81908
9689 * gimple-fold.c (size_must_be_zero_p): New function.
9690 (gimple_fold_builtin_memory_op): Call it.
9691
9692 2017-08-24 Steven Munroe <munroesj@gcc.gnu.org>
9693
9694 * config/rs6000/mm_malloc.h: New file.
9695
9696 2017-08-24 Bin Cheng <bin.cheng@arm.com>
9697
9698 PR tree-optimization/81913
9699 * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
9700 analysis when either IVs in condition can wrap.
9701
9702 2017-08-24 Uros Bizjak <ubizjak@gmail.com>
9703
9704 * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
9705 * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
9706
9707 2017-08-24 Richard Biener <rguenther@suse.de>
9708
9709 PR target/81921
9710 * targhooks.c (default_target_can_inline_p): Properly
9711 use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
9712 is present and always compare.
9713 * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
9714 infer -mfpmath=sse from TARGET_SSE_P.
9715 (ix86_can_inline_p): Properly use target_option_default_node when
9716 no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
9717
9718 2017-08-24 Richard Biener <rguenther@suse.de>
9719
9720 PR debug/81936
9721 * dwarf2out.c (output_die): Handle flag_generate_offload like
9722 flag_generate_lto.
9723 (output_comp_unit): Likewise.
9724 (gen_array_type_die): Likewise.
9725 (dwarf2out_early_finish): Likewise.
9726 (note_variable_value_in_expr): Likewise.
9727 (dwarf2out_finish): Likewise. Adjust assert.
9728 * cgraphunit.c (symbol_table::compile): Move setting of
9729 flag_generate_offload earlier ...
9730 (symbol_table::finalize_compilation_unit): ... here, before
9731 early debug finalization.
9732
9733 2017-08-24 Richard Biener <rguenther@suse.de>
9734
9735 * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
9736 and ipa-fnsummary.h.
9737 (ix86_can_inline_p): When ix86_fpmath flags do not match
9738 check whether the callee uses FP math at all.
9739
9740 2017-08-24 Aldy Hernandez <aldyh@redhat.com>
9741
9742 PR middle-end/81931
9743 * tree-ssanames.c (get_nonzero_bits): Use element_precision
9744 instead of TYPE_PRECISION.
9745
9746 2017-08-24 Richard Sandiford <richard.sandiford@linaro.org>
9747 Alan Hayward <alan.hayward@arm.com>
9748 David Sherwood <david.sherwood@arm.com>
9749
9750 * combine.c (make_extraction): Use subreg_offset_from_lsb.
9751
9752 2017-08-23 Daniel Santos <daniel.santos@pobox.com>
9753
9754 * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
9755 Remove field.
9756 (ix86_frame::stack_realign_allocate): New field.
9757 (struct machine_frame_state): Modify comments.
9758 (machine_frame_state::sp_realigned_fp_end): New field.
9759 * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
9760 layout calculation.
9761 (sp_valid_at): Add assertion to assure no attempt to access invalid
9762 offset of a realigned stack.
9763 (fp_valid_at): Likewise.
9764 (choose_baseaddr): Modify comments.
9765 (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
9766 ix86_expand_prologue.
9767 (ix86_expand_prologue): Modify stack realignment and allocation.
9768 (ix86_expand_epilogue): Modify comments.
9769 * doc/sourcebuild.texi: Add documentation for target selectors avx2,
9770 avx2_runtime, avx512f, and avx512f_runtime.
9771
9772 2017-08-23 Uros Bizjak <ubizjak@gmail.com>
9773
9774 * config/i386/i386.opt: Remove unneeded Init(0) initializations.
9775 (mstackrealign): Do not init to -1.
9776 * config/i386/i386.c (ix86_option_override_internal):
9777 Check opts_set, not opts when setting default value of
9778 opts->x_ix86_force_align_arg_pointer.
9779
9780 2017-08-23 Richard Biener <rguenther@suse.de>
9781
9782 * function.c (fndecl_name): Use verbosity 1 (no arguments) for
9783 lang_hooks.decl_printable_name.
9784 * print-rtl-function.c (print_rtx_function): Likewise.
9785 * tree-pretty-print.c (dump_function_header): Likewise.
9786
9787 2017-08-23 Richard Biener <rguenther@suse.de>
9788
9789 PR lto/81940
9790 * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
9791 -g0 at compile-time.
9792
9793 2017-08-23 Tamar Christina <tamar.christina@arm.com>
9794
9795 PR middle-end/19706
9796 * doc/sourcebuild.texi (Other hardware attributes):
9797 Document xorsign.
9798
9799 2017-08-23 Tamar Christina <tamar.christina@arm.com>
9800
9801 PR middle-end/19706
9802 * tree-ssa-math-opts.c (convert_expand_mult_copysign):
9803 Fix single-use check.
9804
9805 2017-08-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
9806
9807 * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
9808
9809 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
9810
9811 * doc/install.texi: Modify to add more details on running selected
9812 tests.
9813
9814 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
9815
9816 * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
9817 is combined with -mabi=ms.
9818 (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
9819 ms_abi.
9820
9821 2017-08-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9822
9823 PR tree-optimization/81488
9824 * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
9825 and cached_basis fields.
9826 (MAX_SPREAD): New constant.
9827 (alloc_cand_and_find_basis): Initialize new fields.
9828 (clear_visited): New function.
9829 (create_phi_basis_1): Rename from create_phi_basis, set visited
9830 and cached_basis fields.
9831 (create_phi_basis): New wrapper function.
9832 (phi_add_costs_1): Rename from phi_add_costs, add spread
9833 parameter, set visited field, short-circuit when limits reached.
9834 (phi_add_costs): New wrapper function.
9835 (record_phi_increments_1): Rename from record_phi_increments, set
9836 visited field.
9837 (record_phi_increments): New wrapper function.
9838 (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
9839 (phi_incr_cost): New wrapper function.
9840 (all_phi_incrs_profitable_1): Rename from
9841 all_phi_incrs_profitable, set visited field.
9842 (all_phi_incrs_profitable): New wrapper function.
9843
9844 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
9845 Alan Hayward <alan.hayward@arm.com>
9846 David Sherwood <david.sherwood@arm.com>
9847
9848 * rtl.h (paradoxical_subreg_p): Define inline, and add a version
9849 that takes the outer and inner modes.
9850 * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
9851 comparison as the canonical test for a paradoxical subreg.
9852 * combine.c (simplify_set): Use paradoxical_subreg_p.
9853 (make_extraction): Likewise.
9854 (force_to_mode): Likewise.
9855 (rtx_equal_for_field_assignment_p): Likewise.
9856 (gen_lowpart_for_combine): Likewise.
9857 (simplify_comparison): Likewise.
9858 * cse.c (equiv_constant): Likewise.
9859 * expmed.c (store_bit_field_1): Likewise.
9860 * final.c (alter_subreg): Likewise.
9861 * fwprop.c (propagate_rtx): Likewise.
9862 (forward_propagate_subreg): Likewise.
9863 * ira-conflicts.c (ira_build_conflicts): Likewise.
9864 * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
9865 * lra-constraints.c (curr_insn_transform): Likewise.
9866 (split_reg): Likewise.
9867 * lra-eliminations.c (move_plus_up): Likewise.
9868 (lra_eliminate_regs_1): Likewise.
9869 * recog.c (general_operand): Likewise.
9870 * ree.c (combine_reaching_defs): Likewise.
9871 * reload.c (push_reload): Likewise.
9872 (find_reloads): Likewise.
9873 * reload1.c (elimination_effects): Likewise.
9874 (compute_reload_subreg_offset): Likewise.
9875 (choose_reload_regs): Likewise.
9876 * rtlanal.c (subreg_lsb_1): Likewise.
9877 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9878 (simplify_subreg): Likewise.
9879 * var-tracking.c (track_loc_p): Likewise.
9880 * emit-rtl.c (byte_lowpart_offset): Likewise.
9881 (paradoxical_subreg_p): Delete out-of-line definition.
9882
9883 2017-08-22 Jeff Law <law@redhat.com>
9884
9885 PR tree-optimization/81741
9886 PR tree-optimization/71947
9887 * tree-ssa-dom.c: Include tree-inline.h.
9888 (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
9889 equivalences if one is more expensive to compute than the other.
9890 * tree-ssa-scopedtables.h (class const_or_copies): Make
9891 record_const_or_copy_raw method private.
9892 (class avail_exprs_stack): New method simplify_binary_operation.
9893 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
9894 avail_exprs_stack::simplify_binary_operation as needed.
9895 (avail_exprs_stack::simplify_binary_operation): New function.
9896
9897 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
9898
9899 * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
9900 * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
9901 (DOT_SYMBOLS): Likewise.
9902 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
9903 (RELOCATABLE_NEEDS_FIXUP): Likewise.
9904 (RS6000_ABI_NAME): Likewise.
9905 (TARGET_CMODEL): Likewise.
9906 (TOC_SECTION_ASM_OP): Likewise.
9907 (SET_CMODEL): New macro.
9908 (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
9909
9910 2017-08-22 Richard Biener <rguenther@suse.de>
9911
9912 * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
9913 to allow for free-lang-data replacements similar to verify_type_variant.
9914
9915 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
9916 Alan Hayward <alan.hayward@arm.com>
9917 David Sherwood <david.sherwood@arm.com>
9918
9919 * config/aarch64/aarch64.md (casesi): Use DImode rather than
9920 VOIDmode for the LABEL_REF.
9921
9922 2017-08-22 Richard Biener <rguenther@suse.de>
9923
9924 * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
9925
9926 2017-08-22 Richard Biener <rguenther@suse.de>
9927
9928 * common.opt (feliminate-dwarf2-dups): Ignore.
9929 * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
9930 * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
9931 same_die_p_wrap, compute_section_prefix,
9932 is_symbol_die, assign_symbol_names, break_out_includes): Remove.
9933 (comdat_symbol_id, comdat_symbol_number): Likewise.
9934 (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
9935 Likewise.
9936 (check_duplicate_cu, record_comdat_symbol_number): Likewise.
9937 (output_die): Mark unreachable path unreachable.
9938 (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
9939 (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
9940 (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
9941 (dwarf2out_early_finish): Likewise.
9942
9943 2017-08-22 Aldy Hernandez <aldyh@redhat.com>
9944
9945 * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
9946
9947 2017-08-22 Georg-Johann Lay <avr@gjlay.de>
9948
9949 PR target/81910
9950 * config/avr/avr.c (avr_handle_addr_attribute): Early return if
9951 not VAR_P. Filter attribute warnings with OPT_Wattributes.
9952 (avr_attribute_table) <io, io_low, address>: Initialize
9953 .decl_required with true.
9954
9955 2017-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9956
9957 * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
9958 undocumented debugging options.
9959 (-mvsx-scalar-double): Likewise.
9960 (-mallow-df-permute): Likewise.
9961 (-mvectorize-builtins): Likewise.
9962 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
9963 (rs6000_builtin_vectorized_function): Likewise.
9964 (rs6000_builtin_md_vectorized_function): Likewise.
9965 (rs6000_opt_vars): Likewise.
9966
9967 2017-08-21 Uros Bizjak <ubizjak@gmail.com>
9968
9969 PR target/46091
9970 * config/i386/i386.md (*btsq_imm): Rename from *btsq.
9971 (*btrq_imm): Rename from *btrq.
9972 (*btcq_imm): Rename from *btcq.
9973 (btsc): New code attribute.
9974 (*<btsc><mode>): New insn pattern.
9975 (*btr<mode>): Ditto.
9976 (*<btsc><mode>_mask): New insn_and_split pattern.
9977 (*btr<mode>_mask): Ditto.
9978
9979 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
9980 Alan Hayward <alan.hayward@arm.com>
9981 David Sherwood <david.sherwood@arm.com>
9982
9983 * function.c (pad_below): Simplify padding calculation.
9984
9985 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
9986 Alan Hayward <alan.hayward@arm.com>
9987 David Sherwood <david.sherwood@arm.com>
9988
9989 * target.def (function_prologue): Remove frame size argument.
9990 (function_epilogue): Likewise.
9991 * doc/tm.texi: Regenerate.
9992 * final.c (final_start_function): Update call to function_prologue.
9993 (final_end_function): Update call to function_epilogue.
9994 (default_function_pro_epilogue): Remove frame size argument.
9995 * output.h (default_function_pro_epilogue): Likewise.
9996 * config/arm/arm.c (arm_output_function_epilogue): Likewise.
9997 (arm_output_function_prologue): Likewise.
9998 * config/frv/frv.c (frv_function_prologue): Likewise.
9999 (frv_function_epilogue): Likewise.
10000 * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
10001 * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
10002 (ia64_output_function_epilogue): Likewise.
10003 * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
10004 (m32r_output_function_epilogue): Likewise.
10005 * config/microblaze/microblaze.c (microblaze_function_prologue)
10006 (microblaze_function_epilogue): Likewise.
10007 * config/mips/mips.c (mips_output_function_prologue): Likewise.
10008 (mips_output_function_epilogue): Likewise.
10009 * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
10010 (mmix_target_asm_function_epilogue): Likewise.
10011 * config/msp430/msp430.c (msp430_start_function): Likewise.
10012 * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
10013 (nds32_asm_function_epilogue): Likewise.
10014 * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
10015 * config/pa/pa.c (pa_output_function_prologue): Likewise.
10016 (pa_output_function_epilogue): Likewise.
10017 * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
10018 (rs6000_output_function_epilogue): Likewise.
10019 * config/rl78/rl78.c (rl78_start_function): Likewise.
10020 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
10021 (rs6000_output_function_epilogue): Likewise.
10022 * config/rx/rx.c (rx_output_function_prologue): Likewise.
10023 * config/sh/sh.c (sh_output_function_epilogue): Likewise.
10024 * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
10025 (sparc_asm_function_epilogue): Likewise.
10026
10027 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
10028
10029 * tree.h (type_has_mode_precision_p): New function.
10030 * convert.c (convert_to_integer_1): Use it.
10031 * expr.c (expand_expr_real_2): Likewise.
10032 (expand_expr_real_1): Likewise.
10033 * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
10034 * match.pd: Likewise.
10035 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
10036 * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
10037 * tree-tailcall.c (process_assignment): Likewise.
10038 * tree-vect-loop.c (vectorizable_reduction): Likewise.
10039 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
10040 (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
10041 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
10042 (vectorizable_assignment): Likewise.
10043 (vectorizable_shift): Likewise.
10044 (vectorizable_operation): Likewise.
10045 * tree-vrp.c (register_edge_assert_for_2): Likewise.
10046
10047 2017-08-21 Wilco Dijkstra <wdijkstr@arm.com>
10048
10049 * match.pd: Add pow (C, x) simplification.
10050
10051 2017-08-21 Richard Biener <rguenther@suse.de>
10052
10053 PR tree-optimization/81900
10054 * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
10055 for blocks with abnormal predecessors.
10056 (compute_antic): Do not set visited flag prematurely.
10057
10058 2017-08-21 Georg-Johann Lay <avr@gjlay.de>
10059
10060 PR target/79883
10061 * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
10062
10063 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
10064
10065 * stor-layout.h (vector_type_mode): Move to...
10066 * tree.h (vector_type_mode): ...here.
10067 * stor-layout.c (vector_type_mode): Move to...
10068 * tree.c (vector_type_mode): ...here. Include rtl.h and regs.h.
10069
10070 2017-08-21 Richard Biener <rguenther@suse.de>
10071
10072 * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
10073 register_external_die hooks.
10074 (debug_false_tree_charstarstar_uhwistar): Declare.
10075 (debug_nothing_tree_charstar_uhwi): Likewise.
10076 * debug.c (do_nothing_debug_hooks): Adjust.
10077 (debug_false_tree_charstarstar_uhwistar): New do nothing.
10078 (debug_nothing_tree_charstar_uhwi): Likewise.
10079 * dbxout.c (dbx_debug_hooks): Adjust.
10080 (xcoff_debug_hooks): Likewise.
10081 * sdbout.c (sdb_debug_hooks): Likewise.
10082 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10083 * dwarf2out.c (macinfo_label_base): New global.
10084 (dwarf2out_register_external_die): New function for the
10085 register_external_die hook.
10086 (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
10087 (dwarf2_debug_hooks): Use them.
10088 (dwarf2_lineno_debug_hooks): Adjust.
10089 (struct die_struct): Add with_offset flag.
10090 (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
10091 DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
10092 DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
10093 DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
10094 DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
10095 DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
10096 defining section names for the early LTO debug variants.
10097 (reset_indirect_string): New helper.
10098 (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
10099 (print_dw_val): Add support for offsetted symbol references.
10100 (get_ultimate_context): Split out from is_cxx.
10101 (is_cxx): Use get_ultimate_context.
10102 (is_fortran): Add decl overload.
10103 (compute_comp_unit_symbol): Split out worker from
10104 compute_section_prefix.
10105 (compute_section_prefix): Call compute_comp_unit_symbol and
10106 set comdat_type_p here.
10107 (output_die): Skip DIE symbol output for the LTO added one.
10108 Handle DIE symbol references with offset.
10109 (output_comp_unit): Guard section name mangling properly.
10110 For LTO debug sections emit a symbol at the section beginning
10111 which we use to refer to its DIEs.
10112 (add_abstract_origin_attribute): For DIEs registered via
10113 dwarf2out_register_external_die directly refer to the early
10114 DIE rather than indirectly through the shadow one we created.
10115 Remove obsolete call to dwarf2out_abstract_function for
10116 non-function/block origins.
10117 (gen_array_type_die): When generating early LTO debug do
10118 not emit DW_AT_string_length.
10119 (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
10120 late when in LTO. As suggested place a gcc_unreachable for
10121 the DECL_ABSTRACT_P case.
10122 (gen_subprogram_die): Avoid another specification DIE
10123 for early built declarations/definitions for the late LTO case.
10124 (gen_variable_die): Add type references for late duplicated VLA dies
10125 when in late LTO.
10126 (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
10127 we have the abstract instance already.
10128 (process_scope_var): Adjust decl DIE contexts in LTO which
10129 first puts them in limbo.
10130 (gen_decl_die): Do not generate type DIEs late apart from
10131 types for VLAs or for decls we do not yet have a DIE. Do not
10132 call dwarf2out_abstract_function late.
10133 (dwarf2out_early_global_decl): Make sure to create DIEs
10134 for abstract instances of a decl first.
10135 (dwarf2out_late_global_decl): Adjust comment.
10136 (output_macinfo_op): With multiple macro sections use
10137 macinfo_label_base to distinguish labels.
10138 (output_macinfo): Likewise. Update macinfo_label_base.
10139 Pass in the line info label.
10140 (note_variable_value_in_expr): When generating LTO resolve
10141 all variable values here by generating DIEs as needed.
10142 (init_sections_and_labels): Add early LTO debug flag parameter
10143 and generate different sections and names if set. Add generation
10144 counter for the labels so we can have multiple of them.
10145 (reset_dies): Helper to allow DIEs to be output multiple times.
10146 (dwarf2out_finish): When outputting DIEs to the fat part of an
10147 LTO object first reset DIEs.
10148 (dwarf2out_early_finish): Output early DIEs when generating LTO.
10149 (modified_type_die): Check for decl_ultimate_origin being self
10150 before recursing.
10151 (gen_type_die_with_usage): Likewise.
10152 (gen_typedef_die): Allow decl_ultimate_origin being self.
10153 (set_decl_abstract_flags): Remove.
10154 (set_block_abstract_flags): Likewise.
10155 (dwarf2out_abstract_function): Treat the early generated DIEs
10156 as the abstract copy and only add DW_AT_inline and
10157 DW_AT_artificial here and call set_decl_origin_self.
10158 If the DIE has an abstract origin don't do anything.
10159 * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
10160 if we have none yet (Go fails to build one, PR78628).
10161 (variably_modified_type_p): Prevent endless recursion for Ada
10162 cyclic pointer types.
10163 * lto-streamer-in.c: Include debug.h.
10164 (dref_queue): New global.
10165 (lto_read_tree_1): Stream in DIE references.
10166 (lto_input_tree): Register DIE references.
10167 (input_function): Stream DECL_DEBUG_ARGS.
10168 * lto-streamer-out.c: Include debug.h.
10169 (lto_write_tree_1): Output DIE references.
10170 (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
10171 Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
10172 (output_function): Stream DECL_DEBUG_ARGS.
10173 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10174 Stream DECL_ABSTRACT_ORIGIN.
10175 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
10176 (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
10177 DECL_CONTEXT for file-scope decls.
10178 * lto-streamer.h (struct dref_entry): Declare.
10179 (dref_queue): Likewise.
10180 * cfgexpand.c (pass_expand::execute): Do not call the
10181 outlining_inline_function hook here.
10182 * lto-wrapper.c (debug_obj): New global.
10183 (tool_cleanup): Unlink it if required.
10184 (debug_objcopy): New function.
10185 (run_gcc): Handle early debug sections in the IL files by
10186 extracting them to separate files, partially linkin them and
10187 feeding the result back as result to the linker.
10188 * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
10189 DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
10190 DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
10191 sections into a separate segment.
10192 * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
10193 segments.
10194 (darwin_asm_dwarf_section): Likewise.
10195 (darwin_asm_output_dwarf_offset): Likewise.
10196 * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
10197
10198 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
10199 Alan Hayward <alan.hayward@arm.com>
10200 David Sherwood <david.sherwood@arm.com>
10201
10202 * read-md.h (md_reader::record_potential_iterator_use): Replace
10203 pointer argument with an rtx and an index.
10204 * read-rtl.c (iterator_group::apply_iterator): Likewise.
10205 (apply_mode_iterator): Likewise.
10206 (apply_code_iterator): Likewise.
10207 (apply_int_iterator): Likewise.
10208 (apply_subst_iterator): Likewise.
10209 (record_iterator_use): Likewise.
10210 (record_attribute_use): Likewise.
10211 (md_reader::record_potential_iterator_use): Likewise. Update calls
10212 to record_iterator_use and apply_iterator.
10213 (iterator_use): Replace ptr with x and index.
10214 (attribute_use): Likewise.
10215 (apply_attribute_uses): Update calls to apply_iterator.
10216 (apply_iterators): Likewise. Update initialization of iterator_use.
10217 (rtx_reader::read_rtx_code): Update calls to record_iterator_use
10218 and record_potential_iterator_use.
10219 (rtx_reader::read_rtx_operand): Likewise.
10220
10221 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
10222 Alan Hayward <alan.hayward@arm.com>
10223 David Sherwood <david.sherwood@arm.com>
10224
10225 * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
10226 CONST_WIDE_INT.
10227
10228 2017-08-21 Richard Biener <rguenther@suse.de>
10229
10230 PR middle-end/81884
10231 * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
10232 at struct end conservatively when comparing common bases.
10233
10234 2017-08-21 Richard Biener <rguenther@suse.de>
10235
10236 * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
10237 (mem_ref_in_stmt): Remove.
10238 (determine_max_movement): Use ref index to get at the reference.
10239 (invariantness_dom_walker::before_dom_children): Deal with
10240 lim data already initialized.
10241 (gather_mem_refs_stmt): Initialize lim data and record ref index.
10242
10243 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
10244
10245 * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
10246 (TARGET_ISA_ROUND): Ditto.
10247 (TARGET_ROUND): Ditto.
10248 * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
10249 * config/i386/i386.md: Ditto.
10250 * config/i386/sse.md: Ditto.
10251 * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
10252 with OPTION_MASK_ISA_SSE4_1.
10253
10254 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
10255
10256 PR target/81894
10257 * doc/extend.texi (x86 Built-in Functions): Correct the name of
10258 __builtin_ia32_lzcnt_u16.
10259
10260 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
10261
10262 PR target/80210
10263 * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
10264 (rs6000_set_current_function): Rewrite function to use it.
10265
10266 2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
10267
10268 PR c/53037
10269 * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
10270 and TYPE_WARN_IF_NOT_ALIGN.
10271 * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
10272 (handle_warn_if_not_align): New.
10273 (place_union_field): Call handle_warn_if_not_align.
10274 (place_field): Call handle_warn_if_not_align.
10275 Copy TYPE_WARN_IF_NOT_ALIGN.
10276 (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
10277 (layout_type): Likewise.
10278 * tree-core.h (tree_type_common): Add warn_if_not_align. Set
10279 spare to 18.
10280 (tree_decl_common): Add warn_if_not_align.
10281 * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
10282 * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
10283 (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
10284 (DECL_WARN_IF_NOT_ALIGN): Likewise.
10285 (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
10286 * doc/extend.texi: Document warn_if_not_aligned attribute.
10287 * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
10288
10289 2017-08-17 Martin Liska <mliska@suse.cz>
10290
10291 PR bootstrap/81864
10292 * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
10293 (get_data_dependence): Use it as pointer type.
10294 (distribute_loop): Likewise.
10295
10296 2017-08-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10297
10298 * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
10299 (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
10300 (p8_vmrgow_<mode>_direct): New define_insn.
10301 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
10302 handle endianness for vmrgew and vmrgow permute patterns.
10303
10304 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
10305
10306 * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
10307 * config/rs6000/rs6000-cpus.def: Remove comment.
10308 (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
10309 (POWERPC_MASKS): Likewise.
10310 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
10311 use of TARGET_VSX_TIMODE.
10312 (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
10313 (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
10314 TARGET_VSX_TIMODE. Change use of TARGET_VSX_TIMODE to TARGET_VSX.
10315 (rs6000_option_override_internal): Remove dead code.
10316 (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
10317 (rs6000_legitimize_reload_address): Likewise.
10318 (rs6000_legitimate_address_p): Likewise.
10319 (rs6000_opt_masks): Delete "vsx-timode".
10320 (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
10321 from function comment.
10322 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
10323 * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
10324 (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
10325 condition.
10326 * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
10327 * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
10328 * config/rs6000/vsx.md (VSX_LE_128): Likewise.
10329 (VSX_TI): Likewise.
10330 (VSX_M): Likewise.
10331 (define_peephole2): Likewise.
10332
10333 2017-08-17 Martin Sebor <msebor@redhat.com>
10334
10335 PR c/81859
10336 * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
10337 past the end of an array.
10338 (test_pp_format): Add test cases.
10339
10340 2017-08-17 Richard Sandiford <richard.sandiford@linaro.org>
10341
10342 * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
10343 missing ECF_NOTHROW flags.
10344
10345 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
10346
10347 PR target/72804
10348 * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
10349 operands residing in integer registers.
10350 (*vsx_le_perm_load_<mode>): Likewise.
10351 (*vsx_le_perm_store_<mode>): Likewise.
10352 (define_peephole2): Add peepholes to optimize the above.
10353
10354 2017-08-17 Marek Polacek <polacek@redhat.com>
10355
10356 PR middle-end/81814
10357 * fold-const.c (operand_equal_for_comparison_p): Remove code that used
10358 to mimic what shorten_compare did. Change the return type to bool.
10359 (fold_cond_expr_with_comparison): Update call to
10360 operand_equal_for_comparison_p.
10361 (fold_ternary_loc): Likewise.
10362
10363 2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com>
10364
10365 * aarch64-simd.md (mov<mode>): No longer force zero immediate into
10366 register.
10367 (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
10368
10369 2017-08-17 Richard Biener <rguenther@suse.de>
10370
10371 * tree-ssa-structalias.c (solve_graph): When propagating
10372 to successors update the graphs succ edges and avoid duplicate work.
10373
10374 2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com>
10375
10376 PR target/81861
10377 * config/i386/i386.c (ix86_option_override_internal): Save target
10378 specific options after ix86_stack_protector_guard_reg was changed.
10379
10380 2017-08-17 Richard Biener <rguenther@suse.de>
10381
10382 PR tree-optimization/81827
10383 * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
10384 (new_var_info): Initialize it conservatively.
10385 (get_call_vi): Mark register vars.
10386 (new_scalar_tmp_constraint_exp): Likewise.
10387 (handle_rhs_call): Likewise.
10388 (handle_const_call): Likewise.
10389 (create_function_info_for): Likewise.
10390 (solve_constraints): Sort varinfos to separate register from
10391 non-register vars to pack points-to solution bitmaps during
10392 iteration.
10393
10394 2017-08-17 Marek Polacek <polacek@redhat.com>
10395
10396 * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
10397
10398 2017-08-17 Richard Biener <rguenther@suse.de>
10399
10400 * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
10401 to true when overflow is undefined and we saturated the result.
10402
10403 2017-08-17 Alan Modra <amodra@gmail.com>
10404
10405 PR target/80938
10406 * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
10407 Don't use store multiple if only one reg needs saving.
10408 (interesting_frame_related_regno): New function.
10409 (rs6000_frame_related): Don't emit frame info for regs that
10410 don't need saving.
10411 (rs6000_emit_epilogue): Likewise.
10412
10413 2017-08-16 Nathan Sidwell <nathan@acm.org>
10414
10415 * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
10416 * tree.h (TYPE_BINFO): Use type_non_common.maxval.
10417 (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
10418 * tree.c (free_lang_data_in_type): Use else-if chain. Always
10419 clear TYPE_LANG_1. Remove obsolete member-function stripping.
10420 (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
10421 (verify_type): Adjust for TYPE_BINFO move.
10422 * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
10423 process TYPE_BINFO directly.
10424 (hash_tree): Likewise.
10425 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
10426 Likewise.
10427 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
10428 Likewise.
10429
10430 2017-08-16 David Malcolm <dmalcolm@redhat.com>
10431
10432 * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
10433
10434 2017-08-16 Uros Bizjak <ubizjak@gmail.com>
10435
10436 PR target/46091
10437 * config/i386/i386.md (*anddi_1_btr): Change predicates of
10438 operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
10439 Add ix86_binary_operator_ok to insn constraint.
10440 (*iordi_1_bts): Ditto.
10441 (*xordi_1_btc): Ditto.
10442 (*btsq): Change predicate of operand 0 to nonimmediate_operand.
10443 Update corresponding peephole2 pattern.
10444 (*btrq): Ditto.
10445 (*btcq): Ditto.
10446
10447 2017-08-16 Bin Cheng <bin.cheng@arm.com>
10448
10449 PR tree-optimization/81832
10450 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
10451 copy loop header which has IFN_LOOP_DIST_ALIAS call.
10452
10453 2017-08-16 Marek Polacek <polacek@redhat.com>
10454
10455 PR middle/81695
10456 * fold-const.c (fold_indirect_ref_1): Restore original behavior
10457 regarding size_zero_node.
10458
10459 2017-08-16 Martin Liska <mliska@suse.cz>
10460
10461 PR target/81753
10462 * config.gcc: Respect previously set extra_objs in case
10463 of darwin target.
10464
10465 2017-08-16 Richard Sandiford <richard.sandiford@linaro.org>
10466
10467 PR tree-optimization/81835
10468 * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
10469 the phi SSA_NAME. Check that the condition in a COND_EXPR does
10470 not depend on the phi.
10471
10472 2017-08-16 Alan Modra <amodra@gmail.com>
10473
10474 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
10475 dead code.
10476
10477 2017-08-16 Alan Modra <amodra@gmail.com>
10478
10479 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
10480 (save_reg_p): ..into this. Update all callers.
10481 (first_reg_to_save): Simplify.
10482
10483 2017-08-16 Alan Modra <amodra@gmail.com>
10484
10485 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
10486 fixed regs.
10487
10488 2017-08-15 Joseph Myers <joseph@codesourcery.com>
10489
10490 PR target/78460
10491 PR target/67712
10492 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
10493 constant count if that count is less than 32.
10494
10495 2017-08-15 Nathan Sidwell <nathan@acm.org>
10496
10497 * gcc.c (execute): Emit friendlier message if inferior is killed
10498 by an external cause.
10499
10500 2017-08-15 Richard Biener <rguenther@suse.de>
10501
10502 PR tree-optimization/81790
10503 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
10504 CONSTRUCTORs from simplifying and VN.
10505
10506 2017-08-14 Martin Sebor <msebor@redhat.com>
10507
10508 * builtin-attrs.def: Add comments.
10509
10510 2017-08-14 Martin Sebor <msebor@redhat.com>
10511
10512 PR c/81117
10513 * doc/extend.texi (attribute nonstring): Document new attribute.
10514
10515 2017-08-14 Martin Sebor <msebor@redhat.com>
10516
10517 PR c/81117
10518 * tree-diagnostic.c (default_tree_printer): Handle %G.
10519 * gimple-pretty-print.h (percent_G_format): Declare new function.
10520 * gimple-pretty-print.c (percent_G_format): Define.
10521 * tree-pretty-print.c (percent_K_format): Add argument.
10522
10523 2017-08-14 Martin Sebor <msebor@redhat.com>
10524
10525 PR translation/79998
10526 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
10527 Remove a stray space.
10528
10529 2017-08-14 Uros Bizjak <ubizjak@gmail.com>
10530
10531 PR target/46091
10532 * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
10533 (*iordi_1_bts): Ditto.
10534 (*xordi_1_btc): Ditto.
10535
10536 2017-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10537
10538 PR target/79845
10539 * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
10540 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10541 Likewise.
10542 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
10543 quoted strings, and make more translator-friendly.
10544 (darwin_rs6000_override_options): Likewise.
10545 (rs6000_option_override_internal): Likewise.
10546 (rs6000_return_in_memory): Fix overlong line.
10547 (init_cmulative_args): Use quoted strings, and make more
10548 translator-friendly.
10549 (rs6000_pass_by_reference): Fix overlong line.
10550 (def_builtin): Use quoted strings.
10551 (altivec_expand_predicate_builtin): Use quoted strings, and make
10552 more translator-friendly.
10553 (htm_expand_builtin): Use quoted strings.
10554 (cpu_expand_builtin): Use quoted strings, and make more
10555 translator-friendly.
10556 (altivec_expand_builtin): Likewise.
10557 (paired_expand_predicate_builtin): Likewise.
10558 (rs6000_invalid_builtin): Likewise.
10559 (builtin_function_type): Use quoted strings.
10560 (rs6000_expand_split_stack_prologue): Use quoted strings, and make
10561 more translator-friendly.
10562 (rs6000_trampoline_init): Likewise.
10563 (rs6000_handle_altivec_attribute): Likewise.
10564 (rs6000_inner_target_options): Use quoted strings.
10565 (rs6000_disable_incompatible_switches): Likewise.
10566 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
10567 strings, and make more translator-friendly.
10568 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
10569
10570 2017-08-14 Bin Cheng <bin.cheng@arm.com>
10571
10572 PR tree-optimization/81799
10573 * tree-loop-distribution.c (version_loop_by_alias_check): Force
10574 cond_expr to simple gimple operand.
10575
10576 2017-08-14 Wilco Dijkstra <wdijkstr@arm.com>
10577
10578 PR middle-end/46932
10579 * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
10580
10581 2017-08-14 Georg-Johann Lay <avr@gjlay.de>
10582
10583 PR target/81754
10584 PR target/81268
10585 * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
10586 * config/avr/avr.md (gasisr, *gasisr): Use it instead of
10587 TARGET_GASISR_PROLOGUES.
10588 * config/avr/avr.c (avr_option_override): Same.
10589 (avr_pass_pre_proep::execute): Same.
10590
10591 2017-08-13 H.J. Lu <hongjiu.lu@intel.com>
10592
10593 PR target/81820
10594 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
10595 frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
10596
10597 2017-08-13 Uros Bizjak <ubizjak@gmail.com>
10598
10599 * config/i386/i386.md (*load_tp_<mode>): Redefine as
10600 define_insn_and_split. Split to a memory load from 0 in
10601 DEFAULT_TLS_SEG_REG address space. Merge with *load_tp_x32
10602 using PTR mode iterator.
10603 (*load_tp_x32_zext"): Redefine as define_insn_and_split.
10604 Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
10605 (*add_tp_<mode>): Redefine as define_insn_and_split.
10606 Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
10607 address space. Merge with *add_tp_x32 using PTR mode iterator.
10608 (*add_tp_x32_zext"): Redefine as define_insn_and_split.
10609 Split to an add with a memory load from 0 in
10610 DEFAULT_TLS_SEG_REG address space.
10611
10612 2017-08-12 Andrew Pinski <apinski@cavium.com>
10613
10614 * config/aarch64/aarch64-option-extensions.def (rdma):
10615 Fix feature string to what Linux prints out in /proc/cpuinfo.
10616
10617 2017-08-12 Pierre-Marie de Rodat <derodat@adacore.com>
10618
10619 PR ada/79542
10620 * dwarf2out.c (modified_type_die): For C typedef types that have
10621 an ultimate origin, process the ultimate origin instead of the
10622 input type.
10623 (gen_typedef_die): Assert that input DECLs have no ultimate
10624 origin.
10625 (gen_type_die_with_usage): For typedef variants that have an
10626 ultimate origin, just call gen_decl_die on the original DECL.
10627 (process_scope_var): Avoid creating DIEs for local typedefs and
10628 concrete static variables.
10629
10630 2017-08-12 Alan Modra <amodra@gmail.com>
10631
10632 PR target/81170
10633 PR target/81295
10634 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
10635 match gnu-user.h startfile.
10636 (ENDFILE_LINUX_SPEC): Similarly.
10637
10638 2017-08-11 Thomas Schwinge <thomas@codesourcery.com>
10639
10640 PR lto/81430
10641 * config/nvptx/nvptx.c (nvptx_override_options_after_change):
10642 Remove function.
10643 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
10644
10645 2017-08-11 Tamar Christina <tamar.christina@arm.com>
10646 * config/aarch64/aarch64.md (mov<mode>): Change.
10647 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
10648 aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
10649 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
10650
10651 2017-08-11 Eric Botcazou <ebotcazou@adacore.com>
10652
10653 * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
10654 for storage order barriers.
10655
10656 2017-08-11 Martin Liska <mliska@suse.cz>
10657
10658 PR tree-opt/79987
10659 * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
10660 variables of void type.
10661
10662 2017-08-11 Martin Liska <mliska@suse.cz>
10663
10664 * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
10665 TARGET_SUPPORTS_ALIASES.
10666 * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
10667 * ipa-visibility.c (can_replace_by_local_alias): Likewise.
10668 (optimize_weakref): Likewise.
10669 * symtab.c (symtab_node::noninterposable_alias): Likewise.
10670 * varpool.c (varpool_node::create_extra_name_alias): Likewise.
10671 * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
10672
10673 2017-08-11 Martin Liska <mliska@suse.cz>
10674
10675 PR ipa/81213
10676 * config/i386/i386.c (make_resolver_func): Do complete
10677 refactoring of the function.
10678
10679 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
10680
10681 PR target/81708
10682 * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
10683 * config/i386/i386.c (ix86_stack_protect_guard): Use
10684 ix86_stack_protect_guard_symbol_str to generate varible declaration.
10685 * doc/invoke.texi (x86 Options): Document
10686 -mstack-protector-guard-symbol= option.
10687
10688 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
10689
10690 * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
10691 * config/i386/i386.c (ix86_split_stack_guard): New function.
10692 (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
10693 (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
10694 (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
10695 (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
10696 * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
10697 (split_stack_space_check): Call ix86_split_stack_guard.
10698
10699 2017-08-10 Martin Sebor <msebor@redhat.com>
10700
10701 * print-tree.c (print_node): Print location using the established
10702 format %s:%i%i.
10703 Replace spaces with colons.
10704 (debug_raw, debug): Ditto.
10705
10706 2017-08-10 Martin Sebor <msebor@redhat.com>
10707
10708 PR c++/81586
10709 * pretty-print.c (pp_format): Correct the handling of %s precision.
10710
10711 2017-08-10 H.J. Lu <hongjiu.lu@intel.com>
10712
10713 PR target/81736
10714 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
10715 to ...
10716 (ix86_finalize_stack_frame_flags): This. Also clear
10717 frame_pointer_needed if -fno-omit-frame-pointer is used without
10718 stack access.
10719 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
10720 with ix86_finalize_stack_frame_flags.
10721 (ix86_expand_epilogue): Likewise.
10722 (ix86_expand_split_stack_prologue): Likewise.
10723 * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
10724
10725 2017-08-10 Martin Liska <mliska@suse.cz>
10726
10727 PR c++/81355
10728 * c-attribs.c (handle_target_attribute):
10729 Report warning for an empty string argument of target attribute.
10730
10731 2017-08-09 Jakub Jelinek <jakub@redhat.com>
10732
10733 PR c/81687
10734 * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
10735 LABEL_DECLs.
10736 * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
10737 or DECL_NONLOCAL labels.
10738 (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
10739 or DECL_NONLOCAL labels here.
10740
10741 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com>
10742
10743 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
10744 to indicate when early gimple folding has been disabled.
10745 (rs6000_gimple_fold_builtin): Add debug content.
10746 (rs6000_invalid_builtin): Fix whitespace.
10747 (rs6000_expand_builtin): Fix whitespace.
10748 * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
10749
10750 2017-08-09 Segher Boessenkool <segher@kernel.crashing.org>
10751
10752 PR target/80938
10753 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
10754 SAVE_MULTIPLE if not all the registers that saves, should be saved.
10755
10756 2017-08-09 Jim Wilson <jim.wilson@linaro.org>
10757
10758 * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
10759 (qdf24xx): Likewise.
10760 * config/aarch64/aarch64.md: Include falkor.md.
10761 * config/aarch64/falkor.md: New.
10762
10763 2017-08-09 Marek Polacek <polacek@redhat.com>
10764
10765 PR c/81233
10766 * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
10767 * diagnostic.c (emit_diagnostic): Add a comment.
10768 (emit_diagnostic_valist): New function.
10769
10770 2017-08-09 Marek Polacek <polacek@redhat.com>
10771
10772 PR c/81417
10773 * input.c (make_location): New overload.
10774 * input.h (make_location): Declare.
10775
10776 2017-08-08 Alan Modra <amodra@gmail.com>
10777 H.J. Lu <hongjiu.lu@intel.com>
10778
10779 PR driver/81523
10780 * gcc.c (NO_PIE_SPEC): Delete.
10781 (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r
10782 exclusion..
10783 (LINK_PIE_SPEC): ..to here.
10784 (LINK_COMMAND_SPEC): Support -no-pie.
10785 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
10786 chain of crtbegin*.o selection, update for PIE_SPEC changes and
10787 format.
10788 (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
10789 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
10790 (ENDFILE_CRTEND_SPEC): Similarly.
10791
10792 2017-08-08 Uros Bizjak <ubizjak@gmail.com>
10793
10794 PR target/81708
10795 * config/i386/i386.opt (mstack-protector-guard-reg=): New option
10796 (mstack-protector-guard-offset=): Ditto.
10797 * config/i386/i386.c (ix86_option_override): Handle
10798 -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
10799 options.
10800 (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
10801 ix86_stack_protect_guard_offset variables.
10802 (TARGET_STACK_PROTECT_GUARD): Always define.
10803 * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
10804 and -mstack-protector-guard-offset= options.
10805
10806 2017-08-08 Bin Cheng <bin.cheng@arm.com>
10807
10808 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
10809 boundary case for the last candidate.
10810
10811 2017-08-08 Bin Cheng <bin.cheng@arm.com>
10812
10813 * doc/invoke.texi: Document -ftree-loop-distribution for O3.
10814 * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
10815
10816 2017-08-08 Tamar Christina <tamar.christina@arm.com>
10817
10818 PR middle-end/19706
10819 * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
10820 * config/aarch64/aarch64-builtins.c
10821 (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
10822 * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
10823 * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
10824
10825 2017-08-08 Tamar Christina <tamar.christina@arm.com>
10826 Andrew Pinski <pinskia@gmail.com>
10827
10828 PR middle-end/19706
10829 * internal-fn.def (XORSIGN): New.
10830 * optabs.def (xorsign_optab): New.
10831 * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
10832 (convert_expand_mult_copysign): New.
10833 (pass_optimize_widening_mul::execute): Call
10834 convert_expand_mult_copysign.
10835
10836 2017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10837
10838 PR tree-optimization/81354
10839 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
10840 Insert on edges rather than explicitly creating landing pads.
10841 (analyze_candidates_and_replace): Commit edge inserts.
10842
10843 2017-08-08 Richard Biener <rguenther@suse.de>
10844
10845 PR middle-end/81719
10846 * tree-ssa-loop-niter.c: Include tree-dfa.h.
10847 (expand_simple_operations): Also look through ADDR_EXPRs with
10848 MEM_REF bases treating them as POINTER_PLUS_EXPR.
10849
10850 2017-08-08 Richard Biener <rguenther@suse.de>
10851
10852 PR tree-optimization/81723
10853 * tree-vect-slp.c (struct bst_traits): New hash traits.
10854 (bst_fail): New global.
10855 (vect_build_slp_tree_2): New worker, split out from ...
10856 (vect_build_slp_tree): ... this now wrapping it with using
10857 bst_fail set to cache SLP tree build fails. Properly handle
10858 max_tree_size.
10859 (vect_analyze_slp_instance): Allocate and free bst_fail.
10860
10861 2017-08-08 Martin Liska <mliska@suse.cz>
10862
10863 PR tree-opt/81696
10864 * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
10865 LABEL_DECLs that can be from a different function.
10866
10867 2017-08-08 Bin Cheng <bin.cheng@arm.com>
10868
10869 PR tree-optimization/81744
10870 * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
10871 loop's number of iterations.
10872
10873 2017-08-08 Martin Liska <mliska@suse.cz>
10874
10875 * asan.c: Include header files.
10876 * attribs.c (build_decl_attribute_variant): New function moved
10877 from tree.[ch].
10878 (build_type_attribute_qual_variant): Likewise.
10879 (cmp_attrib_identifiers): Likewise.
10880 (simple_cst_list_equal): Likewise.
10881 (omp_declare_simd_clauses_equal): Likewise.
10882 (attribute_value_equal): Likewise.
10883 (comp_type_attributes): Likewise.
10884 (build_type_attribute_variant): Likewise.
10885 (lookup_ident_attribute): Likewise.
10886 (remove_attribute): Likewise.
10887 (merge_attributes): Likewise.
10888 (merge_type_attributes): Likewise.
10889 (merge_decl_attributes): Likewise.
10890 (merge_dllimport_decl_attributes): Likewise.
10891 (handle_dll_attribute): Likewise.
10892 (attribute_list_equal): Likewise.
10893 (attribute_list_contained): Likewise.
10894 * attribs.h (lookup_attribute): New function moved from tree.[ch].
10895 (lookup_attribute_by_prefix): Likewise.
10896 * bb-reorder.c: Include header files.
10897 * builtins.c: Likewise.
10898 * calls.c: Likewise.
10899 * cfgexpand.c: Likewise.
10900 * cgraph.c: Likewise.
10901 * cgraphunit.c: Likewise.
10902 * convert.c: Likewise.
10903 * dwarf2out.c: Likewise.
10904 * final.c: Likewise.
10905 * fold-const.c: Likewise.
10906 * function.c: Likewise.
10907 * gimple-expr.c: Likewise.
10908 * gimple-fold.c: Likewise.
10909 * gimple-pretty-print.c: Likewise.
10910 * gimple.c: Likewise.
10911 * gimplify.c: Likewise.
10912 * hsa-common.c: Likewise.
10913 * hsa-gen.c: Likewise.
10914 * internal-fn.c: Likewise.
10915 * ipa-chkp.c: Likewise.
10916 * ipa-cp.c: Likewise.
10917 * ipa-devirt.c: Likewise.
10918 * ipa-fnsummary.c: Likewise.
10919 * ipa-inline.c: Likewise.
10920 * ipa-visibility.c: Likewise.
10921 * ipa.c: Likewise.
10922 * lto-cgraph.c: Likewise.
10923 * omp-expand.c: Likewise.
10924 * omp-general.c: Likewise.
10925 * omp-low.c: Likewise.
10926 * omp-offload.c: Likewise.
10927 * omp-simd-clone.c: Likewise.
10928 * opts-global.c: Likewise.
10929 * passes.c: Likewise.
10930 * predict.c: Likewise.
10931 * sancov.c: Likewise.
10932 * sanopt.c: Likewise.
10933 * symtab.c: Likewise.
10934 * toplev.c: Likewise.
10935 * trans-mem.c: Likewise.
10936 * tree-chkp.c: Likewise.
10937 * tree-eh.c: Likewise.
10938 * tree-into-ssa.c: Likewise.
10939 * tree-object-size.c: Likewise.
10940 * tree-parloops.c: Likewise.
10941 * tree-profile.c: Likewise.
10942 * tree-ssa-ccp.c: Likewise.
10943 * tree-ssa-live.c: Likewise.
10944 * tree-ssa-loop.c: Likewise.
10945 * tree-ssa-sccvn.c: Likewise.
10946 * tree-ssa-structalias.c: Likewise.
10947 * tree-ssa.c: Likewise.
10948 * tree-streamer-in.c: Likewise.
10949 * tree-vectorizer.c: Likewise.
10950 * tree-vrp.c: Likewise.
10951 * tsan.c: Likewise.
10952 * ubsan.c: Likewise.
10953 * varasm.c: Likewise.
10954 * varpool.c: Likewise.
10955 * tree.c: Remove functions moved to attribs.[ch].
10956 * tree.h: Likewise.
10957 * config/aarch64/aarch64.c: Add attrs.h header file.
10958 * config/alpha/alpha.c: Likewise.
10959 * config/arc/arc.c: Likewise.
10960 * config/arm/arm.c: Likewise.
10961 * config/avr/avr.c: Likewise.
10962 * config/bfin/bfin.c: Likewise.
10963 * config/c6x/c6x.c: Likewise.
10964 * config/cr16/cr16.c: Likewise.
10965 * config/cris/cris.c: Likewise.
10966 * config/darwin.c: Likewise.
10967 * config/epiphany/epiphany.c: Likewise.
10968 * config/fr30/fr30.c: Likewise.
10969 * config/frv/frv.c: Likewise.
10970 * config/ft32/ft32.c: Likewise.
10971 * config/h8300/h8300.c: Likewise.
10972 * config/i386/winnt.c: Likewise.
10973 * config/ia64/ia64.c: Likewise.
10974 * config/iq2000/iq2000.c: Likewise.
10975 * config/lm32/lm32.c: Likewise.
10976 * config/m32c/m32c.c: Likewise.
10977 * config/m32r/m32r.c: Likewise.
10978 * config/m68k/m68k.c: Likewise.
10979 * config/mcore/mcore.c: Likewise.
10980 * config/microblaze/microblaze.c: Likewise.
10981 * config/mips/mips.c: Likewise.
10982 * config/mmix/mmix.c: Likewise.
10983 * config/mn10300/mn10300.c: Likewise.
10984 * config/moxie/moxie.c: Likewise.
10985 * config/msp430/msp430.c: Likewise.
10986 * config/nds32/nds32-isr.c: Likewise.
10987 * config/nds32/nds32.c: Likewise.
10988 * config/nios2/nios2.c: Likewise.
10989 * config/nvptx/nvptx.c: Likewise.
10990 * config/pa/pa.c: Likewise.
10991 * config/pdp11/pdp11.c: Likewise.
10992 * config/powerpcspe/powerpcspe.c: Likewise.
10993 * config/riscv/riscv.c: Likewise.
10994 * config/rl78/rl78.c: Likewise.
10995 * config/rx/rx.c: Likewise.
10996 * config/s390/s390.c: Likewise.
10997 * config/sh/sh.c: Likewise.
10998 * config/sol2.c: Likewise.
10999 * config/sparc/sparc.c: Likewise.
11000 * config/spu/spu.c: Likewise.
11001 * config/stormy16/stormy16.c: Likewise.
11002 * config/tilegx/tilegx.c: Likewise.
11003 * config/tilepro/tilepro.c: Likewise.
11004 * config/v850/v850.c: Likewise.
11005 * config/vax/vax.c: Likewise.
11006 * config/visium/visium.c: Likewise.
11007 * config/xtensa/xtensa.c: Likewise.
11008
11009 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com>
11010
11011 PR target/81593
11012 * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
11013 constraints since the -mupper-regs-* switches have been
11014 eliminated.
11015 (vsx_concat_<mode>_1): New combiner insns to recognize inserting
11016 into a vector from a double word element that was extracted from
11017 another vector, and eliminate extra XXPERMDI instructions.
11018 (vsx_concat_<mode>_2): Likewise.
11019 (vsx_concat_<mode>_3): Likewise.
11020 (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
11021 concat to allow optimizing inserts from previous extracts.
11022
11023 2017-08-07 Uros Bizjak <ubizjak@gmail.com>
11024
11025 * config/i386/i386.c (ix86_stack_protect_guard): Generate
11026 memory reference to a SSP offset in TLS address space.
11027 (ix86_print_operand) <case '@'>: Remove.
11028 (ix86_print_operand_punct_valid_p): Remove '@' code.
11029 * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
11030 UNSPEC_SP_TLS_TEST.
11031 (stack_tls_protect_set_<mode>): Remove.
11032 (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
11033 (stack_tls_protect_test_<mode>): Remove.
11034 (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
11035
11036 2017-08-07 Olivier Hainque <hainque@adacore.com>
11037
11038 PR target/81755
11039 * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
11040
11041 2017-08-07 Douglas Rupp <rupp@adacore.com>
11042
11043 * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
11044 variable was referenced as multidir in command.
11045
11046 2017-08-07 Jakub Jelinek <jakub@redhat.com>
11047
11048 PR c/69389
11049 * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
11050 BIT_FIELD_REF.
11051
11052 2017-08-07 Martin Liska <mliska@suse.cz>
11053
11054 * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
11055 * config/rl78/rl78.c: Add include of attribs.h.
11056 * config/sh/sh.c: Likewise.
11057 * config/v850/v850.c: Likewise.
11058
11059 2017-08-07 Tom de Vries <tom@codesourcery.com>
11060
11061 PR middle-end/78266
11062 * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
11063
11064 2017-08-07 Martin Liska <mliska@suse.cz>
11065
11066 * config/mips/mips.c: Include attribs.h.
11067
11068 2017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
11069
11070 PR fortran/68829
11071 * doc/invoke.texi: Document change in behvaior for -Ofast for
11072 Fortran.
11073
11074 2017-08-07 Wilco Dijkstra <wdijkstr@arm.com>
11075
11076 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
11077 Use gen_frame_mem.
11078 (aarch64_pop_regs): Likewise.
11079 (aarch64_gen_load_pair): Likewise.
11080 (aarch64_save_callee_saves): Likewise.
11081 (aarch64_restore_callee_saves): Likewise.
11082
11083 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
11084
11085 * config/i386/i386.c: Revert the last change.
11086
11087 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
11088
11089 PR target/81736
11090 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
11091 to ...
11092 (ix86_finalize_stack_frame_flags): This. Also clear
11093 frame_pointer_needed if -fno-omit-frame-pointer is used without
11094 stack access.
11095 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
11096 with ix86_finalize_stack_frame_flags.
11097 (ix86_expand_epilogue): Likewise.
11098 (ix86_expand_split_stack_prologue): Likewise.
11099
11100 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
11101
11102 PR target/81743
11103 * config/i386/i386.c (get_builtin_code_for_version): Set priority
11104 to P_AES for Westmere.
11105
11106 2017-08-07 Jonathan Yong <10walls@gmail.com>
11107
11108 * config/i386/mingw.opt (fset-stack-executable): Removed.
11109 * config/i386/cygming.opt (fset-stack-executable): Moved
11110 from mingw.opt.
11111 * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
11112
11113 2017-08-07 Segher Boessenkool <segher@kernel.crashing.org>
11114
11115 * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
11116
11117 2017-08-07 Marek Polacek <polacek@redhat.com>
11118
11119 PR middle-end/81737
11120 * fold-const.c (fold_indirect_ref_1): Check type_domain.
11121
11122 2017-08-07 Martin Liska <mliska@suse.cz>
11123
11124 * attribs.h (canonicalize_attr_name): New function.
11125 (cmp_attribs): Move from c-format.c and adjusted.
11126 (is_attribute_p): Moved from tree.h.
11127 * tree-inline.c: Add new includes.
11128 * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
11129 (private_is_attribute_p): Remove.
11130 (private_lookup_attribute): Likewise.
11131 (private_lookup_attribute_by_prefix): Simplify.
11132 (remove_attribute): Use is_attribute_p.
11133 * tree.h: Remove removed declarations.
11134
11135 2017-08-07 Jakub Jelinek <jakub@redhat.com>
11136
11137 PR middle-end/81698
11138 * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
11139 instead of computing it in the function. Formatting fix.
11140 (expand_case): Don't rely on default_edge being the first edge,
11141 clear it if removing it, pass default_edge to
11142 emit_case_dispatch_table.
11143 (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
11144 fix.
11145
11146 2017-08-06 Uros Bizjak <ubizjak@gmail.com>
11147
11148 * config/alpha/alpha.c (alpha_reorg): If trap is the last active
11149 insn in the function, emit NOP after the insn.
11150
11151 2017-08-06 Tom de Vries <tom@codesourcery.com>
11152
11153 * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
11154 and element loops.
11155
11156 2017-08-06 Tom de Vries <tom@codesourcery.com>
11157
11158 * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
11159 loop.
11160
11161 2017-08-04 Yury Gribov <tetra2005@gmail.com>
11162
11163 PR tree-optimization/57371
11164 * match.pd: New pattern.
11165
11166 2017-08-04 Marek Polacek <polacek@redhat.com>
11167
11168 PR middle-end/81695
11169 * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
11170 perform the computation in offset_int.
11171
11172 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
11173
11174 PR tree-optimization/81136
11175 * tree-vectorizer.h: Include tree-hash-traits.h.
11176 (vec_base_alignments): New typedef.
11177 (vec_info): Add a base_alignments field.
11178 (vect_record_base_alignments): Declare.
11179 * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
11180 field.
11181 (DR_IS_CONDITIONAL_IN_STMT): New macro.
11182 (create_data_ref): Add an is_conditional_in_stmt argument.
11183 * tree-data-ref.c (create_data_ref): Likewise. Use it to initialize
11184 the is_conditional_in_stmt field.
11185 (data_ref_loc): Add an is_conditional_in_stmt field.
11186 (get_references_in_stmt): Set the is_conditional_in_stmt field.
11187 (find_data_references_in_stmt): Update call to create_data_ref.
11188 (graphite_find_data_references_in_stmt): Likewise.
11189 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
11190 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
11191 (vect_record_base_alignment): New function.
11192 (vect_record_base_alignments): Likewise.
11193 (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
11194 for nested statements even if we fail to compute a misalignment.
11195 Use pooled base alignments for unconditional references.
11196 (vect_find_same_alignment_drs): Compare base addresses instead
11197 of base objects.
11198 (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
11199 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
11200
11201 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
11202
11203 * tree-vectorizer.h (vec_info): Add a constructor and destructor.
11204 Add an explicit name for the enum. Use auto_vec for slp_instances
11205 and grouped_stores.
11206 (_loop_vec_info): Add a constructor and destructor. Use auto_vec
11207 for all vectors.
11208 (_bb_vec_info): Add a constructor and destructor.
11209 (vinfo_for_stmt): Return NULL for uids of -1 as well.
11210 (destroy_loop_vec_info): Delete.
11211 (vect_destroy_datarefs): Likewise.
11212 * tree-vectorizer.c (vect_destroy_datarefs): Delete.
11213 (vec_info::vec_info): New function.
11214 (vec_info::~vec_info): Likewise.
11215 (vectorize_loops): Use delete instead of destroy_loop_vec_info.
11216 * tree-parloops.c (gather_scalar_reductions): Use delete instead of
11217 destroy_loop_vec_info.
11218 * tree-vect-loop.c (new_loop_vec_info): Replace with...
11219 (_loop_vec_info::_loop_vec_info): ...this.
11220 (destroy_loop_vec_info): Replace with...
11221 (_loop_vec_info::~_loop_vec_info): ...this. Unconditionally delete
11222 the stmt_vec_infos. Leave handling of vec_info information to its
11223 destructor. Remove explicit vector releases.
11224 (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
11225 (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
11226 * tree-vect-slp.c (new_bb_vec_info): Replace with...
11227 (_bb_vec_info::_bb_vec_info): ...this. Don't reserve space in
11228 BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
11229 (destroy_bb_vec_info): Replace with...
11230 (_bb_vec_info::~_bb_vec_info): ...this. Leave handling of vec_info
11231 information to its destructor.
11232 (vect_slp_analyze_bb_1): Use new and delete instead of
11233 new_bb_vec_info and destroy_bb_vec_info.
11234 (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
11235 single delete.
11236
11237 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
11238
11239 * tree-data-ref.h (subscript): Add access_fn field.
11240 (data_dependence_relation): Add could_be_independent_p.
11241 (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
11242 (same_access_functions): Move to tree-data-ref.c.
11243 * tree-data-ref.c (ref_contains_union_access_p): New function.
11244 (access_fn_component_p): Likewise.
11245 (access_fn_components_comparable_p): Likewise.
11246 (dr_analyze_indices): Add a reference to access_fn_component_p.
11247 (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
11248 DR_ACCESS_FN.
11249 (constant_access_functions): Likewise.
11250 (add_other_self_distances): Likewise.
11251 (same_access_functions): Likewise. (Moved from tree-data-ref.h.)
11252 (initialize_data_dependence_relation): Use XCNEW and remove
11253 explicit zeroing of DDR_REVERSED_P. Look for a subsequence
11254 of access functions that have the same type. Allow the
11255 subsequence to end with different bases in some circumstances.
11256 Record the chosen access functions in SUB_ACCESS_FN.
11257 (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
11258 a_index and b_index. Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
11259 (subscript_dependence_tester_1): Likewise dra and drb.
11260 (build_classic_dist_vector): Update calls accordingly.
11261 (subscript_dependence_tester): Likewise.
11262 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
11263 DDR_COULD_BE_INDEPENDENT_P.
11264 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
11265 comp_alias_ddrs instead of may_alias_ddrs.
11266 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
11267 New function.
11268 (vect_analyze_data_ref_dependence): Use it if
11269 DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
11270 distance vectors if that fails.
11271 (dependence_distance_ge_vf): New function.
11272 (vect_prune_runtime_alias_test_list): Use it. Don't clear
11273 LOOP_VINFO_MAY_ALIAS_DDRS.
11274
11275 2017-08-04 Richard Biener <rguenther@suse.de>
11276
11277 PR middle-end/81705
11278 * fold-const.c (fold_binary_loc): Properly restrict
11279 minus_var0 && minus_var1 case when associating undefined overflow
11280 entities.
11281
11282 2017-08-04 Tom de Vries <tom@codesourcery.com>
11283
11284 * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
11285
11286 2017-08-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11287
11288 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11289 Don't start diagnostic messages with a capital letter.
11290 * config/rs6000/rs6000.c (rs6000_option_override_internal):
11291 Likewise.
11292 (rs6000_invalid_builtin): Likewise.
11293 (rs6000_trampoline_init): Likewise.
11294
11295 2017-08-03 Jakub Jelinek <jakub@redhat.com>
11296
11297 PR target/81621
11298 * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
11299 after setting changeable df flags.
11300
11301 2017-08-03 Richard Biener <rguenther@suse.de>
11302
11303 * tree-ssa-reassoc.c (should_break_up_subtract): Also break
11304 up if the use is in USE - X.
11305
11306 2017-08-03 Alexander Monakov <amonakov@ispras.ru>
11307
11308 * toplev.c (dumpfile.h): New include.
11309 (internal_error_reentered): New static function. Use it...
11310 (internal_error_function): ...here to handle reentered internal_error.
11311
11312 2017-08-03 Richard Biener <rguenther@suse.de>
11313
11314 PR middle-end/81148
11315 * fold-const.c (split_tree): Add minus_var and minus_con
11316 arguments, remove unused loc arg. Never generate NEGATE_EXPRs
11317 here but always use minus_*.
11318 (associate_trees): Assert we never associate with MINUS_EXPR
11319 and NULL first operand. Do not recurse for PLUS_EXPR operands
11320 when associating as MINUS_EXPR either.
11321 (fold_binary_loc): Track minus_var and minus_con.
11322
11323 2017-08-03 Tom de Vries <tom@codesourcery.com>
11324
11325 PR lto/81430
11326 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
11327 ACCEL_COMPILER, apply finish_options on
11328 DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
11329
11330 2017-08-03 Tom de Vries <tom@codesourcery.com>
11331
11332 PR target/81662
11333 * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
11334 function_entry_patch_area_size > 0.
11335
11336 2017-08-03 Jakub Jelinek <jakub@redhat.com>
11337
11338 PR driver/81650
11339 * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
11340 instead of 10??LU, perform unit multiplication in wide_int,
11341 don't change alloc_object_size_limit if the limit is larger
11342 than SSIZE_MAX.
11343
11344 PR tree-optimization/81655
11345 PR tree-optimization/81588
11346 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
11347 the case when ranges[i].low and high are 1 for unsigned type with
11348 precision 1.
11349
11350 PR middle-end/81052
11351 * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
11352 (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
11353
11354 2017-08-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11355
11356 * tree-vrp.h: Add include guard.
11357
11358 2017-08-02 Uros Bizjak <ubizjak@gmail.com>
11359
11360 PR target/81644
11361 * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
11362 (ud2): New insn pattern.
11363 * config/i386/i386.c (ix86_expand_epilogue):
11364 For naked functions, generate ud2 instead of trap insn.
11365
11366 2017-08-02 Marek Polacek <polacek@redhat.com>
11367
11368 PR other/81667
11369 * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
11370
11371 2017-08-02 Tom de Vries <tom@codesourcery.com>
11372 Cesar Philippidis <cesar@codesourcery.com>
11373
11374 * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
11375 Add missing edge probabilities.
11376
11377 2017-08-02 Tamar Christina <tamar.christina@arm.com>
11378
11379 * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
11380 Correct endianness.
11381
11382 2017-08-02 Jakub Jelinek <jakub@redhat.com>
11383
11384 PR middle-end/79499
11385 * function.c (thread_prologue_and_epilogue_insns): Determine blocks
11386 for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
11387 of first NONDEBUG_INSN_P in each of the split_prologue_seq and
11388 prologue_seq sequences - if any.
11389
11390 2017-08-02 Richard Biener <rguenther@suse.de>
11391
11392 * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
11393 via vectors if supported, integer extracts via punning if supported
11394 or otherwise vector extracts.
11395
11396 2017-08-02 Richard Biener <rguenther@suse.de>
11397
11398 * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
11399 into ...
11400 (bitmap_insert_into_set): ... this.
11401
11402 2017-08-02 Richard Biener <rguenther@suse.de>
11403
11404 PR tree-optimization/81633
11405 Revert
11406 2015-08-17 Alan Hayward <alan.hayward@arm.com>
11407
11408 PR tree-optimization/71752
11409 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
11410
11411 2017-08-01 Daniel Santos <daniel.santos@pobox.com>
11412
11413 * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
11414 (machine_function::call_ms2sysv_pad_out): Remove field.
11415 * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
11416 (ix86_compute_frame_layout): Likewise.
11417
11418 2017-08-01 H.J. Lu <hongjiu.lu@intel.com>
11419
11420 PR target/81654
11421 * config/i386/i386.c (ix86_set_func_type): Disallow naked
11422 attribute with interrupt attribute.
11423
11424 2017-08-01 Andrew Pinski <apinski@cavium.com>
11425
11426 * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
11427 BIT_INSERT_EXPR's operand 1
11428 to see if the types precision matches.
11429
11430 2017-08-01 Martin Liska <mliska@suse.cz>
11431
11432 PR middle-end/70140
11433 * builtins.c (expand_builtin_memcpy_args): Remove.
11434 (expand_builtin_memcpy): Call newly added function
11435 expand_builtin_memory_copy_args.
11436 (expand_builtin_memcpy_with_bounds): Likewise.
11437 (expand_builtin_mempcpy): Remove last argument.
11438 (expand_builtin_mempcpy_with_bounds): Likewise.
11439 (expand_builtin_memory_copy_args): New function created from
11440 expand_builtin_mempcpy_args with small modifications.
11441 (expand_builtin_mempcpy_args): Remove.
11442 (expand_builtin_stpcpy): Remove unused argument.
11443 (expand_builtin): Likewise.
11444 (expand_builtin_with_bounds): Likewise.
11445
11446 2017-08-01 Martin Liska <mliska@suse.cz>
11447
11448 Revert r250771
11449 Make mempcpy more optimal (PR middle-end/70140).
11450
11451 2017-08-01 Jakub Jelinek <jakub@redhat.com>
11452
11453 PR target/81622
11454 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
11455 __builtin_vec_cmpne verify both arguments are compatible vectors
11456 before looking at TYPE_MODE on the element type. For __builtin_vec_ld
11457 verify arg1_type is a pointer or array type. For __builtin_vec_st,
11458 move computation of aligned to after checking the argument types.
11459 Formatting fixes.
11460
11461 PR target/80846
11462 * config/rs6000/vsx.md (vextract_fp_from_shorth,
11463 vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
11464 calls.
11465
11466 2017-08-01 Jerome Lambourg <lambourg@adacore.com>
11467 Doug Rupp <rupp@adacore.com>
11468 Olivier Hainque <hainque@adacore.com>
11469
11470 * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
11471 well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
11472 arm8 (arch v4).
11473 * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
11474 for TARGET_OS_CPP_BUILTIN.
11475 (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
11476 refine CPU definitions for arm_arch5 and add those for arm_arch6 and
11477 arm_arch7.
11478 (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
11479 passing required abi options to the assembler for EABI configurations.
11480 (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
11481 of .text.hot and .text.unlikely sections for kernel modules when
11482 using ARM style exceptions.
11483 (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
11484 options. Add EXTRA_CC1_SPEC.
11485 (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
11486 toolchain options.
11487 (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
11488 transition.
11489 (ARM_TARGET2_DWARF_FORMAT): Define.
11490 * config/arm/t-vxworks: Adjust multilib control to removal of the
11491 Diab command line options.
11492
11493 2017-08-01 Martin Liska <mliska@suse.cz>
11494
11495 PR gcov-profile/81561
11496 * gcov.c (unblock): Make unblocking safe as we need to preserve
11497 index correspondence of blocks and block_lists.
11498
11499 2017-08-01 Richard Biener <rguenther@suse.de>
11500
11501 PR tree-optimization/81181
11502 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
11503 (compute_antic): ... end of iteration here.
11504
11505 2017-08-01 James Greenhalgh <james.greenhalgh@arm.com>
11506
11507 * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
11508 (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
11509 (ftree-slp-vectorize): Likewise.
11510 * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
11511 can no longer be set independent of flag_tree_loop_vectorize.
11512 * omp-general.c (emp_max_vf): Likewise.
11513 * opts.c (enable_fdo_optimizations): Remove references to
11514 flag_tree_vectorize, these are now implicit.
11515 (common_handle_option): Remove handling for OPT_ftree_vectorize,
11516 and leave it for the options machinery.
11517
11518 2017-08-01 Martin Liska <mliska@suse.cz>
11519
11520 PR middle-end/70140
11521 * builtins.c (expand_builtin_memcpy_args): Remove.
11522 (expand_builtin_memcpy): Call newly added function
11523 expand_builtin_memory_copy_args.
11524 (expand_builtin_memcpy_with_bounds): Likewise.
11525 (expand_builtin_mempcpy): Remove last argument.
11526 (expand_builtin_mempcpy_with_bounds): Likewise.
11527 (expand_builtin_memory_copy_args): New function created from
11528 expand_builtin_mempcpy_args with small modifications.
11529 (expand_builtin_mempcpy_args): Remove.
11530 (expand_builtin_stpcpy): Remove unused argument.
11531 (expand_builtin): Likewise.
11532 (expand_builtin_with_bounds): Likewise.
11533
11534 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
11535
11536 PR target/81641
11537 * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
11538 print "ds:" only for immediates in generic address space.
11539
11540 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
11541
11542 PR target/81639
11543 * config/i386/i386.c (ix86_funciton_naked): New prototype.
11544 (ix86_function_ok_for_sibcall): Return false for naked functions.
11545
11546 2017-08-01 Richard Biener <rguenther@suse.de>
11547
11548 * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
11549 (compute_antic): Seed worklist with exit block predecessors.
11550 * cfganal.c (dfs_find_deadend): For a cycle return the source
11551 of the edge closing it.
11552
11553 2017-08-01 Tamar Christina <tamar.christina@arm.com>
11554
11555 * config/aarch64/aarch64.c
11556 (aarch64_can_const_movi_rtx_p): Move 0 check.
11557
11558 2017-08-01 Bin Cheng <bin.cheng@arm.com>
11559
11560 * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
11561 * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
11562 above macro.
11563 * match.pd: Ditto in address comparison pattern.
11564
11565 2017-08-01 Bin Cheng <bin.cheng@arm.com>
11566
11567 PR tree-optimization/81627
11568 * tree-predcom.c (prepare_finalizers): Always rewrite into loop
11569 closed ssa form for store-store chain.
11570
11571 2017-08-01 Bin Cheng <bin.cheng@arm.com>
11572
11573 PR tree-optimization/81620
11574 * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
11575 for store-store chain.
11576
11577 2017-08-01 Jakub Jelinek <jakub@redhat.com>
11578
11579 PR tree-optimization/81588
11580 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
11581 ranges[i].in_p, invert comparison code ccode. For >/>=,
11582 swap rhs1 and rhs2 and comparison code unconditionally,
11583 for </<= don't do that. Don't swap rhs1/rhs2 again if
11584 ranges[i].in_p, instead invert comparison code ccode if
11585 opcode or oe->rank is BIT_IOR_EXPR.
11586
11587 PR target/80846
11588 * optabs.def (vec_extract_optab, vec_init_optab): Change from
11589 a direct optab to conversion optab.
11590 * optabs.c (expand_vector_broadcast): Use convert_optab_handler
11591 with GET_MODE_INNER as last argument instead of optab_handler.
11592 * expmed.c (extract_bit_field_1): Likewise. Use vector from
11593 vector extraction if possible and optab is available.
11594 * expr.c (store_constructor): Use convert_optab_handler instead
11595 of optab_handler. Use vector initialization from smaller
11596 vectors if possible and optab is available.
11597 * tree-vect-stmts.c (vectorizable_load): Likewise.
11598 * doc/md.texi (vec_extract, vec_init): Document that the optabs
11599 now have two modes.
11600 * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
11601 of vec_init from half-sized vectors with the same element mode.
11602 * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
11603 (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
11604 (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
11605 reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
11606 reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
11607 after mode in gen_vec_extract* calls.
11608 (vec_extract<mode>): Renamed to ...
11609 (vec_extract<mode><ssescalarmodelower>): ... this.
11610 (vec_extract<mode><ssehalfvecmodelower>): New expander.
11611 (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
11612 element mode after mode in gen_vec_init* calls.
11613 (VEC_INIT_HALF_MODE): New mode iterator.
11614 (vec_init<mode>): Renamed to ...
11615 (vec_init<mode><ssescalarmodelower>): ... this.
11616 (vec_init<mode><ssehalfvecmodelower>): New expander.
11617 * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
11618 (vec_extractv2sfsf): ... this.
11619 (vec_initv2sf): Renamed to ...
11620 (vec_initv2sfsf): ... this.
11621 (vec_extractv2si): Renamed to ...
11622 (vec_extractv2sisi): ... this.
11623 (vec_initv2si): Renamed to ...
11624 (vec_initv2sisi): ... this.
11625 (vec_extractv4hi): Renamed to ...
11626 (vec_extractv4hihi): ... this.
11627 (vec_initv4hi): Renamed to ...
11628 (vec_initv4hihi): ... this.
11629 (vec_extractv8qi): Renamed to ...
11630 (vec_extractv8qiqi): ... this.
11631 (vec_initv8qi): Renamed to ...
11632 (vec_initv8qiqi): ... this.
11633 * config/rs6000/vector.md (VEC_base_l): New mode attribute.
11634 (vec_init<mode>): Renamed to ...
11635 (vec_init<mode><VEC_base_l>): ... this.
11636 (vec_extract<mode>): Renamed to ...
11637 (vec_extract<mode><VEC_base_l>): ... this.
11638 * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
11639 (vec_initv2sfsf): ... this.
11640 * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
11641 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
11642 vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
11643 element mode after mode in gen_vec_init* calls.
11644 * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
11645 (vec_init<mode><Vel>): ... this.
11646 (vec_extract<mode>): Renamed to ...
11647 (vec_extract<mode><Vel>): ... this.
11648 * config/aarch64/iterators.md (Vel): New mode attribute.
11649 * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
11650 Add element mode after mode in gen_vec_extract* calls.
11651 * config/s390/vector.md (non_vec_l): New mode attribute.
11652 (vec_extract<mode>): Renamed to ...
11653 (vec_extract<mode><non_vec_l>): ... this.
11654 (vec_init<mode>): Renamed to ...
11655 (vec_init<mode><non_vec_l>): ... this.
11656 * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
11657 s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
11658 vec_extract mode.
11659 * config/arm/iterators.md (V_elem_l): New mode attribute.
11660 * config/arm/neon.md (vec_extract<mode>): Renamed to ...
11661 (vec_extract<mode><V_elem_l>): ... this.
11662 (vec_extractv2di): Renamed to ...
11663 (vec_extractv2didi): ... this.
11664 (vec_init<mode>): Renamed to ...
11665 (vec_init<mode><V_elem_l>): ... this.
11666 (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
11667 reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
11668 reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
11669 Add element mode after gen_vec_extract* calls.
11670 * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
11671 (vec_init<mode><unitmode>): ... this.
11672 (vec_extract<mode>): Renamed to ...
11673 (vec_extract<mode><unitmode>): ... this.
11674 * config/mips/loongson.md (vec_init<mode>): Renamed to ...
11675 (vec_init<mode><unitmode>): ... this.
11676 * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
11677 (vec_initv2sfsf): ... this.
11678 (vec_extractv2sf): Renamed to ...
11679 (vec_extractv2sfsf): ... this.
11680 (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
11681 Add element mode after gen_vec_extract* calls.
11682 * config/mips/mips.md (unitmode): New mode iterator.
11683 * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
11684 spu_builtin_extract): Add element mode after gen_vec_extract* calls.
11685 * config/spu/spu.md (inner_l): New mode attribute.
11686 (vec_init<mode>): Renamed to ...
11687 (vec_init<mode><inner_l>): ... this.
11688 (vec_extract<mode>): Renamed to ...
11689 (vec_extract<mode><inner_l>): ... this.
11690 * config/sparc/sparc.md (veltmode): New mode iterator.
11691 (vec_init<VMALL:mode>): Renamed to ...
11692 (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
11693 * config/ia64/vect.md (vec_initv2si): Renamed to ...
11694 (vec_initv2sisi): ... this.
11695 (vec_initv2sf): Renamed to ...
11696 (vec_initv2sfsf): ... this.
11697 (vec_extractv2sf): Renamed to ...
11698 (vec_extractv2sfsf): ... this.
11699 * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
11700 (vec_init<mode>): Renamed to ...
11701 (vec_init<mode><VEC_base_l>): ... this.
11702 (vec_extract<mode>): Renamed to ...
11703 (vec_extract<mode><VEC_base_l>): ... this.
11704 * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
11705 (vec_initv2sfsf): ... this.
11706 * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
11707 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
11708 vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
11709 gen_vec_init* calls.
11710
11711 2017-08-01 Richard Biener <rguenther@suse.de>
11712
11713 PR tree-optimization/81297
11714 * tree-vrp.c (get_single_symbol): Remove assert, instead drop
11715 TREE_OVERFLOW from INTEGER_CSTs.
11716
11717 2017-07-31 Segher Boessenkool <segher@kernel.crashing.org>
11718
11719 * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
11720
11721 2017-07-31 Carl Love <cel@us.ibm.com>
11722
11723 * config/rs6000/rs6000-c: Add support for built-in functions
11724 vector signed char vec_xl_be (signed long long, signed char *);
11725 vector unsigned char vec_xl_be (signed long long, unsigned char *);
11726 vector signed int vec_xl_be (signed long long, signed int *);
11727 vector unsigned int vec_xl_be (signed long long, unsigned int *);
11728 vector signed long long vec_xl_be (signed long long, signed long long *);
11729 vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
11730 vector signed short vec_xl_be (signed long long, signed short *);
11731 vector unsigned short vec_xl_be (signed long long, unsigned short *);
11732 vector double vec_xl_be (signed long long, double *);
11733 vector float vec_xl_be (signed long long, float *);
11734 * config/rs6000/altivec.h (vec_xl_be): Add #define.
11735 * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
11736 XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
11737 for the builtins.
11738 * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
11739 (altivec_expand_builtin): Add switch statement to call
11740 altivec_expand_xl_be for each builtin.
11741 (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
11742 __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
11743 __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
11744 __builtin_vsx_le_be_v16qi.
11745 * doc/extend.texi: Update the built-in documentation file for the
11746 new built-in functions.
11747
11748 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
11749
11750 PR target/25967
11751 * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
11752 New function.
11753 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
11754
11755 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11756
11757 * config.gcc: Add z14.
11758 * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
11759 CPU model numbers for z13s and z14.
11760 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
11761 arch12 with z14.
11762 * config/s390/s390-opts.h (enum processor_type): Rename
11763 PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
11764 * config/s390/s390.c (processor_table): Add field for CPU name to
11765 be passed to Binutils.
11766 (s390_asm_output_machine_for_arch): Use the new field in
11767 processor_table for Binutils.
11768 (s390_expand_builtin): Replace arch12 with z14.
11769 (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
11770 (s390_get_sched_attrmask): Likewise.
11771 (s390_get_unit_mask): Likewise.
11772 * config/s390/s390.opt: Add z14 to processor_type enum.
11773
11774 2017-07-31 Martin Jambor <mjambor@suse.cz>
11775
11776 PR hsa/81477
11777 * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
11778 regardless of optimization level.
11779
11780 2017-07-31 Jan Hubicka <hubicka@ucw.cz>
11781 Martin Liska <mliska@suse.cz>
11782
11783 * predict.def: Remove old comment and adjust probability.
11784 * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
11785 PREDICT statements.
11786
11787 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
11788
11789 PR target/25967
11790 * config/i386/i386.c (ix86_function_naked): New function.
11791 (ix86_can_use_return_insn_p): Return false for naked functions.
11792 (ix86_expand_prologue): Skip prologue for naked functions.
11793 (ix86_expand_epilogue): Skip epilogue for naked functions
11794 and emit trap instruction.
11795 (ix86_warn_func_return): New function.
11796 (ix86_attribute_table): Add "naked" attribute specification.
11797 (TARGET_WARN_FUNC_RETURN): Define.
11798 * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
11799
11800 2017-07-31 Martin Liska <mliska@suse.cz>
11801
11802 * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
11803 (dump_gimple_bb_header): Always dump BB info.
11804 (pp_cfg_jump): Do not append info about BB when dumping a jump.
11805
11806 2017-07-31 Martin Liska <mliska@suse.cz>
11807
11808 PR sanitize/81530
11809 * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
11810 also with current_function_decl non-null equality.
11811
11812 2017-07-31 Jakub Jelinek <jakub@redhat.com>
11813
11814 PR sanitizer/81604
11815 * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
11816 change type to the element type, instead add eltype variable and
11817 use it where we are interested in the element type.
11818
11819 PR tree-optimization/81603
11820 * ipa-polymorphic-call.c
11821 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
11822 offset arithmetic in offset_int, bail out if the resulting bit offset
11823 doesn't fit into shwi.
11824
11825 2017-07-31 Martin Liska <mliska@suse.cz>
11826
11827 * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
11828 (gimplify_save_expr): Fix comment.
11829
11830 2017-07-30 H.J. Lu <hongjiu.lu@intel.com>
11831
11832 PR target/79793
11833 * config/i386/i386.c (ix86_function_arg): Update arguments for
11834 exception handler.
11835 (ix86_compute_frame_layout): Set the initial stack offset to
11836 INCOMING_FRAME_SP_OFFSET. Update red-zone offset with
11837 INCOMING_FRAME_SP_OFFSET.
11838 (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
11839 stack before exception handler returns.
11840 * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
11841 the 'ERROR_CODE' for exception handler.
11842
11843 2017-07-30 Uros Bizjak <ubizjak@gmail.com>
11844
11845 * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
11846 (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
11847 (ASM_OUTPUT_REG_POP): Ditto.
11848 * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
11849 instead of asm_fprintf to output pure string.
11850
11851 2017-07-29 Jakub Jelinek <jakub@redhat.com>
11852
11853 * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
11854 to imported_module_or_decl hook.
11855 (debug_nothing_tree_tree_tree_bool): Remove.
11856 (debug_nothing_tree_tree_tree_bool_bool): New declaration.
11857 * debug.c (do_nothing_debug_hooks): Use
11858 debug_nothing_tree_tree_tree_bool_bool instead of
11859 debug_nothing_tree_tree_tree_bool.
11860 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11861 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
11862 * sdbout.c (sdb_debug_hooks): Likewise.
11863 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
11864 (gen_namespace_die): Add DW_AT_export_symbols attribute if
11865 langhook wants it.
11866 (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
11867 if true, -gdwarf-5 and decl will have DW_AT_export_symbols
11868 attribute, don't add anything.
11869
11870 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11871
11872 * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
11873 (fold_build2_stat_loc): Likewise.
11874 (fold_build3_stat_loc): Likewise.
11875 * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
11876 (fold_build1_loc): Remove macro.
11877 (fold_build2_loc): Likewise.
11878 (fold_build3_loc): Likewise.
11879
11880 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11881
11882 * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
11883 (gimple_build_debug_bind_source_stat): Likewise.
11884 * gimple.h (gimple_build_debug_bind): Remove macro.
11885 (gimple_build_debug_bind_source): Likewise.
11886
11887 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11888
11889 * bitmap.c (bitmap_alloc): Adjust.
11890 (bitmap_gc_alloc): Likewise.
11891 * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
11892
11893 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11894
11895 * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
11896 (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
11897 * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
11898 (bitmap_gc_alloc_stat): Likewise.
11899 (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
11900
11901 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11902
11903 * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
11904 * rtl.h (shallow_copy_rtx): Remove macro.
11905
11906 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11907
11908 * emit-rtl.c (gen_raw_REG): Adjust.
11909 * gengenrtl.c (gendef): Likewise.
11910 * rtl.c (rtx_alloc_stat): Remove _stat from name.
11911 * rtl.h (rtx_alloc): Remove macro.
11912
11913 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11914
11915 * tree.c (build_tree_list_vec_stat): Remove _stat from name.
11916 (build_tree_list_stat): Likewise.
11917 * tree.h (build_tree_list): Remove macro.
11918 (build_tree_list_vec): Likewise.
11919
11920 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11921
11922 * tree.c (make_vector_stat): Remove _stat from name.
11923 (build_vector_stat): Likewise.
11924 * tree.h (make_vector_stat): Remove macro.
11925 (build_vector_stat): Likewise.
11926
11927 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11928
11929 * tree.h (build_var_debug_value): Remove prototype.
11930
11931 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11932
11933 * tree.c (tree_cons_stat): Remove _stat from name.
11934 * tree.h (tree_cons): Remove macro.
11935
11936 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11937
11938 * tree.c (build_vl_exp_stat): Remove _stat from name.
11939 * tree.h (build_vl_exp): Remove macro.
11940
11941 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11942
11943 * tree.c (build_decl_stat): Remove _stat from name.
11944 * tree.h (build_decl): Remove macro.
11945
11946 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11947
11948 * gimple.c (gimple_build_with_ops_stat): Adjust.
11949 (gimple_alloc_stat): Remove _stat from name.
11950 * gimple.h (gimple_alloc): Remove macro.
11951
11952 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11953
11954 * tree.c (make_tree_vec_stat): Remove _stat from name.
11955 (grow_tree_vec_stat): Likewise.
11956 * tree.h (make_tree_vec_stat): Adjust prototype.
11957 (grow_tree_vec_stat): Likewise.
11958 (make_tree_vec): Remove macro.
11959 (grow_tree_vec): Likewise.
11960
11961 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11962
11963 * fold-const.c (fold_build1_stat_loc): Adjust.
11964 (fold_build2_stat_loc): Likewise.
11965 (fold_build3_stat_loc): Likewise.
11966 * tree.c (build0_stat): Remove _stat from name.
11967 (build1_stat): Likewise.
11968 (build2_stat): Likewise.
11969 (build3_stat): Likewise.
11970 (build4_stat): Likewise.
11971 (build5_stat): Likewise.
11972 * tree.h (build1_loc): Remove macro, and rename _stat function
11973 to this.
11974 (build2_loc): Likewise.
11975 (build3_loc): Likewise.
11976 (build4_loc): Likewise.
11977 (build5_loc): Likewise.
11978
11979 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11980
11981 * tree.c (make_int_cst_stat): Remove _stat from name.
11982 * tree.h (make_int_cst_stat): Adjust prototype.
11983 (make_int_cst): Remove macro.
11984
11985 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11986
11987 * tree.c (make_tre_binfo_stat): Remove _stat from name.
11988 * tree.h (make_tree_binfo_stat): Adjust prototype.
11989 (make_tree_binfo): Remove.
11990
11991 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11992
11993 * tree.c (copy_node_stat): Rename to copy_node.
11994 (build_distinct_type_copy): Adjust.
11995 * tree.h (copy_node_stat): Adjust prototype.
11996 (copy_node): Remove macro.
11997
11998 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11999
12000 * tree.c (make_node_stat): rename to make_node.
12001 (build_tree_list_stat): Adjust.
12002 (build0_stat): Likewise.
12003 (build2_stat): Likewise.
12004 (build3_stat): Likewise.
12005 (build4_stat): Likewise.
12006 (build5_stat): Likewise.
12007 (build_decl_stat): Likewise.
12008 * tree.h (make_node_stat): Adjust prototype.
12009 (make_node): remove macro.
12010
12011 2017-07-28 Peter Bergner <bergner@vnet.ibm.com>
12012
12013 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
12014 (PPC_FEATURE2_SCV): Likewise.
12015 * config/rs6000/rs6000.c (cpu_supports_info): Use them.
12016
12017 2017-07-28 Tamar Christina <tamar.christina@arm.com>
12018
12019 * config/aarch64/aarch64.c
12020 (aarch64_internal_mov_immediate): Add new special pattern.
12021 * config/aarch64/aarch64.md (*movdi_aarch64):
12022 Add reg/32bit const mov case.
12023
12024 2017-07-28 Tamar Christina <tamar.christina@arm.com>
12025 Richard Sandiford <richard.sandiford@linaro.org>
12026
12027 * config/aarch64/aarch64.md (mov<mode>): Generalize.
12028 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
12029 Add integer and movi cases.
12030 (movi-split-hf-df-sf split, fp16): New.
12031 (enabled): Added TARGET_FP_F16INST.
12032 * config/aarch64/iterators.md (GPF_HF): New.
12033 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
12034
12035 2017-07-28 Tamar Christina <tamar.christina@arm.com>
12036
12037 * config/aarch64/aarch64.c
12038 (aarch64_simd_container_mode): Add prototype.
12039 (aarch64_expand_mov_immediate): Add HI support.
12040 (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
12041 (aarch64_can_const_movi_rtx_p): New.
12042 (aarch64_preferred_reload_class):
12043 Remove restrictions of using FP registers for certain SIMD operations.
12044 (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
12045 (aarch64_valid_floating_const): Add integer move validation.
12046 (aarch64_simd_imm_scalar_p): Remove.
12047 (aarch64_output_scalar_simd_mov_immediate): Generalize function.
12048 (aarch64_legitimate_constant_p): Expand list of supported cases.
12049 * config/aarch64/aarch64-protos.h
12050 (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
12051 (aarch64_reinterpret_float_as_int): New.
12052 (aarch64_simd_imm_scalar_p): Remove.
12053 * config/aarch64/constraints.md (Uvi): New.
12054 (Dd): Split into Ds and new Dd.
12055 * config/aarch64/aarch64.md (*movsi_aarch64):
12056 Add SIMD mov case.
12057 (*movdi_aarch64): Add SIMD mov case.
12058
12059 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12060
12061 * tree-predcom.c: (struct chain): Handle store-store chain in which
12062 stores for elimination only store loop invariant values.
12063 (execute_pred_commoning_chain): Ditto.
12064 (prepare_initializers_chain_store_elim): Ditto.
12065 (prepare_finalizers): Ditto.
12066 (is_inv_store_elimination_chain): New function.
12067 (initialize_root_vars_store_elim_1): New function.
12068
12069 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12070
12071 * tree-predcom.c: Revise general description of the pass.
12072 (enum chain_type): New enum type for store elimination.
12073 (struct chain): New field supporting store elimination.
12074 (struct component): Ditto.
12075 (dump_chain): Dump store-stores chain.
12076 (release_chain): Release resources.
12077 (split_data_refs_to_components): Compute and create component
12078 contains only stores for elimination.
12079 (get_chain_last_ref_at): New function.
12080 (make_invariant_chain): Initialization.
12081 (make_rooted_chain): Specify chain type in parameter and record it.
12082 (add_looparound_copies): Skip for store-stores chain.
12083 (determine_roots_comp): Compute type of chain and pass it to
12084 make_rooted_chain.
12085 (initialize_root_vars_store_elim_2): New function.
12086 (finalize_eliminated_stores): New function.
12087 (remove_stmt): Handle store for elimination.
12088 (execute_pred_commoning_chain): Execute predictive commoning on
12089 store-store chains.
12090 (determine_unroll_factor): Skip unroll for store-stores chain.
12091 (prepare_initializers_chain_store_elim): New function.
12092 (prepare_initializers_chain): Hanlde store-store chain.
12093 (prepare_finalizers_chain, prepare_finalizers): New function.
12094 (tree_predictive_commoning_loop): Return integer value indicating
12095 if loop is unrolled or lcssa form is corrupted.
12096 (tree_predictive_commoning): Rewrite for lcssa form if necessary.
12097
12098 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12099
12100 * tree-predcom.c (initialize_root): Delete.
12101 (execute_pred_commoning_chain): Initialize root vars and replace
12102 reference of non-combined chain directly, rather than call above
12103 function.
12104
12105 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12106
12107 * tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute
12108 memory reference to DR at (NITERS + ITERS)-th iteration of loop.
12109
12110 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12111
12112 * tree-predcom.c (struct chain): New field init_seq.
12113 (release_chain): Release init_seq.
12114 (prepare_initializers_chain): Record intialization stmts in above
12115 field.
12116 (insert_init_seqs): New function.
12117 (tree_predictive_commoning_loop): Call insert_init_seqs.
12118
12119 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12120
12121 * tree-predcom.c (determine_roots_comp): Skip trivial components.
12122
12123 2017-07-28 Richard Biener <rguenther@suse.de>
12124
12125 * match.pd: Remove superfluous :c.
12126 * genmatch.c (simplify::id): Add member.
12127 (lower_commutative, lower_opt_convert, lower_cond, lower_for):
12128 Copy id.
12129 (current_id): New global.
12130 (dt_node::parent): Move from ...
12131 (dt_operand::parent): ... here. Add for_id member.
12132 (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
12133 (decision_tree::find_node): Relax order requirement when
12134 merging DT_TRUE nodes to ones inbetween the current simplify
12135 and the one we try to merge with. Add diagnostic whenever
12136 we need to enforce pattern order by not merging.
12137 (decision_tree::insert): Set current_id.
12138 (decision_tree::print_node): Dump parent node and for_id.
12139 (parser::last_id): Add member.
12140 (parser::push_simplify): Assign unique id.
12141 (parser::parser): Initialize last_id.
12142
12143 2017-07-28 Martin Liska <mliska@suse.cz>
12144
12145 PR sanitizer/81340
12146 * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
12147 gimple_build_debug_bind.
12148
12149 2017-07-28 Richard Biener <rguenther@suse.de>
12150
12151 PR tree-optimization/81502
12152 * match.pd: Add pattern combining BIT_INSERT_EXPR with
12153 BIT_FIELD_REF.
12154 * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
12155 size/pos operands.
12156 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
12157 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
12158 for BIT_FIELD_REF args.
12159 * fold-const.c (make_bit_field_ref): Likewise.
12160 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
12161
12162 2017-07-28 Jakub Jelinek <jakub@redhat.com>
12163
12164 PR sanitizer/80998
12165 * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
12166 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
12167 * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
12168 Or it into SANITIZER_UNDEFINED.
12169 * ubsan.c: Include gimple-fold.h and varasm.h.
12170 (ubsan_expand_ptr_ifn): New function.
12171 (instrument_pointer_overflow): New function.
12172 (maybe_instrument_pointer_overflow): New function.
12173 (instrument_object_size): Formatting fix.
12174 (pass_ubsan::execute): Call instrument_pointer_overflow
12175 and maybe_instrument_pointer_overflow.
12176 * internal-fn.c (expand_UBSAN_PTR): New function.
12177 * ubsan.h (ubsan_expand_ptr_ifn): Declare.
12178 * sanitizer.def (__ubsan_handle_pointer_overflow,
12179 __ubsan_handle_pointer_overflow_abort): New builtins.
12180 * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
12181 * internal-fn.def (UBSAN_PTR): New internal function.
12182 * opts.c (sanitizer_opts): Add pointer-overflow.
12183 * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
12184 * fold-const.c (build_range_check): Compute pointer range check in
12185 integral type if pointer arithmetics would be needed. Formatting
12186 fixes.
12187
12188 2017-07-28 Martin Liska <mliska@suse.cz>
12189
12190 PR sanitizer/81460
12191 * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
12192 parameters that are of a variable-length.
12193
12194 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
12195
12196 * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add
12197 rs6000/biarch64.h.
12198 * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
12199 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
12200 (CRT_CALL_STATIC_FUNCTION): Likewise.
12201 (ASM_DEFAULT_SPEC): New define.
12202 (ASM_SPEC32): Likewise.
12203 (ASM_SPEC64): Likewise.
12204 (ASM_SPEC_COMMON): Likewise.
12205 (ASM_SPEC): Likewise.
12206 (INVALID_64BIT): Likewise.
12207 (LINK_OS_DEFAULT_SPEC): Likewise.
12208 (LINK_OS_SPEC32): Likewise.
12209 (LINK_OS_SPEC64): Likewise.
12210 (POWERPC_LINUX): Likewise.
12211 (PTRDIFF_TYPE): Likewise.
12212 (RESTORE_FP_PREFIX): Likewise.
12213 (RESTORE_FP_SUFFIX): Likewise.
12214 (SAVE_FP_PREFIX): Likewise.
12215 (SAVE_FP_SUFFIX): Likewise.
12216 (SIZE_TYPE): Likewise.
12217 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
12218 (TARGET_64BIT): Likewise.
12219 (TARGET_64BIT): Likewise.
12220 (TARGET_AIX): Likewise.
12221 (WCHAR_TYPE_SIZE): Likewise.
12222 (WCHAR_TYPE): Undefine.
12223 (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
12224 (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
12225 (CPP_OS_RTEMS_SPEC): Delete.
12226 (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add
12227 asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
12228 link_os_spec64.
12229 * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
12230
12231 2017-07-28 Jakub Jelinek <jakub@redhat.com>
12232
12233 PR tree-optimization/81578
12234 * tree-parloops.c (build_new_reduction): Bail out if
12235 reduction_code isn't one of the standard OpenMP reductions.
12236 Move the details printing after that decision.
12237
12238 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
12239
12240 * config/rs6000/predicates.md (volatile_mem_operand): Remove code
12241 related to reload_in_progress.
12242 (splat_input_operand): Likewise.
12243 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
12244 Delete prototype.
12245 * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
12246 field.
12247 (TARGET_EXPAND_TO_RTL_HOOK): Delete.
12248 (TARGET_INSTANTIATE_DECLS): Likewise.
12249 (legitimate_indexed_address_p): Delete reload_in_progress code.
12250 (rs6000_debug_legitimate_address_p): Likewise.
12251 (rs6000_eliminate_indexed_memrefs): Likewise.
12252 (rs6000_emit_le_vsx_store): Likewise.
12253 (rs6000_emit_move_si_sf_subreg): Likewise.
12254 (rs6000_emit_move): Likewise.
12255 (register_to_reg_type): Likewise.
12256 (rs6000_pre_atomic_barrier): Likewise.
12257 (rs6000_machopic_legitimize_pic_address): Likewise.
12258 (rs6000_allocate_stack_temp): Likewise.
12259 (rs6000_address_for_fpconvert): Likewise.
12260 (rs6000_address_for_altivec): Likewise.
12261 (rs6000_secondary_memory_needed_rtx): Delete function.
12262 (rs6000_check_sdmode): Likewise.
12263 (rs6000_alloc_sdmode_stack_slot): Likewise.
12264 (rs6000_instantiate_decls): Likewise.
12265 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
12266 * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
12267 Delete reload_in_progress.
12268 (*vec_reload_and_plus_<mptrsize>): Likewise.
12269 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
12270 (vsx_div_v2di): Likewise.
12271 (vsx_udiv_v2di): Likewise.
12272
12273 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
12274
12275 * config/rs6000/rs6000.opt (mlra): Replace with stub.
12276 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
12277 * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
12278 (rs6000_debug_reg_global): Delete print of LRA status.
12279 (rs6000_option_override_internal): Delete dead LRA related code.
12280 (rs6000_lra_p): Delete function.
12281 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
12282
12283 2017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
12284
12285 * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
12286 * config/riscv/rtems.h: New file.
12287
12288 2017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12289 Sudakshina Das <sudi.das@arm.com>
12290
12291 * config/aarch64/aarch64.md
12292 (define_split for and<mode>3nr_compare): Move
12293 non aarch64_logical_operand to a register.
12294 (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
12295 register immediate operand to a register.
12296 * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
12297
12298 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
12299
12300 PR middle-end/81564
12301 * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
12302
12303 2017-07-27 Richard Biener <rguenther@suse.de>
12304
12305 PR tree-optimization/81573
12306 PR tree-optimization/81494
12307 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
12308 multi defuse cycle case.
12309
12310 2017-07-27 Richard Biener <rguenther@suse.de>
12311
12312 PR tree-optimization/81571
12313 * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
12314 PHIs.
12315
12316 2017-07-27 Eric Botcazou <ebotcazou@adacore.com>
12317
12318 * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
12319 earlier and only if MASK_FPU is set. Adjust formatting.
12320
12321 2017-07-27 Martin Liska <mliska@suse.cz>
12322
12323 * opt-functions.awk: Add validation of value of Init.
12324 * optc-gen.awk: Pass new argument.
12325
12326 2017-07-27 Martin Liska <mliska@suse.cz>
12327
12328 * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
12329 Fix wrong condition.
12330
12331 2017-07-27 Martin Liska <mliska@suse.cz>
12332
12333 * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
12334 BBs and edges seen by autoFDO.
12335
12336 2017-07-27 Richard Biener <rguenther@suse.de>
12337
12338 PR tree-optimization/81502
12339 * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
12340 with incompatible but same sized type.
12341 (execute_update_addresses_taken): Likewise.
12342
12343 2017-07-27 James Greenhalgh <james.greenhalgh@arm.com>
12344
12345 * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
12346 flag_tree_loop_vectorize rather than flag_tree_vectorize.
12347
12348 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12349
12350 PR target/81534
12351 * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
12352 ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
12353 Change s_operand to memory_operand.
12354
12355 2017-07-27 Richard Sandiford <richard.sandiford@linaro.org>
12356
12357 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
12358 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
12359 (rs6000_emit_le_vsx_permute): ...this. Take the destination as input.
12360 Emit instructions rather than returning an expression. Handle TFmode
12361 and KFmode by casting to TImode.
12362 (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
12363 (rs6000_emit_le_vsx_store): Likewise.
12364 * config/rs6000/vsx.md (VSX_TI): New iterator.
12365 (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
12366 (*vsx_le_undo_permute_<mode>): Likewise.
12367 (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
12368 emit the split sequence.
12369 (*vsx_le_perm_store_<mode>): Likewise.
12370
12371 2017-07-27 Jakub Jelinek <jakub@redhat.com>
12372
12373 PR tree-optimization/81555
12374 PR tree-optimization/81556
12375 * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
12376 if true, force CHANGED for the recursive invocation.
12377 (reassociate_bb): Remember original length of ops array, pass
12378 len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
12379
12380 * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
12381 attributes for noipa attribute. For naked attribute use
12382 lookup_attribute first before lookup_attribute_spec.
12383 * final.c (rest_of_handle_final): Disable IPA RA for functions with
12384 noipa attribute.
12385 * ipa-visibility.c (non_local_p): Fix comment typos. Return true
12386 for functions with noipa attribute.
12387 (cgraph_externally_visible_p): Return true for functions with noipa
12388 attribute.
12389 * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
12390 for functions with noipa attribute.
12391 * doc/extend.texi: Document noipa function attribute.
12392 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
12393 also for functions with noipa attribute.
12394 (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
12395
12396 2017-07-26 Andrew Pinski <apinski@cavium.com>
12397
12398 * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
12399 vec_unalign_load_cost and vec_unalign_store_cost.
12400
12401 2017-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12402
12403 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
12404 -mvsx-small-integer option.
12405 (ISA_3_0_MASKS_IEEE): Likewise.
12406 (OTHER_VSX_VECTOR_MASKS): Likewise.
12407 (POWERPC_MASKS): Likewise.
12408 * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
12409 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
12410 code, only testing for DImode being allowed in non-VSX floating
12411 point registers.
12412 (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
12413 to TARGET_P8_VECTOR test. Remove redundant VSX test inside of
12414 another VSX test.
12415 (rs6000_option_override_internal): Delete -mvsx-small-integer.
12416 (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
12417 TARGET_P8_VECTOR test.
12418 (rs6000_secondary_reload_simple_move): Likewise.
12419 (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
12420 since TARGET_P9_VECTOR was already tested.
12421 (rs6000_opt_masks): Remove -mvsx-small-integer.
12422 * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
12423 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
12424 used.
12425 (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
12426 test for TARGET_VEXTRACTUB was used, and that uses
12427 TARGET_P9_VECTOR.
12428 (p9 extract splitter): Likewise.
12429 (vsx_extract_<mode>_di_p9): Likewise.
12430 (vsx_extract_<mode>_store_p9): Likewise.
12431 (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
12432 for TARGET_P9_VECTOR was used. Delete code that is now dead with
12433 the elimination of TARGET_VSX_SMALL_INTEGER.
12434 (vsx_extract_<mode>_p8): Likewise.
12435 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
12436 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
12437 (vsx_set_<mode>_p9): Likewise.
12438 (vsx_set_v4sf_p9): Likewise.
12439 (vsx_set_v4sf_p9_zero): Likewise.
12440 (vsx_insert_extract_v4sf_p9): Likewise.
12441 (vsx_insert_extract_v4sf_p9_2): Likewise.
12442 * config/rs6000/rs6000.md (sign extend splitter): Change
12443 TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
12444 (floatsi<mode>2_lfiwax_mem): Likewise.
12445 (floatunssi<mode>2_lfiwzx_mem): Likewise.
12446 (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
12447 since a test for TARGET_P9_VECTOR was used.
12448 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
12449 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
12450 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
12451 (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
12452 TARGET_P8_VECTOR test.
12453 (fix_trunc<mode>si2_stfiwx): Likewise.
12454 (fix_trunc<mode>si2_internal): Likewise.
12455 (fix_trunc<SFDF:mode><QHI:mode>2): Delete
12456 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
12457 used.
12458 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
12459 (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
12460 TARGET_P8_VECTOR test.
12461 (fixuns_trunc<mode>si2_stfiwx): Likewise.
12462 (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
12463 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
12464 used.
12465 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
12466 (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
12467 since a test for TARGET_P9_VECTOR was used.
12468 (splitter for loading small constants): Likewise.
12469
12470 2017-07-26 Andrew Pinski <apinski@cavium.com>
12471
12472 * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
12473 vec_fp_stmt_cost.
12474
12475 2017-07-26 H.J. Lu <hongjiu.lu@intel.com>
12476
12477 PR target/81563
12478 * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
12479 (fp_valid_at): Likewise.
12480
12481 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
12482
12483 * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
12484 (qdf24xx_addrcost_table): Likewise.
12485 (cortexa57_tunings): Update to use generic_branch_cost.
12486 (cortexa72_tunings): Likewise.
12487 (cortexa73_tunings): Likewise.
12488 (qdf24xx_tunings): Likewise.
12489
12490 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
12491
12492 * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
12493 (thunderx2t99_branch_cost): Likewise.
12494 (cortexa35_tunings): Update to use generic_branch_cost.
12495 (cortexa53_tunings): Likewise.
12496 (cortexa57_tunings): Likewise.
12497 (cortexa72_tunings): Likewise.
12498 (cortexa73_tunings): Likewise.
12499 (thunderx2t99_tunings): Likewise.
12500
12501 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
12502
12503 * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
12504 (sparc_option_override): Honour MASK_FSMULD.
12505 * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
12506 * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
12507 * config/sparc/sparc.opt (mfsmuld): New option.
12508 * doc/invoke.texi (mfsmuld): Document option.
12509
12510 2017-07-26 Marek Polacek <polacek@redhat.com>
12511
12512 PR middle-end/70992
12513 * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
12514
12515 2017-07-26 Richard Biener <rguenther@suse.de>
12516
12517 * gimple-match-head.c (do_valueize): Return OP if valueize
12518 returns NULL_TREE.
12519 (get_def): New helper to get at the def stmt of a SSA name
12520 if valueize allows.
12521 * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
12522 do_valueize to get at the def stmt.
12523 (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
12524
12525 2017-07-26 Wilco Dijkstra <wdijkstr@arm.com>
12526
12527 PR middle-end/46932
12528 * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
12529
12530 2017-07-26 Martin Liska <mliska@suse.cz>
12531
12532 PR sanitize/81186
12533 * function.c (expand_function_start): Make expansion of
12534 nonlocal_goto_save_area after parm_birth_insn.
12535
12536 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
12537
12538 * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
12539 from all CPU target flags enable members.
12540
12541 2017-07-26 Richard Biener <rguenther@suse.de>
12542
12543 * genmatch.c (dt_simplify::gen): Make iterator vars const.
12544 (decision_tree::gen): Make 'type' const.
12545 (write_predicate): Likewise.
12546
12547 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
12548
12549 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
12550 Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
12551 (rs6000_option_override_internal): Likewise.
12552 (rs6000_expand_vector_set): Likewise.
12553 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
12554 (TARGET_UPPER_REGS_SF): Likewise.
12555 (TARGET_UPPER_REGS_DI): Likewise.
12556 (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
12557 (TARGET_DIRECT_MOVE_64BIT): Likewise.
12558 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
12559 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
12560 (Splitters for DI constants in Altivec registers): Likewise.
12561 * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
12562 (vsx_set_v4sf_p9): Likewise.
12563 (vsx_set_v4sf_p9_zero): Likewise.
12564 (vsx_insert_extract_v4sf_p9): Likewise.
12565 (vsx_insert_extract_v4sf_p9_2): Likewise.
12566
12567 2017-07-25 Carl Love <cel@us.ibm.com>
12568
12569 * doc/extend.texi: Update the built-in documentation file for the
12570 existing built-in functions
12571 vector signed char vec_cnttz (vector signed char);
12572 vector unsigned char vec_cnttz (vector unsigned char);
12573 vector signed short vec_cnttz (vector signed short);
12574 vector unsigned short vec_cnttz (vector unsigned short);
12575 vector signed int vec_cnttz (vector signed int);
12576 vector unsigned int vec_cnttz (vector unsigned int);
12577 vector signed long long vec_cnttz (vector signed long long);
12578 vector unsigned long long vec_cnttz (vector unsigned long long);
12579
12580 2017-07-25 Andrew Pinski <apinski@cavium.com>
12581
12582 * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
12583 accesses where the use is for the first operand of a BIT_INSERT.
12584
12585 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
12586
12587 PR bootstrap/81521
12588 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
12589 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
12590
12591 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
12592
12593 * config/i386/gstabs.h: Delete.
12594 * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
12595
12596 2017-07-25 Uros Bizjak <ubizjak@gmail.com>
12597
12598 * config/i386/i386.c (ix86_decompose_address): Do not check for
12599 register RTX when looking at index_reg or base_reg.
12600 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
12601
12602 2017-07-25 Eric Botcazou <ebotcazou@adacore.com>
12603
12604 * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
12605 to update EH info here.
12606
12607 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
12608
12609 * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
12610
12611 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
12612
12613 * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
12614
12615 2017-07-25 Torsten Duwe <duwe@suse.de>
12616
12617 * common.opt: Introduce -fpatchable-function-entry
12618 command line option, and its variables function_entry_patch_area_size
12619 and function_entry_patch_area_start.
12620 * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
12621 including a two-value parser.
12622 * target.def (print_patchable_function_entry): New target hook.
12623 * targhooks.h (default_print_patchable_function_entry): New function.
12624 * targhooks.c (default_print_patchable_function_entry): Likewise.
12625 * toplev.c (process_options): Switch off IPA-RA if
12626 patchable function entries are being generated.
12627 * varasm.c (assemble_start_function): Look at the
12628 patchable-function-entry command line switch and current
12629 function attributes and maybe generate NOP instructions by
12630 calling the print_patchable_function_entry hook.
12631 * doc/extend.texi: Document patchable_function_entry attribute.
12632 * doc/invoke.texi: Document -fpatchable_function_entry
12633 command line option.
12634 * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
12635 New target hook.
12636 * doc/tm.texi: Re-generate.
12637
12638 2017-07-25 Jakub Jelinek <jakub@redhat.com>
12639
12640 PR target/81532
12641 * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
12642 TARGET_AVX512DQ rather than TARGET_AVX512BW.
12643
12644 2017-07-25 Tamar Christina <tamar.christina@arm.com>
12645
12646 * config/arm/parsecpu.awk (all_cores): Remove duplicates.
12647
12648 2017-07-25 Richard Biener <rguenther@suse.de>
12649
12650 PR tree-optimization/81455
12651 * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
12652 not walk in cycles when looking for guards.
12653
12654 2017-07-25 Richard Biener <rguenther@suse.de>
12655
12656 PR tree-optimization/81529
12657 * tree-vect-stmts.c (process_use): Disregard live induction PHIs
12658 when optimizing backedge uses.
12659
12660 2017-07-25 David Edelsohn <dje.gcc@gmail.com>
12661
12662 * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
12663 character for AIX.
12664 * dwarf2out.c (output_macinfo): Copy debug_line_section_label
12665 to dl_section_ref. On AIX, append an expression to subtract
12666 the size of the section length to dl_section_ref.
12667
12668 2017-07-25 Segher Boessenkool <segher@kernel.crashing.org>
12669
12670 * configure.ac: If any of the config.* scripts fail, exit 1.
12671 * configure: Regenerate.
12672
12673 2017-07-25 Richard Biener <rguenther@suse.de>
12674
12675 PR middle-end/81546
12676 * tree-ssa-operands.c (verify_imm_links): Remove cap on number
12677 of immediate uses, be more verbose on errors.
12678
12679 2017-07-25 Richard Biener <rguenther@suse.de>
12680
12681 PR tree-optimization/81510
12682 * tree-vect-loop.c (vect_is_simple_reduction): When the
12683 reduction stmt is not inside the loop bail out.
12684
12685 2017-07-25 Richard Biener <rguenther@suse.de>
12686
12687 PR tree-optimization/81303
12688 * tree-vect-loop-manip.c (vect_loop_versioning): Build
12689 profitability check against LOOP_VINFO_NITERSM1.
12690
12691 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
12692
12693 * domwalk.c (cmp_bb_postorder): Simplify.
12694 (sort_bbs_postorder): New function. Use it...
12695 (dom_walker::walk): ...here to optimize common cases.
12696
12697 2017-07-25 Martin Liska <mliska@suse.cz>
12698
12699 PR ipa/81520
12700 * ipa-visibility.c (function_and_variable_visibility): Make the
12701 redirection just on target that supports aliasing.
12702 Fix GNU coding style.
12703
12704 2017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
12705
12706 PR libgcc/61152
12707 * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
12708 Format changes.
12709 * config/arm/rtems.h: Likewise.
12710 * config/bfin/rtems.h: Likewise.
12711 * config/i386/rtemself.h: Likewise.
12712 * config/lm32/rtems.h: Likewise.
12713 * config/m32c/rtems.h: Likewise.
12714 * config/m68k/rtemself.h: Likewise.
12715 * config/microblaze/rtems.h: Likewise.
12716 * config/mips/rtems.h: Likewise.
12717 * config/moxie/rtems.h: Likewise.
12718 * config/nios2/rtems.h: Likewise.
12719 * config/powerpcspe/rtems.h: Likewise.
12720 * config/rs6000/rtems.h: Likewise.
12721 * config/rtems.h: Likewise.
12722 * config/sh/rtems.h: Likewise.
12723 * config/sh/rtemself.h: Likewise.
12724 * config/sparc/rtemself.h: Likewise.
12725
12726 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
12727
12728 PR 81487
12729 * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
12730 * gimple-pretty-print.c (dump_profile, dump_probability): Same.
12731 * tree-ssa-structalias.c (alias_get_name): Same.
12732
12733 2017-07-25 Bin Cheng <bin.cheng@arm.com>
12734
12735 PR target/81414
12736 * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
12737 instructions if no du chain is found.
12738
12739 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
12740
12741 * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
12742
12743 2017-07-25 Richard Biener <rguenther@suse.de>
12744
12745 PR middle-end/81505
12746 * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
12747 sticky.
12748
12749 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
12750
12751 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
12752 upper-regs options.
12753 (ISA_2_7_MASKS_SERVER): Likewise.
12754 (ISA_3_0_MASKS_IEEE): Likewise.
12755 (OTHER_P8_VECTOR_MASKS): Likewise.
12756 (OTHER_VSX_VECTOR_MASKS): Likewise.
12757 (POWERPC_MASKS): Likewise.
12758 (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
12759 duplicate list of options.
12760 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
12761 explicit -mupper-regs options.
12762 * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
12763 -mupper-regs* options. Delete -mvsx-scalar-memory, which was an
12764 alias for -mupper-regs-df.
12765 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
12766 (rs6000_init_hard_regno_mode_ok): Likewise.
12767 (rs6000_option_override_internal): Likewise.
12768 (rs6000_opt_masks): Likewise.
12769 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
12770 options in terms of whether -mvsx or -mpower8-vector was used.
12771 (TARGET_UPPER_REGS_DI): Likewise.
12772 (TARGET_UPPER_REGS_SF): Likewise.
12773 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
12774 -mupper-regs-* options.
12775
12776 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
12777
12778 * passes.c (emergency_dump_function): Print some empty lines and a
12779 header before the RTL dump.
12780
12781 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
12782
12783 * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
12784
12785 2017-07-24 Wilco Dijkstra <wdijkstr@arm.com>
12786
12787 PR target/79041
12788 * config/aarch64/aarch64.c (aarch64_classify_symbol):
12789 Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
12790
12791 2017-07-24 Carl Love <cel@us.ibm.com>
12792
12793 * config/rs6000/rs6000-c.c: Add support for built-in functions
12794 vector float vec_extract_fp32_from_shorth (vector unsigned short);
12795 vector float vec_extract_fp32_from_shortl (vector unsigned short);
12796 * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
12797 vec_extract_fp_from_shortl): Add defines for the two builtins.
12798 * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
12799 VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
12800 new builtins.
12801 * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
12802 (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
12803 * doc/extend.texi: Update the built-in documentation file for the
12804 new built-in function.
12805
12806 2017-07-24 Jakub Jelinek <jakub@redhat.com>
12807
12808 PR bootstrap/81521
12809 * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
12810 documentation.
12811 * doc/generic.texi: Likewise.
12812 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
12813 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
12814
12815 2017-07-24 Jackson Woodruff <jackson.woodruff@arm.com>
12816
12817 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
12818 (aarch64_mls_elt_merge<mode>): Likewise.
12819
12820 2017-07-23 Krister Walfridsson <krister.walfridsson@gmail.com>
12821
12822 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
12823 having __cxa_atexit.
12824
12825 2017-07-23 Michael Collison <michael.collison@arm.com>
12826
12827 * config/arm/arm.c (arm_option_override): Deprecate
12828 use of -mstructure-size-boundary.
12829 * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
12830 * doc/invoke.texi: Deprecate -mstructure-size-boundary.
12831
12832 2017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12833
12834 PR target/80695
12835 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
12836 Reduce cost estimate for direct moves.
12837
12838 2017-07-23 Uros Bizjak <ubizjak@gmail.com>
12839
12840 PR target/80569
12841 * config/i386/i386.c (ix86_option_override_internal): Disable
12842 BMI, BMI2 and TBM instructions for -m16.
12843
12844 2017-07-21 Carl Love <cel@us.ibm.com>
12845
12846 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12847 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
12848 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
12849 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
12850 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
12851 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
12852 VMULOSW): New enum "unspec" values.
12853 (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
12854 altivec_vmulosw): New patterns.
12855 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
12856 VMULOSW): Add definitions.
12857
12858 2017-07-21 Jim Wilson <jim.wilson@linaro.org>
12859
12860 * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
12861 (qdf24xx): Likewise.
12862 * config/aarch64/aarch64-options-extensions.def (rdma); New.
12863 * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
12864 (AARCH64_FL_V8_1): Renumber.
12865 (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
12866 (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
12867 * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
12868 * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs. Add
12869 rdma to feature modifiers list.
12870
12871 2017-07-21 Yury Gribov <tetra2005@gmail.com>
12872
12873 PR middle-end/56727
12874 * ipa-visibility (function_and_variable_visibility): Convert
12875 recursive PLT call to direct call if appropriate.
12876
12877 2017-07-21 Andrew Pinski <apinski@cavium.com>
12878
12879 * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
12880 operand 1 to see if the types precision matches.
12881 * fold-const.c (operand_equal_p): Likewise.
12882
12883 2017-07-21 Richard Biener <rguenther@suse.de>
12884
12885 PR tree-optimization/81303
12886 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
12887 in datarefs vector. Allow NULL dr0 for no peeling cost estimate.
12888 (vect_peeling_hash_get_lowest_cost): Adjust.
12889 (vect_enhance_data_refs_alignment): Likewise. Use
12890 vect_get_peeling_costs_all_drs to compute the penalty for no
12891 peeling to match up costs.
12892
12893 2017-07-21 Richard Biener <rguenther@suse.de>
12894
12895 PR tree-optimization/81500
12896 * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
12897 we didn't identify a reduction path.
12898
12899 2017-07-21 Tom de Vries <tom@codesourcery.com>
12900 Cesar Philippidis <cesar@codesourcery.com>
12901
12902 PR gcov-profile/81442
12903 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
12904 probabilities.
12905
12906 2017-07-21 Tom de Vries <tom@codesourcery.com>
12907
12908 PR lto/81430
12909 * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
12910 function.
12911 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
12912 nvptx_override_options_after_change.
12913
12914 2017-07-21 Ulrich Drepper <drepper@redhat.com>
12915
12916 * dwarf2out.c (output_file_names): Avoid double testing for
12917 dwarf_version >= 5.
12918
12919 2017-07-21 Georg-Johann Lay <avr@gjlay.de>
12920
12921 * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
12922
12923 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
12924
12925 * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
12926 hot/cold regions.
12927 (try_crossjump_to_edge): Do not punt on partitioned functions.
12928
12929 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
12930
12931 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
12932 Put all BBs reachable only via paths crossing cold region to cold
12933 region.
12934 * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
12935
12936 2016-07-21 Richard Biener <rguenther@suse.de>
12937
12938 PR tree-optimization/81303
12939 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
12940 into account prologue and epilogue iterations when raising
12941 min_profitable_iters to sth at least covering one vector iteration.
12942
12943 2017-07-21 Tamar Christina <tamar.christina@arm.com>
12944
12945 * config/arm/arm.c (arm_test_cpu_arch_dat):
12946 Check for overlap.
12947
12948 2017-07-20 Nathan Sidwell <nathan@acm.org>
12949
12950 Remove TYPE_METHODS.
12951 * tree.h (TYPE_METHODS): Delete.
12952 * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
12953 * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
12954 (dbxout_type_methods): Scan TYPE_FIELDS.
12955 (dbxout_type): Don't check TYPE_METHODS here.
12956 * function.c (use_register_for_decl): Always ignore register for
12957 class types when not optimizing.
12958 * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
12959 * tree.c (free_lang_data_in_type): Stitch out member functions and
12960 templates from TYPE_FIELDS.
12961 (build_distinct_type_copy, verify_type_variant,
12962 verify_type): Member fns are on TYPE_FIELDS.
12963 * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
12964 * tree-pretty-print.c (dump_generic_node): Likewise.
12965
12966 2017-07-20 Jakub Jelinek <jakub@redhat.com>
12967
12968 PR target/80846
12969 * config/i386/i386.c (ix86_expand_vector_init_general): Handle
12970 V2TImode and V4TImode.
12971 (ix86_expand_vector_extract): Likewise.
12972 * config/i386/sse.md (VMOVE): Enable V4TImode even for just
12973 TARGET_AVX512F, instead of only for TARGET_AVX512BW.
12974 (ssescalarmode): Handle V4TImode and V2TImode.
12975 (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
12976 (*vec_extractv2ti, *vec_extractv4ti): New insns.
12977 (VEXTRACTI128_MODE): New mode iterator.
12978 (splitter for *vec_extractv?ti first element): New.
12979 (VEC_INIT_MODE): New mode iterator.
12980 (vec_init<mode>): Consolidate 3 expanders into one using
12981 VEC_INIT_MODE mode iterator.
12982
12983 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
12984
12985 * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
12986 non_spilled_static_chain_regno_p.
12987
12988 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
12989
12990 * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
12991
12992 2017-07-20 Jan Hubicka <hubicka@ucw.cz>
12993
12994 * bb-reorder.c (connect_traces): Allow copying of blocks within
12995 single partition.
12996
12997 2017-07-20 Richard Biener <rguenther@suse.de>
12998
12999 * gimple.h (gimple_phi_result): Add gphi * overload.
13000 (gimple_phi_result_ptr): Likewise.
13001 (gimple_phi_arg): Likewise. Adjust index assert to only
13002 allow actual argument accesses rather than all slots available
13003 by capacity.
13004 (gimple_phi_arg_def): Add gphi * overload.
13005 * tree-phinodes.c (make_phi_node): Initialize only actual
13006 arguments.
13007 (resize_phi_node): Clear memory not covered by old node,
13008 do not initialize excess argument slots.
13009 (reserve_phi_args_for_new_edge): Initialize new argument slot
13010 completely.
13011
13012 2017-07-20 Bin Cheng <bin.cheng@arm.com>
13013
13014 PR tree-optimization/81388
13015 Revert r238585:
13016 2016-07-21 Bin Cheng <bin.cheng@arm.com>
13017
13018 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
13019 by removing computation of may_be_zero.
13020
13021 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
13022 Tom de Vries <tom@codesourcery.com>
13023
13024 PR middle-end/81030
13025 * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
13026 when gimple level profile disagrees with what RTL expander did.
13027
13028 2017-07-20 Richard Biener <rguenther@suse.de>
13029
13030 PR tree-optimization/61171
13031 * tree-vectorizer.h (slp_instance): Add reduc_phis member.
13032 (vect_analyze_stmt): Add slp instance parameter.
13033 (vectorizable_reduction): Likewise.
13034 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
13035 (vect_is_simple_reduction): Deal with chains not detected
13036 as SLP reduction chain, specifically not properly associated
13037 chains containing a mix of plus/minus.
13038 (get_reduction_op): Remove.
13039 (get_initial_defs_for_reduction): Simplify, pass in whether
13040 this is a reduction chain, pass in the SLP node for the PHIs.
13041 (vect_create_epilog_for_reduction): Get the SLP instance as
13042 arg and adjust.
13043 (vectorizable_reduction): Get the SLP instance as arg.
13044 During analysis remember the SLP node with the PHIs in the
13045 instance. Simplify getting at the vectorized reduction PHIs.
13046 * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
13047 through SLP instance.
13048 (vect_slp_analyze_operations): Likewise.
13049 * tree-vect-stms.c (vect_analyze_stmt): Likewise.
13050 (vect_transform_stmt): Likewise.
13051
13052 2017-07-20 Tom de Vries <tom@codesourcery.com>
13053
13054 PR tree-optimization/81489
13055 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
13056 read of phi arg location to before loop that modifies phi.
13057
13058 2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
13059
13060 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
13061 New pattern.
13062
13063 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
13064
13065 PR middle-end/81331
13066 * except.c (execute): Fix ordering issue.
13067
13068 2018-07-19 Segher Boessenkool <segher@kernel.crashing.org>
13069
13070 PR rtl-optimization/81423
13071 * combine.c (make_compound_operation_int): Don't try to optimize
13072 the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
13073
13074 2017-07-19 Segher Boessenkool <segher@kernel.crashing.org>
13075
13076 PR rtl-optimization/81423
13077 * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
13078 with a constant that is -1 in the truncated to mode.
13079
13080 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
13081
13082 * predict.c (propagate_unlikely_bbs_forward): Break out from ...
13083 (determine_unlikely_bbs): ... here.
13084 * predict.h (propagate_unlikely_bbs_forward): Declare.
13085 * cfgexpand.c (pass_expand::execute): Use it.
13086 * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
13087 unlikely edges.
13088 (find_rarely_executed_basic_blocks_and_crossing_edges): Use
13089 propagate_unlikely_bbs_forward.
13090
13091 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
13092
13093 PR middle-end/81331
13094 * except.c (maybe_add_nop_after_section_switch): New function.
13095 (execute): Use it.
13096
13097 2017-07-19 Tom de Vries <tom@codesourcery.com>
13098
13099 * gimple.h (gimple_phi_set_arg): Make assert more strict.
13100
13101 2017-07-19 Tom de Vries <tom@codesourcery.com>
13102
13103 * gimple.h (gimple_phi_arg): Make assert more strict.
13104
13105 2017-07-19 Steven Munroe <munroesj@gcc.gnu.org>
13106
13107 * config.gcc (powerpc*-*-*): Add mmintrin.h.
13108 * config/rs6000/mmintrin.h: New file.
13109 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
13110
13111 2017-07-19 Jakub Jelinek <jakub@redhat.com>
13112
13113 PR tree-optimization/81346
13114 * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
13115
13116 2017-07-19 Tom de Vries <tom@codesourcery.com>
13117
13118 * config/nvptx/nvptx.md (VECIM): Add V2DI.
13119
13120 2017-07-19 Tom de Vries <tom@codesourcery.com>
13121
13122 * config/nvptx/nvptx-modes.def: Add V2DImode.
13123 * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
13124 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
13125 (nvptx_output_mov_insn): Handle lack of mov.b128.
13126 (nvptx_print_operand): Handle 'H' and 'L' codes.
13127 (nvptx_vector_mode_supported): Allow V2DImode.
13128 (nvptx_preferred_simd_mode): New function.
13129 (nvptx_data_alignment): New function.
13130 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
13131 nvptx_preferred_simd_mode.
13132 * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
13133 64 to 128 bits.
13134 (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment.
13135
13136 2017-07-19 Tom de Vries <tom@codesourcery.com>
13137
13138 * config/nvptx/nvptx-modes.def: New file. Add V2SImode.
13139 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
13140 (nvptx_vector_mode_supported): New function. Allow V2SImode.
13141 (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
13142 * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
13143 (mov<VECIM>_insn): New define_insn.
13144 (define_expand "mov<VECIM>): New define_expand.
13145
13146 2017-07-19 Tom de Vries <tom@codesourcery.com>
13147
13148 * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
13149
13150 2017-07-19 Jakub Jelinek <jakub@redhat.com>
13151
13152 PR tree-optimization/81346
13153 * fold-const.h (fold_div_compare, range_check_type): Declare.
13154 * fold-const.c (range_check_type): New function.
13155 (build_range_check): Use range_check_type.
13156 (fold_div_compare): No longer static, rewritten into
13157 a match.pd helper function.
13158 (fold_comparison): Don't call fold_div_compare here.
13159 * match.pd (X / C1 op C2): New optimization using fold_div_compare
13160 as helper function.
13161
13162 2017-07-19 Nathan Sidwell <nathan@acm.org>
13163
13164 * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
13165 (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
13166 * tree.c (find_decls_types_r, verify_type): Use
13167 TYPE_{MIN,MAX}_VALUE_RAW.
13168 * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
13169 (hash_tree): Likewise.
13170 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
13171 Likewise.
13172 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
13173 Likewise.
13174
13175 2017-07-18 Tom de Vries <tom@codesourcery.com>
13176
13177 PR middle-end/81464
13178 * omp-expand.c (expand_omp_for_static_chunk): Handle
13179 equal-argument loop exit phi.
13180
13181 2017-07-18 Uros Bizjak <ubizjak@gmail.com>
13182
13183 PR target/81471
13184 * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
13185 (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
13186 operand 2 predicate.
13187 (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
13188 operand 2 predicate.
13189 (ror,rol -> rorx splitters): Use const_int_operand as
13190 operand 2 predicate.
13191
13192 2017-06-18 Richard Biener <rguenther@suse.de>
13193
13194 PR tree-optimization/81410
13195 * tree-vect-stmts.c (vectorizable_load): Properly adjust for
13196 the gap in the ! slp_perm SLP case after each group.
13197
13198 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
13199
13200 PR middle-end/81463
13201 * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
13202 again.
13203
13204 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
13205
13206 PR middle-end/81462
13207 * predict.c (set_even_probabilities): Cleanup; do not affect
13208 probabilities that are already known.
13209 (combine_predictions_for_bb): Call even when count is set.
13210
13211 2017-07-18 Nathan Sidwell <nathan@acm.org>
13212
13213 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
13214 TYPE_MAX_VALUE.
13215
13216 2017-07-18 Bin Cheng <bin.cheng@arm.com>
13217
13218 PR target/81408
13219 * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
13220 optimization for loop niter analysis.
13221
13222 2017-07-18 Georg-Johann Lay <avr@gjlay.de>
13223
13224 PR target/81473
13225 * config/avr/avr.c (avr_optimize_casesi): Don't use
13226 INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
13227
13228 2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
13229
13230 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
13231 body_cost_vec from _vect_peel_extended_info.
13232 (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
13233 (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
13234 npeel.
13235
13236 2017-07-18 Bin Cheng <bin.cheng@arm.com>
13237
13238 * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
13239
13240 2017-07-18 Richard Biener <rguenther@suse.de>
13241
13242 PR tree-optimization/80620
13243 PR tree-optimization/81403
13244 * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
13245 info when re-using a VN table entry.
13246
13247 2017-07-18 Richard Biener <rguenther@suse.de>
13248
13249 PR tree-optimization/81418
13250 * tree-vect-loop.c (vectorizable_reduction): Properly compute
13251 vectype_in. Verify that with lane-reducing reduction operations
13252 we have a single def-use cycle.
13253
13254 2017-07-17 Carl Love <cel@us.ibm.com>
13255
13256 Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com>
13257
13258 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13259 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
13260 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
13261 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
13262 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
13263 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
13264 VMULOSW): New enum "unspec" values.
13265 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
13266 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
13267 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
13268 altivec_vmulosw): New patterns.
13269 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
13270 VMULOSW): Add definitions.
13271 2017-07-17 Uros Bizjak <ubizjak@gmail.com>
13272
13273 * config/alpha/alpha.c: Include predict.h.
13274
13275 2017-07-17 Yury Gribov <tetra2005@gmail.com>
13276
13277 * tree-vrp.c (compare_assert_loc): Fix comparison function
13278 to return predictable results.
13279
13280 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
13281
13282 * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
13283 option.
13284 (subdi3): Likewise.
13285 * config/arc/arc.opt (mexpand-adddi): Deprecate it.
13286 * doc/invoke.texi (mexpand-adddi): Update text.
13287
13288 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
13289
13290 * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
13291 that also clobbers the CC register. The old expand code is moved
13292 to ...
13293 (*arc_clzsi2): ... here.
13294 (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
13295 the CC register. The old expand code is moved to ...
13296 (arc_ctzsi2): ... here.
13297
13298 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
13299
13300 * config/arc/arc.opt (mindexed-loads): Use initial value
13301 TARGET_INDEXED_LOADS_DEFAULT.
13302 (mauto-modify-reg): Use initial value
13303 TARGET_AUTO_MODIFY_REG_DEFAULT.
13304 * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
13305 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
13306 * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
13307 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
13308
13309 2017-07-17 Martin Liska <mliska@suse.cz>
13310
13311 PR sanitizer/81302
13312 * opts.c (finish_options): Do not allow -fgnu-tm
13313 w/ -fsanitize={kernel-,}address. Say sorry.
13314
13315 2017-07-17 Bin Cheng <bin.cheng@arm.com>
13316
13317 PR target/81369
13318 * tree-loop-distribution.c (classify_partition): Only assert on
13319 numer of iterations.
13320 (merge_dep_scc_partitions): Delete prameter. Update function call.
13321 (distribute_loop): Remove code handling loop with unknown niters.
13322 (pass_loop_distribution::execute): Skip loop with unknown niters.
13323
13324 2017-07-17 Bin Cheng <bin.cheng@arm.com>
13325
13326 PR target/81369
13327 * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
13328 function sort_partitions_by_post_order.
13329
13330 2017-07-17 Bin Cheng <bin.cheng@arm.com>
13331
13332 PR tree-optimization/81374
13333 * tree-loop-distribution.c (pass_loop_distribution::execute): Record
13334 the max index of basic blocks, rather than number of basic blocks.
13335
13336 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
13337
13338 * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
13339 proto.
13340 (arc_legitimate_pic_operand_p): Likewise.
13341 * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
13342 function.
13343 (arc_needs_pcl_p): Likewise.
13344 (arc_legitimate_pc_offset_p): Likewise.
13345 (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
13346 function is also used in constrains.md.
13347 (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
13348 validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
13349 PLUS. Only return true/false in known cases, otherwise assert.
13350 (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
13351 is already called in arc_legitimate_constant_p.
13352 * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
13353 pic addresses.
13354 (LEGITIMATE_PIC_OPERAND_P): Use
13355 arc_raw_symbolic_reference_mentioned_p function.
13356 * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
13357 function.
13358 (Cal): Likewise.
13359 (C32): Likewise.
13360
13361 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
13362 Andrew Burgess <andrew.burgess@embecosm.com>
13363
13364 * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
13365 (arc_return_address_register): New function.
13366 * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
13367 (arc_handle_fndecl_attribute): Add naked attribute.
13368 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
13369 (TARGET_WARN_FUNC_RETURN): Likewise.
13370 (arc_allocate_stack_slots_for_args): New function.
13371 (arc_warn_func_return): Likewise.
13372 (machine_function): Change type fn_type.
13373 (arc_compute_function_type): Consider new naked function type,
13374 change function return type.
13375 (arc_must_save_register): Adapt to handle new
13376 arc_compute_function_type's return type.
13377 (arc_expand_prologue): Likewise.
13378 (arc_expand_epilogue): Likewise.
13379 (arc_return_address_regs): Delete.
13380 (arc_return_address_register): New function.
13381 (arc_epilogue_uses): Use above function.
13382 * config/arc/arc.h (arc_return_address_regs): Delete prototype.
13383 (arc_function_type): Change encoding, add naked type.
13384 (ARC_INTERRUPT_P): Change to handle the new encoding.
13385 (ARC_FAST_INTERRUPT_P): Likewise.
13386 (ARC_NORMAL_P): Define.
13387 (ARC_NAKED_P): Likewise.
13388 (arc_compute_function_type): Delete prototype.
13389 * config/arc/arc.md (in_ret_delay_slot): Use
13390 arc_return_address_register function.
13391 (simple_return): Likewise.
13392 (p_return_i): Likewise.
13393
13394 2017-07-17 Jakub Jelinek <jakub@redhat.com>
13395
13396 PR tree-optimization/81428
13397 * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
13398 can't be built for those types.
13399
13400 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
13401
13402 Remove stuff dead since r239246.
13403
13404 * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
13405 * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
13406 (avr_inform_devices): Remove dead stuff.
13407
13408 2017-07-17 Tamar Christina <tamar.christina@arm.com>
13409
13410 * config/arm/arm_neon.h: Fix softp typo.
13411
13412 2017-07-17 Jakub Jelinek <jakub@redhat.com>
13413
13414 PR tree-optimization/81365
13415 * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
13416 aggregate moves onto bb predecessor edges, make sure there are no
13417 loads that could alias the lhs in between the start of bb and the
13418 loads from *phi.
13419
13420 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
13421
13422 PR 80929
13423 * config/avr/avr.c (avr_mul_highpart_cost): New static function.
13424 (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
13425 [LSHIFTRT, outer_code = TRUNCATE]: Same.
13426
13427 2017-07-17 Jakub Jelinek <jakub@redhat.com>
13428
13429 PR tree-optimization/81396
13430 * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
13431 (init_symbolic_number): Initialize it to 1.
13432 (perform_symbolic_merge): Add n_ops from both operands into the new
13433 n_ops.
13434 (find_bswap_or_nop): Don't consider n->n == cmpnop computations
13435 without base_addr as useless if they need more than one operation.
13436 (bswap_replace): Handle !bswap case for NULL base_addr.
13437
13438 2017-07-17 Tom de Vries <tom@codesourcery.com>
13439
13440 PR target/81069
13441 * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
13442 as possible.
13443
13444 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
13445
13446 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
13447 conditional builtin define __FIX_LEON3FT_B2BST.
13448
13449 2017-07-17 Daniel Cederman <cederman@gaisler.com>
13450
13451 * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
13452 MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
13453 with -mfix-ut700.
13454
13455 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
13456
13457 PR rtl-optimization/81424
13458 * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
13459 to remove potential trapping from operands if -fnon-call-exceptions.
13460
13461 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
13462
13463 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
13464 profile_proability for scalling.
13465 * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
13466
13467 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
13468
13469 * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
13470
13471 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
13472
13473 * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
13474 fixpoint arithmetics.
13475
13476 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
13477
13478 * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
13479 fixpoint arithmetics.
13480
13481 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
13482
13483 * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
13484 fixpoint arithmetics.
13485
13486 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
13487
13488 * profile-count.h (profile_probability::from_reg_br_prob_note,
13489 profile_probability::to_reg_br_prob_note): New functions.
13490 * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
13491 * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
13492 * predict.c (probability_reliable_p): Update.
13493 (edge_probability_reliable_p): Update.
13494 (br_prob_note_reliable_p): Update.
13495 (invert_br_probabilities): Update.
13496 (add_reg_br_prob_note): New function.
13497 (combine_predictions_for_insn): Update.
13498 * asan.c (asan_clear_shadow): Update.
13499 * cfgbuild.c (compute_outgoing_frequencies): Update.
13500 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
13501 (update_br_prob_note): Update.
13502 (rtl_verify_edges): Update.
13503 (purge_dead_edges): Update.
13504 (fixup_reorder_chain): Update.
13505 * emit-rtl.c (try_split): Update.
13506 * ifcvt.c (cond_exec_process_insns): Update.
13507 (cond_exec_process_if_block): Update.
13508 (dead_or_predicable): Update.
13509 * internal-fn.c (expand_addsub_overflow): Update.
13510 (expand_neg_overflow): Update.
13511 (expand_mul_overflow): Update.
13512 * loop-doloop.c (doloop_modify): Update.
13513 * loop-unroll.c (compare_and_jump_seq): Update.
13514 * optabs.c (emit_cmp_and_jump_insn_1): Update.
13515 * predict.h: Update.
13516 * reorg.c (mostly_true_jump): Update.
13517 * rtl.h: Update.
13518 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
13519 * config/alpha/alpha.c (emit_unlikely_jump): Update.
13520 * config/arc/arc.c: (emit_unlikely_jump): Update.
13521 * config/arm/arm.c: (emit_unlikely_jump): Update.
13522 * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
13523 * config/frv/frv.c (frv_print_operand_jump_hint): Update.
13524 * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
13525 (ix86_print_operand): Update.
13526 (ix86_split_fp_branch): Update.
13527 (predict_jump): Update.
13528 * config/ia64/ia64.c (ia64_print_operand): Update.
13529 * config/mmix/mmix.c (mmix_print_operand): Update.
13530 * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
13531 (rs6000_expand_split_stack_prologue): Update.
13532 * config/rs6000/rs6000.c: Update.
13533 * config/s390/s390.c (s390_expand_vec_strlen): Update.
13534 (s390_expand_vec_movstr): Update.
13535 (s390_expand_cs_tdsi): Update.
13536 (s390_expand_split_stack_prologue): Update.
13537 * config/sh/sh.c (sh_print_operand): Update.
13538 (expand_cbranchsi4): Update.
13539 (expand_cbranchdi4): Update.
13540 * config/sparc/sparc.c (output_v9branch): Update.
13541 * config/spu/spu.c (get_branch_target): Update.
13542 (ea_load_store_inline): Update.
13543 * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
13544 * config/tilepro/tilepro.c: Update.
13545
13546 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
13547
13548 * gimplify.c (mostly_copy_tree_r): Revert latest change.
13549 (gimplify_save_expr): Likewise.
13550
13551 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
13552
13553 * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
13554
13555 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
13556
13557 * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
13558 TV_IPA_FNSUMMARY.
13559 * timevar.def (TV_IPA_FNSUMMARY): Define.
13560
13561 2017-07-16 Daniel Cederman <cederman@gaisler.com>
13562
13563 * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
13564 to back store errata sensitive sequence from being generated.
13565 (sqrtdf2_fix): Likewise.
13566
13567 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
13568
13569 * tree-ssa-threadupdate.c (compute_path_counts,
13570 update_joiner_offpath_counts): Use profile_probability.
13571
13572 2017-07-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
13573
13574 Revert:
13575 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
13576
13577 * config/arm/arm-c.c (arm_cpu_builtins): Define
13578 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
13579
13580 2017-07-14 Kelvin Nilsen <kelvin@gcc.gnu.org>
13581
13582 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13583 array entries to represent __ieee128 versions of the
13584 scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
13585 scalar_extract_sig, and scalar_insert_exp built-in functions.
13586 (altivec_resolve_overloaded_builtin): Add special case handling
13587 for the __builtin_scalar_insert_exp function, as represented by
13588 the P9V_BUILTIN_VEC_VSIEDP constant.
13589 * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
13590 exponent support for __ieee128 argument.
13591 (VSESQP): Add scalar extract signature support for __ieee128
13592 argument.
13593 (VSTDCNQP): Add scalar test negative support for __ieee128
13594 argument.
13595 (VSIEQP): Add scalar insert exponent support for __int128 argument
13596 with __ieee128 result.
13597 (VSIEQPF): Add scalar insert exponent support for __ieee128
13598 argument with __ieee128 result.
13599 (VSTDCQP): Add scalar test data class support for __ieee128
13600 argument.
13601 (VSTDCNQP): Add overload support for scalar test negative with
13602 __ieee128 argument.
13603 (VSTDCQP): Add overload support for scalar test data class
13604 __ieee128 argument.
13605 * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
13606 UNSPEC_VSX_SXSIGDP.
13607 (UNSPEC_VSX_SIEXPQP): New constant.
13608 (xsxexpqp): New insn for VSX scalar extract exponent quad
13609 precision.
13610 (xsxsigqp): New insn for VSX scalar extract significand quad
13611 precision.
13612 (xsiexpqpf): New insn for VSX scalar insert exponent quad
13613 precision with floating point argument.
13614 (xststdcqp): New expand for VSX scalar test data class quad
13615 precision.
13616 (xststdcnegqp): New expand for VSX scalar test negative quad
13617 precision.
13618 (xststdcqp): New insn to match expansions for VSX scalar test data
13619 class quad precision and VSX scalar test negative quad precision.
13620 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
13621 special case operand checking to enforce that second operand of
13622 VSX scalar test data class with quad precision argument is a 7-bit
13623 unsigned literal.
13624 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
13625 prototypes and descriptions of __ieee128 versions of
13626 scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
13627 scalar_test_data_class, and scalar_test_neg built-in functions.
13628
13629 2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13630
13631 PR tree-optimization/81162
13632 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
13633 replace a negate with an add.
13634
13635 2017-07-14 James Greenhalgh <james.greenhalgh@arm.com>
13636
13637 * doc/invoke.texi (arm/-mcpu): Document +crypto.
13638
13639 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
13640
13641 * config/arm/arm-c.c (arm_cpu_builtins): Define
13642 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
13643
13644 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
13645
13646 * config/arm/arm-cpus.in (cortex-r52): Add new entry.
13647 (armv8-r): Set ARM Cortex-R52 as default CPU.
13648 * config/arm/arm-tables.opt: Regenerate.
13649 * config/arm/arm-tune.md: Regenerate.
13650 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
13651 Cortex-R52.
13652 * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
13653 extension for -mcpu=cortex-r52.
13654
13655 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
13656
13657 * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
13658 (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
13659 * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
13660 (fp-armv8): Define it as FP_ARMv8 only.
13661 config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
13662 (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
13663 TARGET_FPU_ARMV8.
13664 config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
13665 TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
13666 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
13667 first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
13668 than TARGET_FPU_ARMV8.
13669 * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
13670 __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
13671 * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
13672 TARGET_FPU_ARMV8.
13673 * config/arm/neon.md (neon_vrint): Likewise.
13674 (neon_vcvt): Likewise.
13675 (neon_<fmaxmin_op><mode>): Likewise.
13676 (<fmaxmin><mode>3): Likewise.
13677 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
13678 * config/arm/predicates.md (arm_cond_move_operator): Check against
13679 TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
13680
13681 2017-07-14 Jackson Woodruff <jackson.woodruff@arm.com>
13682
13683 * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
13684 to top of function.
13685
13686 2017-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13687
13688 * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
13689 loop in comment with memset.
13690
13691 2017-07-14 Martin Liska <mliska@suse.cz>
13692
13693 * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
13694 * dwarf2out.c (is_java): Remove the function.
13695 (output_pubname): Remove usage of the function.
13696 (lower_bound_default): Remove usage of DW_LANG_Java.
13697 (gen_compile_unit_die): Likewise.
13698 * gcc.c: Remove compiler defaults for .java and .zip files.
13699 * gimple-expr.c (remove_suffix): Change as there's no longer
13700 extension than 4-letter one.
13701 * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
13702 (gimplify_save_expr): Likewise.
13703 * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
13704 as it's possible even for other languages than Java.
13705 * langhooks.h (struct lang_hooks): Remove Java from a comment.
13706 * lto-opts.c (lto_write_options): Remove reference to Java.
13707 * opts.c (strip_off_ending): Update file extension handling.
13708 * tree-cfg.c (verify_gimple_call): Remove comment with Java.
13709 * tree-eh.c (lower_resx): Likewise.
13710 * tree.c (free_lang_data_in_type): Remove dead code.
13711 (find_decls_types_r): Likewise.
13712 (build_common_builtin_nodes): Remove Java from a comment.
13713 (verify_type): Remove dead code.
13714 * varasm.c (assemble_external): Remove Java from a comment.
13715
13716 2017-07-14 Martin Liska <mliska@suse.cz>
13717
13718 * opts.c (finish_options): Add quotes.
13719 (common_handle_option): Likewise.
13720
13721 2017-07-14 Martin Liska <mliska@suse.cz>
13722
13723 * dbxout.c (get_lang_number): Do not handle GNU Pascal.
13724 * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
13725 Remove N_SO_PASCAL.
13726 * dwarf2out.c (lower_bound_default): Do not handle
13727 DW_LANG_Pascal83.
13728 (gen_compile_unit_die): Likewise.
13729 * gcc.c: Remove default extension binding for GNU Pascal.
13730 * stmt.c: Remove Pascal language from a comment.
13731 * xcoffout.c: Likewise.
13732
13733 2017-07-13 David Malcolm <dmalcolm@redhat.com>
13734
13735 PR c/81405
13736 * diagnostic-show-locus.c (fixit_cmp): New function.
13737 (layout::layout): Sort m_fixit_hints.
13738 (column_range::column_range): Assert that the values are valid.
13739 (struct char_span): New struct.
13740 (correction::overwrite): New method.
13741 (struct source_line): New struct.
13742 (line_corrections::add_hint): Add assertions. Reimplement memcpy
13743 calls in terms of classes source_line and char_span, and
13744 correction::overwrite.
13745 (selftest::test_overlapped_fixit_printing_2): New function.
13746 (selftest::diagnostic_show_locus_c_tests): Call it.
13747
13748 2017-07-13 Will Schmidt <will_schmidt@vnet.ibm.com>
13749
13750 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
13751 early if there is no lhs.
13752
13753 2017-07-13 Martin Liska <mliska@suse.cz>
13754
13755 * dwarf2out.c (gen_pointer_type_die): Remove dead code.
13756 (gen_reference_type_die): Likewise.
13757 * stor-layout.c: Remove Pascal-related comment.
13758
13759 2017-07-13 Martin Liska <mliska@suse.cz>
13760
13761 * opts.c (finish_options): Add quotes to error messages.
13762 (parse_sanitizer_options): Likewise.
13763
13764 2017-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
13765
13766 * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
13767
13768 2017-07-13 Richard Earnshaw <rearnsha@arm.com>
13769
13770 * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
13771
13772 2017-07-13 Maxim Ostapenko <m.ostapenko@samsung.com>
13773
13774 * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
13775 during expansion.
13776 * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
13777
13778 2017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
13779
13780 PR target/81193
13781 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
13782 provides the hardware capability bits, define the macro
13783 __BUILTIN_CPU_SUPPORTS__.
13784 * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
13785 if GLIBC does not provide the hardware capability bits. Add a
13786 gcc_unreachable call if the built-in cpu function is neither
13787 __builtin_cpu_is nor __builtin_cpu_supports.
13788 (rs6000_get_function_versions_dispatcher): Change the warning
13789 that an old GLIBC is used which does not export the capability
13790 bits to be an error.
13791 * doc/extend.texi (target_clones attribute): Document the
13792 restriction that GLIBC 2.23 or newer is needed on the PowerPC.
13793 (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
13794 needed by __builtin_cpu_is and __builtin_cpu_supports. Document
13795 the macros defined by GCC if the newer GLIBC is available.
13796
13797 2017-07-12 Jeff Law <law@redhat.com>
13798
13799 * config/riscv/riscv.c: Remove unnecessary includes. Reorder
13800 remaining includes slightly.
13801 * config/riscv/riscv-builtins.c: Include profile-count.h.
13802
13803 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
13804
13805 PR target/79883
13806 * config/avr/avr.c (avr_set_current_function): In diagnostic
13807 messages: Quote keywords and (parts of) identifiers.
13808 [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
13809 "INTERUPT".
13810
13811 2017-07-12 Carl Love <cel@us.ibm.com>
13812
13813 * config/rs6000/rs6000-c.c: Add support for built-in functions
13814 vector bool char vec_revb (vector bool char);
13815 vector bool short vec_revb (vector short char);
13816 vector bool int vec_revb (vector bool int);
13817 vector bool long long vec_revb (vector bool long long);
13818 * doc/extend.texi: Update the built-in documentation file for the
13819 new built-in functions.
13820
13821 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13822
13823 * config/s390/s390.md: Remove movcc splitter.
13824
13825 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13826
13827 * config/s390/s390.c (s390_rtx_costs): Return proper costs for
13828 load/store on condition.
13829
13830 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
13831
13832 PR target/81407
13833 * config/avr/avr.c (avr_encode_section_info)
13834 [progmem && !TREE_READONLY]: Error if progmem object needs
13835 constructing.
13836
13837 2017-07-11 Michael Collison <michael.collison@arm.com>
13838
13839 * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
13840 New pattern.
13841
13842 2017-07-11 Carl Love <cel@us.ibm.com>
13843
13844 * config/rs6000/rs6000-c.c: Add support for builtins
13845 vector unsigned int vec_parity_lsbb (vector signed int);
13846 vector unsigned int vec_parity_lsbb (vector unsigned int);
13847 vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
13848 vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
13849 vector unsigned long long vec_parity_lsbb (vector signed long long);
13850 vector unsigned long long vec_parity_lsbb (vector unsigned long long);
13851 * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
13852 * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
13853 * doc/extend.texi: Update the built-in documentation file for the
13854 new built-in functions.
13855
13856 2017-07-11 David Malcolm <dmalcolm@redhat.com>
13857
13858 * diagnostic-show-locus.c: Include "gcc-rich-location.h".
13859 (layout::m_primary_loc): New field.
13860 (layout::layout): Initialize new field. Move location filtering
13861 logic from here to...
13862 (layout::maybe_add_location_range): ...this new method. Add
13863 support for filtering to just the lines already specified by other
13864 locations.
13865 (layout::will_show_line_p): New method.
13866 (gcc_rich_location::add_location_if_nearby): New method.
13867 (selftest::test_add_location_if_nearby): New test function.
13868 (selftest::diagnostic_show_locus_c_tests): Call it.
13869 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
13870 New method.
13871
13872 2017-07-11 Tom de Vries <tom@codesourcery.com>
13873
13874 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
13875 (bb_first_real_insn): New function.
13876 (nvptx_single): Add extra initialization of broadcasted condition
13877 variables.
13878
13879 2017-07-11 Nathan Sidwell <nathan@acm.org>
13880
13881 * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
13882
13883 2017-07-11 Georg-Johann Lay <avr@gjlay.de>
13884
13885 * doc/extend.texi (AVR Function Attributes): Remove weblink to
13886 Binutils doc as TEXI will mess them up.
13887 * doc/invoke.texi (AVR Options): Same here.
13888
13889 2017-07-11 Daniel Cederman <cederman@gaisler.com>
13890
13891 * config/sparc/sparc.opt (mfix-ut700): New option.
13892 (mfix-gr712rc): Likewise.
13893 (sparc_fix_b2bst): New variable.
13894 * doc/invoke.texi (SPARC options): Document them.
13895 (ARM options): Fix warnings.
13896 * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
13897 instructions to prevent sequences that can trigger the store-store
13898 errata for certain LEON3FT processors.
13899 (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
13900 (sparc_option_override): Set sparc_fix_b2bst appropriately.
13901 * config/sparc/sparc.md (fix_b2bst): New attribute.
13902 (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
13903
13904 2017-07-10 Uros Bizjak <ubizjak@gmail.com>
13905
13906 PR target/81375
13907 * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
13908 (rcpps): Ditto.
13909 (*rsqrtsf2_sse): Ditto.
13910 (rsqrtsf2): Ditto.
13911 (div<mode>3): Macroize insn from divdf3 and divsf3
13912 using MODEF mode iterator.
13913
13914 2017-07-10 Martin Sebor <msebor@redhat.com>
13915
13916 PR tree-optimization/80397
13917 * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
13918 instead of testing for equality to INTEGER_TYPE.
13919
13920 2017-07-10 Vineet Gupta <vgupta@synopsys.com>
13921
13922 * config.gcc: Remove uclibc from arc target spec.
13923
13924 2017-07-10 Claudiu Zissulescu <claziss@synopsys.com>
13925
13926 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
13927
13928 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
13929
13930 PR lto/80838
13931 * lto-wrapper.c (remove_option): New function.
13932 (merge_and_complain): Merge PIC/PIE options more realistically.
13933
13934 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
13935
13936 Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
13937
13938 PR target/20296
13939 PR target/81268
13940 * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
13941 (HAVE_AS_AVR_MGCCISR_OPTION): If so, AC_DEFINE it.
13942 * config.in: Regenerate.
13943 * configure: Regenerate.
13944 * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
13945 * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
13946 * config/avr/avr.opt (-mgas-isr-prologues): New option and...
13947 (TARGET_GASISR_PROLOGUES): ...target mask.
13948 * common/config/avr/avr-common.c
13949 (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
13950 Set -mgas-isr-prologues.
13951 * config/avr/avr-passes.def (avr_pass_pre_proep): Add
13952 INSERT_PASS_BEFORE for it.
13953 * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
13954 * config/avr/avr.c (avr_option_override)
13955 [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
13956 (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
13957 (avr_attribute_table) <no_gccisr>: Add new function attribute.
13958 (avr_set_current_function) <is_no_gccisr>: Init machine field.
13959 (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
13960 and rtl_opt_pass.
13961 (make_avr_pass_pre_proep): New function.
13962 (emit_push_sfr) <treg>: Add argument to function and use it
13963 instead of TMP_REG.
13964 (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
13965 and set machine->gasisr.yes.
13966 (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
13967 (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
13968 __gcc_isr.n_pushed to .L__stack_usage.
13969 (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
13970 (avr_asm_final_postscan_insn): ...this new static function.
13971 * config/avr/avr.h (machine_function)
13972 <is_no_gccisr, use_L__stack_usage>: New fields.
13973 <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
13974 * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
13975 (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
13976 (gasisr, *gasisr): New expander and insn.
13977 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
13978 [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
13979 * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
13980
13981 2017-07-10 Richard Earnshaw <rearnsha@arm.com>
13982
13983 * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
13984 in quoted strings.
13985
13986 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
13987
13988 Move jump-tables out of .text again.
13989
13990 PR target/81075
13991 * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
13992 (ASM_OUTPUT_ADDR_VEC): New function.
13993 (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
13994 (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
13995 INSN_ADDRESSes as asm comment.
13996 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
13997 (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
13998 (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
13999 * config/avr/avr.md (*tablejump): Adjust comment.
14000 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
14001 * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
14002 New detail.
14003 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
14004 (avr_output_addr_vec): New proto.
14005 (avr_log_t) <insn_addresses>: New field.
14006
14007 2017-07-09 H.J. Lu <hongjiu.lu@intel.com>
14008
14009 PR target/81313
14010 * config/i386/i386.c (ix86_function_arg_advance): Set
14011 outgoing_args_on_stack to true if there are outgoing arguments
14012 on stack.
14013 (ix86_function_arg): Likewise.
14014 (ix86_get_drap_rtx): Use DRAP only if there are outgoing
14015 arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
14016 * config/i386/i386.h (machine_function): Add
14017 outgoing_args_on_stack.
14018
14019 2017-07-09 Krister Walfridsson <krister.walfridsson@gmail.com>
14020
14021 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
14022 supporting pthreds.
14023 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
14024
14025 2017-07-08 Richard Sandiford <richard.sandiford@linaro.org>
14026
14027 * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
14028 (REAL_H): Remove $(MACHMODE_H).
14029 (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
14030 double-int.h.
14031 (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
14032 $(MACHMODE_H) and double-int.h.
14033 (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
14034 $(MACHMODE_H).
14035 (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
14036 double-int.h.
14037
14038 2017-07-07 Andrew Pinski <apinski@cavium.com>
14039
14040 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
14041 prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
14042
14043 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com>
14044
14045 * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
14046 Add warning if GCC was not configured to link against a GLIBC that
14047 exports the hardware capability bits.
14048 (make_resolver_func): Make resolver function private and not a
14049 COMDAT function. Create the name with clone_function_name instead
14050 of make_unique_name.
14051
14052 PR target/81348
14053 * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
14054 correct operand in doing the split.
14055
14056 2017-07-07 Carl Love <cel@us.ibm.com>
14057
14058 * config/rs6000/rs6000-c: Add support for built-in function
14059 vector unsigned short vec_pack_to_short_fp32 (vector float,
14060 vector float).
14061 * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
14062 BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
14063 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
14064 * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
14065 (convert_4f32_8i16): Add define_expand.
14066 * doc/extend.texi: Update the built-in documentation file for the
14067 new built-in function.
14068
14069 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14070
14071 * config/sparc/m8.md: New file.
14072 * config/sparc/sparc.md: Include m8.md.
14073
14074 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14075
14076 * config/sparc/sparc.opt: New option -mvis4b.
14077 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
14078 (sparc_option_override): Handle VIS4B.
14079 (enum sparc_builtins): Define
14080 SPARC_BUILTIN_DICTUNPACK{8,16,32},
14081 SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
14082 SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
14083 SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
14084 SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
14085 (check_constant_argument): New function.
14086 (sparc_vis_init_builtins): Define builtins
14087 __builtin_vis_dictunpack{8,16,32},
14088 __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
14089 __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
14090 __builtin_vis_fpcmpde{8,16,32}shl and
14091 __builtin_vis_fpcmpur{8,16,32}shl.
14092 (sparc_expand_builtin): Check that the constant operands to
14093 __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
14094 constant and in range.
14095 * config/sparc/sparc-c.c (sparc_target_macros): Handle
14096 TARGET_VIS4B.
14097 * config/sparc/sparc.h (SPARC_IMM2_P): Define.
14098 (SPARC_IMM5_P): Likewise.
14099 * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
14100 (enabled): Handle vis4b.
14101 (UNSPEC_DICTUNPACK): New unspec.
14102 (UNSPEC_FPCMPSHL): Likewise.
14103 (UNSPEC_FPUCMPSHL): Likewise.
14104 (UNSPEC_FPCMPDESHL): Likewise.
14105 (UNSPEC_FPCMPURSHL): Likewise.
14106 (cpu_feature): New CPU feature `vis4b'.
14107 (dictunpack{8,16,32}): New insns.
14108 (FPCSMODE): New mode iterator.
14109 (fpcscond): New code iterator.
14110 (fpcsucond): Likewise.
14111 (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
14112 (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
14113 (fpcmpde{8,16,32}{si,di}shl): Likewise.
14114 (fpcmpur{8,16,32}{si,di}shl): Likewise.
14115 * config/sparc/constraints.md: Define constraints `q' for unsigned
14116 2-bit integer constants and `t' for unsigned 5-bit integer
14117 constants.
14118 * config/sparc/predicates.md (imm5_operand_dictunpack8): New
14119 predicate.
14120 (imm5_operand_dictunpack16): Likewise.
14121 (imm5_operand_dictunpack32): Likewise.
14122 (imm2_operand): Likewise.
14123 * doc/invoke.texi (SPARC Options): Document -mvis4b.
14124 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
14125 ditunpack* and fpcmp*shl builtins.
14126
14127 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14128
14129 * config.gcc: Handle m8 in --with-{cpu,tune} options.
14130 * config.in: Add HAVE_AS_SPARC6 define.
14131 * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
14132 M8.
14133 * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
14134 TARGET_CPU_m8.
14135 (ASM_CPU32_DEFAUILT_SPEC): Likewise.
14136 (CPP_CPU_SPEC): Handle m8.
14137 (ASM_CPU_SPEC): Likewise.
14138 * config/sparc/sparc-opts.h (enum processor_type): Add
14139 PROCESSOR_M8.
14140 * config/sparc/sparc.c (m8_costs): New struct.
14141 (sparc_option_override): Handle TARGET_CPU_m8.
14142 (sparc32_initialize_trampoline): Likewise.
14143 (sparc64_initialize_trampoline): Likewise.
14144 (sparc_issue_rate): Likewise.
14145 (sparc_register_move_cost): Likewise.
14146 * config/sparc/sparc.h (TARGET_CPU_m8): Define.
14147 (CPP_CPU64_DEFAULT_SPEC): Define for M8.
14148 (ASM_CPU64_DEFAULT_SPEC): Likewise.
14149 (CPP_CPU_SPEC): Handle M8.
14150 (ASM_CPU_SPEC): Likewise.
14151 (AS_M8_FLAG): Define.
14152 * config/sparc/sparc.md: Add m8 to the cpu attribute.
14153 * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
14154 * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
14155 M8 instructions.
14156 * configure: Regenerate.
14157 * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
14158 -mtune=m8.
14159
14160 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14161
14162 * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
14163 subtypes.
14164 * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
14165 ("*movdi_insn_sp32"): Do not set v3pipe.
14166 ("*movsi_insn"): Likewise.
14167 ("*movdi_insn_sp64"): Likewise.
14168 ("*movsf_insn"): Likewise.
14169 ("*movdf_insn_sp32"): Likewise.
14170 ("*movdf_insn_sp64"): Likewise.
14171 ("*zero_extendsidi2_insn_sp64"): Likewise.
14172 ("*sign_extendsidi2_insn"): Likewise.
14173 ("*mov<VM32:mode>_insn"): Likewise.
14174 ("*mov<VM64:mode>_insn_sp64"): Likewise.
14175 ("*mov<VM64:mode>_insn_sp32"): Likewise.
14176 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
14177 ("<vlop:code><VL:mode>3"): Likewise.
14178 ("*not_<vlop:code><VL:mode>3"): Likewise.
14179 ("*nand<VL:mode>_vis"): Likewise.
14180 ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
14181 ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
14182 ("one_cmpl<VL:mode>2"): Likewise.
14183 ("faligndata<VM64:mode>_vis"): Likewise.
14184 ("alignaddrsi_vis"): Likewise.
14185 ("alignaddrdi_vis"): Likweise.
14186 ("alignaddrlsi_vis"): Likewise.
14187 ("alignaddrldi_vis"): Likewise.
14188 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
14189 ("bmaskdi_vis"): Likewise.
14190 ("bmasksi_vis"): Likewise.
14191 ("bshuffle<VM64:mode>_vis"): Likewise.
14192 ("cmask8<P:mode>_vis"): Likewise.
14193 ("cmask16<P:mode>_vis"): Likewise.
14194 ("cmask32<P:mode>_vis"): Likewise.
14195 ("pdistn<P:mode>_vis"): Likewise.
14196 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
14197
14198 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14199
14200 * config/sparc/sparc.md ("subtype"): New insn attribute.
14201 ("*wrgsr_sp64"): Set insn subtype.
14202 ("*rdgsr_sp64"): Likewise.
14203 ("alignaddrsi_vis"): Likewise.
14204 ("alignaddrdi_vis"): Likewise.
14205 ("alignaddrlsi_vis"): Likewise.
14206 ("alignaddrldi_vis"): Likewise.
14207 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
14208 ("fexpand_vis"): Likewise.
14209 ("fpmerge_vis"): Likewise.
14210 ("faligndata<VM64:mode>_vis"): Likewise.
14211 ("bshuffle<VM64:mode>_vis"): Likewise.
14212 ("cmask8<P:mode>_vis"): Likewise.
14213 ("cmask16<P:mode>_vis"): Likewise.
14214 ("cmask32<P:mode>_vis"): Likewise.
14215 ("fchksm16_vis"): Likewise.
14216 ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
14217 ("fmean16_vis"): Likewise.
14218 ("fp<plusminus_insn>64_vis"): Likewise.
14219 ("<plusminus_insn>v8qi3"): Likewise.
14220 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
14221 ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
14222 ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
14223 ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
14224 ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
14225 ("*movqi_insn"): Likewise.
14226 ("*movhi_insn"): Likewise.
14227 ("*movsi_insn"): Likewise.
14228 ("movsi_pic_gotdata_op"): Likewise.
14229 ("*movdi_insn_sp32"): Likewise.
14230 ("*movdi_insn_sp64"): Likewise.
14231 ("movdi_pic_gotdata_op"): Likewise.
14232 ("*movsf_insn"): Likewise.
14233 ("*movdf_insn_sp32"): Likewise.
14234 ("*movdf_insn_sp64"): Likewise.
14235 ("*zero_extendhisi2_insn"): Likewise.
14236 ("*zero_extendqihi2_insn"): Likewise.
14237 ("*zero_extendqisi2_insn"): Likewise.
14238 ("*zero_extendqidi2_insn"): Likewise.
14239 ("*zero_extendhidi2_insn"): Likewise.
14240 ("*zero_extendsidi2_insn_sp64"): Likewise.
14241 ("ldfsr"): Likewise.
14242 ("prefetch_64"): Likewise.
14243 ("prefetch_32"): Likewise.
14244 ("tie_ld32"): Likewise.
14245 ("tie_ld64"): Likewise.
14246 ("*tldo_ldub_sp32"): Likewise.
14247 ("*tldo_ldub1_sp32"): Likewise.
14248 ("*tldo_ldub2_sp32"): Likewise.
14249 ("*tldo_ldub_sp64"): Likewise.
14250 ("*tldo_ldub1_sp64"): Likewise.
14251 ("*tldo_ldub2_sp64"): Likewise.
14252 ("*tldo_ldub3_sp64"): Likewise.
14253 ("*tldo_lduh_sp32"): Likewise.
14254 ("*tldo_lduh1_sp32"): Likewise.
14255 ("*tldo_lduh_sp64"): Likewise.
14256 ("*tldo_lduh1_sp64"): Likewise.
14257 ("*tldo_lduh2_sp64"): Likewise.
14258 ("*tldo_lduw_sp32"): Likewise.
14259 ("*tldo_lduw_sp64"): Likewise.
14260 ("*tldo_lduw1_sp64"): Likewise.
14261 ("*tldo_ldx_sp64"): Likewise.
14262 ("*mov<VM32:mode>_insn"): Likewise.
14263 ("*mov<VM64:mode>_insn_sp64"): Likewise.
14264 ("*mov<VM64:mode>_insn_sp32"): Likewise.
14265
14266 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14267
14268 * config/sparc/sparc.md ("type"): New insn type viscmp.
14269 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
14270 viscmp.
14271 ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
14272 ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
14273 ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
14274 * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
14275 viscmp.
14276 ("n7_vis_logical_11cycle"): Likewise.
14277 * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
14278 * config/sparc/niagara2.md ("niag3_vis": Likewise.
14279 * config/sparc/niagara.md ("niag_vis"): Likewise.
14280 * config/sparc/ultra3.md ("us3_fga"): Likewise.
14281 * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
14282
14283 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14284
14285 * config/sparc/sparc.md: New instruction type `bmask'.
14286 (bmaskdi_vis): Use the `bmask' type.
14287 (bmasksi_vis): Likewise.
14288 * config/sparc/ultra3.md (us3_array): Likewise.
14289 * config/sparc/niagara7.md (n7_array): Likewise.
14290 * config/sparc/niagara4.md (n4_array): Likewise.
14291 * config/sparc/niagara2.md (niag2_vis): Likewise.
14292 (niag3_vis): Likewise.
14293 * config/sparc/niagara.md (niag_vis): Likewise.
14294
14295 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
14296
14297 * ipa-comdats.c: Remove optimize check from gate.
14298 * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
14299 for functions not optimized.
14300 (ipa_fn_summary_read): Skip optimize check.
14301 (ipa_fn_summary_write): Likewise.
14302 * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
14303 is optimized.
14304 * ipa-inline.c (can_inline_edge_p): Not optimized functions are
14305 uninlinable.
14306 (can_inline_edge_p): Check flag_pcc_struct_return for match.
14307 (check_callers): Give up on caller which is not optimized.
14308 (inline_small_functions): Likewise.
14309 (ipa_inline): Do not give up when not optimizing.
14310 * ipa-visbility.c (function_and_variable_visibility): Do not optimize
14311 away unoptimizes cdtors.
14312 (whole_program_function_and_variable_visibility): Do
14313 ipa_discover_readonly_nonaddressable_vars in LTO mode.
14314 * ipa.c (process_references): Do not check optimize.
14315 (symbol_table::remove_unreachable_nodes): Update optimize check.
14316 (set_writeonly_bit): Update optimize check.
14317 (pass_ipa_cdtor_merge::gate): Do not check optimize.
14318 (pass_ipa_single_use::gate): Remove.
14319
14320 2017-07-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
14321
14322 * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
14323 insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
14324 rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
14325 mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
14326 permute_load, permute_store, adjust_extract, adjust_splat,
14327 adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
14328 replace_swap_with_copy, dump_swap_insn_table,
14329 alignment_with_canonical_addr, alignment_mask, find_alignment_op,
14330 recombine_lvx_pattern, recombine_stvx_pattern,
14331 recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
14332 make_pass_analyze_swaps): Move all code related to p8 swap optimizations
14333 to file rs6000-p8swap.c.
14334 * config/rs6000/rs6000-p8swap.c: New file.
14335 * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
14336 * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
14337 and rs6000*-*-* targets.
14338
14339 2017-07-06 David Malcolm <dmalcolm@redhat.com>
14340
14341 * Makefile.in (selftest): Remove dependency on s-selftest-c++.
14342
14343 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
14344
14345 * lto-wrapper.c (merge_and_complain): Do not merge
14346 fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
14347 fsigned_zeros, ftrapping_math, fwrapv.
14348 (append_compiler_options): Do not track these options.
14349 (append_linker_options): Likewie
14350
14351 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
14352
14353 * cgraphunit.c (cgraph_node::finalize_function): When
14354 !flag_toplevel_reorde set no_reorder flag.
14355 (varpool_node::finalize_decl): Likewise.
14356 (symbol_table::compile): Drop no toplevel reorder path.
14357
14358 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
14359
14360 * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
14361 edges; zero probability is not better than uninitialized.
14362
14363 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
14364
14365 * asan.h (asan_sanitize_allocas_p): Declare.
14366 * asan.c (asan_sanitize_allocas_p): New function.
14367 (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
14368 (handle_builtin_alloca): Likewise.
14369 * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
14370 if !asan_sanitize_allocas_p.
14371 * params.def (asan-instrument-allocas): Add new option.
14372 * params.h (ASAN_PROTECT_ALLOCAS): Define.
14373 * opts.c (common_handle_option): Disable allocas sanitization for
14374 KASan by default.
14375
14376 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
14377
14378 * asan.c: Include gimple-fold.h.
14379 (get_last_alloca_addr): New function.
14380 (handle_builtin_stackrestore): Likewise.
14381 (handle_builtin_alloca): Likewise.
14382 (asan_emit_allocas_unpoison): Likewise.
14383 (get_mem_refs_of_builtin_call): Add new parameter, remove const
14384 quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
14385 BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
14386 (instrument_builtin_call): Pass gimple iterator to
14387 get_mem_refs_of_builtin_call.
14388 (last_alloca_addr): New global.
14389 * asan.h (asan_emit_allocas_unpoison): Declare.
14390 * builtins.c (expand_asan_emit_allocas_unpoison): New function.
14391 (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
14392 * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
14393 if function calls alloca.
14394 * gimple-fold.c (replace_call_with_value): Remove static keyword.
14395 * gimple-fold.h (replace_call_with_value): Declare.
14396 * internal-fn.c: Include asan.h.
14397 * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
14398 BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
14399
14400 2017-07-06 David Malcolm <dmalcolm@redhat.com>
14401
14402 * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
14403 (C_SELFTEST_FLAGS): New.
14404 (CPP_SELFTEST_FLAGS): New.
14405 (SELFTEST_DEPS): New, from deps of s-selftest.
14406 (C_SELFTEST_DEPS): New, from deps of s-selftest.
14407 (CPP_SELFTEST_DEPS): New.
14408 (selftest): Add dependency on s-selftest-c++.
14409 (s-selftest): Rename to...
14410 (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
14411 and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
14412 than SELFTEST_FLAGS.
14413 (selftest-gdb): Rename to...
14414 (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
14415 C_SELFTEST_FLAGS.
14416 (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
14417 (selftest-valgrind): Rename to...
14418 (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
14419 C_SELFTEST_FLAGS.
14420 (selftest-valgrind): Reintroduce as an alias for
14421 selftest-c-valgrind.
14422 (s-selftest-c++): New.
14423 (selftest-c++-gdb): New.
14424 (selftest-c++-valgrind): New.
14425
14426 2017-07-06 Olivier Hainque <hainque@adacore.com>
14427
14428 * gcc.c (process_command): When deciding if undefined variables
14429 should be ignored when processing specs, accept "gcc -v" as well.
14430
14431 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
14432
14433 * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
14434 afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
14435
14436 2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
14437
14438 * config/arm/arm-cpus.in (armv8-r): Add new entry.
14439 * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
14440 * config/arm/arm-tables.opt: Regenerate.
14441 * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
14442 enumerator.
14443 * doc/invoke.texi: Mention -march=armv8-r and its extensions.
14444
14445 2017-07-06 Carl Love <cel@us.ibm.com>
14446
14447 * ChangeLog: Clean up from mid air collision
14448
14449 2017-07-06 Carl Love <cel@us.ibm.com>
14450
14451 * config/rs6000/rs6000-c.c: Add support for built-in functions
14452 vector signed int vec_subc (vector signed int, vector signed int);
14453 vector signed __int128 vec_subc (vector signed __int128,
14454 vector signed __int128);
14455 vector unsigned __int128 vec_subc (vector unsigned __int128,
14456 vector unsigned __int128);
14457 vector signed int vec_sube (vector signed int, vector signed int,
14458 vector signed int);
14459 vector unsigned int vec_sube (vector unsigned int,
14460 vector unsigned int,
14461 vector unsigned int);
14462 vector signed __int128 vec_sube (vector signed __int128,
14463 vector signed __int128,
14464 vector signed__int128);
14465 vector unsigned __int128 vec_sube (vector unsigned __int128,
14466 vector unsigned __int128,
14467 vector unsigned __int128);
14468 vector signed int vec_subec (vector signed int, vector signed int,
14469 vector signed int);
14470 vector unsigned int vec_subec (vector unsigned int,
14471 vector unsigned int,
14472 vector unsigned int);
14473 vector signed __int128 vec_subec (vector signed __int128,
14474 vector signed __int128,
14475 vector signed__int128);
14476 vector unsigned __int128 vec_subec (vector unsigned __int128,
14477 vector unsigned __int128,
14478 vector unsigned __int128);
14479 * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
14480 ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
14481 * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
14482 BU_ALTIVEC_OVERLOAD_X definitions.
14483 * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
14484 * doc/extend.texi: Update the built-in documentation file for the new
14485 built-in functions.
14486
14487 2017-07-06 David Malcolm <dmalcolm@redhat.com>
14488
14489 PR c++/79300
14490 * diagnostic-show-locus.c (layout::layout): Use start and finish
14491 spelling location for the start and finish of each range.
14492 * genmatch.c (linemap_client_expand_location_to_spelling_point):
14493 Add unused aspect param.
14494 * input.c (expand_location_1): Add "aspect" param, and use it
14495 to access the correct part of the location.
14496 (expand_location): Pass LOCATION_ASPECT_CARET to new param of
14497 expand_location_1.
14498 (expand_location_to_spelling_point): Likewise.
14499 (linemap_client_expand_location_to_spelling_point): Add "aspect"
14500 param, and pass it to expand_location_1.
14501
14502 2017-07-06 Sebastian Peryt <sebastian.peryt@intel.com>
14503
14504 * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
14505 _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
14506 _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
14507 _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
14508 _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
14509 _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
14510 _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
14511 _mm_maskz_getmant_ss): New intrinsics.
14512 (__builtin_ia32_getexpss128_mask): Changed to ...
14513 __builtin_ia32_getexpss128_round ... this.
14514 (__builtin_ia32_getexpsd128_mask): Changed to ...
14515 __builtin_ia32_getexpsd128_round ... this.
14516 * config/i386/i386-builtin-types.def
14517 ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
14518 (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
14519 * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
14520 __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round,
14521 __builtin_ia32_getmantss_mask_round): New builtins.
14522 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
14523 V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
14524 (CODE_FOR_avx512f_vgetmantv2df_mask_round,
14525 CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
14526 * config/i386/sse.md
14527 (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
14528 avx512f_sgetexp<mode><mask_scalar_name>
14529 <round_saeonly_scalar_name> ... this.
14530 (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
14531 %0, %1, %2<round_saeonly_op3>}): Changed to ...
14532 vgetexp<ssescalarmodesuffix>
14533 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14534 %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
14535 (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
14536 avx512f_vgetmant<mode><mask_scalar_name>
14537 <round_saeonly_scalar_name> ... this.
14538 (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
14539 %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
14540 vgetmant<ssescalarmodesuffix>
14541 \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
14542 %0<mask_scalar_operand4>, %1, %2
14543 <round_saeonly_scalar_mask_op4>, %3} ... this.
14544 * config/i386/subst.md (mask_scalar_operand4,
14545 round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4,
14546 round_saeonly_scalar_nimm_predicate): New subst attributes.
14547
14548 2017-07-06 Julia Koval <julia.koval@intel.com>
14549
14550 * config/i386/i386.c (ix86_erase_embedded_rounding):
14551 Remove code for old rounding pattern.
14552
14553 2017-07-06 Richard Earnshaw <rearnsha@arm.com>
14554
14555 * config/arm/t-arm (GTM_H): Add arm-cpu.h.
14556
14557 2017-07-06 Christophe Lyon <christophe.lyon@linaro.org>
14558
14559 * doc/sourcebuild.texi (Test Directives, Variants of
14560 dg-require-support): Add documentation for dg-require-stack-check.
14561
14562 2017-07-05 Sebastian Peryt <sebastian.peryt@intel.com>
14563
14564 * config/i386/subst.md (mask_scalar, round_scalar,
14565 round_saeonly_scalar): New meta-templates.
14566 (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
14567 round_scalar_mask_operand3, round_scalar_mask_op3,
14568 round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
14569 round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
14570 round_saeonly_scalar_constraint,
14571 round_saeonly_scalar_prefix): New subst attribute.
14572 * config/i386/sse.md
14573 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
14574 <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
14575 <round_scalar_name> ... this.
14576 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
14577 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
14578 <round_scalar_name> ... this.
14579 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
14580 <sse>_vm<code><mode>3<mask_scalar_name>
14581 <round_saeonly_scalar_name> ... this.
14582 (v<plusminus_mnemonic><ssescalarmodesuffix>
14583 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
14584 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
14585 v<plusminus_mnemonic><ssescalarmodesuffix>
14586 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14587 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
14588 (v<multdiv_mnemonic><ssescalarmodesuffix>
14589 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
14590 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
14591 v<multdiv_mnemonic><ssescalarmodesuffix>
14592 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14593 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
14594 (v<maxmin_float><ssescalarmodesuffix>
14595 \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
14596 %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
14597 v<maxmin_float><ssescalarmodesuffix>
14598 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14599 %0<mask_scalar_operand3>, %1, %<iptr>2
14600 <round_saeonly_scalar_mask_op3>} ... this.
14601
14602 2017-07-05 Richard Earnshaw <rearnsha@arm.com>
14603
14604 * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
14605 (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
14606
14607 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
14608 Alan Hayward <alan.hayward@arm.com>
14609 David Sherwood <david.sherwood@arm.com>
14610
14611 * combine.c (simplify_if_then_else): Remove "enum" before
14612 "machine_mode".
14613 * compare-elim.c (can_eliminate_compare): Likewise.
14614 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
14615 Likewise.
14616 (aarch64_lookup_simd_builtin_type): Likewise.
14617 (aarch64_simd_builtin_type): Likewise.
14618 (aarch64_init_simd_builtin_types): Likewise.
14619 (aarch64_simd_expand_args): Likewise.
14620 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
14621 Likewise.
14622 (aarch64_reverse_mask): Likewise.
14623 (aarch64_simd_emit_reg_reg_move): Likewise.
14624 (aarch64_gen_adjusted_ldpstp): Likewise.
14625 (aarch64_ccmp_mode_to_code): Likewise.
14626 (aarch64_operands_ok_for_ldpstp): Likewise.
14627 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
14628 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
14629 Likewise.
14630 (aarch64_min_divisions_for_recip_mul): Likewise.
14631 (aarch64_reassociation_width): Likewise.
14632 (aarch64_get_condition_code_1): Likewise.
14633 (aarch64_simd_emit_reg_reg_move): Likewise.
14634 (aarch64_simd_attr_length_rglist): Likewise.
14635 (aarch64_reverse_mask): Likewise.
14636 (aarch64_operands_ok_for_ldpstp): Likewise.
14637 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
14638 (aarch64_gen_adjusted_ldpstp): Likewise.
14639 * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
14640 Likewise.
14641 * config/arc/arc.c (legitimate_offset_address_p): Likewise.
14642 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
14643 (arm_lookup_simd_builtin_type): Likewise.
14644 (arm_simd_builtin_type): Likewise.
14645 (arm_init_simd_builtin_types): Likewise.
14646 (arm_expand_builtin_args): Likewise.
14647 * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
14648 * config/ft32/ft32.c (ft32_libcall_value): Likewise.
14649 (ft32_setup_incoming_varargs): Likewise.
14650 (ft32_function_arg): Likewise.
14651 (ft32_function_arg_advance): Likewise.
14652 (ft32_pass_by_reference): Likewise.
14653 (ft32_arg_partial_bytes): Likewise.
14654 (ft32_valid_pointer_mode): Likewise.
14655 (ft32_addr_space_pointer_mode): Likewise.
14656 (ft32_addr_space_legitimate_address_p): Likewise.
14657 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
14658 Likewise.
14659 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
14660 (ix86_emit_outlined_ms2sysv_restore): Likewise.
14661 (iamcu_alignment): Likewise.
14662 (canonicalize_vector_int_perm): Likewise.
14663 (ix86_noce_conversion_profitable_p): Likewise.
14664 (ix86_mpx_bound_mode): Likewise.
14665 (ix86_operands_ok_for_move_multiple): Likewise.
14666 * config/microblaze/microblaze-protos.h
14667 (microblaze_expand_conditional_branch_reg): Likewise.
14668 * config/microblaze/microblaze.c
14669 (microblaze_expand_conditional_branch_reg): Likewise.
14670 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
14671 Likewise.
14672 (rs6000_reassociation_width): Likewise.
14673 (rs6000_invalid_binary_op): Likewise.
14674 (fusion_p9_p): Likewise.
14675 (emit_fusion_p9_load): Likewise.
14676 (emit_fusion_p9_store): Likewise.
14677 * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
14678 Likewise.
14679 (riscv_hard_regno_mode_ok_p): Likewise.
14680 (riscv_address_insns): Likewise.
14681 (riscv_split_symbol): Likewise.
14682 (riscv_legitimize_move): Likewise.
14683 (riscv_function_value): Likewise.
14684 (riscv_hard_regno_nregs): Likewise.
14685 (riscv_expand_builtin): Likewise.
14686 * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
14687 (riscv_build_integer): Likewise.
14688 (riscv_split_integer): Likewise.
14689 (riscv_legitimate_constant_p): Likewise.
14690 (riscv_cannot_force_const_mem): Likewise.
14691 (riscv_regno_mode_ok_for_base_p): Likewise.
14692 (riscv_valid_base_register_p): Likewise.
14693 (riscv_valid_offset_p): Likewise.
14694 (riscv_valid_lo_sum_p): Likewise.
14695 (riscv_classify_address): Likewise.
14696 (riscv_legitimate_address_p): Likewise.
14697 (riscv_address_insns): Likewise.
14698 (riscv_load_store_insns): Likewise.
14699 (riscv_force_binary): Likewise.
14700 (riscv_split_symbol): Likewise.
14701 (riscv_force_address): Likewise.
14702 (riscv_legitimize_address): Likewise.
14703 (riscv_move_integer): Likewise.
14704 (riscv_legitimize_const_move): Likewise.
14705 (riscv_legitimize_move): Likewise.
14706 (riscv_address_cost): Likewise.
14707 (riscv_subword): Likewise.
14708 (riscv_output_move): Likewise.
14709 (riscv_canonicalize_int_order_test): Likewise.
14710 (riscv_emit_int_order_test): Likewise.
14711 (riscv_function_arg_boundary): Likewise.
14712 (riscv_pass_mode_in_fpr_p): Likewise.
14713 (riscv_pass_fpr_single): Likewise.
14714 (riscv_pass_fpr_pair): Likewise.
14715 (riscv_get_arg_info): Likewise.
14716 (riscv_function_arg): Likewise.
14717 (riscv_function_arg_advance): Likewise.
14718 (riscv_arg_partial_bytes): Likewise.
14719 (riscv_function_value): Likewise.
14720 (riscv_pass_by_reference): Likewise.
14721 (riscv_setup_incoming_varargs): Likewise.
14722 (riscv_print_operand): Likewise.
14723 (riscv_elf_select_rtx_section): Likewise.
14724 (riscv_save_restore_reg): Likewise.
14725 (riscv_for_each_saved_reg): Likewise.
14726 (riscv_register_move_cost): Likewise.
14727 (riscv_hard_regno_mode_ok_p): Likewise.
14728 (riscv_hard_regno_nregs): Likewise.
14729 (riscv_class_max_nregs): Likewise.
14730 (riscv_memory_move_cost): Likewise.
14731 * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
14732 * config/rl78/rl78.c (rl78_split_movsi): Likewise.
14733 (rl78_addr_space_address_mode): Likewise.
14734 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14735 Likewise.
14736 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
14737 (rs6000_reassociation_width): Likewise.
14738 (rs6000_invalid_binary_op): Likewise.
14739 (fusion_p9_p): Likewise.
14740 (emit_fusion_p9_load): Likewise.
14741 (emit_fusion_p9_store): Likewise.
14742 * config/visium/visium-protos.h (prepare_move_operands): Likewise.
14743 (ok_for_simple_move_operands): Likewise.
14744 (ok_for_simple_move_strict_operands): Likewise.
14745 (ok_for_simple_arith_logic_operands): Likewise.
14746 (visium_legitimize_reload_address): Likewise.
14747 (visium_select_cc_mode): Likewise.
14748 (output_cbranch): Likewise.
14749 (visium_split_double_move): Likewise.
14750 (visium_expand_copysign): Likewise.
14751 (visium_expand_int_cstore): Likewise.
14752 (visium_expand_fp_cstore): Likewise.
14753 * config/visium/visium.c (visium_pass_by_reference): Likewise.
14754 (visium_function_arg): Likewise.
14755 (visium_function_arg_advance): Likewise.
14756 (visium_libcall_value): Likewise.
14757 (visium_setup_incoming_varargs): Likewise.
14758 (visium_legitimate_constant_p): Likewise.
14759 (visium_legitimate_address_p): Likewise.
14760 (visium_legitimize_address): Likewise.
14761 (visium_secondary_reload): Likewise.
14762 (visium_register_move_cost): Likewise.
14763 (visium_memory_move_cost): Likewise.
14764 (prepare_move_operands): Likewise.
14765 (ok_for_simple_move_operands): Likewise.
14766 (ok_for_simple_move_strict_operands): Likewise.
14767 (ok_for_simple_arith_logic_operands): Likewise.
14768 (visium_function_value_1): Likewise.
14769 (rtx_ok_for_offset_p): Likewise.
14770 (visium_legitimize_reload_address): Likewise.
14771 (visium_split_double_move): Likewise.
14772 (visium_expand_copysign): Likewise.
14773 (visium_expand_int_cstore): Likewise.
14774 (visium_expand_fp_cstore): Likewise.
14775 (visium_split_cstore): Likewise.
14776 (visium_select_cc_mode): Likewise.
14777 (visium_split_cbranch): Likewise.
14778 (output_cbranch): Likewise.
14779 (visium_print_operand_address): Likewise.
14780 * expmed.c (flip_storage_order): Likewise.
14781 * expmed.h (emit_cstore): Likewise.
14782 (flip_storage_order): Likewise.
14783 * genrecog.c (validate_pattern): Likewise.
14784 * hsa-gen.c (gen_hsa_addr): Likewise.
14785 * internal-fn.c (expand_arith_overflow): Likewise.
14786 * ira-color.c (allocno_copy_cost_saving): Likewise.
14787 * lra-assigns.c (find_hard_regno_for_1): Likewise.
14788 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
14789 (process_invariant_for_inheritance): Likewise.
14790 * lra-eliminations.c (move_plus_up): Likewise.
14791 * omp-low.c (lower_oacc_reductions): Likewise.
14792 * simplify-rtx.c (simplify_subreg): Likewise.
14793 * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
14794 (TARGET_CHKP_BOUND_MODE): Likewise..
14795 * targhooks.c (default_chkp_bound_mode): Likewise.
14796 (default_setup_incoming_vararg_bounds): Likewise.
14797 * targhooks.h (default_chkp_bound_mode): Likewise.
14798 (default_setup_incoming_vararg_bounds): Likewise.
14799 * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
14800 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
14801 (have_whole_vector_shift): Likewise.
14802 * tree-vect-stmts.c (vectorizable_load): Likewise.
14803 * doc/tm.texi: Regenerate.
14804
14805 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
14806
14807 Graceful degrade if Binutils PR21472 is not available.
14808
14809 PR target/81072
14810 * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
14811 .rodata in flash test fails.
14812 (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
14813 * confgure: Regenerate.
14814 * config.in: Regenerate.
14815 * config/avr/avr.c (avr_asm_named_section)
14816 [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
14817 __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
14818 (avr_asm_init_sections): Same.
14819
14820 2017-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14821
14822 * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
14823 (fma<VH:mode>4_intrinsic): Likewise.
14824 (*fmsub<VCVTF:mode>4): Likewise.
14825 (*fmsub<VH:mode>4_intrinsic): Likewise.
14826
14827 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
14828
14829 PR target/81305
14830 * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
14831 Don't depend on "optimize > 0".
14832 (out_movhi_r_mr, out_movqi_mr_r): Same.
14833 (out_movhi_mr_r, out_movqi_r_mr): Same.
14834 (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
14835 io_address_operand on "optimize > 0".
14836
14837 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14838
14839 * tree-loop-distribution.c: Add general explanantion on the pass.
14840 (generate_loops_for_partition): Mark distributed loop.
14841 (pg_add_dependence_edges): New parameter. Handle alias data
14842 dependence specially and record it in the parameter if asked.
14843 (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
14844 (init_partition_graph_vertices, add_partition_graph_edge): New.
14845 (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
14846 (free_partition_graph_vdata, build_partition_graph): New.
14847 (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
14848 (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
14849 (data_ref_segment_size, latch_dominated_by_data_ref): New.
14850 (compute_alias_check_pairs, version_loop_by_alias_check): New.
14851 (version_for_distribution_p, finalize_partitions): New.
14852 (distribute_loop): Handle alias data dependence specially. Factor
14853 out loop fusion code as functions and call these functions.
14854
14855 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14856
14857 * tree-loop-distribution.c (classify_partition): New parameter and
14858 better handle reduction statement.
14859 (rdg_build_partitions): Revise comment.
14860 (distribute_loop): Compute statements in all partitions and pass it
14861 to classify_partition.
14862
14863 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14864
14865 * tree-loop-distribution.c (enum partition_type): New.
14866 (struct partition): New field type.
14867 (partition_merge_into): Add parameter. Update partition type.
14868 (data_dep_in_cycle_p, update_type_for_merge): New functions.
14869 (build_rdg_partition_for_vertex): Compute partition type.
14870 (rdg_build_partitions): Dump partition type.
14871 (distribute_loop): Update calls to partition_merge_into.
14872
14873 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14874
14875 * tree-loop-distribution.c (struct ddr_hasher): New.
14876 (ddr_hasher::hash, ::equal, get_data_dependence): New function.
14877 (ddrs_table): New.
14878 (classify_partition): Call get_data_dependence.
14879 (pg_add_dependence_edges): Ditto.
14880 (distribute_loop): Release data dependence hash table.
14881
14882 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14883
14884 * tree-loop-distribution.c (ref_base_address): Delete.
14885 (similar_memory_accesses): Rename ...
14886 (share_memory_accesses): ... to this. Check if partitions access
14887 the same memory reference.
14888 (distribute_loop): Call share_memory_accesses.
14889
14890 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14891
14892 * tree-loop-distribution.c (struct partition): New field recording
14893 its data reference.
14894 (partition_alloc, partition_free): Init and release data refs.
14895 (partition_merge_into): Merge data refs.
14896 (build_rdg_partition_for_vertex): Collect data refs for partition.
14897 (pg_add_dependence_edges): Change parameters from vector to bitmap.
14898 Update uses.
14899 (distribute_loop): Remve data refs from vertice data of partition
14900 graph.
14901
14902 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14903
14904 * tree-loop-distribution.c (params.h): Include header file.
14905 (MAX_DATAREFS_NUM, DR_INDEX): New macro.
14906 (datarefs_vec): New global var.
14907 (create_rdg_vertices): Use datarefs_vec directly.
14908 (free_rdg): Don't free data references.
14909 (build_rdg): Update use. Don't free data references.
14910 (distribute_loop): Compute global variable for data references.
14911 Bail out if there are too many data references.
14912
14913 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14914
14915 * tree-loop-distribution.c (loop_nest): New global var.
14916 (build_rdg): Use loop directly, rather than loop nest.
14917 (pg_add_dependence_edges): Remove loop nest parameter. Use global
14918 variable directly.
14919 (distribute_loop): Compute global variable loop nest. Update use.
14920
14921 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14922
14923 * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
14924 (partition_merge_into): New parameter. Dump reason for fusion.
14925 (distribute_loop): Update use of partition_merge_into.
14926
14927 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14928
14929 * tree-loop-distribution.c (bb_top_order_index): New.
14930 (bb_top_order_index_size, bb_top_order_cmp): New.
14931 (stmts_from_loop): Use topological order.
14932 (pass_loop_distribution::execute): Compute and release topological
14933 order for basic blocks.
14934
14935 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14936
14937 * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
14938 if no loops.
14939
14940 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14941
14942 * cfgloop.h (struct loop): Add comment. New field orig_loop_num.
14943 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
14944 * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
14945 * internal-fn.def (LOOP_DIST_ALIAS): New.
14946 * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
14947 (fold_loop_internal_call): ... this.
14948 (vect_loop_dist_alias_call): New function.
14949 (set_uid_loop_bbs): Call fold_loop_internal_call.
14950 (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
14951 internal calls.
14952
14953 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
14954
14955 PR target/81300
14956 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
14957 Require dead FLAGS_REG at the beginning of a peephole.
14958
14959 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
14960
14961 PR target/81294
14962 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
14963 arguments in the call to __builtin_ia32_sbb_u32.
14964 (_subborrow_u64): Swap _X and _Y arguments in the call to
14965 __builtin_ia32_sbb_u64.
14966
14967 2017-07-04 Jakub Jelinek <jakub@redhat.com>
14968
14969 PR debug/81278
14970 * tree-vrp.c (compare_assert_loc): Turn into a function template
14971 with stable template parameter. Only test if a->e is NULL,
14972 !a->e == !b->e has been verified already. Use e == NULL or
14973 e != NULL instead of e or ! e tests. If stable is true, don't use
14974 iterative_hash_expr, on the other side allow a or b or both NULL
14975 and sort the NULLs last.
14976 (process_assert_insertions): Sort using compare_assert_loc<false>
14977 instead of compare_assert_loc, later sort using
14978 compare_assert_loc<true> before calling process_assert_insertions_for
14979 in a loop. Use break instead of continue once seen NULL pointer.
14980
14981 2017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
14982
14983 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
14984 Cortex-R7 and Cortex-R8 processors.
14985
14986 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
14987
14988 * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
14989 uninitialized while src is not.
14990
14991 2017-07-04 Richard Earnshaw <rearnsha@arm.com>
14992
14993 * common/config/arm/arm-common.c: Adjust include path for
14994 arm-cpu-cdata.h
14995 * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
14996 (arm-cpu.h): Create in build directory. Adjust dependency rules.
14997 (arm-cpu-data.h): Likewise.
14998 (arm-cpu-cdata.h): Likewise.
14999 * config/arm/arm-cpu.h: Delete.
15000 * config/arm/arm-cpu-cdata.h: Delete.
15001 * config/arm/arm-cpu-data.h: Delete.
15002
15003 2017-07-04 James Greenhalgh <james.greenhalgh@arm.com>
15004
15005 * config/arm/arm-cpus.in (cortex-a55): New.
15006 (cortex-a75): Likewise.
15007 (cortex-a75.cortex-a55): Likewise.
15008 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
15009 cortex-a75.
15010 * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
15011 * config/arm/arm-cpu-cdata.h: Regenerate.
15012 * config/arm/arm-cpu-data.h: Regenerate.
15013 * config/arm/arm-cpu.h: Regenerate.
15014 * config/arm/arm-tables.opt: Regenerate.
15015 * config/arm/arm-tune.md: Regenerate.
15016
15017 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
15018
15019 * haifa-sched.c (sched_create_recovery_edges): Update profile.
15020
15021 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
15022
15023 * bb-reorder.c (better_edge_p): Fix handling of uninitialized
15024 probability.
15025
15026 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org>
15027
15028 PR tree-optimization/81292
15029 * tree-ssa-strlen.c (handle_builtin_strlen): When setting
15030 full_string_p, also call adjust_related_strinfos if the adjustment
15031 is simple, otherwise invalidate related strinfos.
15032
15033 2017-07-04 Martin Liska <mliska@suse.cz>
15034
15035 PR sanitizer/81040
15036 * sanopt.c (sanitize_rewrite_addressable_params): Mark the
15037 newly created variable as DECL_IGNORED_P.
15038
15039 2017-07-04 Martin Liska <mliska@suse.cz>
15040
15041 PR ipa/81293
15042 * ipa-inline.c (inline_small_functions):
15043 Use xstrdup_for_dump.
15044
15045 2017-07-04 Tom de Vries <tom@codesourcery.com>
15046
15047 * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
15048
15049 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
15050
15051 PR target/81033
15052 * config/darwin.c (darwin_function_switched_text_sections):
15053 Fix spaces.
15054
15055 2017-07-03 Jan Hubicka <hubicka@ucw.cz>
15056
15057 * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
15058
15059 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
15060
15061 * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
15062
15063 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15064
15065 * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
15066 min_profitable_iters, and th as inclusive lower bounds.
15067 Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
15068 (vect_estimate_min_profitable_iters): Return inclusive lower bounds
15069 for min_profitable_iters and min_profitable_estimate.
15070 (vect_transform_loop): Treat th as an inclusive lower bound.
15071 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
15072
15073 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
15074
15075 PR target/81033
15076 * config/darwin.c (darwin_function_switched_text_sections):
15077 Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
15078 in two pieces, and suppress the use of buf.
15079
15080 2017-07-03 Nathan Sidwell <nathan@acm.org>
15081
15082 * hash-table.h (hash_table_mod1): Fix indentation.
15083
15084 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15085
15086 PR middle-end/81290
15087 * predict.c (force_edge_cold): Be more careful about propagation
15088 backward.
15089 * profile-count.h (profile_probability::guessed,
15090 profile_probability::fdo, profile_count::guessed, profile_count::fdo):
15091 New.
15092 * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
15093
15094 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com>
15095
15096 * doc/invoke.texi (rcpc architecture extension): Document it.
15097
15098 2017-07-03 Richard Biener <rguenther@suse.de>
15099
15100 PR tree-optimization/60510
15101 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
15102 the scalar reduction PHI and use it.
15103 (vectorizable_reduction): Properly guard the single_defuse_cycle
15104 path for non-SLP reduction chains where we cannot use it.
15105 Rework reduc_def/index and vector type deduction. Rework
15106 vector operand gathering during reduction op code-gen.
15107 * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
15108 chains dissolve the chain and leave it to non-SLP reduction
15109 handling.
15110
15111 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15112
15113 * tree-data-ref.h (dr_alignment): Declare.
15114 * tree-data-ref.c (dr_alignment): New function.
15115 * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
15116 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
15117 set it.
15118 * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
15119
15120 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15121
15122 * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
15123 and base_misalignment fields.
15124 (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
15125 * tree-data-ref.c: Include builtins.h.
15126 (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
15127 * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
15128 (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
15129 * tree-vect-data-refs.c: Include tree-cfg.h.
15130 (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
15131 fields instead of calculating an alignment here.
15132 (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new
15133 innermost_loop_behavior fields.
15134
15135 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15136
15137 * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
15138 field.
15139 (DR_STEP_ALIGNMENT): New macro.
15140 * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
15141 * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
15142 (create_data_ref): Print it.
15143 * tree-vect-stmts.c (vectorizable_load): Use the step alignment
15144 to tell whether the step preserves vector (mis)alignment.
15145 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
15146 Move the check for an integer step and generalise to all INTEGER_CST.
15147 (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
15148 Print the outer step alignment.
15149
15150 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15151
15152 * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
15153 with offset_alignment.
15154 (DR_ALIGNED_TO): Delete.
15155 (DR_OFFSET_ALIGNMENT): New macro.
15156 * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
15157 (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
15158 * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
15159 (create_data_ref): Likewise.
15160 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
15161 (vect_analyze_data_refs): Likewise.
15162 * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
15163 creating dummy innermost behavior.
15164
15165 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15166
15167 * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
15168 with a "innermost_loop_behavior *" and refeence tree.
15169 * tree-data-ref.c (dr_analyze_innermost): Likewise.
15170 (create_data_ref): Update call accordingly.
15171 * tree-predcom.c (find_looparound_phi): Likewise.
15172
15173 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15174
15175 * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
15176 fields with dr_wrt_vec_loop.
15177 (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
15178 (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
15179 (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
15180 (vect_dr_behavior): New function.
15181 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
15182 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
15183 vect_dr_behavior. Use a step_preserves_misalignment_p boolean to
15184 track whether the step preserves the misalignment.
15185 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
15186 Use vect_dr_behavior.
15187 (vect_setup_realignment): Update call accordingly.
15188 (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior.
15189 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
15190 call to vect_create_addr_base_for_vector_ref.
15191 (vect_create_cond_for_align_checks): Likewise.
15192 * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
15193 STMT_VINFO_DR_WRT_VEC_LOOP as a block.
15194 (vect_recog_mask_conversion_pattern): Likewise.
15195 * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
15196 (new_stmt_vec_info): Remove redundant zeroing.
15197
15198 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
15199
15200 * common/config/arm/arm-common.c (arm_be8_option): New function.
15201 * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
15202 (ISA_ARMv6): Add isa_bit_be8.
15203 * config/arm/arm.h (arm_be8_option): Add prototype.
15204 (BE8_SPEC_FUNCTION): New define.
15205 (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
15206 * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
15207 (mlittle-endian): Similarly.
15208 (mbe8, mbe32): New options.
15209 * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
15210 * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
15211
15212 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15213
15214 * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
15215
15216 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15217
15218 * tree-cfgcleanup.c (want_merge_blocks_p): New function.
15219 (cleanup_tree_cfg_bb): Use it.
15220 * profile-count.h (profile_count::of_for_merging, profile_count::merge):
15221 New functions.
15222 * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
15223
15224 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15225
15226 PR bootstrap/81285
15227 * loop-doloop.c (add_test): Update profile.
15228
15229 2017-07-03 Martin Liska <mliska@suse.cz>
15230
15231 PR sanitize/81040
15232 * sanopt.c (rewrite_usage_of_param): New function.
15233 (sanitize_rewrite_addressable_params): Likewise.
15234 (pass_sanopt::execute): Call rewrite_usage_of_param.
15235
15236 2017-07-03 Richard Biener <rguenther@suse.de>
15237
15238 * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
15239 back to using VIEW_CONVERT_EXPR.
15240
15241 2017-07-03 Martin Liska <mliska@suse.cz>
15242
15243 PR other/78366
15244 * doc/extend.texi: Document when a resolver function is
15245 generated for target_clones.
15246
15247 2017-07-03 Martin Liska <mliska@suse.cz>
15248
15249 * asan.c (asan_emit_stack_protection): Unpoison just red zones
15250 and shadow memory of auto variables which are subject of
15251 use-after-scope sanitization.
15252 (asan_expand_mark_ifn): Add do set only when is_poison.
15253
15254 2016-07-03 Richard Biener <rguenther@suse.de>
15255
15256 * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
15257 reduction PHIs.
15258 (vect_force_simple_reduction): Record reduction def -> phi mapping.
15259 (vectorizable_reduction): Perform reduction PHI creation when
15260 visiting a reduction PHI and adjust and simplify code generation
15261 phase of the reduction op. Cache dts, use fold_binary, not fold_build2.
15262 (vect_transform_loop): Visit reduction PHIs.
15263 * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
15264 defs into the SLP tree.
15265 (vect_build_slp_tree): Reduction defs terminate the recursion.
15266 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
15267 of reduction defs.
15268 (vect_get_vec_defs_for_stmt_copy): Export.
15269 (vect_get_vec_defs): Likewise.
15270 * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
15271 purpose.
15272 (vect_get_vec_defs_for_stmt_copy): Declare.
15273 (vect_get_vec_defs): Likewise.
15274
15275 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15276
15277 * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
15278 parameter with a "loop" parameter and use it instead of the
15279 loop containing DR_STMT. Don't check simple_iv when doing
15280 BB analysis. Describe the two analysis modes in the comment.
15281
15282 2017-07-03 Tom de Vries <tom@codesourcery.com>
15283
15284 PR tree-optimization/69468
15285 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
15286 (find_same_succ_bb): Handle ignore_edge_flags.
15287
15288 2017-07-03 Tom de Vries <tom@codesourcery.com>
15289
15290 PR tree-optimization/81192
15291 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
15292 hash.
15293 (same_succ::equal): Don't find bbs to be equal if bb->loop_father
15294 differs.
15295 (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
15296
15297 2017-07-03 Tom de Vries <tom@codesourcery.com>
15298
15299 PR tree-optimization/81192
15300 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
15301 BB_SAME_SUCC (bb) == NULL.
15302
15303 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15304
15305 * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
15306 consistency.
15307
15308 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15309
15310 * dumpfile.c: Include profile-count.h
15311 * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
15312 update profile.
15313 (insert_cond_bb): Update profile.
15314 * tree-cfg.h (insert_cond_bb): Update prototype.
15315 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
15316 * tree-dump.c: Do not include tree-cfg.
15317
15318 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15319
15320 * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
15321
15322 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15323
15324 * expect.c (dw2_build_landing_pads): Update profile of the landing pad
15325 bb.
15326
15327 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15328
15329 * tree-complex.c (expand_complex_div_wide): update profile.
15330
15331 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
15332 Alan Hayward <alan.hayward@arm.com>
15333 David Sherwood <david.sherwood@arm.com>
15334
15335 * Makefile.in (MACHMODE_H): Remove insn-modes.h
15336 (CORETYPES_H): New define.
15337 (MOSTLYCLEANFILES): Add insn-modes-inline.h.
15338 (insn-modes-inline.h, s-modes-inline-h): New rules.
15339 (generated_files): Add insn-modes-inline.h.
15340 (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
15341 (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
15342 (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
15343 (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
15344 (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
15345 (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
15346 (build/gencodes.o, build/genconditions.o): Likewise.
15347 (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
15348 (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
15349 (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
15350 (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
15351 (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
15352 (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
15353 * coretypes.h: Include everything up to real.h for generators.
15354 Include insn-modes.h first. Include wide-int-print.h after
15355 wide-int.h. Include insn-modes-inline.h and then machmode.h.
15356 * machmode.h: Don't include insn-modes.h here.
15357 * function-tests.c: Remove includes of signop.h, machmode.h,
15358 double-int.h and wide-int.h.
15359 * rtl.h: Likewise.
15360 * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
15361 and wide-int.h.
15362 * optc-save-gen.awk: Likewise.
15363 * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
15364 * godump.c: Remove include of wide-int-print.h.
15365 * pretty-print.h: Likewise.
15366 * wide-int-print.cc: Likewise.
15367 * wide-int.cc: Likewise.
15368 * hash-map-tests.c: Remove include of signop.h.
15369 * hash-set-tests.c: Likewise.
15370 * rtl-tests.c: Likewise.
15371 * mkconfig.sh: Remove include of machmode.h.
15372 * genmodes.c (emit_insn_modes_h): Split emission of inline functions
15373 into...
15374 (emit_insn_modes_inline_h): ...this new function. Emit the code
15375 into an insn-modes-inline.h header file, adding appropriate
15376 include guards and end comments.
15377 (emit_insn_modes_c_header): Remove include of machmode.h.
15378 (emit_min_insn_modes_c_header): Include coretypes.h rather than
15379 machmode.h.
15380 (main): Handle -i flag and call emit_insn_modes_inline_h when
15381 it is passed.
15382
15383 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
15384
15385 * tree-ssa-strlen.c (strinfo): Rename the length field to
15386 nonzero_chars. Add a full_string_p field.
15387 (compare_nonzero_chars, zero_length_string_p): New functions.
15388 (get_addr_stridx): Add an offset_out parameter.
15389 Use compare_nonzero_chars.
15390 (get_stridx): Update accordingly. Use compare_nonzero_chars.
15391 (new_strinfo): Update after above changes to strinfo.
15392 (set_endptr_and_length): Set full_string_p.
15393 (get_string_length): Update after above changes to strinfo.
15394 (unshare_strinfo): Update call to new_strinfo.
15395 (maybe_invalidate): Likewise.
15396 (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
15397 Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars
15398 as a uhwi instead of an shwi. Update after above changes to
15399 strinfo and new_strinfo.
15400 (zero_length_string): Assert that chainsi contains full strings.
15401 Use zero_length_string_p. Update call to new_strinfo.
15402 (adjust_related_strinfos): Update after above changes to strinfo.
15403 Copy full_string_p from origsi.
15404 (adjust_last_stmt): Use zero_length_string_p.
15405 (handle_builtin_strlen): Update after above changes to strinfo and
15406 new_strinfo. Install the lhs as the string length if the previous
15407 entry didn't describe a full string.
15408 (handle_builtin_strchr): Update after above changes to strinfo
15409 and new_strinfo.
15410 (handle_builtin_strcpy): Likewise.
15411 (handle_builtin_strcat): Likewise.
15412 (handle_builtin_malloc): Likewise.
15413 (handle_pointer_plus): Likewise.
15414 (handle_builtin_memcpy): Likewise. Track nonzero characters
15415 that aren't necessarily followed by a nul terminator.
15416 (handle_char_store): Likewise.
15417
15418 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
15419
15420 PR tree-optimization/80769
15421 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
15422 for malloc and calloc. Document the new invariant that all related
15423 strinfos have delayed lengths or none do.
15424 (verify_related_strinfos): Move earlier in file.
15425 (set_endptr_and_length): New function, split out from...
15426 (get_string_length): ...here. Also set the lengths of related
15427 strinfos.
15428 (zero_length_string): Assert that chainsi has known (rather than
15429 delayed) lengths.
15430 (adjust_related_strinfos): Likewise.
15431
15432 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
15433
15434 PR tree-optimization/81136
15435 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
15436 assert that two references with the same misalignment have the same
15437 compile-time misalignment if those compile-time misalignments
15438 are known.
15439
15440 2017-07-01 Andi Kleen <ak@linux.intel.com>
15441
15442 * print-tree.c (print_node): Print all attributes.
15443
15444 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
15445
15446 * cfg.c (scale_bbs_frequencies): New function.
15447 * cfg.h (scale_bbs_frequencies): Declare it.
15448 * cfgloopanal.c (single_likely_exit): Cleanup.
15449 * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
15450 as parameter.
15451 (scale_loop_profile): Likewise.
15452 (loop_version): Likewise.
15453 (create_empty_loop_on_edge): Update.
15454 * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
15455 scale_loop_frequencies, scale_loop_profile, loopify,
15456 loop_version): Update prototypes.
15457 * modulo-sched.c (sms_schedule): Update.
15458 * predict.c (unlikely_executed_edge_p): Also check probability.
15459 (probably_never_executed_edge_p): Fix typo.
15460 * tree-if-conv.c (version_loop_for_if_conversion): Update.
15461 * tree-parloops.c (gen_parallel_loop): Update.
15462 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
15463 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
15464 * tree-ssa-loop-split.c (split_loop): Update.
15465 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
15466 * tree-vect-loop-manip.c (vect_do_peeling): Update.
15467 (vect_loop_versioning): Update.
15468 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
15469
15470 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
15471
15472 * trans-mem.c (split_bb_make_tm_edge): Update profile.
15473
15474 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
15475
15476 * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
15477 to keep profile consistent.
15478
15479 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
15480
15481 * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
15482 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
15483 * profile-count.h (max_safe_multiplier): Make unsigned.
15484 (profile_count::guessed_zero): New.
15485
15486 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
15487
15488 * bb-reorder.c (fix_up_crossing_landing_pad,
15489 fix_crossing_conditional_branches): Use make_single_succ_edge
15490 to keep profile consistent.
15491
15492 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
15493
15494 * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
15495 to update profile.
15496
15497 2017-07-01 Jakub Jelinek <jakub@redhat.com>
15498
15499 PR sanitizer/81262
15500 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
15501 the right scopes, make sure cond_jump isn't preserved between multiple
15502 iterations. Search for fallthru edge whenever there are 3+ edges and
15503 use find_fallthru_edge for it.
15504
15505 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
15506
15507 Patch by Alexander Monakov <amonakov@ispras.ru>
15508 * sel-sched-ir.c (compute_succs_info): Handle uninitialized
15509 probabilities consistently.
15510
15511 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
15512
15513 * pa.c (pa_expand_compare_and_swap_loop): Update call of
15514 emit_cmp_and_jump_insns.
15515
15516 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
15517
15518 PR ipa/81261
15519 * tree-inline.c (expand_call_inline): Combine profile statuses.
15520
15521 2017-06-30 Andrew Pinski <apinski@cavium.com>
15522
15523 * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
15524 fold_stmt returned true.
15525
15526 2017-06-30 Nathan Sidwell <nathan@acm.org>
15527
15528 * ggc.h (empty_string): Delete.
15529 * cfgexpand.c (expand_asm_stmt): Use plain "".
15530 * optabs.c (expand_asm_memory_barrier): Likewise.
15531 * stringpool.c (empty_string): Delete.
15532 (digit_vector, digit_string): Delete.
15533 (ggc_alloc_string): Use plain "", don't optimize single digit
15534 strings. Use ggc_alloc_atomic.
15535
15536 2017-06-30 Richard Earnshaw <rearnsha@arm.com>
15537
15538 * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
15539 comparison set and one other set, use the cost of the non-comparison
15540 set.
15541
15542 2017-06-30 Nathan Sidwell <nathan@acm.org>
15543
15544 * ggc.h: Replace all 'static inline' with plain 'inline'. Fix
15545 some formatting.
15546
15547 2017-06-30 Peter Bergner <bergner@vnet.ibm.com>
15548
15549 * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
15550 loops. Remove now unneeded calls to gimple_switch_set_label() that
15551 just set removed labels to NULL_TREE.
15552
15553 2017-06-30 Aldy Hernandez <aldyh@redhat.com>
15554
15555 * tree-ssanames.c (set_range_info_raw): Abstract from ...
15556 (set_range_info): ...here. Only call set_range_info_raw if domain
15557 is useful.
15558 (set_nonzero_bits): Call set_range_info_raw.
15559 * tree-ssanames.h (set_range_info_raw): New.
15560
15561 2017-06-30 Jakub Jelinek <jakub@redhat.com>
15562
15563 PR target/81225
15564 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
15565 V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
15566 of nonimmediate_operand and <store_mask_constraint> instead of m
15567 for the input operand. For V8FI iterator, always split if input
15568 is a MEM. For V16FI and V8SF_256 iterators, don't test if both
15569 operands are MEM if <mask_applied>. For VI4F_256 iterator, use
15570 <store_mask_predicate> instead of register_operand and
15571 <store_mask_constraint> instead of v for the input operand. Make
15572 sure both operands aren't MEMs for if not <mask_applied>.
15573
15574 2017-06-30 Sylvestre Ledru <sylvestre@debian.org>
15575
15576 * lto-wrapper.c (copy_file) Close both file descriptors before
15577 exiting normally.
15578
15579 2017-06-30 Martin Liska <mliska@suse.cz>
15580
15581 PR ipa/81214
15582 * multiple_target.c (create_dispatcher_calls): Make ifunc
15583 also for function that don't have calls or are not referenced.
15584
15585 2017-06-30 Richard Biener <rguenther@suse.de>
15586
15587 * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
15588 analyze the first scalar stmt. Move vector type computation
15589 for the BB case here from ...
15590 * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard
15591 live operation processing in the SLP case properly.
15592
15593 2017-06-30 Richard Biener <rguenther@suse.de>
15594
15595 * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
15596
15597 2017-06-30 Martin Liska <mliska@suse.cz>
15598
15599 PR sanitizer/81021
15600 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
15601 before BUILT_IN_UNWIND_RESUME when ASAN is used.
15602
15603 2017-06-30 Yvan Roux <yvan.roux@linaro.org>
15604
15605 * doc/invoke.texi (AArch64): Add missing options and remove redundant
15606 ones.
15607
15608 2017-06-30 Richard Biener <rguenther@suse.de>
15609
15610 PR tree-optimization/81249
15611 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
15612 condition reduction result to original scalar type.
15613
15614 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15615
15616 * profile-count.h (enum profile_quality): Fix typos and whitespace
15617 issues.
15618
15619 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15620
15621 * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
15622 type for branch probabilities.
15623
15624 2017-06-29 Julian Brown <julian@codesourcery.com>
15625 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
15626
15627 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
15628 * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
15629 (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
15630 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
15631
15632 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
15633
15634 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
15635 check for CC usage into AARCH64_FUSE_CMP_BRANCH.
15636 * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
15637 CC usage from generic code to here.
15638 * sched-deps.c (sched_macro_fuse_insns): Move the condition for
15639 CC usage into the target macros.
15640
15641 2017-06-29 Maya Rashish <coypu@sdf.org>
15642
15643 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
15644 objects.
15645
15646 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
15647
15648 * arm/arm-builtins.c: Include profile-count.h
15649 * except.c (sjlj_emit_function_enter): Use
15650 profile_probability::unlikely.
15651
15652 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
15653
15654 * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
15655 and tocrel_offset be pointer args rather than implicitly using
15656 static versions.
15657 (legitimate_constant_pool_address_p, rs6000_emit_move,
15658 const_load_sequence_p, adjust_vperm): Add local tocrel_base and
15659 tocrel_offset and use in toc_relative_expr_p call.
15660 (print_operand, print_operand_address): Use static tocrel_base_oac
15661 and tocrel_offset_oac.
15662 (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
15663 tocrel_offset_oac.
15664
15665 2017-06-29 Maya Rashish <coypu@sdf.org>
15666
15667 * config/vax/builtins.md (ffssi2_internal): Correct constraint.
15668
15669 2017-06-29 Eric Botcazou <ebotcazou@adacore.com>
15670
15671 * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
15672 objects, take into account only the alignment of 'op0' and 'mode1' if
15673 'op0' is a MEM.
15674
15675 2017-06-29 Steve Ellcey <sellcey@cavium.com>
15676
15677 * ccmp.c (ccmp_tree_comparison_p): New function.
15678 (ccmp_candidate_p): Update to use above function.
15679 (get_compare_parts): New function.
15680 (expand_ccmp_next): Update to use new functions.
15681 (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
15682 new functions.
15683 (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
15684 take mode as argument.
15685 * ccmp.h (expand_ccmp_expr): Add mode as argument.
15686 * expr.c (expand_expr_real_1): Pass mode as argument.
15687
15688 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org>
15689
15690 * combine.c (combine_instructions): Print insns to dump_file, together
15691 with their costs.
15692
15693 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
15694
15695 * asan.c (asan_emit_stack_protection): Update.
15696 (create_cond_insert_point): Update.
15697 * auto-profile.c (afdo_propagate_circuit): Update.
15698 * basic-block.h (struct edge_def): Turn probability to
15699 profile_probability.
15700 (EDGE_FREQUENCY): Update.
15701 * bb-reorder.c (find_traces_1_round): Update.
15702 (better_edge_p): Update.
15703 (sanitize_hot_paths): Update.
15704 * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
15705 (make_single_succ_edge): Update.
15706 (check_bb_profile): Update.
15707 (dump_edge_info): Update.
15708 (update_bb_profile_for_threading): Update.
15709 * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
15710 probabilitycount to 0.
15711 * cfgbuild.c (compute_outgoing_frequencies): Update.
15712 * cfgcleanup.c (try_forward_edges): Update.
15713 (outgoing_edges_match): Update.
15714 (try_crossjump_to_edge): Update.
15715 * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
15716 (expand_gimple_tailcall): Update.
15717 (construct_init_block): Use make_single_succ_edge.
15718 (construct_exit_block): Use make_single_succ_edge.
15719 * cfghooks.c (verify_flow_info): Update.
15720 (redirect_edge_succ_nodup): Update.
15721 (split_edge): Update.
15722 (account_profile_record): Update.
15723 * cfgloopanal.c (single_likely_exit): Update.
15724 * cfgloopmanip.c (scale_loop_profile): Update.
15725 (set_zero_probability): Remove.
15726 (duplicate_loop_to_header_edge): Update.
15727 * cfgloopmanip.h (loop_version): Update prototype.
15728 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
15729 (force_nonfallthru_and_redirect): Update.
15730 (update_br_prob_note): Update.
15731 (rtl_verify_edges): Update.
15732 (purge_dead_edges): Update.
15733 (rtl_lv_add_condition_to_bb): Update.
15734 * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
15735 * cgraphunit.c (init_lowered_empty_function): Update.
15736 (cgraph_node::expand_thunk): Update.
15737 * cilk-common.c: Include profile-count.h
15738 * dojump.c (inv): Remove.
15739 (jumpifnot): Update.
15740 (jumpifnot_1): Update.
15741 (do_jump_1): Update.
15742 (do_jump): Update.
15743 (do_jump_by_parts_greater_rtx): Update.
15744 (do_compare_rtx_and_jump): Update.
15745 * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
15746 do_jump_1. do_compare_rtx_and_jump): Update prototype.
15747 * dwarf2cfi.c: Include profile-count.h
15748 * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
15749 (sjlj_emit_dispatch_table): Likewise.
15750 * explow.c: Include profile-count.h
15751 * expmed.c (emit_store_flag_force): Update.
15752 (do_cmp_and_jump): Update.
15753 * expr.c (compare_by_pieces_d::generate): Update.
15754 (compare_by_pieces_d::finish_mode): Update.
15755 (emit_block_move_via_loop): Update.
15756 (store_expr_with_bounds): Update.
15757 (store_constructor): Update.
15758 (expand_expr_real_2): Update.
15759 (expand_expr_real_1): Update.
15760 * expr.h (try_casesi, try_tablejump): Update prototypes.
15761 * gimple-pretty-print.c (dump_probability): Update.
15762 (dump_profile): New.
15763 (dump_gimple_label): Update.
15764 (dump_gimple_bb_header): Update.
15765 * graph.c (draw_cfg_node_succ_edges): Update.
15766 * hsa-gen.c (convert_switch_statements): Update.
15767 * ifcvt.c (cheap_bb_rtx_cost_p): Update.
15768 (find_if_case_1): Update.
15769 (find_if_case_2): Update.
15770 * internal-fn.c (expand_arith_overflow_result_store): Update.
15771 (expand_addsub_overflow): Update.
15772 (expand_neg_overflow): Update.
15773 (expand_mul_overflow): Update.
15774 (expand_vector_ubsan_overflow): Update.
15775 * ipa-cp.c (good_cloning_opportunity_p): Update.
15776 * ipa-split.c (split_function): Use make_single_succ_edge.
15777 * ipa-utils.c (ipa_merge_profiles): Update.
15778 * loop-doloop.c (add_test): Update.
15779 (doloop_modify): Update.
15780 * loop-unroll.c (compare_and_jump_seq): Update.
15781 (unroll_loop_runtime_iterations): Update.
15782 * lra-constraints.c (lra_inheritance): Update.
15783 * lto-streamer-in.c (input_cfg): Update.
15784 * lto-streamer-out.c (output_cfg): Update.
15785 * mcf.c (adjust_cfg_counts): Update.
15786 * modulo-sched.c (sms_schedule): Update.
15787 * omp-expand.c (expand_omp_for_init_counts): Update.
15788 (extract_omp_for_update_vars): Update.
15789 (expand_omp_ordered_sink): Update.
15790 (expand_omp_for_ordered_loops): Update.
15791 (expand_omp_for_generic): Update.
15792 (expand_omp_for_static_nochunk): Update.
15793 (expand_omp_for_static_chunk): Update.
15794 (expand_cilk_for): Update.
15795 (expand_omp_simd): Update.
15796 (expand_omp_taskloop_for_outer): Update.
15797 (expand_omp_taskloop_for_inner): Update.
15798 * omp-simd-clone.c (simd_clone_adjust): Update.
15799 * optabs.c (expand_doubleword_shift): Update.
15800 (expand_abs): Update.
15801 (emit_cmp_and_jump_insn_1): Update.
15802 (expand_compare_and_swap_loop): Update.
15803 * optabs.h (emit_cmp_and_jump_insns): Update prototype.
15804 * predict.c (predictable_edge_p): Update.
15805 (edge_probability_reliable_p): Update.
15806 (set_even_probabilities): Update.
15807 (combine_predictions_for_insn): Update.
15808 (combine_predictions_for_bb): Update.
15809 (propagate_freq): Update.
15810 (estimate_bb_frequencies): Update.
15811 (force_edge_cold): Update.
15812 * profile-count.c (profile_count::dump): Add missing space into dump.
15813 (profile_count::debug): Add newline.
15814 (profile_count::differs_from_p): Explicitly convert to unsigned.
15815 (profile_count::stream_in): Update.
15816 (profile_probability::dump): New member function.
15817 (profile_probability::debug): New member function.
15818 (profile_probability::differs_from_p): New member function.
15819 (profile_probability::differs_lot_from_p): New member function.
15820 (profile_probability::stream_in): New member function.
15821 (profile_probability::stream_out): New member function.
15822 * profile-count.h (profile_count_quality): Rename to ...
15823 (profile_quality): ... this one.
15824 (profile_probability): New.
15825 (profile_count): Update.
15826 * profile.c (compute_branch_probabilities): Update.
15827 * recog.c (peep2_attempt): Update.
15828 * sched-ebb.c (schedule_ebbs): Update.
15829 * sched-rgn.c (find_single_block_region): Update.
15830 (compute_dom_prob_ps): Update.
15831 (schedule_region): Update.
15832 * sel-sched-ir.c (compute_succs_info): Update.
15833 * stmt.c (struct case_node): Update.
15834 (do_jump_if_equal): Update.
15835 (get_outgoing_edge_probs): Update.
15836 (conditional_probability): Update.
15837 (emit_case_dispatch_table): Update.
15838 (expand_case): Update.
15839 (expand_sjlj_dispatch_table): Update.
15840 (emit_case_nodes): Update.
15841 * targhooks.c: Update.
15842 * tracer.c (better_p): Update.
15843 (find_best_successor): Update.
15844 * trans-mem.c (expand_transaction): Update.
15845 * tree-call-cdce.c: Update.
15846 * tree-cfg.c (gimple_split_edge): Upate.
15847 (move_sese_region_to_fn): Upate.
15848 * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
15849 * tree-eh.c (lower_resx): Upate.
15850 (cleanup_empty_eh_move_lp): Upate.
15851 * tree-if-conv.c (version_loop_for_if_conversion): Update.
15852 * tree-inline.c (copy_edges_for_bb): Update.
15853 (copy_cfg_body): Update.
15854 * tree-parloops.c (gen_parallel_loop): Update.
15855 * tree-profile.c (gimple_gen_ic_func_profiler): Update.
15856 (gimple_gen_time_profiler): Update.
15857 * tree-ssa-dce.c (remove_dead_stmt): Update.
15858 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
15859 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
15860 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
15861 (unloop_loops): Update.
15862 (try_peel_loop): Update.
15863 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
15864 * tree-ssa-loop-split.c (connect_loops): Update.
15865 (split_loop): Update.
15866 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
15867 (hoist_guard): Update.
15868 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
15869 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
15870 (value_replacement): Update.
15871 * tree-ssa-reassoc.c (branch_fixup): Update.
15872 * tree-ssa-tail-merge.c (replace_block_by): Update.
15873 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
15874 (create_edge_and_update_destination_phis): Update.
15875 (compute_path_counts): Update.
15876 (recompute_probabilities): Update.
15877 (update_joiner_offpath_counts): Update.
15878 (freqs_to_counts_path): Update.
15879 (duplicate_thread_path): Update.
15880 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
15881 (struct switch_conv_info): Update.
15882 (gen_inbound_check): Update.
15883 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
15884 (vect_do_peeling): Update.
15885 (vect_loop_versioning): Update.
15886 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
15887 (optimize_mask_stores): Update.
15888 * ubsan.c (ubsan_expand_null_ifn): Update.
15889 * value-prof.c (gimple_divmod_fixed_value): Update.
15890 (gimple_divmod_fixed_value_transform): Update.
15891 (gimple_mod_pow2): Update.
15892 (gimple_mod_pow2_value_transform): Update.
15893 (gimple_mod_subtract): Update.
15894 (gimple_mod_subtract_transform): Update.
15895 (gimple_ic): Update.
15896 (gimple_stringop_fixed_value): Update.
15897 (gimple_stringops_transform): Update.
15898 * value-prof.h: Update.
15899
15900 2017-06-29 Carl Love <cel@us.ibm.com>
15901
15902 * config/rs6000/rs6000-c.c: Add support for built-in functions
15903 vector signed int vec_signed (vector float);
15904 vector signed long long vec_signed (vector double);
15905 vector signed int vec_signed2 (vector double, vector double);
15906 vector signed int vec_signede (vector double);
15907 vector signed int vec_signedo (vector double);
15908 * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
15909 instruction generator.
15910 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
15911 UNSPEC_VSX_VSIGNED2): Add UNSPECS.
15912 (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
15913 Add define_insn.
15914 (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
15915 vunsignede_v2df): Add define_expands.
15916 * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
15917 VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
15918 VEC_UNSIGNEDO): Add definitions.
15919 * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
15920 UNSPEC_VSX_VSIGNED2): Add UNSPECs.
15921 (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
15922 (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
15923 vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
15924 * config/rs6000/altivec.h (vec_signed, vec_signed2,
15925 vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
15926 vec_unsignede, vec_unsignedo): Add builtin defines.
15927 * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
15928 declaration.
15929 * doc/extend.texi: Update the built-in documentation file for the
15930 new built-in functions.
15931
15932 2017-06-29 Richard Biener <rguenther@suse.de>
15933
15934 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
15935 reduction chains to LOOP_VINFO_REDUCTIONS.
15936 * tree-vect-slp.c (vect_analyze_slp): Continue looking for
15937 SLP reductions after processing reduction chains.
15938
15939 2017-06-29 Nathan Sidwell <nathan@acm.org>
15940
15941 * builtins.c (fold_builtin_FUNCTION): Use
15942 lang_hooks.decl_printable_name.
15943
15944 2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
15945
15946 PR middle-end/81194
15947 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
15948 with only one label.
15949 * stmt.c (expand_case): Assert NCASES is greater than one.
15950
15951 2017-06-29 Richard Biener <rguenther@suse.de>
15952
15953 * tree-cfg.c (group_case_labels_stmt): Return whether we changed
15954 anything.
15955 (group_case_labels): Likewise.
15956 (find_taken_edge): Push sanity checking on val to workers...
15957 (find_taken_edge_cond_expr): ... here
15958 (find_taken_edge_switch_expr): ... and here, handle cases
15959 with just a default label.
15960 * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
15961 (group_case_labels): Likewise.
15962 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
15963 group_case_labels does anything cleanup the CFG again.
15964
15965 2017-06-29 Bin Cheng <bin.cheng@arm.com>
15966
15967 PR tree-optimization/81196
15968 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
15969 exit condition comparing two IVs.
15970
15971 2017-06-29 Richard Earnshaw <rearnsha@arm.com>
15972
15973 * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
15974 profile to the dummy entry at the end of the list of architectures.
15975 * config/arm/arm-cpu-cdata.h: Regenerated.
15976
15977 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15978 Michael Collison <michael.collison@arm.com>
15979
15980 PR target/70119
15981 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
15982 New pattern.
15983 (*aarch64_reg_<mode>3_neg_mask2): New pattern.
15984 (*aarch64_reg_<mode>3_minus_mask): New pattern.
15985 (*aarch64_<optab>_reg_di3_mask2): New pattern.
15986 * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
15987 of shift when the shift amount is masked with constant equal to
15988 the size of the mode.
15989 * config/aarch64/predicates.md (subreg_lowpart_operator): New
15990 predicate.
15991
15992 2017-06-29 Martin Liska <mliska@suse.cz>
15993
15994 * config/i386/i386.opt: Change range from [1,5] to [0,5].
15995
15996 2017-06-29 Yury Gribov <tetra2005@gmail.com>
15997
15998 PR bootstrap/80565
15999 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
16000 code.
16001 * ipa-inline.h
16002 (edge_growth_cache_entry::edge_growth_cache_entry): New
16003 function.
16004 (reset_edge_growth_cache): Update to use constructor.
16005
16006 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16007
16008 * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
16009 (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
16010 (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
16011
16012 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com>
16013
16014 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
16015 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
16016
16017 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
16018
16019 * config.gcc (*-linux-musl*): Add t-musl tmake_file.
16020 (*-linux-uclibc*): Add t-uclibc tmake_file.
16021 * config/t-musl: New.
16022 * config/t-uclibc: New.
16023
16024 2017-06-28 Richard Earnshaw <rearnsha@arm.com>
16025
16026 * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
16027 context.
16028 (gen_comm_data): Emit architectural setting of arch_prof.
16029 * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
16030 profile.
16031 (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
16032 (armv8-m.base, armv8-m.main): Likewise.
16033 * arm-protos.h (arm_build_target): Add profile field.
16034 (arch_option): Likewise.
16035 * config/arm/arm.c (arm_configure_build_target): Copy the profile to
16036 the active target.
16037 * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
16038 arm_active_target.profile.
16039
16040 2017-06-28 Richard Biener <rguenther@suse.de>
16041
16042 PR middle-end/81227
16043 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
16044 TYPE_OVERFLOW_WRAPS.
16045 * match.pd (negate_expr_p): Likewise.
16046 * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
16047 fold_build2, not fold_binary.
16048
16049 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
16050
16051 * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
16052 Convert memory address to Pmode.
16053 (aarch64_print_operand): Assert MEM operands are always Pmode.
16054
16055 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
16056
16057 PR target/79665
16058 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
16059 Remove redundant if.
16060 (aarch_forward_to_shift_is_not_shifted_reg): Remove.
16061 * config/arm/aarch-common-protos.h
16062 (aarch_forward_to_shift_is_not_shifted_re): Remove.
16063 * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
16064
16065 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
16066
16067 PR ipa/81238
16068 * multiple_target.c (create_dispatcher_calls): Set the default
16069 clone to be static, not public.
16070
16071 2017-06-28 Richard Biener <rguenther@suse.de>
16072
16073 * tree-vect-loop.c (vectorizable_reduction): Move special
16074 cond reduction IV var creation ...
16075 (vect_create_epilog_for_reduction): ... here. Remove induction_index
16076 parameter. Use STMT_VINFO_VECTYPE.
16077 * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
16078 constant_p.
16079
16080 2017-06-28 Martin Liska <mliska@suse.cz>
16081
16082 PR ipa/81128
16083 * ipa-visibility.c (non_local_p): Handle visibility.
16084
16085 2017-06-28 Martin Liska <mliska@suse.cz>
16086
16087 PR driver/79659
16088 * common.opt: Add IntegerRange to various options.
16089 * opt-functions.awk (integer_range_info): New function.
16090 * optc-gen.awk: Add integer_range_info to cl_options struct.
16091 * opts-common.c (decode_cmdline_option): Handle
16092 CL_ERR_INT_RANGE_ARG.
16093 (cmdline_handle_error): Likewise.
16094 * opts.c (print_filtered_help): Show valid interval in
16095 when --help is provided.
16096 * opts.h (struct cl_option): Add range_min and range_max fields.
16097 * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
16098
16099 2017-06-28 Marc Glisse <marc.glisse@inria.fr>
16100
16101 * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
16102 (x * C EQ/NE y * C): New transformation.
16103
16104 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org>
16105
16106 * genmultilib (combination_space): Accept '+' in option names.
16107
16108 2017-06-28 Martin Liska <mliska@suse.cz>
16109
16110 PR sanitizer/81224
16111 * asan.c (instrument_derefs): Bail out inner references
16112 that are hard register variables.
16113
16114 2017-06-28 Jakub Jelinek <jakub@redhat.com>
16115
16116 PR target/81175
16117 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
16118 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
16119
16120 2017-06-28 Richard Biener <rguenther@suse.de>
16121
16122 * tree-vectorizer.h (vect_get_vec_defs): Remove.
16123 (vect_get_slp_defs): Adjust.
16124 * tree-vect-loop.c (get_initial_defs_for_reduction): Split
16125 out from ...
16126 * tree-vect-slp.c (vect_get_constant_vectors): ... here and
16127 simplify.
16128 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
16129 get_initial_defs_for_reduction instead of vect_get_vec_defs.
16130 (vectorizable_reduction): Adjust.
16131 * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
16132 handling.
16133 (vect_get_slp_defs): Likewise.
16134 * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
16135 (vectorizable_bswap): Adjust.
16136 (vectorizable_call): Likewise.
16137 (vectorizable_conversion): Likewise.
16138 (vectorizable_assignment): Likewise.
16139 (vectorizable_shift): Likewise.
16140 (vectorizable_operation): Likewise.
16141 (vectorizable_store): Likewise.
16142 (vectorizable_condition): Likewise.
16143 (vectorizable_comparison): Likewise.
16144
16145 2017-06-28 Michael Collison <michael.collison@arm.com>
16146
16147 PR target/68535
16148 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
16149 set of base_reg
16150 (arm_gen_movmemqi): Removed unused variable 'i'.
16151 Convert 'for' loop into 'while' loop.
16152 (arm_expand_prologue): Remove last unnecessary set of insn.
16153 (thumb_pop): Remove unused variable 'pushed_words'.
16154 (thumb_exit): Remove last unnecessary set of regs_to_pop.
16155
16156 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16157
16158 * config/s390/predicates.md: Use s390_rel_address_ok_p.
16159 * config/s390/s390-protos.h: Add prototype of
16160 s390_rel_address_ok_p.
16161 * config/s390/s390.c (s390_got_symbol): New function.
16162 (s390_rel_address_ok_p): New function.
16163 (legitimize_pic_address): Use s390_rel_address_ok_p.
16164 (s390_load_got): Use s390_got_symbol.
16165 (s390_option_override): Issue error if
16166 -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
16167 * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
16168 New macro.
16169 * config/s390/s390.opt: New option mpic-data-is-text-relative.
16170
16171 2017-06-27 Andrew Pinski <apinski@cavium.com>
16172
16173 * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
16174 (X * copysign (1.0, X)): New pattern.
16175 (X * copysign (1.0, -X)): New pattern.
16176 (copysign (-1.0, CST)): New pattern.
16177
16178 2017-06-27 Joseph Myers <joseph@codesourcery.com>
16179
16180 * genmultilib (combination_space): Remove variable.
16181 Validate reuse rules against regular expression for any sequence
16182 of multilib options in any order.
16183
16184 2017-06-27 Michael Collison <michael.collison@arm.com>
16185
16186 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
16187 call aarch64_split_simd_combine.
16188 * (aarch64_combine_internal<mode>): Delete pattern.
16189 * config/aarch64/aarch64.c (aarch64_split_simd_combine):
16190 Allow register and subreg operands.
16191
16192 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
16193
16194 * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
16195 specific need, just fallback on defaults.
16196 (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
16197
16198 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
16199 Olivier Hainque <hainque@adacore.com>
16200
16201 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
16202 map for 64bits.
16203 (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
16204 targets. Pick a default if no particular attempt applied.
16205 (STACK_CHECK_PROTECT): Double for 64bit targets, which have
16206 larger contexts.
16207
16208 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
16209
16210 * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
16211 (x86_64-wrs-vxworks7): Likewise.
16212
16213 2017-06-27 Marek Polacek <polacek@redhat.com>
16214
16215 PR sanitizer/81223
16216 * ubsan.c (instrument_null): Check get_base_address's result for null.
16217
16218 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
16219
16220 * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
16221
16222 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
16223
16224 * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
16225 BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
16226 (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
16227 BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
16228 New function types.
16229 * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
16230 BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
16231 BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
16232 BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
16233 BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
16234 BUILT_IN_FEUPDATEENV): New builtins.
16235 * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
16236 TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
16237 * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
16238 fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
16239 macros.
16240 (builtin_structptr_types): Adjust size.
16241 * tree.c (builtin_structptr_types): Add four entries.
16242
16243 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
16244 Olivier Hainque <hainque@adacore.com>
16245
16246 * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
16247 (TLS_SYM): New local macro, forcing reference to __tls__ on
16248 link command lines for VxWorks 7 RTPs, triggering initialization
16249 of tlsLib.
16250 (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
16251 OS features TLS support, true for RTPs on VxWorks 7.
16252 * config/vxworks.c (vxworks_override_options): Setup emutls
16253 accordingly.
16254
16255 2017-06-27 Jakub Jelinek <jakub@redhat.com>
16256
16257 * predict.c (test_prediction_value_range): Use -1U instead of -1
16258 to avoid narrowing conversion warning.
16259 * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
16260 to avoid narrowing conversion warning.
16261 * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
16262 -1.
16263 * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
16264
16265 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
16266
16267 * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
16268 64bit configurations.
16269 (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
16270 (SIZE_TYPE): Likewise.
16271 * config/vxworks.c (vxworks_emutls_var_fields): Use
16272 long_unsigned_type_node instead of unsigned_type_node as the offset
16273 field type, which is "pointer" mode in emutls.c.
16274
16275 2017-06-27 Jakub Jelinek <jakub@redhat.com>
16276
16277 PR sanitizer/81209
16278 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
16279
16280 PR middle-end/81207
16281 * gimple-fold.c (replace_call_with_call_and_fold): Handle
16282 gimple_vuse copying separately from gimple_vdef copying.
16283
16284 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16285
16286 * value-prof.c (free_hist): Remove call to memset and the enclosing if
16287 condition.
16288
16289 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
16290 Olivier Hainque <hainque@adacore.com>
16291
16292 * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
16293 for all vxworks7 targets.
16294 * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
16295 (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
16296 (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
16297 variations for VX6/VX7 and 32/64bits later on in ...
16298 (VXWORKS_LIB_SPEC): Leverage new macros.
16299 (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
16300 as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
16301
16302 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
16303
16304 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
16305 _VX_TOOL_FAMILY and _VX_TOOL to gnu.
16306
16307 2017-06-26 Carl Love <cel@us.ibm.com>
16308
16309 * config/rs6000/rs6000-c.c: Add support for built-in functions
16310 vector bool char vec_reve (vector bool char);
16311 vector signed char vec_reve (vector signed char);
16312 vector unsigned char vec_reve (vector unsigned char);
16313 vector bool int vec_reve (vector bool int);
16314 vector signed int vec_reve (vector signed int);
16315 vector unsigned int vec_reve (vector unsigned int);
16316 vector bool long long vec_reve (vector bool long long);
16317 vector signed long long vec_reve (vector signed long long);
16318 vector unsigned long long vec_reve (vector unsigned long long);
16319 vector bool short vec_reve (vector bool short);
16320 vector signed short vec_reve (vector signed short);
16321 vector double vec_reve (vector double);
16322 vector float vec_reve (vector float);
16323 * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
16324 VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
16325 * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
16326 (altivec_vreve): New pattern.
16327 * config/rs6000/altivec.h (vec_reve): New define.
16328 * doc/extend.texi (vec_rev): Update the built-in documentation file
16329 for the new built-in functions.
16330
16331 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16332
16333 PR tree-optimization/71815
16334 * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
16335 function.
16336 (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
16337 has_single_use.
16338 (slsr_process_phi): Likewise.
16339 (replace_uncond_cands_and_profitable_phis): Don't replace a
16340 multiply candidate with a stride of 1 (copy or cast).
16341 (phi_incr_cost): Call uses_consumed_by_stmt rather than
16342 has_single_use.
16343 (lowest_cost_path): Likewise.
16344 (total_savings): Likewise.
16345
16346 2017-06-26 Richard Biener <rguenther@suse.de>
16347
16348 PR target/81175
16349 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
16350 Use def_builtin_pure for all gather builtins.
16351
16352 2017-06-26 Richard Biener <rguenther@suse.de>
16353
16354 PR tree-optimization/81203
16355 * tree-tailcall.c (find_tail_calls): Do not move stmts into
16356 non-dominating BBs.
16357
16358 2017-06-26 Marek Polacek <polacek@redhat.com>
16359
16360 PR c/80116
16361 * doc/invoke.texi: Document -Wmultistatement-macros.
16362
16363 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
16364
16365 * doc/sourcebuild.texi (ARM-specific attributes): Document new
16366 arm_neon_ok_no_float_abi effective target.
16367
16368 2017-06-26 Richard Biener <rguenther@suse.de>
16369
16370 PR tree-optimization/80928
16371 * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
16372 (copy_bbs): Set BB_DUPLICATED flag early.
16373 (execute_on_growing_pred): Do not execute for BB_DUPLICATED
16374 marked blocks.
16375 (execute_on_shrinking_pred): Likewise.
16376 * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
16377 BB_DUPLICATED blocks.
16378 * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
16379 iterate over all PHIs considering removal of *gsi.
16380
16381 2017-06-23 Jim Wilson <jim.wilson@linaro.org>
16382
16383 * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
16384 qdf24xx.
16385
16386 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
16387
16388 * config/rs6000/rs6000-string.c: (expand_block_clear,
16389 do_load_for_compare, select_block_compare_mode,
16390 compute_current_alignment, expand_block_compare,
16391 expand_strncmp_align_check, expand_strn_compare,
16392 expand_block_move, rs6000_output_load_multiple)
16393 Move functions related to string/block move/compare
16394 to a separate file.
16395 * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
16396 * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
16397 for this function which is now used in two files.
16398 * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
16399 * config.gcc: Add rs6000-string.o to extra_objs for
16400 targets powerpc*-*-* and rs6000*-*-*.
16401
16402 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
16403
16404 PR target/80510
16405 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
16406 32-bit, since indexed is not valid for DImode.
16407 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
16408 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
16409 (define_peephole2 for Altivec d-form load): Add 32-bit support.
16410 (define_peephole2 for Altivec d-form store): Likewise.
16411
16412 PR ipa/81185
16413 * multiple_target.c (create_dispatcher_calls): Only create the
16414 dispatcher call if the function is the default clone of a
16415 versioned function.
16416
16417 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
16418
16419 PR middle-end/80902
16420 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
16421 a call, force the call to not be a tail call.
16422
16423 2017-06-23 Jeff Law <law@redhat.com>
16424
16425 * doc/contrib.texi: Add entry for Steven Pemberton's work on
16426 enquire.
16427
16428 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com>
16429
16430 * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
16431 update_call_from_tree(). (rs6000_gimple_fold_builtin): Add
16432 handling for early expansion of vector shifts (sl,sr,sra,rl).
16433 (builtin_function_type): Add vector shift right instructions
16434 to the unsigned argument list.
16435
16436 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
16437
16438 rtl-optimizatoin/79286
16439 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
16440 * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
16441 trap. PIC register plus a const unspec without offset can never trap.
16442
16443 2017-06-23 Marc Glisse <marc.glisse@inria.fr>
16444
16445 * tree.h (builtin_structptr_type): New type.
16446 (builtin_structptr_types): Declare new array.
16447 * tree.c (builtin_structptr_types): New array.
16448 (free_lang_data, build_common_tree_nodes): Use it.
16449
16450 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
16451
16452 PR c++/81187
16453 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
16454 -Wnoexcept.
16455
16456 2017-06-22 Matt Turner <mattst88@gmail.com>
16457
16458 * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
16459 Lake models to skylake case. Assume skylake for unknown
16460 models with clflushopt.
16461
16462 2017-06-22 Jeff Law <law@redhat.com>
16463
16464 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
16465 frame sizes that do not satisfy aarch64_uimm12_shift.
16466
16467 2017-06-22 Jan Hubicka <hubicka@ucw.cz>
16468
16469 * profile-count.h (apply_probability,
16470 apply_scale, probability_in): Fix checks for zero.
16471
16472 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16473
16474 * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
16475 * doc/cppdiropts.texi (-I @var{dir}): Document it.
16476
16477 2016-06-22 Richard Biener <rguenther@suse.de>
16478
16479 * tree-vect-loop.c (vect_model_reduction_cost): Handle
16480 COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
16481 REDUC_MAX_EXPR support.
16482 (vectorizable_reduction): Likewise.
16483 (vect_create_epilog_for_reduction): Likewise.
16484
16485 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com>
16486
16487 * match.pd (A / (1 << B) -> A >> B): New.
16488 * generic-match-head.c: Include optabs-tree.h.
16489 * gimple-match-head.c: Likewise.
16490 * optabs-tree.h (target_supports_op_p): New.
16491 * optabs-tree.c (target_supports_op_p): New.
16492
16493 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16494
16495 * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
16496 $gcc_cv_ld --help output.
16497 (gcc_cv_ld_demangle): Likewise.
16498 (gcc_cv_ld_eh_frame_hdr): Likewise.
16499 (gcc_cv_ld_pie): Likewise.
16500 (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld.
16501 (gcc_cv_ld_buildid): Likewise.
16502 (gcc_cv_ld_sysroot): Likewise.
16503 (ld_bndplt_support): Likewise.
16504 (ld_pushpopstate_support): Likewise.
16505 * configure: Regenerate.
16506 * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
16507
16508 2017-06-21 Jakub Jelinek <jakub@redhat.com>
16509
16510 PR target/81151
16511 * config/i386/sse.md (round<mode>2): Renumber match_dup and
16512 operands indexes to avoid gap between operands and match_dups.
16513
16514 2017-06-21 Andrew Pinski <apinski@cavium.com>
16515
16516 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
16517 Increment Arith_shift and Arith_shift_reg by 1.
16518 * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
16519 New tuning flag.
16520 * config/aarch64/aarch64.c (thunderx_tunings): Enable
16521 AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
16522 (aarch64_strip_extend): Add new argument and test for it.
16523 (aarch64_cheap_mult_shift_p): New function.
16524 (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
16525 add a cost if it is true.
16526 Update calls to aarch64_strip_extend.
16527 (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
16528
16529 2017-06-21 Andrew Pinski <apinski@cavium.com>
16530
16531 * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
16532 tunings.
16533 (thunderxt88): Likewise.
16534 * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
16535 (thunderx_prefetch_tune): New variable.
16536 (thunderx2t99_prefetch_tune): Update for the correct values.
16537 (thunderxt88_tunings): New variable.
16538 (thunderx_tunings): Use thunderx_prefetch_tune instead of
16539 generic_prefetch_tune.
16540 (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
16541
16542 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16543
16544 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
16545 SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
16546 (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
16547 (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
16548 (aarch64_atomic_cas<mode>, GPI): Likewise.
16549
16550 2017-06-21 Martin Liska <mliska@suse.cz>
16551
16552 * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
16553 statements on cold and hot labels.
16554 * predict.c (tree_estimate_probability_bb): Remove the
16555 prediction from this place.
16556
16557 2017-06-21 Martin Liska <mliska@suse.cz>
16558
16559 PR tree-optimization/79489
16560 * gimplify.c (maybe_add_early_return_predict_stmt): New
16561 function.
16562 (gimplify_return_expr): Call the function.
16563 * predict.c (tree_estimate_probability_bb): Remove handling
16564 of early return.
16565 * predict.def: Update comment about early return predictor.
16566 * gimple-predict.h (is_gimple_predict): New function.
16567 * predict.def: Change default value of early return to 66.
16568 * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
16569 statements.
16570 * passes.def: Put pass_strip_predict_hints to the beginning of
16571 IPA passes.
16572
16573 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com>
16574
16575 * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
16576 FUNCTION_DECL declarations.
16577 (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
16578 declarations.
16579 (dwaf2out_decl): Likewise.
16580 * godump.c (go_early_global_decl): Skip call to the real debug hook
16581 for FUNCTION_DECL declarations.
16582 * passes.c (rest_of_decl_compilation): Skip call to the
16583 early_global_decl debug hook for FUNCTION_DECL declarations, unless
16584 -fdump-go-spec is passed.
16585
16586 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
16587
16588 * config/i386/i386.c (struct builtin_isa): New field pure_p.
16589 Reorder for compactness.
16590 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
16591 (def_builtin_pure, def_builtin_pure2): New functions.
16592 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
16593
16594 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
16595
16596 * match.pd (nop_convert): New predicate.
16597 ((A +- CST1) +- CST2): Allow some NOP conversions.
16598
16599 2017-06-21 Jakub Jelinek <jakub@redhat.com>
16600
16601 PR c++/81130
16602 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
16603 with ctors/dtors if GOVD_SHARED is set.
16604
16605 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
16606
16607 * config/aarch64/aarch64.md (movti_aarch64):
16608 Emit mov rather than orr.
16609 (movtf_aarch64): Likewise.
16610 * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
16611 Emit mov rather than orr.
16612
16613 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
16614
16615 * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
16616 Swap alternatives, make integer dup more expensive.
16617
16618 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
16619
16620 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
16621 Return true for non-tls symbols.
16622
16623 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com>
16624
16625 * config/aarch64/aarch64-cores.def (cortex-a55): New.
16626 (cortex-a75): Likewise.
16627 (cortex-a75.cortex-a55): Likewise.
16628 * config/aarch64/aarch64-tune.md: Regenerate.
16629 * doc/invoke.texi (-mtune): Document new values for -mtune.
16630
16631 2017-06-21 Tom de Vries <tom@codesourcery.com>
16632
16633 * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
16634 stack_size feature.
16635 (Effective-Target Keywords, Other attributes): Suggest using
16636 dg-add-options stack_size feature to get stack limit in stack_size
16637 effective target documentation.
16638
16639 2017-06-21 Julian Brown <julian@codesourcery.com>
16640 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
16641
16642 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
16643 (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
16644 * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
16645 reservation.
16646 * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
16647 attribute type list for neon_multiply.
16648 * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
16649 attribute type list for neon_multiply.
16650 * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
16651 * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
16652 attribute type list for neon_multiply.
16653 * config/arm/types.md (crypto_pmull): Add.
16654 * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
16655 attribute type list.
16656
16657 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org>
16658
16659 * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
16660 arm1176jzf-s.
16661
16662 2017-06-20 Jakub Jelinek <jakub@redhat.com>
16663
16664 * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
16665 to make sure not to dereference a NULL cost_classes_ptr pointer.
16666
16667 2017-06-20 Carl Love <cel@us.ibm.com>
16668
16669 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16670 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
16671 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
16672 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
16673 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
16674 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
16675 VMULOSW): New enum "unspec" values.
16676 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
16677 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
16678 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
16679 altivec_vmulosw): New patterns.
16680 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
16681 VMULOSW): Add definitions.
16682
16683 2017-06-20 Julia Koval <julia.koval@intel.com>
16684
16685 * config/i386/i386.c: Fix rounding expand for new pattern.
16686 * config/i386/subst.md: Fix pattern (parallel -> unspec).
16687
16688 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
16689
16690 * config/aarch64/aarch64-option-extensions.def (rcpc): New.
16691 * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
16692
16693 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
16694
16695 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
16696 feature string.
16697
16698 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
16699
16700 * config/aarch64/aarch64-cores.def: Rearrange to sort by
16701 architecture, then by implementer ID.
16702 * config/aarch64/aarch64-tune.md: Regenerate.
16703
16704 2017-06-20 Richard Biener <rguenther@suse.de>
16705
16706 PR middle-end/81097
16707 * fold-const.c (split_tree): Fold to type before negating.
16708
16709 2017-06-20 David Malcolm <dmalcolm@redhat.com>
16710
16711 * diagnostic-show-locus.c
16712 (selftest::test_fixit_deletion_affecting_newline): New function.
16713 (selftest::diagnostic_show_locus_c_tests): Call it.
16714
16715 2017-06-20 Andreas Schwab <schwab@suse.de>
16716
16717 PR target/80970
16718 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
16719 instead of "+d".
16720
16721 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
16722
16723 * config/arm/arm-c.c (arm_cpu_builtins): New block to define
16724 __ARM_FEATURE_COPROC according to support.
16725
16726 2017-06-20 Jakub Jelinek <jakub@redhat.com>
16727
16728 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
16729 Rewritten to avoid overflow for > 32-bit pointers.
16730
16731 PR sanitizer/81125
16732 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
16733 by removing enum keyword.
16734 (ubsan_type_descriptor): Likewise. Formatting fix.
16735
16736 PR target/81121
16737 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
16738 splitter): Require TARGET_SSE2 in the condition.
16739
16740 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
16741
16742 PR target/79799
16743 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
16744 for doing vector set of SFmode on ISA 3.0.
16745 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
16746 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
16747 element.
16748 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
16749 SFmode value into a V4SF variable that was extracted from another
16750 V4SF variable without converting the element to double precision
16751 and back to single precision vector format.
16752 (vsx_insert_extract_v4sf_p9_2): Likewise.
16753
16754 2017-06-19 Jakub Jelinek <jakub@redhat.com>
16755
16756 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
16757 in UWHI to avoid undefined overflow.
16758
16759 PR sanitizer/81125
16760 * ubsan.h (enum ubsan_encode_value_phase): New.
16761 (ubsan_encode_value): Change second argument to
16762 enum ubsan_encode_value_phase with default value of
16763 UBSAN_ENCODE_VALUE_GENERIC.
16764 * ubsan.c (ubsan_encode_value): Change second argument to
16765 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
16766 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
16767 create_tmp_var_raw instead of create_tmp_var and use a
16768 TARGET_EXPR.
16769 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
16770 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
16771 ubsan_encode_value callers.
16772
16773 PR sanitizer/81111
16774 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
16775 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
16776 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
16777
16778 2017-06-19 Richard Biener <rguenther@suse.de>
16779
16780 PR middle-end/81118
16781 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
16782 estimates if we changed anything.
16783
16784 2017-06-19 Richard Biener <rguenther@suse.de>
16785
16786 PR tree-optimization/80887
16787 * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
16788 (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
16789 simplified lookups, then reset mprts_hook.
16790 (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
16791 simplifying.
16792 (try_to_simplify): Likewise.
16793
16794 2017-06-19 Martin Liska <mliska@suse.cz>
16795
16796 PR sanitizer/80879
16797 * gimplify.c (gimplify_switch_expr):
16798 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
16799
16800 2017-06-19 Martin Liska <mliska@suse.cz>
16801
16802 * doc/install.texi: Document that PGO runs in 4 stages.
16803
16804 2017-06-19 Martin Liska <mliska@suse.cz>
16805
16806 PR ipa/80732
16807 * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
16808 to dispatcher function name.
16809 * multiple_target.c (replace_function_decl): New function.
16810 (create_dispatcher_calls): Redirect both edges and references.
16811
16812 2017-06-19 Jan Hubicka <hubicka@ucw.cz>
16813
16814 * profile-count.c (profile_count::dump): Dump quality.
16815 (profile_count::differs_from_p): Update for unsigned val.
16816 * profile-count.h (profile_count_quality): New enum.
16817 (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
16818
16819 2017-06-19 Richard Biener <rguenther@suse.de>
16820
16821 * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
16822 struct function as arg.
16823 (estimate_numbers_of_iterations): Export overload with loop arg.
16824 (free_numbers_of_iterations_estimates_loop): Use an overload of
16825 free_numbers_of_iterations_estimates instead.
16826 * tree-cfg.c (remove_bb): Adjust.
16827 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
16828 * tree-parloops.c (gen_parallel_loop): Likewise.
16829 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
16830 Likewise.
16831 (tree_unroll_loops_completely): Likewise.
16832 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
16833 Use an overload instead and export.
16834 (estimated_loop_iterations): Adjust.
16835 (max_loop_iterations): Likewise.
16836 (likely_max_loop_iterations): Likewise.
16837 (estimate_numbers_of_iterations): Take struct function as arg
16838 and adjust.
16839 (loop_exits_before_overflow): Adjust.
16840 (free_numbers_of_iterations_estimates_loop): Use an overload.
16841 * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
16842 * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
16843
16844 2017-06-19 Richard Biener <rguenther@suse.de>
16845
16846 PR ipa/81112
16847 * ipa-prop.c (find_constructor_constant_at_offset): Handle
16848 RANGE_EXPR conservatively.
16849
16850 2017-06-16 Carl Love <cel@us.ibm.com>
16851
16852 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16853 definitions for vec_float, vec_float2, vec_floato,
16854 vec_floate built-ins.
16855 * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
16856 for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
16857 floate.
16858 * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
16859 FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
16860 UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
16861 * config/altivec.md (define_insn "p8_vmrgew_<mode>",
16862 define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
16863 * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
16864 vec_floato): Add builtin defines.
16865 * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
16866 Update the built-in documentation file for the new built-in
16867 functions.
16868
16869 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16870
16871 * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
16872 (mthumb): Mark as the negative of -marm.
16873
16874 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16875
16876 * doc/invoke.texi (ARM Options, -mcpu): Document supported
16877 extension options.
16878 (ARM Options, -mtune): Document that this accepts the same
16879 extension options as -mcpu.
16880 (ARM Options, -mfpu): Document addition of -mfpu=auto.
16881
16882 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16883
16884 * doc/invoke.texi (ARM Options, -march=): Document new syntax and
16885 permitted extensions.
16886
16887 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16888
16889 * config/arm/arm-cpus.in (armv7): Add extension +nofp.
16890 (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
16891 (armv8-m.main): Add option +nodsp.
16892 * config/arm/arm-cpu-cdata.h: Regenerated.
16893
16894 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16895
16896 * config/arm/t-fuchsia: New file.
16897 * config.gcc (arm*-*-fuchsia*): Use it.
16898
16899 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16900
16901 * config/arm/t-symbian: Rewrite for new option infrastructure.
16902
16903 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16904
16905 * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
16906 (MULTILIB_REQUIRED): Likewise.
16907
16908 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16909
16910 * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
16911 (MULTILIB_RESUE): Likewise.
16912 (MULTILIB_MATCHES): Likewise.
16913 (MULTLIB_REQUIRED): Likewise.
16914
16915 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16916
16917 * config/arm/t-rtems: Rewrite for new option framework.
16918
16919 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16920
16921 * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
16922 (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
16923 (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
16924 (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
16925 * config/arm/t-multilib: ... here.
16926 (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
16927 (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for
16928 armv7-a and armv8*-a when A-profile libraries have not been built.
16929 * config/arm/t-rmprofile: Rewrite.
16930
16931 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16932
16933 * genmultilib (multilib_reuse): Allow an explicit period to be escaped
16934 with a backslash. Remove the backslash after substituting unescaped
16935 periods.
16936 * doc/fragments.texi (MULTILIB_REUSE): Document it.
16937
16938 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16939
16940 * config.gcc: (arm*-*-*): When building a-profile libraries, force
16941 the driver to pass through the default setting of -mfloat-abi.
16942 * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
16943 rather than NULL.
16944 * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
16945 (all_feat_combs): New rule.
16946 (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework
16947 default libraries.
16948 * config/arm/t-aprofile: Rewrite.
16949
16950 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16951
16952 * config/arm/arm.h (FPUTYPE_AUTO): Define.
16953 * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
16954 fpu is not specified by the user/command-line.
16955 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
16956 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
16957 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
16958 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
16959 * common/config/arm/arm-common.c (arm_canon_arch_option): Use
16960 FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
16961
16962 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16963
16964 * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
16965 * config/arm/t-arm-elf: Rewritten.
16966
16967 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16968
16969 * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
16970 have some floating-point instructions.
16971 (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
16972 (TARGET_MAYBE_HARD_FLOAT): New macro.
16973 * config/arm/arm-builtins.c (arm_init_builtins): Use
16974 TARGET_MAYBE_HARD_FLOAT.
16975 * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
16976
16977 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16978
16979 * common/config/arm/arm-common.c: Define INCLUDE_LIST.
16980 (configargs.h): Include it.
16981 (arm_print_hint_for_fpu_option): New function.
16982 (arm_parse_fpu_option): New function.
16983 (candidate_extension): New class.
16984 (arm_canon_for_multilib): New function.
16985 * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
16986 (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
16987 (ARCH_CANONICAL_SPECS): New macro.
16988 (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
16989
16990 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16991
16992 * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
16993 are set after handling multilib fragments. Set target_cpu_default2
16994 from with_cpu.
16995
16996 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16997
16998 * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
16999 cpu name.
17000 (arm*-*-*): Set target_cpu_default2 to a quoted string.
17001 * config/arm/parsecpu.awk (check_cpu): Validate any extension
17002 options.
17003 (check_arch): Likewise.
17004 * config/arm/arm.c (arm_configure_build_target): Handle
17005 TARGET_CPU_DEFAULT being a string constant. Scan any feature
17006 options in the default.
17007
17008 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17009
17010 * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
17011 when an option is an alias of another.
17012 * config/arm/parsecpu.awk (optalias): New parser token.
17013 (gen_comm_data): Mark non-alias options as such. Emit entries
17014 for extension aliases.
17015 * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
17016 (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
17017 (armv6kz, armv6zk, armv6t2): Likewise.
17018 (armv7): Make vfpv3-d16 an alias.
17019 (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in
17020 canonical order.
17021 (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
17022 Sort in canonical order.
17023 (armv8-a): Sort in canonical order.
17024 (armv8.1-a, armv8.2-a): Likewise.
17025 (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in
17026 canonical order.
17027 (cortex-a9): Sort in canonical order.
17028 * config/arm/arm.c (selftests.h): Include it.
17029 (arm_test_cpu_arch_data): New function.
17030 (arm_run_self_tests): New function.
17031 (TARGET_RUN_TARGET_SELFTESTS): Redefine.
17032 (targetm): Move declaration to the end of the file.
17033 * arm-cpu-cdata.h: Regenerated.
17034
17035 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17036
17037 * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
17038 call to target_mode_check describing the type of option passed.
17039 * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
17040 (arm_target_thumb_only): Use arm_parse_arch_option_name or
17041 arm_parse_cpu_option_name to match parameters against list of
17042 available targets.
17043 * config/arm/parsecpu.awk (gen_comm_data): Don't generate
17044 arm_arch_core_flags data structure.
17045 * config/arm/arm-cpu_cdata.h: Regenerated.
17046
17047 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17048
17049 * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
17050 config/arm/arm.c.
17051 (arm_print_hint_for_cpu_option): Likewise.
17052 (arm_print_hint_for_arch_option): Likewise.
17053 (arm_parse_cpu_option_name): Likewise.
17054 (arm_parse_arch_option_name): Likewise.
17055 * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
17056 of entries in the all_fpus list.
17057 * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
17058 (arm_parse_cpu_option_name): Declare.
17059 (arm_parse_arch_option_name): Declare.
17060 (arm_parse_option_features): Declare.
17061 (arm_intialize_isa): Declare.
17062 * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
17063 data tables to ...
17064 (gen_comm_data): ... here. Make definitions non-static.
17065 * config/arm/arm-cpu-data.h: Regenerated.
17066 * config/arm/arm-cpu-cdata.h: Regenerated.
17067
17068 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17069
17070 * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
17071 (cpu_arch_extension): New structure.
17072 (cpu_arch_option, arch_option, cpu_option): New structures.
17073 * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
17074 architecture types.
17075 (gen_data): Generate new format data tables.
17076 * config/arm/arm.c (cpu_tune): New structure.
17077 (cpu_option, processors): Delete.
17078 (arm_print_hint_for_core_or_arch): Delete. Replace with ...
17079 (arm_print_hint_for_cpu_option): ... this and ...
17080 (arm_print_hint_for_arch_option): ... this.
17081 (arm_parse_arch_cpu_name): Delete. Replace with ...
17082 (arm_parse_cpu_option_name): ... this and ...
17083 (arm_parse_arch_option_name): ... this.
17084 (arm_unrecognized_feature): Change type of target parameter to
17085 cpu_arch_option.
17086 (arm_parse_arch_cpu_features): Delete. Replace with ...
17087 (arm_parse_option_features): ... this.
17088 (arm_configure_build_target): Rework to use new configuration data
17089 tables.
17090 (arm_print_tune_info): Rework for new configuration data tables.
17091 * config/arm/arm-cpu-data.h: Regenerated.
17092 * config/arm/arm-cpu.h: Regenerated.
17093
17094 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17095
17096 * Makefile.in (OBJS): Move sbitmap.o from here ...
17097 (OBJS-libcommon): ... to here.
17098
17099 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17100
17101 * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
17102 (ISA_ALL_CRYPTO): New macro.
17103 (ISA_ALL_SIMD): New macro
17104 (ISA_ALL_FP): New macro.
17105 * config/arm/arm.c (fpu_bitlist): Update initializer.
17106 * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
17107 simd or fp.
17108 (arm9e): Add fpu. Add option for nofp
17109 (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
17110 (arm926ej-s, arm1026ej-s): Likewise.
17111 (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16,
17112 vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
17113 neon-fp16, neon-vfpv4, nofp and nosimd.
17114 (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp.
17115 (cortex-a8): Add fpu. Add option for nofp.
17116 (cortex-a9): Add fpu. Add options for nosimd and nofp.
17117 (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp.
17118 (cortex-r4f): Add fpu.
17119 (cortex-r5): Add fpu. Add options for nofp.dp and nofp.
17120 (cortex-r7): Use idiv option from architecture. Add fpu. Add option
17121 for nofp.
17122 (cortex-r8): Likewise.
17123 (cortex-m4): Add fpu. Add option for nofp.
17124 (cortex-a15.cortex-a7): Add fpu. Add option for nofp.
17125 (cortex-a17.cortex-a7): Likewise.
17126 (cortex-a32): Add fpu. Add options for crypto and nofp.
17127 (cortex-a35, cortex-a53): Likewise.
17128 (cortex-a57): Add fpu. Add option for crypto.
17129 (cortex-a72, cortex-a73): Likewise.
17130 (exynos-m1): Likewise.
17131 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
17132 (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
17133 (cortex-m33): Add fpu. Add option for nofp.
17134 * config/arm/arm-cpu-cdata.h: Regenerated
17135 * config/arm/arm-cpu-data.h: Regenerated.
17136
17137 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17138
17139 * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
17140 (armv5te, armv5tej): Likewise.
17141 (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
17142 (armv7): Add options fp and vfpv3-d16.
17143 (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
17144 vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
17145 nofp and nosimd.
17146 (armv7ve): Likewise.
17147 (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
17148 (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
17149 (armv8-a): Add nocrypto option.
17150 (armv8.1-a, armv8.2-a): Likewise.
17151 (armv8-m.main): add options fp, fp.dp and nofp.
17152
17153 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17154
17155 * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
17156 nofp.
17157 (armv8-a+crc): Delete.
17158 (armv8.1-a): Add options simd, crypto and nofp.
17159 (armv8.2-a): Add options fp16, simd, crypto and nofp.
17160 (armv8.2-a+fp16): Delete.
17161 (armv8-m.main): Add option dsp.
17162 (armv8-m.main+dsp): Delete.
17163 (cortex-a8): Add fpu. Add nofp option.
17164 (cortex-a9): Add fpu. Add nofp and nosimd options.
17165 * config/arm/parsecpu.awk (gen_data): Generate option tables and
17166 link to main cpu and architecture data structures.
17167 (gen_comm_data): Only put isa attributes from the main architecture
17168 in common tables.
17169 (option): New statement for architecture and CPU entries.
17170 * arm.c (struct cpu_option): New structure.
17171 (struct processors): Add entry for options.
17172 (arm_unrecognized_feature): New function.
17173 (arm_parse_arch_cpu_name): Ignore any characters after the first
17174 '+' character.
17175 (arm_parse_arch_cpu_feature): New function.
17176 (arm_configure_build_target): Separate out any CPU and architecture
17177 features and parse separately. Don't error out if -mfpu=auto is
17178 used with only an architecture string.
17179 (arm_print_asm_arch_directives): New function.
17180 (arm_file_start): Call it.
17181 * config/arm/arm-cpu-cdata.h: Regenerated.
17182 * config/arm/arm-cpu-data.h: Likewise.
17183 * config/arm/arm-tables.opt: Likewise.
17184
17185 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17186
17187 * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
17188 assembler when it is not -mfpu=auto.
17189
17190 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17191
17192 * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
17193 (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
17194 (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
17195 (ASM_CPU_SPEC): Rewrite.
17196 (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
17197 (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use
17198 MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove
17199 reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
17200 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
17201 copied string is NUL-terminated. Also strip any characters prefixed
17202 by '+'.
17203 (arm_rewrite_selected_arch): New function.
17204 (arm_rewrite_march): New function.
17205
17206 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17207
17208 * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
17209 (x_arm_cpu_string, x_arm_tune_string): Likewise.
17210 (march, mcpu, mtune): Convert to string-based options.
17211 * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
17212 (arm_parse_arch_cpu_name): New function.
17213 (arm_configure_build_target): Use arm_parse_arch_cpu_name to
17214 identify selected architecture or CPU.
17215 (arm_option_save): New function.
17216 (TARGET_OPTION_SAVE): Redefine.
17217 (arm_option_restore): Restore string options.
17218 (arm_option_print): Print string options.
17219
17220 2017-06-16 Martin Sebor <msebor@redhat.com>
17221
17222 PR tree-optimization/80933
17223 PR tree-optimization/80934
17224 * builtins.c (fold_builtin_3): Do not handle bcmp here.
17225 * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
17226 (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
17227 (gimple_fold_builtin): Call them.
17228
17229 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
17230
17231 * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
17232 as unlikely; update profile.
17233
17234 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
17235
17236 * predict.c (force_edge_cold): Handle declaring edges impossible
17237 more aggresively.
17238
17239 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
17240
17241 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
17242 profile.
17243 (try_unroll_loop_completely): Fix reporting.
17244
17245 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
17246
17247 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
17248
17249 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com>
17250
17251 PR target/71778
17252 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
17253 if given a non-constant argument for an intrinsic which requires a
17254 constant.
17255
17256 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
17257
17258 * profile.c (compare_freqs): New function.
17259 (branch_prob): Sort edge list.
17260 (find_spanning_tree): Assume that the list is priority sorted.
17261
17262 2017-06-16 Richard Biener <rguenther@suse.de>
17263
17264 PR tree-optimization/81090
17265 * passes.def (pass_record_bounds): Remove.
17266 * tree-pass.h (make_pass_record_bounds): Likewise.
17267 * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
17268 make_pass_record_bounds): Likewise.
17269 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
17270 not free niter estimates at the beginning but at the end.
17271 * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
17272
17273 2017-06-16 Richard Biener <rguenther@suse.de>
17274
17275 * tree-switch-conversion.c (emit_case_bit_tests): Adjust
17276 initializer to workaround ICE in host GCC 4.8.
17277
17278 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
17279
17280 * ipa-inline-transform.c (update_noncloned_frequencies): Update also
17281 counts.
17282 (clone_inlined_nodes): Update.
17283
17284 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17285
17286 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
17287 prefetch settings, and enable prefetching by default at -O3.
17288
17289 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17290
17291 * config/aarch64/aarch64.c (aarch64_override_options_internal):
17292 Set flag_prefetch_loop_arrays according to tuning data.
17293
17294 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17295
17296 * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
17297 New tune structure.
17298 (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
17299 [Unrelated to main purpose of the patch] Place the pointer field last
17300 to enable type checking errors when tune structure are wrongly merged.
17301 * config/aarch64/aarch64.c (generic_prefetch_tune,)
17302 (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
17303 (thunderx2t99_prefetch_tune): New tune constants.
17304 (tune_params *_tunings): Update all tunings (no functional change).
17305 (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
17306 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
17307 from tunings structures.
17308
17309 2017-06-16 Jakub Jelinek <jakub@redhat.com>
17310
17311 PR sanitizer/81094
17312 * ubsan.c (instrument_null): Add T argument, use it instead
17313 of computing it based on IS_LHS.
17314 (instrument_object_size): Likewise.
17315 (pass_ubsan::execute): Adjust instrument_null and
17316 instrument_object_size callers to pass gimple_get_lhs or
17317 gimple_assign_rhs1 result to it. Use instrument_null instead of
17318 calling get_base_address and instrument_mem_ref. Handle
17319 aggregate call arguments for object-size sanitization.
17320
17321 2017-06-16 Yury Gribov <tetra2005@gmail.com>
17322
17323 PR tree-optimization/81089
17324 * tree-vrp.c (is_masked_range_test): Validate operands of
17325 subexpression.
17326
17327 2017-06-15 Martin Sebor <msebor@redhat.com>
17328
17329 PR c++/80560
17330 * dumpfile.c (dump_register): Avoid calling memset to initialize
17331 a class with a default ctor.
17332 * gcc.c (struct compiler): Remove const qualification.
17333 * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
17334 * hash-table.h: Ditto.
17335 * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
17336 assignment.
17337 * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
17338 * omp-low.c (lower_omp_ordered_clauses): Replace memset with
17339 default ctor.
17340 * params.h (struct param_info): Make struct members non-const.
17341 * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
17342 with default initialization.
17343 * vec.h (vec_copy_construct, vec_default_construct): New helper
17344 functions.
17345 (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
17346 with vec_copy_construct.
17347 (vect<T>::quick_grow_cleared): Replace memset with default ctor.
17348 (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
17349 * doc/invoke.texi (-Wclass-memaccess): Document.
17350
17351 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17352
17353 * emit-rtl.h (is_leaf): Update comment about local
17354 register allocator.
17355
17356 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com>
17357
17358 PR target/78818
17359 * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
17360 for a variable to have a section before checking if the section has a
17361 name.
17362 Set section to.persistent if persistent attribute is set.
17363 Warn if .persistent attribute is used on an automatic variable.
17364
17365 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
17366
17367 PR rtl-optimization/80474
17368 * reorg.c (update_block): Do not ignore instructions in a delay slot.
17369
17370 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
17371
17372 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
17373 of REGNO.
17374
17375 2017-06-14 Maciej W. Rozycki <macro@imgtec.com>
17376
17377 * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
17378 (casesi): Emit bounds checking as RTL.
17379 (casesi_internal_mips16_<mode>): Remove bounds checking.
17380
17381 2017-06-14 Max Filippov <jcmvbkbc@gmail.com>
17382
17383 * config/xtensa/xtensa.c (xtensa_option_override): Append
17384 MASK_CONST16 to target_flags in the absence of TARGET_L32R.
17385 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
17386 xtensa_doloop_hooks): Define unconditionally.
17387 (xtensa_reorg_loops): Only call reorg_loops in the presence of
17388 TARGET_LOOPS.
17389 * config/xtensa/xtensa.h (TARGET_L32R): New definition.
17390 (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
17391 for it in xtensa_option_override.
17392 (HARD_FRAME_POINTER_IS_FRAME_POINTER,
17393 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
17394
17395 2017-06-14 Boris Kolpackov <boris@codesynthesis.com>
17396
17397 * doc/cppopts.texi: Document '-' special value to -MF.
17398
17399 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com>
17400
17401 * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
17402 (cortex_a53_fconst): Likewise.
17403 (cortex_a53_fpmul): Likewise.
17404 (cortex_a53_f_load_64): Likewise.
17405 (cortex_a53_f_load_many): Likewise.
17406 (cortex_a53_advsimd_alu): Likewise.
17407 (cortex_a53_advsimd_alu_q): Likewise.
17408 (cortex_a53_advsimd_mul): Likewise.
17409 (cortex_a53_advsimd_mul_q): Likewise.
17410 (fpmac bypass): Add new bypass for fpmac-fpmac case.
17411 Add missing fmul, r2f_cvt and fconst cases.
17412
17413 2017-06-14 Richard Biener <rguenther@suse.de>
17414
17415 PR middle-end/81088
17416 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
17417 literal constants.
17418 (fold_binary_loc): When associating do not treat pre-existing
17419 TREE_OVERFLOW on literal constants as a reason to allow
17420 TREE_OVERFLOW on associated literal constants.
17421
17422 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
17423
17424 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
17425 (MASK_FEATURES): New macro.
17426 * config/sparc/sparc.c (sparc_option_override): Remove the special
17427 handling of -mfpu and generalize it to all MASK_FEATURES switches.
17428
17429 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
17430
17431 * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
17432 a division of 0 if non-call exceptions are enabled.
17433
17434 2017-06-14 Andrew Pinski <apinski@cavium.com>
17435 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
17436
17437 PR target/71663
17438 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
17439 Improve vector initialization code gen for only variable case.
17440
17441 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
17442
17443 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
17444
17445 2017-06-14 Richard Biener <rguenther@suse.de>
17446
17447 PR tree-optimization/81083
17448 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
17449 as values.
17450
17451 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17452
17453 * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
17454 (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
17455 * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
17456 * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use.
17457 * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
17458 * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
17459
17460 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17461
17462 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
17463 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
17464
17465 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17466
17467 * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
17468
17469 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17470
17471 * config/rs6000/t-rtems: Don't handle SPE.
17472
17473 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17474
17475 * config/rs6000/t-linux: Don't handle SPE.
17476
17477 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17478
17479 * config/rs6000/eabispe.h: Delete file.
17480
17481 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17482
17483 * config/rs6000/t-spe: Delete file.
17484
17485 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17486
17487 * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
17488 (rs6000_legitimate_offset_address_p): Return false for anything in
17489 V2SImode or V2SFmode.
17490
17491 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17492
17493 * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
17494 except V2SF and V2SI. Rearrange the vector modes, and add comments.
17495 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
17496 and V4HImode.
17497 (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
17498 (rs6000_legitimate_offset_address_p): Ditto.
17499 (rs6000_emit_move): Ditto.
17500 (rs6000_init_builtins): Remove V4HI_type_node.
17501
17502 2017-06-13 Martin Liska <mliska@suse.cz>
17503
17504 PR sanitize/78204
17505 * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
17506 (gate_asan): Likewise.
17507 * asan.h (asan_no_sanitize_address_p): Remove the function.
17508 (sanitize_flags_p): New function.
17509 * builtins.def: Fix coding style.
17510 * common.opt: Use renamed enum value.
17511 * convert.c (convert_to_integer_1): Use sanitize_flags_p.
17512 * doc/extend.texi: Document no_sanitize attribute.
17513 * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
17514 to SANITIZE_UNDEFINED_NONDEFAULT.
17515 * gcc.c (sanitize_spec_function): Use the renamed enum value.
17516 * gimple-fold.c (optimize_atomic_compare_exchange_p):
17517 Use sanitize_flags_p.
17518 * gimplify.c (gimplify_function_tree): Likewise.
17519 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
17520 * opts.c (parse_no_sanitize_attribute): New function.
17521 (common_handle_option): Use renamed enum value.
17522 * opts.h (parse_no_sanitize_attribute): Declare.
17523 * tree.c (sanitize_flags_p): New function.
17524 * tree.h: Declared here.
17525 * tsan.c: Use sanitize_flags_p.
17526 * ubsan.c (ubsan_expand_null_ifn): Likewise.
17527 (instrument_mem_ref): Likewise.
17528 (instrument_bool_enum_load): Likewise.
17529 (do_ubsan_in_current_function): Remove the function.
17530 (pass_ubsan::execute): Use sanitize_flags_p.
17531 * ubsan.h: Remove do_ubsan_in_current_function
17532 * tree-cfg.c (print_no_sanitize_attr_value): New function.
17533 (dump_function_to_file): Use it here.
17534
17535 2017-06-13 Martin Jambor <mjambor@suse.cz>
17536
17537 PR tree-optimization/80803
17538 PR tree-optimization/81063
17539 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
17540 (propagate_subaccesses_across_link): Enqueue subtree whenever
17541 necessary instead of relying on the caller.
17542
17543 2017-06-13 Martin Jambor <mjambor@suse.cz>
17544
17545 * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
17546 that have a first_link.
17547 (sort_and_splice_var_accesses): Do not check first_link before
17548 enquing.
17549 (subtree_mark_written_and_enqueue): Likewise.
17550 (propagate_all_subaccesses): Likewise and do not stop at first
17551 parent with a first_link.
17552
17553 2017-06-13 Martin Jambor <mjambor@suse.cz>
17554
17555 * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
17556 instead of f.
17557
17558 2017-06-13 Yury Gribov <tetra2005@gmail.com>
17559
17560 * match.pd: New pattern.
17561
17562 2017-06-13 Yury Gribov <tetra2005@gmail.com>
17563
17564 * tree-vrp.c (is_masked_range_test): New function.
17565 (register_edge_assert_for): Determine ranges for
17566 some bit tests.
17567
17568 2017-06-13 Yury Gribov <tetra2005@gmail.com>
17569
17570 PR tree-optimization/67328
17571 * fold-const.c (maskable_range_p): New function.
17572 (build_range_check): Generate bittests if possible.
17573
17574 2017-06-13 Martin Liska <mliska@suse.cz>
17575
17576 * gimple-pretty-print.c (dump_probability): Add new argument.
17577 (dump_edge_probability): Dump both probability and count.
17578 (dump_gimple_label): Likewise.
17579 (dump_gimple_bb_header): Likewise.
17580
17581 2017-06-13 Georg-Johann Lay <avr@gjlay.de>
17582
17583 PR target/81072
17584 * config/avr/avr-devices.c: Fix indentation.
17585 * config/avr/gen-avr-mmcu-specs.c: Dito.
17586
17587 2017-06-13 Richard Biener <rguenther@suse.de>
17588
17589 * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
17590 instead get vector type from stmt_info.
17591 (vectorizable_reduction): Adjust. Remove dead code.
17592
17593 2017-06-13 Richard Biener <rguenther@suse.de>
17594
17595 PR middle-end/81065
17596 * fold-const.c (extract_muldiv_1): Remove bogus distribution
17597 case of C * (x * C2 + C3).
17598 (fold_addr_of_array_ref_difference): Properly fold index difference.
17599
17600 2017-06-12 David S. Miller <davem@davemloft.net>
17601
17602 PR target/80968
17603 * config/sparc/sparc.md (return expander): Emit frame blockage if
17604 function uses alloca.
17605
17606 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org>
17607
17608 * combine.c (make_field_assignment): Check len rather than the mode
17609 precision when calling force_to_mode.
17610
17611 2017-06-12 Georg-Johann Lay <avr@gjlay.de>
17612
17613 Support multilibs and devices that see flash in RAM address range.
17614
17615 PR target/81072
17616 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
17617 (avr_mcu_t) <flash_pm_offset>: New field.
17618 (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
17619 * config/avr/avr.h (AVR_SHORT_CALLS): New define.
17620 (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
17621 (AVR_TINY_PM_OFFSET): Remove macro.
17622 * config/avr/avr.opt (-mshort-calls): New option.
17623 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
17624 [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
17625 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
17626 <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
17627 <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
17628 instead of avr_arch->have_jmp_call.
17629 <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
17630 [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
17631 avr_arch->flash_pm_offset to define.
17632 * config/avr/avr-devices.c (avr_arch_types): Add initializers for
17633 new field flash_pm_offset. Add entry for avrxmega3.
17634 (avr_texinfo): Add entry for avrxmega3.
17635 * config/avr/avr-mcus.def: Add entries for: avrxmega3,
17636 attiny212, attiny214,
17637 attiny412, attiny414, attiny416, attiny417,
17638 attiny814, attiny816, attiny817,
17639 attiny1614, attiny1616, attiny1617,
17640 attiny3214, attiny3216, attiny3217.
17641 * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
17642 avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
17643 (avr_print_operand_address) [AVR_TINY]: Same.
17644 (avr_asm_init_sections) <readonly_data_section>: Only patch
17645 callback if avr_arch->flash_pm_offset = 0.
17646 (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
17647 for rodata if avr_arch->flash_pm_offset != 0.
17648 (avr_encode_section_info) [AVR_TINY]: Adjust comment.
17649 * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
17650 (opts) [AVR_ISA_RCALL]: Append opt_rcall.
17651 (m_options): Append opt_rcall.
17652 (m_dirnames): Append dir_rcall.
17653 * config/avr/t-multilib: Regenerate.
17654
17655 * configure.ac [target=avr]: Check whether avrxmega3 default
17656 linker description file works as needed.
17657 * configure: Regenerate.
17658 * doc/avr-mmcu.texi: Regenerate.
17659 * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
17660 <__AVR_ARCH__>: Document avrxmega3 and 103.
17661 <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
17662 <__AVR_SHORT_CALLS__>: Document it.
17663 <__AVR_PM_BASE_ADDRESS__>: Document it.
17664 * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
17665 (AVR Variable Attributes) <progmem>: Document this is
17666 not needed for avrxmega3.
17667 (AVR Named Address Spaces) <__flash>: Dito.
17668
17669 2017-06-12 Jan Hubicka <hubicka@ucw.cz>
17670
17671 * cgraph.c (cgraph_node::dump): Complain about profile insanities.
17672
17673 2017-06-12 Doug Rupp <rupp@adacore.com>
17674
17675 * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
17676 Append vxworks-stdint.h to the tm_file list.
17677 * config/vxworks-stdint.h: New file.
17678
17679 2017-06-12 Martin Liska <mliska@suse.cz>
17680
17681 PR tree-optimization/81041
17682 * tree-profile.c (gimple_gen_ic_func_profiler):
17683 Create an extra BB in profile-generate
17684 (gimple_gen_time_profiler): Likewise.
17685
17686 2017-06-12 Jakub Jelinek <jakub@redhat.com>
17687
17688 PR tree-optimization/81003
17689 * tree-ssa-reassoc.c (force_into_ssa_name): New function.
17690 (update_range_test): Use it instead of force_gimple_operand_gsi.
17691
17692 2017-06-12 Richard Biener <rguenther@suse.de>
17693
17694 PR tree-optimization/81053
17695 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
17696 with backedge value not defined in loop. Simplify def stmt
17697 compute.
17698
17699 2017-06-11 Tom de Vries <tom@codesourcery.com>
17700
17701 PR target/79939
17702 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
17703 Return true.
17704 (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
17705 nvptx_cannot_force_const_mem.
17706
17707 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
17708
17709 * opts.c (finish_options): Move test for flag_split_stack after
17710 it has been initialized.
17711
17712 2017-06-11 Jason Merrill <jason@redhat.com>
17713
17714 * tree.h (id_equal): New.
17715 * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
17716 omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
17717 instead of strcmp of IDENTIFIER_POINTER.
17718
17719 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
17720
17721 * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
17722 (mark_all_inlined_calls_cdtor): Fix formating.
17723 (inline_transform): Rescale profile before inlining.
17724
17725 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
17726
17727 * cgraph.h (cgraph_edge::clone): Update prototype.
17728 * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
17729 (cgraph_node::create_clone): Update.
17730 (cgraph_node::create_version_clone): Update.
17731 * tree-inline.c (copy_bb): Update.
17732 (expand_call_inline): Update.
17733
17734 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
17735
17736 * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
17737 factored out from ...
17738 (rs6000_emit_prologue): ... here.
17739
17740 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
17741
17742 * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
17743 factored out from ...
17744 (rs6000_emit_prologue): ... here.
17745
17746 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
17747
17748 * predict.c (drop_profile): Also drop individual bb/edge and cgraph
17749 edge counts.
17750 (handle_missing_profiles): Fix computation of tp_first_run.
17751 (counts_to_freqs): Do not touch freqs when count is 0.
17752
17753 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
17754
17755 * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
17756 profile.
17757
17758 2017-06-10 Tom de Vries <tom@codesourcery.com>
17759
17760 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
17761 attributes): Document signal effective target.
17762
17763 2017-06-10 Tom de Vries <tom@codesourcery.com>
17764
17765 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
17766 Document effective target stack_size.
17767
17768 2017-06-09 David Malcolm <dmalcolm@redhat.com>
17769
17770 * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
17771 to the edit_context if they can be auto-applied.
17772
17773 2017-06-9 Ian Lance Taylor <iant@golang.org>
17774
17775 * opts.c (finish_options): If -fsplit-stack, disable implicit
17776 -forder-blocks-and-partition.
17777 * doc/invoke.texi (Optimize Options): Document that when using
17778 -fsplit-stack -forder-blocks-and-partition is not implicitly
17779 enabled.
17780
17781 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
17782
17783 * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
17784 ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
17785 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
17786 * builtins.def (abort, trap, unreachable): Declare cold.
17787 * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
17788 * tree-core.h (ECF_COLD): New.
17789 * tree.c (set_call_expr_flags): Handle ECF_COLD.
17790 (build_common_builtin_nodes): Mark unreachable and abort as cold.
17791
17792 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
17793
17794 * predict.c (unlikely_executed_stmt_p): Cleanup.
17795
17796 2017-06-09 Richard Biener <rguenther@suse.de>
17797
17798 * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
17799 model if the ref is always written to.
17800
17801 2017-06-09 Tamar Christina <tamar.christina@arm.com>
17802
17803 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
17804
17805 2017-06-09 Tamar Christina <tamar.christina@arm.com>
17806
17807 * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
17808 than udiv.
17809
17810 2017-06-09 Tom de Vries <tom@codesourcery.com>
17811
17812 PR target/80855
17813 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
17814 "target cannot support label values" when encountering LABEL_REF.
17815
17816 2017-06-09 Martin Liska <mliska@suse.cz>
17817
17818 * tree-profile.c (gimple_gen_ic_profiler): Update comment.
17819 (gimple_gen_ic_func_profiler): Emit direct comparison
17820 of __gcov_indirect_call_callee with NULL.
17821 (gimple_gen_time_profiler): Change probability from
17822 PROB_VERY_UNLIKELY to PROB_UNLIKELY.
17823
17824 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
17825
17826 * profile.c (edge_gcov_counts): Turn to pointer.
17827 (compute_branch_probabilities, compute_branch_probabilities): Update.
17828 (branch_prob): Do not clear edge_gcov_count.
17829 * profile.h (edge_gcov_counts): Turn to pointer.
17830 (edge_gcov_count): Update.
17831
17832 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
17833
17834 * gimple.h (gimple_check_failed): Mark cold.
17835
17836 2017-06-09 Richard Biener <rguenther@suse.de>
17837
17838 PR tree-optimization/66623
17839 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
17840 refactor check_reduction into two parts, properly computing
17841 whether we have to check reduction validity for outer loop
17842 vectorization.
17843
17844 2017-06-09 Richard Biener <rguenther@suse.de>
17845
17846 PR tree-optimization/79483
17847 * graphite-scop-detection.c (order): New global.
17848 (get_order): Compute bb to order mapping that satisfies code
17849 generation constraints.
17850 (cmp_pbbs): New helper.
17851 (build_scops): Start domwalk at entry block, sort generated
17852 pbbs.
17853
17854 2017-06-09 Richard Biener <rguenther@suse.de>
17855
17856 PR middle-end/81007
17857 * ipa-polymorphic-call.c
17858 (ipa_polymorphic_call_context::restrict_to_inner_class):
17859 Skip FIELD_DECLs with error_mark_node type.
17860 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
17861 last again.
17862
17863 2017-06-09 Martin Liska <mliska@suse.cz>
17864
17865 * predict.c (struct branch_predictor): New struct.
17866 (test_prediction_value_range): New test.
17867 (predict_c_tests): New function.
17868 * selftest-run-tests.c (selftest::run_tests): Run the function.
17869 * selftest.h: Declare new tests.
17870
17871 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
17872
17873 PR target/80966
17874 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
17875 gen_add3_insn did not fail.
17876 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
17877 r0, construct that number in a temporary reg and add that reg to r0.
17878 If asked to put the result in r0 as well, fail.
17879
17880 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com>
17881
17882 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
17883 for early expansion of vec_eqv.
17884
17885 2017-06-08 Jakub Jelinek <jakub@redhat.com>
17886
17887 PR middle-end/81005
17888 * ubsan.c (instrument_null): Avoid pointless code temporary.
17889 (pass_ubsan::execute): Instrument aggregate arguments of calls.
17890
17891 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
17892
17893 PR target/81015
17894 Revert:
17895 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
17896
17897 PR target/59874
17898 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
17899 (*clzhi2): Ditto.
17900
17901 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
17902
17903 * predict.c (unlikely_executed_edge_p): Move ahead.
17904 (probably_never_executed_edge_p): Use it.
17905
17906 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
17907
17908 PR middle-end/79988
17909 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
17910 gimple_call_builtin_p call.
17911
17912 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
17913
17914 * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
17915 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
17916 rtl_check_failed_type2, rtl_check_failed_code1,
17917 rtl_check_failed_code2, rtl_check_failed_code_mode,
17918 rtl_check_failed_block_symbol, cwi_check_failed_bounds,
17919 rtvec_check_failed_bounds, rtl_check_failed_flag,
17920 _fatal_insn_not_found, _fatal_insn): Likewise.
17921 * tree.h (tree_contains_struct_check_failed,
17922 tree_check_failed, tree_not_check_failed,
17923 tree_class_check_failed, tree_range_check_failed,
17924 tree_not_class_check_failed, tree_int_cst_elt_check_failed,
17925 tree_vec_elt_check_failed, phi_node_elt_check_failed,
17926 tree_operand_check_failed, omp_clause_check_failed,
17927 omp_clause_operand_check_failed, omp_clause_range_check_failed):
17928 Likewise.
17929
17930 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
17931
17932 * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
17933 flag_branch_probabilities.
17934 * ipa-inline.c (edge_badness): Likewise.
17935 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
17936 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
17937 * predict.c (maybe_hot_frequency_p): Likewise.
17938 (probably_never_executed): Likewise.
17939 * sched-ebb.c (schedule_ebbs): Likewise.
17940 * sched-rgn.c (find_single_block_region): Likewise.
17941 * tracer.c (tail_duplicate): Likewise.
17942
17943 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
17944
17945 * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
17946 longer requires x_flag_profile_use.
17947
17948 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
17949
17950 * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
17951 instead of flag_reorder_blocks_and_partition.
17952 * dbxout.c (dbxout_function_end): Likewise.
17953 * dwarf2out.c (gen_subprogram_die): Likewise.
17954 * haifa-sched.c (sched_create_recovery_edges): Likewise.
17955 * hw-doloop.c (reorg_loops): Likewise.
17956 * varasm.c (assemble_start_function,
17957 assemble_end_function): Likewise.
17958 (decide_function_section): Do not check for
17959 flag_reorder_blocks_and_partition.
17960
17961 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
17962
17963 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
17964 New function.
17965 (chkp_get_hard_register_fake_addr_expr): Ditto.
17966 (chkp_build_addr_expr): Add check for hard reg case.
17967 (chkp_parse_array_and_component_ref): Ditto.
17968 (chkp_find_bounds_1): Ditto.
17969 (chkp_process_stmt): Don't generate bounds store for
17970 hard reg case.
17971
17972 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
17973
17974 * predict.c (maybe_hot_bb_p): Do not check profile status.
17975 (maybe_hot_edge_p): Likewise.
17976 (probably_never_executed): Check for zero counts even if profile
17977 is not read.
17978 (unlikely_executed_edge_p): New function.
17979 (unlikely_executed_stmt_p): New function.
17980 (unlikely_executed_bb_p): New function.
17981 (set_even_probabilities): Use unlikely predicates.
17982 (combine_predictions_for_bb): Likewise.
17983 (predict_paths_for_bb): Likewise.
17984 (predict_paths_leading_to_edge): Likewise.
17985 (determine_unlikely_bbs): New function.
17986 (estimate_bb_frequencies): Use it.
17987 (compute_function_frequency): Use zero counts even if profile is
17988 not read.
17989 * profile-count.h: Fix typo.
17990
17991 2017-08-08 Julia Koval <julia.koval@intel.com>
17992
17993 * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
17994 _mm512_mask_cvtsepi16_storeu_epi8,
17995 _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
17996 * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
17997 _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
17998 _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
17999 _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
18000 * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
18001 (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
18002 VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
18003 * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
18004 __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
18005 __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
18006 __builtin_ia32_pmovuswb256mem_mask,
18007 __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
18008 __builtin_ia32_pmovwb512mem_mask): New builtins.
18009
18010 2017-08-08 Julia Koval <julia.koval@intel.com>
18011
18012 PR target/73350,80862
18013 * config/i386/subst.md (round): Fix round pattern.
18014 * config/i386/i386.c (ix86_erase_embedded_rounding):
18015 Fix erasing rounding for the fixed pattern.
18016
18017 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
18018
18019 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
18020
18021 2017-06-08 Martin Liska <mliska@suse.cz>
18022
18023 PR gcov-profile/80911
18024 * gcov.c (block_info::block_info): New constructor.
18025
18026 2017-06-07 Carl Love <cel@us.ibm.com>
18027
18028 * config/rs6000/rs6000-c: The return type of the following
18029 built-in functions was implemented as int not long long. Fix sign
18030 of return value for the unsigned version of vec_mulo and vec_mule.
18031 vector unsigned long long vec_bperm (vector unsigned long long,
18032 vector unsigned char)
18033 vector signed long long vec_mule (vector signed int,
18034 vector signed int)
18035 vector unsigned long long vec_mule (vector unsigned int,
18036 vector unsigned int)
18037 vector signed long long vec_mulo (vector signed int,
18038 vector signed int)
18039 vector unsigned long long vec_mulo (vector unsigned int,
18040 vector unsigned int)
18041 * doc/extend.texi: Fix the documentation for the built-in
18042 functions.
18043
18044 2017-06-07 Carl Love <cel@us.ibm.com>
18045
18046 PR target/80982
18047 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
18048 for BE.
18049
18050 2017-06-07 Carl Love <cel@us.ibm.com>
18051
18052 * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
18053 support, Generate doublehv for signed int/float for BE case only.
18054
18055 2017-06-07 Alexander Monakov <amonakov@ispras.ru>
18056
18057 * doc/invoke.texi (mcx16): Rewrite.
18058
18059 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18060
18061 * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
18062 * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
18063 *mov<mode>_softfloat, and an anonymous splitter): Use
18064 nonimmediate_operand instead of rs6000_nonimmediate_operand.
18065
18066 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18067
18068 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
18069 SPEFSCR registers.
18070 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
18071 (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
18072 (rs6000_debug_reg_global): Adjust.
18073 (rs6000_init_hard_regno_mode_ok): Adjust.
18074 (rs6000_dbx_register_number): Adjust.
18075 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
18076 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
18077 Remove SPE_ACC and SPEFSCR.
18078 (REG_ALLOC_ORDER): Ditto.
18079 (FRAME_POINTER_REGNUM): Change to 111.
18080 (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
18081 (REG_CLASS_NAMES): Ditto.
18082 (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
18083 (REGISTER_NAMES): Ditto.
18084 (ADDITIONAL_REG_NAMES): Ditto.
18085 (rs6000_reg_names): Ditto.
18086 * config/rs6000/rs6000.md: Renumber some register number
18087 define_constants.
18088
18089 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18090
18091 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
18092 registers.
18093 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
18094 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
18095 to 117.
18096 (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
18097 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
18098 Delete the SPE high registers.
18099 (REG_ALLOC_ORDER): Ditto.
18100 (enum reg_class): Remove SPE_HIGH_REGS.
18101 (REG_CLASS_NAMES): Ditto.
18102 (REG_CLASS_CONTENTS): Delete the SPE high registers.
18103 (REGISTER_NAMES): Ditto.
18104 (rs6000_reg_names): Ditto.
18105 * doc/tm.texi.in: Remove SPE as example.
18106 * doc/tm.texi: Regenerate.
18107
18108 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18109
18110 * config/rs6000/8540.md (ppc8540_brinc): Delete.
18111 * config/rs6000/e500mc.md (e500mc_brinc): Delete.
18112 * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
18113 * config/rs6000/rs6000.md (type): Remove "brinc".
18114
18115 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18116
18117 * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
18118 (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
18119 * config/rs6000/linuxspe.h: Delete file.
18120 * config/rs6000/rs6000.md: Don't include spe.md.
18121 * config/rs6000/spe.h: Delete file.
18122 * config/rs6000/spe.md: Delete file.
18123 * config/rs6000/t-rs6000: Remove spe.md.
18124
18125 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18126
18127 * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
18128 (reg_or_none500mem_operand): Delete.
18129 * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
18130 instead of reg_or_none500mem_operand.
18131
18132 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18133
18134 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
18135 handling of SPE flags.
18136 * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
18137
18138 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18139
18140 * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
18141 SPE ABI handling.
18142 * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
18143 (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
18144 paired_divv2sf3): Similar.
18145 * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
18146 SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
18147 * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
18148 RS6000_BUILTIN_S.
18149 Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
18150 Rename the paired_* instruction patterns.
18151 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
18152 define __SPE__.
18153 * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
18154 * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
18155 (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
18156 spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and
18157 TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with
18158 PAIRED_VECTOR_MODE.
18159 (struct machine_function): Delete field spe_insn_chain_scanned_p.
18160 (spe_func_has_64bit_regs_p): Delete.
18161 (spe_expand_predicate_builtin): Delete.
18162 (spe_expand_evsel_builtin): Delete.
18163 (TARGET_DWARF_REGISTER_SPAN): Do not define.
18164 (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
18165 (invalid_e500_subreg): Delete.
18166 (rs6000_legitimize_address): Always force_reg op2 as well, for
18167 paired single memory accesses.
18168 (rs6000_member_type_forces_blk): Delete.
18169 (rs6000_spe_function_arg): Delete.
18170 (rs6000_expand_unop_builtin): Delete SPE handling.
18171 (rs6000_expand_binop_builtin): Ditto.
18172 (spe_expand_stv_builtin): Delete.
18173 (bdesc_2arg_spe): Delete.
18174 (spe_expand_builtin): Delete.
18175 (spe_expand_predicate_builtin): Delete.
18176 (spe_expand_evsel_builtin): Delete.
18177 (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
18178 (spe_init_builtins): Delete.
18179 (spe_func_has_64bit_regs_p): Delete.
18180 (savres_routine_name): Delete "info" parameter. Adjust callers.
18181 (rs6000_emit_stack_reset): Ditto.
18182 (rs6000_dwarf_register_span): Delete.
18183 * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
18184 UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
18185 SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
18186 Delete.
18187 * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
18188 Delete.
18189 * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
18190 * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
18191 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
18192 mulv2sf3, divv2sf3): Delete expanders.
18193
18194 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18195
18196 config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
18197
18198 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18199
18200 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
18201 * config/rs6000/rs6000.c: Ditto.
18202
18203 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18204
18205 * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
18206 * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
18207 comparison_operator.
18208
18209 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18210
18211 * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
18212 * config/rs6000/rs6000.opt: Ditto.
18213 * config/rs6000/t-rtems: Ditto.
18214
18215 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18216
18217 * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
18218 TARGET_E500_SINGLE by 0, simplify.
18219 * config/rs6000/rs6000.c: Ditto.
18220 (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
18221 (spe_build_register_parallel): Delete.
18222 * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
18223 TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
18224 * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
18225 TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
18226 (E500_CONVERT): Delete.
18227 * config/rs6000/spe.md: Remove many patterns and all define_constants.
18228
18229 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18230
18231 * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
18232 * config/rs6000/dfp.md: Ditto.
18233 (negdd2, *negdd2_fpr): Merge.
18234 (absdd2, *absdd2_fpr): Merge.
18235 (negtd2, *negtd2_fpr): Merge.
18236 (abstd2, *abstd2_fpr): Merge.
18237 * config/rs6000/e500.h: Delete file.
18238 * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
18239 TARGET_FPRS by 1 and simplify.
18240 * config/rs6000/rs6000-c.c: Ditto.
18241 * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and
18242 TARGET_DF_SPE by 0.
18243 * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and
18244 TARGET_DF_SPE.
18245 * config/rs6000/rs6000.md: Ditto.
18246 (floatdidf2, *floatdidf2_fpr): Merge.
18247 (move_from_CR_gt_bit): Delete.
18248 * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
18249 (E500_CR_IOR_COMPARE): Delete.
18250 (All patterns that require !TARGET_FPRS): Delete.
18251 * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
18252
18253 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18254
18255 * passes.def (pass_iv_canon): Move before pass_loop_distribution.
18256
18257 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18258
18259 * graphds.c (add_edge): Intitialize edge's attached data.
18260 (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
18261 pointer parameter. Call pointed function on each edge during
18262 graph traversing. Skip traversing the edge when the function
18263 returns true.
18264 (graphds_dfs, graphds_scc): Ditto.
18265 (for_each_edge): New parameter. Pass the new parameter to callback
18266 function.
18267 * graphds.h (skip_edge_callback): New function pointer type.
18268 (graphds_dfs, graphds_scc): New function pointer parameter.
18269 (graphds_edge_callback, for_each_edge): New parameter.
18270
18271 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18272
18273 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
18274 out code checking if runtime alias check is possible to below ...
18275 Call the new function.
18276 * tree-data-ref.c (runtime_alias_check_p): ... to new function.
18277 * tree-data-ref.h (runtime_alias_check_p): New decalaration.
18278
18279 2017-06-07 Marek Polacek <polacek@redhat.com>
18280
18281 PR sanitizer/80932
18282 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
18283 TYPE_OVERFLOW_WRAPS check.
18284
18285 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18286
18287 * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
18288 if versioning is required.
18289 * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
18290 peeling with the check for versioning.
18291
18292 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18293
18294 * tree-vectorizer.h (vect_build_loop_niters): New parameter.
18295 * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
18296 Set true to new parameter if new ssa variable is defined.
18297 (vect_gen_vector_loop_niters): Refactor. Set range information
18298 for the new vector loop bound variable.
18299 (vect_do_peeling): Ditto.
18300
18301 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18302
18303 * tree-affine.c (ssa.h): Include header file.
18304 (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
18305 has wrapping overflow behavior.
18306
18307 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18308
18309 * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
18310
18311 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18312
18313 (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
18314 (tree_to_aff_combination): ... here.
18315
18316 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18317
18318 * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
18319 reg_pressure model function.
18320 (ivopts_global_cost_for_size): Delete.
18321 (determine_set_costs, iv_ca_recount_cost): Call new model function
18322 ivopts_estimate_reg_pressure.
18323
18324 2017-06-07 Tamar Christina <tamar.christina@arm.com>
18325
18326 * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
18327 expensive than udiv. Remove floating point cases from mod.
18328
18329 2017-06-07 Tamar Christina <tamar.christina@arm.com>
18330
18331 * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
18332 Increase idiv cost.
18333
18334 2017-06-07 Tamar Christina <tamar.christina@arm.com>
18335
18336 * config/aarch64/aarch64.md
18337 (copysignsf3): Fix mask generation.
18338
18339 2017-06-07 Jakub Jelinek <jakub@redhat.com>
18340
18341 * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
18342 TDI_gimple.
18343 (class dump_manager): Add register_dumps method.
18344 * dumpfile.c: Include langhooks.h.
18345 (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
18346 (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
18347 (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
18348 (dump_manager::dump_register): Start with 512 entries instead of 32.
18349 (dump_manager::register_dumps): New method.
18350 * toplev.c (general_init): Instead of invoking register_dumps
18351 langhook, invoke register_dumps method on the dump manager.
18352 * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
18353 TDI_generic.
18354
18355 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org>
18356
18357 * doc/md.texi: Clarify the restrictions on a define_insn condition.
18358 Say that # requires an associated define_split to exist, and that
18359 the define_split must be suitable for use after register allocation.
18360
18361 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
18362
18363 * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
18364 (compute_outgoing_frequencies): Also initialize zero counts.
18365 (find_many_sub_basic_blocks): Do not produce uninitialized profile
18366 around loops; preserve more of profile when nothing changes.
18367
18368 2017-06-06 Jim Wilson <jim.wilson@linaro.org>
18369
18370 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
18371 here.
18372 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
18373 * config/arm/arm-cpu-cdata.h: Regenerate.
18374 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
18375 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
18376 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
18377 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
18378 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
18379 support.
18380 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
18381 support.
18382 * config/arm/t-rmprofile: Likewise.
18383 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
18384
18385 2017-06-06 David S. Miller <davem@davemloft.net>
18386
18387 PR target/80968
18388 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
18389 blockage if function uses alloca.
18390
18391 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18392
18393 * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
18394 New "uid" fields to hold pretty-print IDs of group and ref.
18395 Memory references are now identified as <group_id>:<ref_id>
18396 instead of using [random] addresses.
18397 (dump_mem_details): Simplify, no functional change.
18398 (dump_mem_ref): Simplify and make output more concise.
18399 Replace couple of fprintf's throughout code with calls to dump_mem_ref.
18400 (find_or_create_group): Initialize group uid.
18401 (record_ref): Initialize ref uid. Improve debug output.
18402 (prune_group_by_reuse, should_issue_prefetch_p,)
18403 (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
18404 (mark_nontemporal_store, determine_loop_nest_reuse):
18405 Improve debug output.
18406
18407 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18408
18409 * dbgcnt.def (prefetch): New debug counter.
18410 * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
18411 (schedule_prefetches): Stop issueing prefetches if debug counter
18412 tripped.
18413
18414 2017-06-06 Tom de Vries <tom@codesourcery.com>
18415
18416 * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
18417 gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
18418
18419 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18420
18421 * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
18422 Use aarch64_reg_or_zero predicate for operand 4.
18423 (aarch64_compare_and_swap<mode> define_insn_and_split):
18424 Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint.
18425 (aarch64_store_exclusive<mode>): Likewise for operand 2.
18426
18427 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
18428
18429 * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
18430 (arm_compute_save_core_reg_mask): This.
18431 (thumb1_compute_save_reg_mask): Rename into ...
18432 (thumb1_compute_save_core_reg_mask): This.
18433 (arm_compute_save_reg0_reg12_mask): Adapt comment.
18434 (arm_compute_frame_layout): Likewise.
18435
18436 2017-06-06 Richard Biener <rguenther@suse.de>
18437
18438 PR tree-optimization/80974
18439 * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
18440 keep or clear leaders SSA info.
18441
18442 2017-06-06 Tom de Vries <tom@codesourcery.com>
18443
18444 * config/nvptx/nvptx.c (split_mode_p): New function.
18445 (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
18446
18447 2017-06-06 Tom de Vries <tom@codesourcery.com>
18448
18449 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
18450
18451 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
18452
18453 PR bootstrap/80978
18454 * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
18455 profile.
18456
18457 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
18458
18459 * shrink-wrap.c (handle_simple_exit): Update profile.
18460 (try_shrink_wrapping): Upate profile.
18461
18462 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
18463
18464 * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
18465 (tree_guess_outgoing_edge_probabilities): New.
18466 * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
18467 * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
18468
18469 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
18470
18471 * ipa-split.c (split_function): Initialize return bb profile.
18472
18473 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
18474
18475 * profile.c (compute_branch_probabilities): Also initialize
18476 EXIT_BLOCK profile.
18477
18478 2017-06-06 Richard Biener <rguenther@suse.de>
18479
18480 PR tree-optimization/80928
18481 * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
18482 (vect_analyze_loop_operations): Properly guard analysis for
18483 pure SLP case.
18484 (vect_transform_loop): Likewise.
18485 (vect_analyze_loop_2): Also reset SLP type on PHIs.
18486 (vect_model_induction_cost): Do not cost for pure SLP.
18487 (vectorizable_induction): Pass in SLP node, implement SLP vectorization
18488 of induction in inner loop vectorization.
18489 * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
18490 (vect_get_and_check_slp_defs): Handle vect_induction_def.
18491 (vect_build_slp_tree): Likewise. Handle PHIs as terminating the
18492 recursion.
18493 (vect_analyze_slp_cost_1): Cost induction.
18494 (vect_detect_hybrid_slp_stmts): Handle PHIs.
18495 (vect_get_slp_vect_defs): Likewise.
18496 * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
18497 (vect_transform_stmt): Handle SLP reductions.
18498 * tree-vectorizer.h (vectorizable_induction): Adjust.
18499
18500 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
18501
18502 * config/rs6000/rs6000.c (make_resolver_func): Update
18503 init_lowered_empty_function call.
18504
18505 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
18506
18507 * doc/invoke.texi: Document the -fprofile-abs-path option.
18508 * common.opt (fprofile-abs-path): New option.
18509 * gcov-io.h (gcov_write_filename): Declare.
18510 * gcov-io.c (gcov_write_filename): New function.
18511 * coverage.c (coverage_begin_function): Use gcov_write_filename.
18512 * profile.c (output_location): Likewise.
18513
18514 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
18515
18516 * shring-wrap.c: Revert accidental commit.
18517
18518 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
18519
18520 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
18521
18522 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
18523
18524 * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
18525 new edge.
18526 * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
18527 profile in callgraph edge.
18528 * profile-count.h (apply_probability): If THIS is 0, then result is 0
18529 (apply_scale): Likewise.
18530 * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
18531 Also scale profile when inlining function with zero profile.
18532 (initialize_cfun): Update exit block profile even when it is zero.
18533 * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
18534 when profile is read.
18535
18536 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
18537
18538 * config/rs6000/rs6000.c (toplevel): Include attribs.h.
18539 (CLONE_*): New constants to define the processors we can generate
18540 code for with the target_clone attribute.
18541 (rs6000_clone_map): New array to identify which clone processors
18542 the current program is running on.
18543 (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
18544 target_clone attribute.
18545 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
18546 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
18547 (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
18548 (cpu_expand_builtin): Add support for target_clone attribute.
18549 (rs6000_valid_attribute_p): Allow "default" attribute.
18550 (get_decl_name): New debug function to simplify printing the
18551 current function name in debugging statements.
18552 (rs6000_clone_priority): New functions to support the target_clone
18553 attribute, and be able to generate code to switch between ISA 2.05
18554 through ISA 3.0 (power6 through power9).
18555 (rs6000_compare_version_priority): Likewise.
18556 (rs6000_get_function_versions_dispatcher): Likewise.
18557 (make_resolver_func): Likewise.
18558 (add_condition_to_bb): Likewise.
18559 (dispatch_function_versions): Likewise.
18560 (rs6000_generate_version_dispatcher_body): Likewise.
18561 (rs6000_can_inline_p): Call get_decl_name for debugging usage.
18562 (fusion_gpr_load_p): Fix a spacing issue.
18563 * doc/extend.texi (Common Function Attributes): Document that the
18564 PowerPC supports the target_clone attribute.
18565
18566 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
18567
18568 * config/arm/arm.h: explain F symbol found in description of ARM
18569 register allocation in its legend.
18570
18571 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
18572
18573 * config/mips/frame-header-opt.c: Include profile-count.h.
18574 * config/riscv/riscv.c: Include profile-count.h
18575
18576 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
18577
18578 * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
18579 update profile.
18580 (sm_set_flag_if_changed): Add bbs field.
18581 (execute_sm_if_changed_flag_set): Pass BBS.
18582 (execute_sm): Update.
18583
18584 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18585
18586 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
18587 New pattern.
18588
18589 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18590
18591 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
18592 (peephole2): New peephole2 to emit the above.
18593 * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
18594
18595 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18596
18597 * config/aarch64/aarch64.c (define_peephole2 above
18598 *sub_<shift>_<mode>): New peephole.
18599
18600 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
18601
18602 * config/i386/i386.c (make_resolver_func): Update.
18603 * Makefile.in: Add profile-count.h and profile-count.o
18604 * auto-profile.c (afdo_indirect_call): Update to new API.
18605 (afdo_set_bb_count): Update.
18606 (afdo_propagate_edge): Update.
18607 (afdo_propagate_circuit): Update.
18608 (afdo_calculate_branch_prob): Update.
18609 (afdo_annotate_cfg): Update.
18610 * basic-block.h: Include profile-count.h
18611 (struct edge_def): Turn count to profile_count.
18612 (struct basic_block_def): Likewie.
18613 (REG_BR_PROB_BASE): Move to profile-count.h
18614 (RDIV): Move to profile-count.h
18615 * bb-reorder.c (max_entry_count): Turn to profile_count.
18616 (find_traces): Update.
18617 (rotate_loop):Update.
18618 (connect_traces):Update.
18619 (sanitize_hot_paths):Update.
18620 * bt-load.c (migrate_btr_defs): Update.
18621 * cfg.c (RDIV): Remove.
18622 (init_flow): Use alloc_block.
18623 (alloc_block): Uninitialize count.
18624 (unchecked_make_edge): Uninitialize count.
18625 (check_bb_profile): Update.
18626 (dump_edge_info): Update.
18627 (dump_bb_info): Update.
18628 (update_bb_profile_for_threading): Update.
18629 (scale_bbs_frequencies_int): Update.
18630 (scale_bbs_frequencies_gcov_type): Update.
18631 (scale_bbs_frequencies_profile_count): New.
18632 * cfg.h (update_bb_profile_for_threading): Update.
18633 (scale_bbs_frequencies_profile_count): Declare.
18634 * cfgbuild.c (compute_outgoing_frequencies): Update.
18635 (find_many_sub_basic_blocks): Update.
18636 * cfgcleanup.c (try_forward_edges): Update.
18637 (try_crossjump_to_edge): Update.
18638 * cfgexpand.c (expand_gimple_tailcall): Update.
18639 (construct_exit_block): Update.
18640 * cfghooks.c (verify_flow_info): Update.
18641 (dump_bb_for_graph): Update.
18642 (split_edge): Update.
18643 (make_forwarder_block): Update.
18644 (duplicate_block): Update.
18645 (account_profile_record): Update.
18646 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
18647 (get_estimated_loop_iterations): Update.
18648 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
18649 (single_likely_exit): Update.
18650 * cfgloopmanip.c (scale_loop_profile): Update.
18651 (loopify): Update.
18652 (set_zero_probability): Update.
18653 (lv_adjust_loop_entry_edge): Update.
18654 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
18655 (purge_dead_edges): Update.
18656 (rtl_account_profile_record): Update.
18657 * cgraph.c (cgraph_node::create): Uninitialize count.
18658 (symbol_table::create_edge): Uninitialize count.
18659 (cgraph_update_edges_for_call_stmt_node): Update.
18660 (cgraph_edge::dump_edge_flags): Update.
18661 (cgraph_node::dump): Update.
18662 (cgraph_edge::maybe_hot_p): Update.
18663 * cgraph.h: Include profile-count.h
18664 (create_clone), create_edge, create_indirect_edge): Update.
18665 (cgraph_node): Turn count to profile_count.
18666 (cgraph_edge0: Likewise.
18667 (make_speculative, clone): Update.
18668 (create_edge): Update.
18669 (init_lowered_empty_function): Update.
18670 * cgraphclones.c (cgraph_edge::clone): Update.
18671 (duplicate_thunk_for_node): Update.
18672 (cgraph_node::create_clone): Update.
18673 * cgraphunit.c (cgraph_node::analyze): Update.
18674 (cgraph_node::expand_thunk): Update.
18675 * final.c (dump_basic_block_info): Update.
18676 * gimple-streamer-in.c (input_bb): Update.
18677 * gimple-streamer-out.c (output_bb): Update.
18678 * graphite.c (print_global_statistics): Update.
18679 (print_graphite_scop_statistics): Update.
18680 * hsa-brig.c: Include basic-block.h.
18681 * hsa-dump.c: Include basic-block.h.
18682 * hsa-gen.c (T sum_slice): Update.
18683 (convert_switch_statements):Update.
18684 * hsa-regalloc.c: Include basic-block.h.
18685 * ipa-chkp.c (chkp_produce_thunks): Update.
18686 * ipa-cp.c (struct caller_statistics): Update.
18687 (init_caller_stats): Update.
18688 (gather_caller_stats): Update.
18689 (ipcp_cloning_candidate_p): Update.
18690 (good_cloning_opportunity_p): Update.
18691 (get_info_about_necessary_edges): Update.
18692 (dump_profile_updates): Update.
18693 (update_profiling_info): Update.
18694 (update_specialized_profile): Update.
18695 (perhaps_add_new_callers): Update.
18696 (decide_about_value): Update.
18697 (ipa_cp_c_finalize): Update.
18698 * ipa-devirt.c (struct odr_type_warn_count): Update.
18699 (struct decl_warn_count): Update.
18700 (struct final_warning_record): Update.
18701 (possible_polymorphic_call_targets): Update.
18702 (ipa_devirt): Update.
18703 * ipa-fnsummary.c (redirect_to_unreachable): Update.
18704 * ipa-icf.c (sem_function::merge): Update.
18705 * ipa-inline-analysis.c (do_estimate_edge_time): Update.
18706 * ipa-inline.c (compute_uninlined_call_time): Update.
18707 (compute_inlined_call_time): Update.
18708 (want_inline_small_function_p): Update.
18709 (want_inline_self_recursive_call_p): Update.
18710 (edge_badness): Update.
18711 (lookup_recursive_calls): Update.
18712 (recursive_inlining): Update.
18713 (inline_small_functions): Update.
18714 (dump_overall_stats): Update.
18715 (dump_inline_stats): Update.
18716 * ipa-profile.c (ipa_profile_generate_summary): Update.
18717 (ipa_propagate_frequency): Update.
18718 (ipa_profile): Update.
18719 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
18720 * ipa-utils.c (ipa_merge_profiles): Update.
18721 * loop-doloop.c (doloop_modify): Update.
18722 * loop-unroll.c (report_unroll): Update.
18723 (unroll_loop_runtime_iterations): Update.
18724 * lto-cgraph.c (lto_output_edge): Update.
18725 (lto_output_node): Update.
18726 (input_node): Update.
18727 (input_edge): Update.
18728 (merge_profile_summaries): Update.
18729 * lto-streamer-in.c (input_cfg): Update.
18730 * lto-streamer-out.c (output_cfg): Update.
18731 * mcf.c (create_fixup_graph): Update.
18732 (adjust_cfg_counts): Update.
18733 (sum_edge_counts): Update.
18734 * modulo-sched.c (sms_schedule): Update.
18735 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
18736 * predict.c (maybe_hot_count_p): Update.
18737 (probably_never_executed): Update.
18738 (dump_prediction): Update.
18739 (combine_predictions_for_bb): Update.
18740 (propagate_freq): Update.
18741 (handle_missing_profiles): Update.
18742 (counts_to_freqs): Update.
18743 (rebuild_frequencies): Update.
18744 (force_edge_cold): Update.
18745 * predict.h: Include profile-count.h
18746 (maybe_hot_count_p, counts_to_freqs): UPdate.
18747 * print-rtl-function.c: Do not include cfg.h
18748 * print-rtl.c: Include basic-block.h
18749 * profile-count.c: New file.
18750 * profile-count.h: New file.
18751 * profile.c (is_edge_inconsistent): Update.
18752 (correct_negative_edge_counts): Update.
18753 (is_inconsistent): Update.
18754 (set_bb_counts): Update.
18755 (read_profile_edge_counts): Update.
18756 (compute_frequency_overlap): Update.
18757 (compute_branch_probabilities): Update; Initialize and deinitialize
18758 gcov_count tables.
18759 (branch_prob): Update.
18760 * profile.h (bb_gcov_counts, edge_gcov_counts): New.
18761 (edge_gcov_count): New.
18762 (bb_gcov_count): New.
18763 * shrink-wrap.c (try_shrink_wrapping): Update.
18764 * tracer.c (better_p): Update.
18765 * trans-mem.c (expand_transaction): Update.
18766 (ipa_tm_insert_irr_call): Update.
18767 (ipa_tm_insert_gettmclone_call): Update.
18768 * tree-call-cdce.c: Update.
18769 * tree-cfg.c (gimple_duplicate_sese_region): Update.
18770 (gimple_duplicate_sese_tail): Update.
18771 (gimple_account_profile_record): Update.
18772 (execute_fixup_cfg): Update.
18773 * tree-inline.c (copy_bb): Update.
18774 (copy_edges_for_bb): Update.
18775 (initialize_cfun): Update.
18776 (freqs_to_counts): Update.
18777 (copy_cfg_body): Update.
18778 (expand_call_inline): Update.
18779 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
18780 * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
18781 (try_unroll_loop_completely): Update.
18782 (try_peel_loop): Update.
18783 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
18784 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
18785 * tree-ssa-loop-split.c (connect_loops): Update.
18786 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
18787 * tree-ssa-reassoc.c (branch_fixup): Update.
18788 * tree-ssa-tail-merge.c (replace_block_by): Update.
18789 * tree-ssa-threadupdate.c (create_block_for_threading): Update.
18790 (compute_path_counts): Update.
18791 (update_profile): Update.
18792 (recompute_probabilities): Update.
18793 (update_joiner_offpath_counts): Update.
18794 (estimated_freqs_path): Update.
18795 (freqs_to_counts_path): Update.
18796 (clear_counts_path): Update.
18797 (ssa_fix_duplicate_block_edges): Update.
18798 (duplicate_thread_path): Update.
18799 * tree-switch-conversion.c (case_bit_test_cmp): Update.
18800 (struct switch_conv_info): Update.
18801 * tree-tailcall.c (decrease_profile): Update.
18802 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
18803 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
18804 * value-prof.c (check_counter): Update.
18805 (gimple_divmod_fixed_value): Update.
18806 (gimple_mod_pow2): Update.
18807 (gimple_mod_subtract): Update.
18808 (gimple_ic_transform): Update.
18809 (gimple_stringop_fixed_value): Update.
18810 * value-prof.h (gimple_ic): Update.
18811
18812 2017-06-02 Carl Love <cel@us.ibm.com>
18813
18814 * config/rs6000/rs6000-c: Add support for built-in functions
18815 vector double vec_doublee (vector signed int);
18816 vector double vec_doublee (vector unsigned int);
18817 vector double vec_doublee (vector float);
18818 vector double vec_doubleh (vector signed int);
18819 vector double vec_doubleh (vector unsigned int);
18820 vector double vec_doubleh (vector float);
18821 vector double vec_doublel (vector signed int);
18822 vector double vec_doublel (vector unsigned int);
18823 vector double vec_doublel (vector float);
18824 vector double vec_doubleo (vector signed int);
18825 vector double vec_doubleo (vector unsigned int);
18826 vector double vec_doubleo (vector float);.
18827 * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
18828 DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
18829 UNS_DOUBLEL.
18830 * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
18831 unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
18832 unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
18833 VS_sxwsp.
18834 * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
18835 vec_doublel, vec_doubleh.
18836 * doc/extend.texi: Update the built-in documentation file for the
18837 new built-in functions.
18838
18839 2017-06-02 David Malcolm <dmalcolm@redhat.com>
18840
18841 PR jit/80954
18842 * ipa-inline-analysis.c (free_growth_caches): Set
18843 edge_removal_hook_holder to NULL after removing it.
18844
18845 2017-06-02 Sudakshina Das <sudi.das@arm.com>
18846
18847 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
18848 comparision with zero.
18849
18850 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
18851 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
18852 for early expansion of vec_min and vec_max builtins.
18853 (builtin_function_type): Add min/max unsigned variants to those
18854 identified as having unsigned arguments.
18855
18856 2017-06-02 Olivier Hainque <hainque@adacore.com>
18857
18858 * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
18859
18860 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18861
18862 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
18863 Use VALL_F16 iterator rather than VALL.
18864
18865 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18866
18867 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
18868 Emit CBNZ inside loop when doing a strong exchange and comparing
18869 against zero. Generate the CC flags after the loop.
18870
18871 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
18872
18873 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
18874 (dl_section_ref): New.
18875 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
18876 On AIX, append an expression to subtract the size of the
18877 section length to dl_section_ref.
18878
18879 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
18880
18881 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
18882 for early expansion of vector absolute builtins.
18883
18884 2017-06-02 Richard Biener <rguenther@suse.de>
18885
18886 * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
18887 what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
18888
18889 2017-06-02 Richard Biener <rguenther@suse.de>
18890
18891 PR tree-optimization/80948
18892 * tree-tailcall.c (find_tail_calls): Track stmts to move in
18893 stmt order as well.
18894
18895 2017-06-02 Richard Biener <rguenther@suse.de>
18896
18897 * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
18898 PHIs are ok.
18899 * tree-vect-stmts.c (process_use): Do not mark backedge defs
18900 for inductions as relevant.
18901
18902 2017-06-02 Richard Biener <rguenther@suse.de>
18903
18904 * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
18905 (vectorizable_induction): ... this. Remove dead code.
18906
18907 2017-06-02 Eric Botcazou <ebotcazou@adacore.com>
18908
18909 * builtins. (expand_builtin_alloca): Remove second parameter and
18910 infer its value from the first parameter instead.
18911 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
18912
18913 2017-06-02 Jakub Jelinek <jakub@redhat.com>
18914
18915 PR rtl-optimization/80903
18916 * loop-doloop.c (add_test): Unshare sequence.
18917
18918 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
18919
18920 * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
18921
18922 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
18923
18924 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
18925 static.
18926 (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
18927 xlogue_layout::get_instance, logue_layout::xlogue_layout,
18928 sp_valid_at, fp_valid_at, choose_basereg): Formatting.
18929 (xlogue_layout::get_stub_rtx): Make static.
18930 (xlogue_layout::get_stub_name): Avoid const-cast, make static.
18931 (xlogue_layout::compute_stub_managed_regs): Rename to...
18932 (xlogue_layout::count_stub_managed_regs): ...this.
18933 (xlogue_layout::is_stub_managed_reg): New function.
18934 (xlogue_layout::m_stub_names): Rename to...
18935 (xlogue_layout::s_stub_names): ...this, make static.
18936 (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
18937 xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
18938 xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
18939 xlogue_layout::s_stub_names): Instantiate statics.
18940 (stub_managed_regs): Remove.
18941 (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
18942 (disable_call_ms2sysv_xlogues): Rename to...
18943 (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
18944 (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
18945 warning logic.
18946 (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
18947 change after reload_completed.
18948 (ix86_can_use_return_insn_p): Use the ix86_frame data structure
18949 directly.
18950 (ix86_expand_prologue): Likewise.
18951 (ix86_expand_epilogue): Likewise.
18952 (ix86_expand_split_stack_prologue): Likewise.
18953 (ix86_compute_frame_layout): Remove frame parameter ...
18954 (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
18955 (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
18956 only if necessary.
18957 (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
18958 (ix86_frame): Move from here ...
18959 * config/i386/i386.h (ix86_frame): ... to here.
18960 (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
18961 complete ix86_frame data structure instead. Remove some_ld_name.
18962
18963 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
18964
18965 * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
18966 symbols that hold a DECL_VALUE_EXPR.
18967
18968 2017-06-01 Martin Jambor <mjambor@suse.cz>
18969
18970 PR tree-optimization/80898
18971 * tree-sra.c (process_subtree_disqualification): Removed.
18972 (disqualify_candidate): Do not acll
18973 process_subtree_disqualification.
18974 (subtree_mark_written_and_enqueue): New function.
18975 (propagate_all_subaccesses): Set grp_write of LHS subtree if the
18976 RHS has been disqualified and re-queue LHS if necessary. Apart
18977 from that, ignore disqualified RHS.
18978
18979 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18980
18981 * config/s390/s390.c (s390_emit_epilogue): Disable early return
18982 address fetch for z10 or later.
18983
18984 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
18985
18986 * config/arc/arc.md (tst_movb): Add guard when splitting.
18987
18988 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
18989
18990 * config/arc/arc.c (arc_can_eliminate): Test against
18991 arc_frame_pointer_needed.
18992
18993 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
18994
18995 * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
18996 to prevent store reordering.
18997 * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
18998 (type): Add block type.
18999 (stack_tie): Define special instruction to be used in
19000 expand_prologue.
19001
19002 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19003
19004 * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
19005 constraint. It is not valid for the pattern.
19006 (noncommutative_binary_comparison): Likewise.
19007
19008 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19009
19010 * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
19011 scaled addresses.
19012
19013 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19014
19015 * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
19016 be used by the reg-alloc.
19017
19018 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19019
19020 * config/arc/arc.md (mulsi3): Avoid use of hard registers before
19021 reg-alloc when having mul64 or mul32x16 instructions.
19022 (mulsidi3): Likewise.
19023 (umulsidi3): Likewise.
19024 (mulsi32x16): New pattern.
19025 (mulsi64): Likewise.
19026 (mulsidi64): Likewise.
19027 (umulsidi64): Likewise.
19028 (MUL32x16_REG): Define.
19029 (mul64_600): Use MUL32x16_REG.
19030 (mac64_600): Likewise.
19031 (umul64_600): Likewise.
19032 (umac64_600): Likewise.
19033
19034 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19035
19036 * config/arc/arc.md (mulsi3_700): Make it commutative.
19037
19038 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com>
19039
19040 * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
19041 type for movstouw.
19042 (*sign_extendsidi2_insn): Likewise for movstosw.
19043
19044 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
19045
19046 * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
19047 the type of the input discriminant value. Convert the
19048 discriminant value of signedness vary.
19049
19050 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de>
19051
19052 * doc/invoke.texi (-Wcatch-value): Document new shortcut.
19053 Add to -Wall section.
19054
19055 2017-06-01 Richard Biener <rguenther@suse.de>
19056
19057 PR middle-end/66313
19058 * fold-const.c (fold_plusminus_mult_expr): If the factored
19059 factor may be zero use a wrapping type for the inner operation.
19060 * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
19061 and handle moved defs.
19062 (process_assignment): Properly guard the unary op case. Return a
19063 tri-state indicating that moving the stmt before the call may allow
19064 to continue. Pass through to_move.
19065 (find_tail_calls): Handle moving unrelated defs before
19066 the call.
19067
19068 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
19069
19070 PR target/80618
19071 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
19072 splitter result in the canonical way.
19073
19074 2017-05-31 Uros Bizjak <ubizjak@gmail.com>
19075
19076 * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
19077 also for 32bit target. Update insn attributes.
19078 (zero-extendsidi2 splitter): Allow all registers for operand 1.
19079
19080 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com>
19081
19082 * config/i386/avx512fintrin.h (_mm_mask_max_sd)
19083 (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
19084 (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
19085 (_mm_maskz_min_ss): New intrinsics.
19086
19087 2017-05-31 Martin Liska <mliska@suse.cz>
19088
19089 * tree-vect-loop.c (vect_create_epilog_for_reduction):
19090 Change comment style to one we normally use.
19091 (vectorizable_reduction): Likewise.
19092 (vectorizable_induction): Likewise.
19093 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
19094 (vectorizable_call): Likewise.
19095 (vectorizable_simd_clone_call): Likewise.
19096 (vectorizable_conversion): Likewise.
19097 (vectorizable_assignment): Likewise.
19098 (vectorizable_shift): Likewise.
19099 (vectorizable_operation): Likewise.
19100 (vectorizable_store): Likewise.
19101 (vectorizable_load): Likewise.
19102 * tree-vectorizer.h: Likewise.
19103
19104 2017-05-31 Alexander Monakov <amonakov@ispras.ru>
19105
19106 * passes.c (emergency_dump_function): New.
19107 * tree-pass.h (emergency_dump_function): Declare.
19108 * plugin.c (plugins_internal_error_function): Remove.
19109 * plugin.h (plugins_internal_error_function): Remove declaration.
19110 * toplev.c (internal_error_function): New static function. Use it...
19111 (general_init): ...here.
19112
19113 2017-05-31 Graham Markall <graham.markall@embecosm.com>
19114
19115 * config/arc/arc.c (arc_print_operand): Handle constant operands.
19116 (arc_rtx_costs): Add costs for new patterns.
19117 * config/arc/arc.md: Additional *add_n and *sub_n patterns.
19118 * config/arc/predicates.md: Add _1_2_3_operand predicate.
19119
19120 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
19121
19122 * tree-ssa-strlen.c (get_next_strinfo): New function.
19123 (get_stridx_plus_constant): Use it.
19124 (zero_length_string): Likewise.
19125 (adjust_related_strinfos): Likewise.
19126 (adjust_last_stmt): Likewise.
19127
19128 2017-05-31 Richard Biener <rguenther@suse.de>
19129
19130 PR target/80880
19131 * config/i386/i386.c (ix86_expand_builtin): Remove assert
19132 for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
19133
19134 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
19135
19136 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
19137 loop_vinfo argument and use of dependence distance vectors.
19138 Check instead whether the two references differ only in their
19139 initial value and assume that they have the same alignment if the
19140 difference is a multiple of the vector alignment.
19141 (vect_analyze_data_refs_alignment): Update call accordingly.
19142
19143 2017-05-31 Martin Liska <mliska@suse.cz>
19144
19145 PR target/79155
19146 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
19147
19148 2017-05-31 Bin Cheng <bin.cheng@arm.com>
19149
19150 * tree-vect-loop-manip.c (create_intersect_range_checks_index)
19151 (create_intersect_range_checks): Move from ...
19152 * tree-data-ref.c (create_intersect_range_checks_index)
19153 (create_intersect_range_checks): ... to here.
19154 (create_runtime_alias_checks): New function factored from ...
19155 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
19156 here. Call above function.
19157 * tree-data-ref.h (create_runtime_alias_checks): New function.
19158
19159 2017-05-31 Bin Cheng <bin.cheng@arm.com>
19160
19161 * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
19162 segment length for dr_b and compute it in wide_int.
19163
19164 2017-05-31 Richard Biener <rguenther@suse.de>
19165
19166 PR tree-optimization/80906
19167 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
19168 and pass through iv_map.
19169 (copy_bb_and_scalar_dependences): Adjust.
19170 (translate_pending_phi_nodes): Likewise.
19171 (copy_loop_close_phi_args): Handle code-generating IVs instead
19172 of ICEing.
19173
19174 2017-05-30 David Malcolm <dmalcolm@redhat.com>
19175
19176 * diagnostic-color.c (color_dict): Add "type-diff".
19177 (parse_gcc_colors): Update comment.
19178 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
19179 -fdiagnostics-show-template-tree and -fno-elide-type.
19180 (GCC_COLORS): Add type-diff to example.
19181 (type-diff=): New.
19182 (-fdiagnostics-show-template-tree): New.
19183 (-fno-elide-type): New.
19184 * pretty-print.c (pp_format): Pass quote and formatters[argno] to
19185 the pp_format_decoder callback. Call any m_format_postprocessor's
19186 "handle" method.
19187 (pretty_printer::pretty_printer): Initialize
19188 m_format_postprocessor.
19189 (pretty_printer::~pretty_printer): Delete any
19190 m_format_postprocessor.
19191 * pretty-print.h (printer_fn): Add bool and const char ** parameters.
19192 (class format_postprocessor): New class.
19193 (struct pretty_printer::format_decoder): Document the new parameters.
19194 (struct pretty_printer::m_format_postprocessor): New field.
19195 * tree-diagnostic.c (default_tree_printer): Update for new
19196 bool and const char ** params.
19197 * tree-diagnostic.h (default_tree_printer): Likewise.
19198
19199 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org>
19200
19201 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
19202 (lwa_operand): Delete rs6000_gen_cell_microcode test.
19203 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
19204 rs6000_gen_cell_microcode code.
19205 (rs6000_final_prescan_insn): Delete.
19206 (rs6000_opt_vars): Delete the "gen-cell-microcode" and
19207 "warn-cell-microcode" entries.
19208 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
19209 * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
19210 throughout. Change cc_reg_not_micro_cr0_operand to
19211 cc_reg_not_cr0_operand throughout.
19212 (*extendhi<mode>2_noload): Delete.
19213 * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
19214 (mwarn-cell-microcode): Delete.
19215 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
19216 -mgen-cell-microcode and -mwarn-cell-microcode.
19217
19218 2017-05-30 Uros Bizjak <ubizjak@gmail.com>
19219
19220 PR target/80833
19221 * config/i386/constraints.md (Yd): New constraint.
19222 (Ye): Ditto.
19223 * config/i386/i386.md (*movti_internal): Add (?r, Ye)
19224 and (?Yd, r) alternatives. Update insn attributes.
19225 * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
19226 and (?*Yd, r) alternatives. Update insn attributes.
19227 (double-mode inter-unit splitters): Add new GR<->XMM splitters.
19228
19229 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com>
19230
19231 * gimplify.c (gimplify_modify_expr): Don't create a
19232 DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
19233 function.
19234
19235 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com>
19236
19237 * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
19238
19239 2017-05-30 Richard Biener <rguenther@suse.de>
19240
19241 * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
19242 and reduc_def fields.
19243 (STMT_VINFO_REDUC_TYPE): New define.
19244 (STMT_VINFO_REDUC_DEF): Likewise.
19245 (vect_force_simple_reduction): Adjust prototype.
19246 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
19247 (vect_is_simple_reduction): Remove check_reduction argument.
19248 (vect_force_simple_reduction): Adjust and set
19249 STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
19250 (vectorizable_reduction): Do not re-do reduction analysis
19251 but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
19252 * tree-parloops.c (gather_scalar_reductions): Adjust.
19253
19254 2017-05-30 Richard Biener <rguenther@suse.de>
19255
19256 PR middle-end/80901
19257 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
19258 split_edge code.
19259
19260 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com>
19261
19262 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
19263 Introduce unknown_misalignment parameter and remove vf.
19264 (vect_peeling_hash_get_lowest_cost):
19265 Pass unknown_misalignment parameter.
19266 (vect_enhance_data_refs_alignment):
19267 Fix unsupportable data ref treatment.
19268
19269 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
19270
19271 * tree-vect-data-refs.c (vect_get_data_access_cost):
19272 Workaround for SLP handling.
19273 (vect_enhance_data_refs_alignment):
19274 Compute costs for doing no peeling at all, compare to the best
19275 peeling costs so far and avoid peeling if cheaper.
19276
19277 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
19278
19279 * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
19280 Return peeling info and set costs to zero for unlimited cost
19281 model.
19282 (vect_enhance_data_refs_alignment): Also inspect all datarefs
19283 with unknown misalignment. Compute and costs for unknown
19284 misalignment, compare them to the costs for known misalignment
19285 and choose the cheapest for peeling.
19286
19287 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
19288
19289 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
19290 (vect_get_peeling_costs_all_drs): Create function.
19291 (vect_peeling_hash_get_lowest_cost):
19292 Use vect_get_peeling_costs_all_drs.
19293 (vect_peeling_supportable): Create function.
19294 (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
19295
19296 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
19297
19298 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
19299 DR_HAS_NEGATIVE_STEP.
19300 (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
19301 (vect_enhance_data_refs_alignment): Use.
19302 (vect_duplicate_ssa_name_ptr_info): Use.
19303 * tree-vectorizer.h (dr_misalignment): Use.
19304 (known_alignment_for_access_p): Use.
19305
19306 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
19307
19308 PR target/78838
19309 * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
19310 .lowtext.
19311 (has_section_name): New function.
19312
19313 2017-05-30 Martin Liska <mliska@suse.cz>
19314
19315 PR other/80909
19316 * auto-profile.c (get_function_decl_from_block): Fix
19317 parenthesis.
19318
19319 2017-05-30 Richard Biener <rguenther@suse.de>
19320
19321 PR middle-end/80876
19322 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
19323
19324 2017-05-30 Martin Liska <mliska@suse.cz>
19325
19326 * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
19327 * dumpfile.h (struct dump_file_info): Remove ctors.
19328
19329 2017-05-30 Martin Liska <mliska@suse.cz>
19330
19331 * predict.def: Fix GNU coding style.
19332
19333 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
19334
19335 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
19336 Mark 'to' argument with ATTRIBUTE_UNUSED.
19337
19338 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
19339
19340 * config/xtensa/xtensa.c (xtensa_emit_call): Use
19341 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
19342 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
19343 format string.
19344
19345 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
19346
19347 * doc/install.texi (Options specification): Restore entry of
19348 --enable-sjlj-exceptions.
19349
19350 2017-05-27 Michael Eager <eager@eagercon.com>
19351
19352 Revert:
19353 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
19354
19355 See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
19356
19357 * config/microblaze/microblaze.h
19358 (FIXED_REGISTERS): Update in macro.
19359 (CALL_USED_REGISTERS): Update in macro.
19360
19361 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org>
19362
19363 * doc/install.texi: Add links to macOS binary distributions.
19364
19365 2017-05-27 Jakub Jelinek <jakub@redhat.com>
19366
19367 PR bootstrap/80887
19368 Revert:
19369 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
19370
19371 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
19372
19373 2017-05-26 Martin Liska <mliska@suse.cz>
19374
19375 * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
19376
19377 2017-05-26 Martin Liska <mliska@suse.cz>
19378
19379 * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
19380 always leading ';; '.
19381 (dump_bb_info): Likewise.
19382 (brief_dump_cfg): Likewise.
19383 * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
19384 * dumpfile.c: Remove usage of TDF_VERBOSE.
19385 * dumpfile.h (enum dump_kind): Likewise.
19386 (dump_gimple_bb_header): Do not use TDF_COMMENT.
19387 * print-tree.c (debug_verbose): Remove.
19388 * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
19389 (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
19390 * tree-diagnostic.c (default_tree_printer): Replace
19391 TDF_DIAGNOSTIC with TDF_SLIM.
19392
19393 2017-05-26 Bin Cheng <bin.cheng@arm.com>
19394
19395 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
19396 in parameter loop, rather than loop_vinfo.
19397 (create_intersect_range_checks): Ditto.
19398 (vect_create_cond_for_alias_checks): Update call to above functions.
19399
19400 2017-05-26 Bin Cheng <bin.cheng@arm.com>
19401
19402 PR tree-optimization/80815
19403 * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
19404 for merging runtime alias checks. Handle negative DR_STEPs.
19405
19406 2017-05-26 Bin Cheng <bin.cheng@arm.com>
19407
19408 * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
19409 Move from ...
19410 * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
19411 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
19412 out code pruning runtime alias checks.
19413 * tree-data-ref.c (prune_runtime_alias_test_list): New function
19414 factored out from above.
19415 * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
19416 Move from ...
19417 * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
19418 ... to here.
19419 (prune_runtime_alias_test_list): New decalaration.
19420
19421 2017-05-26 Bin Cheng <bin.cheng@arm.com>
19422
19423 * tree-vect-data-refs.c (compare_tree): Rename and move ...
19424 * tree-data-ref.c (data_ref_compare_tree): ... to here.
19425 * tree-data-ref.h (data_ref_compare_tree): New decalaration.
19426 * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
19427 (operator==, comp_dr_with_seg_len_pair): Ditto.
19428 (vect_prune_runtime_alias_test_list): Ditto.
19429
19430 2017-05-26 Martin Liska <mliska@suse.cz>
19431
19432 PR ipa/80663
19433 * params.def: Bound partial-inlining-entry-probability param.
19434
19435 2017-05-26 Marek Polacek <polacek@redhat.com>
19436
19437 PR sanitizer/80875
19438 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
19439 can be negated.
19440
19441 2017-05-26 Richard Biener <rguenther@suse.de>
19442
19443 PR tree-optimization/80842
19444 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
19445 value.
19446
19447 2017-05-26 Richard Biener <rguenther@suse.de>
19448
19449 PR tree-optimization/80844
19450 * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
19451
19452 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com>
19453
19454 * doc/md.texi (Machine Constraints): Update x86 family
19455 machine constraints section to match 'config/i386/constraints.md'.
19456
19457 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de>
19458
19459 * doc/invoke.texi (-Wcatch-value=): Document new warning option.
19460
19461 2017-05-25 Nathan Sidwell <nathan@acm.org>
19462
19463 * doc/invoke.texi (--enable-languages): Update documentation.
19464
19465 2017-05-25 Martin Liska <mliska@suse.cz>
19466
19467 * dumpfile.c: Add TDF_FOLDING.
19468 * dumpfile.h (enum dump_kind): Likewise.
19469 * genmatch.c (dt_simplify::gen_1): Use it.
19470
19471 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
19472
19473 * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
19474
19475 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
19476
19477 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
19478 * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
19479
19480 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
19481
19482 * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
19483 * match.pd (X == C): Rewrite it here.
19484 (with_possible_nonzero_bits, with_possible_nonzero_bits2,
19485 with_certain_nonzero_bits2): New predicates.
19486 * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
19487
19488 2017-05-24 Nathan Sidwell <nathan@acm.org>
19489
19490 * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
19491 avoid warning.
19492
19493 * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
19494 warning.
19495
19496 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
19497
19498 * config/powerpcspe: New port. Files are copied from the rs6000
19499 port, with "rs6000" in filenames replaced by "powerpcspe".
19500
19501 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com>
19502
19503 PR rtl-optimization/80754
19504 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
19505
19506 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
19507
19508 * config/sparc/sparc.md (length): Return the correct value for -mflat
19509 sibcalls to match output_sibcall.
19510
19511 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
19512
19513 PR bootstrap/80860
19514 PR bootstrap/80843
19515 * config/rs6000/rs6000.c (struct machine_function): Add new field
19516 n_components.
19517 (rs6000_get_separate_components): Init that field, use it.
19518 (rs6000_components_for_bb): Use the field.
19519
19520 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
19521
19522 * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
19523
19524 2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
19525
19526 PR middle-end/80823
19527 * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
19528
19529 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19530
19531 PR target/80725
19532 * config/s390/s390.c (s390_check_qrst_address): Check incoming
19533 address against address_operand predicate.
19534 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
19535
19536 2017-05-24 Eric Botcazou <ebotcazou@adacore.com>
19537
19538 * var-tracking.c (track_expr_p): Do not return 0 for tracked record
19539 parameters passed indirectly.
19540
19541 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
19542
19543 * config/i386/i386.md (*movdi_internal): Remove SSE4
19544 alternative 18 (?r, *v). Update insn attributes.
19545 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
19546 Update insn attributes.
19547 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
19548 Update insn attributes.
19549 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
19550 alternative 1 (r, v). Remove isa attribute.
19551 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
19552 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
19553 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
19554
19555 2017-05-23 Tom de Vries <tom@codesourcery.com>
19556
19557 * doc/sourcebuild.texi (Directives, Verify compiler message): Document
19558 dg-line directive.
19559
19560 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
19561
19562 * cgraphunit.c (symbol_table::process_new_functions): Update.
19563 * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
19564 (inline_generate_summary): Rename to ...
19565 (ipa_fn_summary_generate): ... this one.
19566 (inline_read_summary): Rename to ...
19567 (ipa_fn_summary_read): ... this one.
19568 (inline_write_summary): Rename to ...
19569 (ipa_fn_summary_write): ... this one.
19570 (inline_free_summary): Rename to ...
19571 (ipa_free_fn_summary): ... this one.
19572 (pass_data_local_fn_summary, pass_local_fn_summary,
19573 make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
19574 pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
19575 pass_data_ipa_fn_summary, pass_ipa_fn_summary,
19576 make_pass_ipa_fn_summary): New.
19577 * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
19578 inline_write_summary, inline_free_summary): Remove.
19579 (ipa_free_fn_summary) : New.
19580 * ipa-inline.c (ipa_inline): Update.
19581 (pass_ipa_inline): Do not generate summaries.
19582 * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
19583 Remove.
19584 * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
19585 and add pass_ipa_fn_summary.
19586 * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
19587 New.
19588 (make_pass_inline_parameters): Remove.
19589
19590 2017-05-23 Thomas Schwinge <thomas@codesourcery.com>
19591
19592 * omp-low.c (struct omp_context): Remove "default_kind" member.
19593 Adjust all users.
19594
19595 * omp-offload.c (execute_oacc_device_lower): Remove the
19596 parallelism dimensions function attributes for unparallelized
19597 OpenACC kernels constructs.
19598
19599 2017-05-23 Martin Liska <mliska@suse.cz>
19600
19601 * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
19602 functions.
19603 (cgraph_edge::make_speculative): Likewise.
19604 (cgraph_edge::resolve_speculation): Likewise.
19605 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
19606 (cgraph_node::dump): Likewise.
19607 * cgraph.h: Likewise.
19608 * cgraphunit.c (analyze_functions): Likewise.
19609 (symbol_table::compile): Likewise.
19610 * ipa-cp.c (print_all_lattices): Likewise.
19611 (determine_versionability): Likewise.
19612 (initialize_node_lattices): Likewise.
19613 (ipcp_verify_propagated_values): Likewise.
19614 (estimate_local_effects): Likewise.
19615 (update_profiling_info): Likewise.
19616 (create_specialized_node): Likewise.
19617 (perhaps_add_new_callers): Likewise.
19618 (decide_about_value): Likewise.
19619 (decide_whether_version_node): Likewise.
19620 (identify_dead_nodes): Likewise.
19621 (ipcp_store_bits_results): Likewise.
19622 * ipa-devirt.c (dump_targets): Likewise.
19623 (ipa_devirt): Likewise.
19624 * ipa-icf.c (sem_item::dump): Likewise.
19625 (sem_function::equals): Likewise.
19626 (sem_variable::equals): Likewise.
19627 (sem_item_optimizer::read_section): Likewise.
19628 (sem_item_optimizer::execute): Likewise.
19629 (congruence_class::dump): Likewise.
19630 * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
19631 (dump_inline_summary): Likewise.
19632 (estimate_node_size_and_time): Likewise.
19633 (inline_analyze_function): Likewise.
19634 * ipa-inline-transform.c (inline_call): Likewise.
19635 * ipa-inline.c (report_inline_failed_reason): Likewise.
19636 (want_early_inline_function_p): Likewise.
19637 (edge_badness): Likewise.
19638 (update_edge_key): Likewise.
19639 (inline_small_functions): Likewise.
19640 * ipa-profile.c (ipa_profile): Likewise.
19641 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
19642 (ipa_make_edge_direct_to_target): Likewise.
19643 (remove_described_reference): Likewise.
19644 (ipa_impossible_devirt_target): Likewise.
19645 (propagate_controlled_uses): Likewise.
19646 (ipa_print_node_params): Likewise.
19647 (ipcp_transform_function): Likewise.
19648 * ipa-pure-const.c (pure_const_read_summary): Likewise.
19649 (propagate_pure_const): Likewise.
19650 * ipa-reference.c (generate_summary): Likewise.
19651 (read_write_all_from_decl): Likewise.
19652 (propagate): Likewise.
19653 (ipa_reference_read_optimization_summary): Likewise.
19654 * ipa-utils.c (ipa_merge_profiles): Likewise.
19655 * ipa.c (walk_polymorphic_call_targets): Likewise.
19656 (symbol_table::remove_unreachable_nodes): Likewise.
19657 (ipa_single_use): Likewise.
19658 * passes.c (execute_todo): Likewise.
19659 * predict.c (drop_profile): Likewise.
19660 * symtab.c (symtab_node::get_dump_name): New function.
19661 (symtab_node::dump_name): Likewise.
19662 (symtab_node::dump_asm_name): Likewise.
19663 (symtab_node::dump_references): Likewise.
19664 (symtab_node::dump_referring): Likewise.
19665 (symtab_node::dump_base): Likewise.
19666 (symtab_node::debug_symtab): Likewise.
19667 * tree-sra.c (convert_callers_for_node): Likewise.
19668 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
19669 * value-prof.c (init_node_map): Likewise.
19670
19671 2017-05-23 Martin Liska <mliska@suse.cz>
19672
19673 * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
19674 and symtab_node::debug_symtab to symbol_table::debug.
19675 * cgraphunit.c (analyze_functions): Use the renamed function.
19676 (symbol_table::compile): Likewise.
19677 * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
19678 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
19679 * passes.c (execute_todo): Likewise.
19680 * symtab.c (symbol_table::dump): New function.
19681 * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
19682
19683 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
19684
19685 * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
19686 that nonconst implies exec.
19687
19688 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
19689
19690 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
19691 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
19692 (inline_edge_summary_vec): Turn into ...
19693 (ipa_call_summaries): ... this one.
19694 (redirect_to_unreachable, edge_set_predicate,
19695 evaluate_properties_for_edge, inline_summary_alloc,
19696 reset_ipa_call_summary, reset_inline_summary,
19697 inline_summary_t::duplicate): Update.
19698 (inline_edge_duplication_hook): Turn to ...
19699 (ipa_call_summary_t::duplicate): ... this one.
19700 (inline_edge_removal_hook): Turn to ...
19701 (ipa_call_summary_t::remove): ... this one.
19702 (dump_inline_edge_summary): Turn to ...
19703 (dump_ipa_call_summary): ... this one.
19704 (estimate_function_body_sizes): Update.
19705 (inline_update_callee_summaries): Update.
19706 (remap_edge_change_prob): Update.
19707 (remap_edge_summaries): Update.
19708 (inline_merge_summary): Update.
19709 (do_estimate_edge_time): Update.
19710 (inline_generate_summary): Update.
19711 (inline_read_section): Update.
19712 (inline_read_summary): Update.
19713 (inline_free_summary): Update.
19714 * ipa-inline.c (can_inline_edge_p): Update.
19715 (compute_inlined_call_time): Update.
19716 (want_inline_small_function_p): Update.
19717 (edge_badness): Update.
19718 (early_inliner): Update.
19719 * ipa-inline.h (inline_edge_summary): Turn to ...
19720 (ipa_call_summary): ... this one.
19721 (ipa_call_summary_t): New class.
19722 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
19723 (ipa_call_summaries): New.
19724 (inline_edge_summary): Remove.
19725 (estimate_edge_growth): Update.
19726 * ipa-profile.c (ipa_propagate_frequency_1): Update.
19727 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
19728 * ipa-split.c (execute_split_functions): Update.
19729 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
19730
19731 2017-05-23 Tom de Vries <tom@codesourcery.com>
19732
19733 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
19734 attributes): Document rdrand effective target.
19735
19736 2017-05-23 Tom de Vries <tom@codesourcery.com>
19737
19738 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
19739 attributes): Sort alphabetically.
19740
19741 2017-05-23 Georg-Johann Lay <avr@gjlay.de>
19742
19743 * config/avr/genmultilib.awk: Use gsub instead of gensub.
19744
19745 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
19746
19747 PR target/80718
19748 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
19749 V2DF/V2DI splat into two separate patterns, one that handles
19750 registers, and the other that only handles memory. Drop support
19751 for splatting from a GPR on ISA 2.07 and then splitting the
19752 splat into direct move and splat.
19753 (vsx_splat_<mode>_reg): Likewise.
19754 (vsx_splat_<mode>_mem): Likewise.
19755
19756 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org>
19757
19758 * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
19759
19760 2017-05-22 Jakub Jelinek <jakub@redhat.com>
19761
19762 PR middle-end/80809
19763 * omp-low.c (finish_taskreg_remap): New function.
19764 (finish_taskreg_scan): If unit size of ctx->record_type
19765 is non-constant, unshare the size expression and replace
19766 decls in it with possible outer var refs.
19767
19768 PR middle-end/80809
19769 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
19770 GOVD_SHARED rather than GOVD_PRIVATE with it.
19771 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
19772 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
19773
19774 PR middle-end/80853
19775 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
19776 as last argument to build_outer_var_ref for pointer bases of array
19777 section reductions.
19778
19779 2017-05-19 Martin Sebor <msebor@redhat.com>
19780
19781 * print-tree.c (print_node): Print DECL_READ_P flag.
19782
19783 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
19784
19785 * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
19786 * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
19787 * cgraph.c: Likewise.
19788 * cgraphunit.c: Likewise.
19789 * gengtype.c: Likewise.
19790 * ipa-cp.c: Likewise.
19791 * ipa-devirt.c: Likewise.
19792 * ipa-icf.c: Likewise.
19793 * ipa-predicate.c: Likewise.
19794 * ipa-profile.c: Likewise.
19795 * ipa-prop.c: Likewise.
19796 * ipa-split.c: Likewise.
19797 * ipa.c: Likewise.
19798 * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
19799 edge_predicate_pool, dump_inline_hints,
19800 inline_summary::account_size_time, redirect_to_unreachable,
19801 edge_set_predicate, set_hint_predicate,
19802 evaluate_conditions_for_known_args, evaluate_properties_for_edge,
19803 inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
19804 inline_summary_t::remove, remap_hint_predicate_after_duplication,
19805 inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
19806 ipa_call_summary_t::remove, initialize_growth_caches,
19807 free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
19808 debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
19809 mark_modified, unmodified_parm_1, unmodified_parm,
19810 unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
19811 set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
19812 compute_bb_predicates, will_be_nonconstant_expr_predicate,
19813 will_be_nonconstant_predicate, record_modified_bb_info,
19814 get_minimal_bb, record_modified, param_change_prob,
19815 phi_result_unknown_predicate, predicate_for_phi_result,
19816 array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
19817 estimate_function_body_sizes, compute_inline_parameters,
19818 compute_inline_parameters_for_curren, pass_data_inline_parameters,
19819 estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
19820 inline_update_callee_summaries, remap_edge_change_prob,
19821 remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
19822 inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
19823 inline_analyze_function, inline_summary_t::insert,
19824 inline_generate_summary, read_ipa_call_summary, inline_read_section,
19825 inline_read_summary, write_ipa_call_summary, inline_write_summary,
19826 inline_free_summary): Move to ipa-fnsummary.h
19827 (predicate_t): Remove.
19828 * ipa-fnsummary.c: New file.
19829 * ipa-inline.h: Do not include sreal.h and ipa-predicate.h
19830 (enum inline_hints_vals, inline_hints, agg_position_info,
19831 INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
19832 inline_summaries, ipa_call_summary, ipa_call_summary_t,
19833 ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
19834 dump_inline_summary, dump_inline_hints, inline_generate_summary,
19835 inline_read_summary, inline_write_summary, inline_free_summary,
19836 inline_analyze_function, initialize_inline_failed,
19837 inline_merge_summary, inline_update_overall_summary,
19838 compute_inline_parameters): Move to ipa-fnsummary.h
19839 * ipa-fnsummary.h: New file.
19840 * ipa-inline-transform.h: Include ipa-inline.h.
19841 * ipa-inline.c: LIkewise.
19842
19843 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
19844
19845 * ipa-inline.c (edge_badness): Use inlined_time instead of
19846 inline_summaries->get.
19847
19848 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
19849
19850 * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
19851
19852 2017-05-22 Nathan Sidwell <nathan@acm.org>
19853
19854 * doc/invoke.texi (fdump-translation-unit): Delete documentation.
19855 (fdump-lang): Document 'raw' option.
19856 * dumpfile.h (TDI_tu): Delete.
19857 * dumpfile.c (dump_files): Remove translation-unit.
19858 (FIRST_AUTO_NUMBERED_DUMP): Decrement.
19859
19860 2017-05-22 Georg-Johann Lay <avr@gjlay.de>
19861
19862 * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
19863 command option from $(AWK) call.
19864 * config/avr/genmultilib.awk: Simplify and rewrite so that it
19865 generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
19866 [FORMAT]: Remove handling of variable.
19867 * config/avr/t-multilib: Regenerate.
19868
19869 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
19870
19871 * ipa-inline-analysis.c (inline_summary::reset): Do not reset
19872 self_time.
19873 (dump_inline_summary): Do not print self_time.
19874 (estimate_function_body_sizes): Do not set self_time.
19875 (compute_inline_parameters): Likewise.
19876 (inline_read_section, inline_write_summary): Do not stream self_time.
19877 * ipa-inline.h (inline_summary): Drop self_time.
19878
19879 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
19880
19881 * ipa-inline-analysis.c (account_size_time): Rename to ...
19882 (inline_summary::account_size_time): ... this one.
19883 (reset_ipa_call_summary): Turn to ...
19884 (ipa_call_summary::reset): ... this one.
19885 (reset_inline_summary): Turn to ...
19886 (inline_summary::reset): ... this one.
19887 (inline_summary_t::remove): Update.
19888 (inline_summary_t::duplicate): Update.
19889 (ipa_call_summary_t::remove): Update.
19890 (dump_inline_summary): Update.
19891 (estimate_function_body_sizes): Update.
19892 (compute_inline_parameters): Update.
19893 (estimate_node_size_and_time): Update.
19894 (inline_merge_summary): Update.
19895 (inline_update_overall_summary): Update.
19896 (inline_read_section): Update.
19897 (inline_write_summary): Update.
19898 * ipa-inline.h (inline_summary): Rename entry to size_time_table;
19899 add account_size_time and reset member functions.
19900 (ipa_call_summary): Add reset function.
19901 * ipa-predicate.h (predicate::operator &): Constify.
19902
19903 2017-05-22 Richard Biener <rguenther@suse.de>
19904
19905 * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
19906
19907 2017-05-19 Jason Merrill <jason@redhat.com>
19908
19909 * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
19910
19911 2017-05-19 Marek Polacek <polacek@redhat.com>
19912
19913 PR sanitizer/80800
19914 * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
19915 TYPE_OVERFLOW_WRAPS checks.
19916
19917 2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
19918
19919 * tree-core.h (enum omp_clause_default_kind): Add
19920 "OMP_CLAUSE_DEFAULT_PRESENT".
19921 * tree-pretty-print.c (dump_omp_clause): Handle it.
19922 * gimplify.c (enum gimplify_omp_var_data): Add
19923 "GOVD_MAP_FORCE_PRESENT".
19924 (gimplify_adjust_omp_clauses_1): Map it to
19925 "GOMP_MAP_FORCE_PRESENT".
19926 (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
19927
19928 * gimplify.c (oacc_default_clause): Clarify.
19929
19930 2017-05-19 Nathan Sidwell <nathan@acm.org>
19931
19932 LANG_HOOK_REGISTER_DUMPS
19933 * toplev.c (general_init): Call register dump lang hook.
19934 * doc/invoke.texi: Document -fdump-lang option family.
19935 * dumpfile.c (dump_files): Remove class dump here.
19936 (FIRST_AUTO_NUMBERED_DUMP): Adjust.
19937 * dumpfile.h (tree_dump_index): Remove TDI_class.
19938 * langhooks-def.h (lhd_register_dumps): Declare.
19939 (LANG_HOOKS_REGISTER_DUMPS): Define.
19940 (LANG_HOOKS_INITIALIZER): Add it.
19941 * langhooks.c (lhd_register_dumps): Define.
19942 * langhooks.h (struct lang_hooks): Add register_dumps.
19943
19944 2017-05-19 Nathan Sidwell <nathan@acm.org>
19945
19946 * context.h (context::set_passes): New.
19947 * context.c (context::context): Do not create pass manager.
19948 * toplev.c (general_init): Create pass manager here.
19949
19950 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org>
19951
19952 * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
19953 use this splitter if two add or or instructions would also work for
19954 the constant we want to generate.
19955
19956 2017-05-19 Richard Biener <rguenther@suse.de>
19957
19958 PR build/80821
19959 * genmatch.c (dt_node::gen_kids_1): Add missing scope around
19960 predicate evaluation.
19961
19962 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
19963
19964 * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
19965 add ctor.
19966 * ipa-inline.c (want_inline_small_function_p): Do not cast to
19967 unsigned.
19968
19969 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
19970
19971 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
19972 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
19973 (inline_edge_summary_vec): Turn into ...
19974 (ipa_call_summaries): ... this one.
19975 (redirect_to_unreachable, edge_set_predicate,
19976 evaluate_properties_for_edge, inline_summary_alloc,
19977 reset_ipa_call_summary, reset_inline_summary,
19978 inline_summary_t::duplicate): Update.
19979 (inline_edge_duplication_hook): Turn to ...
19980 (ipa_call_summary_t::duplicate): ... this one.
19981 (inline_edge_removal_hook): Turn to ...
19982 (ipa_call_summary_t::remove): ... this one.
19983 (dump_inline_edge_summary): Turn to ...
19984 (dump_ipa_call_summary): ... this one.
19985 (estimate_function_body_sizes): Update.
19986 (inline_update_callee_summaries): Update.
19987 (remap_edge_change_prob): Update.
19988 (remap_edge_summaries): Update.
19989 (inline_merge_summary): Update.
19990 (do_estimate_edge_time): Update.
19991 (inline_generate_summary): Update.
19992 (inline_read_section): Update.
19993 (inline_read_summary): Update.
19994 (inline_free_summary): Update.
19995 * ipa-inline.c (can_inline_edge_p): Update.
19996 (compute_inlined_call_time): Update.
19997 (want_inline_small_function_p): Update.
19998 (edge_badness): Update.
19999 (early_inliner): Update.
20000 * ipa-inline.h (inline_edge_summary): Turn to ...
20001 (ipa_call_summary): ... this one.
20002 (ipa_call_summary_t): New class.
20003 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
20004 (ipa_call_summaries): New.
20005 (inline_edge_summary): Remove.
20006 (estimate_edge_growth): Update.
20007 * ipa-profile.c (ipa_propagate_frequency_1): Update.
20008 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
20009 * ipa-split.c (execute_split_functions): Update.
20010 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
20011
20012 2017-05-19 Richard Biener <rguenther@suse.de>
20013
20014 PR middle-end/80764
20015 * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
20016
20017 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org>
20018
20019 * config/rs6000/rs6000.c (struct machine_function): Add field
20020 fpr_is_wrapped_separately.
20021 (rs6000_get_separate_components): Use 64 components. Handle the
20022 new FPR components.
20023 (rs6000_components_for_bb): Handle the FPR components.
20024 (rs6000_emit_prologue_components): Handle the FPR components.
20025 (rs6000_emit_epilogue_components): Handle the FPR components.
20026 (rs6000_set_handled_components): Handle the FPR components.
20027 (rs6000_emit_prologue): Don't output prologue code for those FPRs
20028 that are already separately shrink-wrapped.
20029 (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
20030 that are already separately shrink-wrapped.
20031
20032 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
20033
20034 PR target/80510
20035 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
20036 New predicate.
20037
20038 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
20039 (define_peephole2 for Altivec d-form load): Add peepholes to catch
20040 cases where the register allocator uses a move and an offsettable
20041 memory operation to/from a FPR register on ISA 2.06/2.07.
20042 (define_peephole2 for Altivec d-form store): Likewise.
20043
20044 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
20045
20046 PR target/80799
20047 * config/i386/mmx.md (*mov<mode>_internal): Enable
20048 alternatives 11, 12, 13 and 14 also for 32bit targets.
20049 Remove alternatives 15, 16, 17 and 18.
20050 * config/i386/sse.md (vec_concatv2di): Change
20051 alternative (!x, *y) to (x, ?!*Yn).
20052
20053 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com>
20054
20055 * dumpfile.h (enum dump_kind): Remove stray comma.
20056
20057 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
20058
20059 * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
20060 * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
20061 predicate::num_conditions
20062 (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
20063 (CHANGED): turn into predicate::changed.
20064 (agg_position_info): Move to ipa-predicate.h
20065 (add_condition, predicate::add_clause, predicate::operator &=,
20066 predicate::or_with, predicate::evaluate, predicate::probability,
20067 dump_condition, dump_clause, predicate::dump,
20068 predicate::remap_after_duplication, predicate::remap_after_inlining,
20069 predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
20070 (evaluate_conditions_for_known_args): Update.
20071 (set_cond_stmt_execution_predicate): Update.
20072 * ipa-inline.h: Include ipa-predicate.h
20073 (condition, inline_param_summary, conditions, agg_position_info,
20074 predicate): Move to ipa-predicate.h
20075 * ipa-predicate.c: New file.
20076 * ipa-predicate.h: New file.
20077
20078 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com>
20079
20080 * final.c (leaf_function_p): Check we are not in a sequence.
20081
20082 2017-05-18 Martin Liska <mliska@suse.cz>
20083
20084 * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
20085 * dumpfile.c (dump_register): Use new enum dump_kind.
20086 (get_dump_file_name): Likewise.
20087 (dump_enable_all): Likewise.
20088 (dump_switch_p_1): Likewise.
20089 (enable_rtl_dump_file): Remove usage of TDF_RTL.
20090 * dumpfile.h (enum dump_kind): New enum type.
20091 (struct dump_file_info): Create constructor and
20092 format fields and comments.
20093 * passes.c (pass_manager::register_one_dump_file):
20094 Use num dump_kind.
20095 * statistics.c (statistics_early_init): Likewise.
20096 * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
20097 TDF_TREE with TDF_SLIM.
20098 (gather_memory_references_ref): Likewise.
20099
20100 2017-05-18 Martin Liska <mliska@suse.cz>
20101
20102 * vec.h (struct vnull): Use it.
20103
20104 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
20105
20106 * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
20107 (true_predicate, false_predicate, true_predicate_p,
20108 false_predicate_p): Remove.
20109 (single_cond_predicate, not_inlined_predicate): Turn to member function
20110 in ipa-inline.h
20111 (add_condition): Update.
20112 (add_clause): Turn to...
20113 (predicate::add_clause): ... this one; update; allow passing NULL
20114 as parameter.
20115 (and_predicates): Turn to ...
20116 (predicate::operator &=): ... this one.
20117 (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
20118 (or_predicates): Turn to ...
20119 (predicate::or_with): ... this one.
20120 (evaluate_predicate): Turn to ...
20121 (predicate::evaluate): ... this one.
20122 (predicate_probability): Turn to ...
20123 (predicate::probability): ... this one.
20124 (dump_condition): Update.
20125 (dump_predicate): Turn to ...
20126 (predicate::dump): ... this one.
20127 (account_size_time): Update.
20128 (edge_set_predicate): Update.
20129 (set_hint_predicate): UPdate.
20130 (evaluate_conditions_for_known_args): Update.
20131 (evaluate_properties_for_edge): Update.
20132 (remap_predicate_after_duplication): Turn to...
20133 (predicate::remap_after_duplication): ... this one.
20134 (remap_hint_predicate_after_duplication): Update.
20135 (inline_summary_t::duplicate): UPdate.
20136 (dump_inline_edge_summary): Update.
20137 (dump_inline_summary): Update.
20138 (set_cond_stmt_execution_predicate): Update.
20139 (set_switch_stmt_execution_predicate): Update.
20140 (compute_bb_predicates): Update.
20141 (will_be_nonconstant_expr_predicate): Update.
20142 (will_be_nonconstant_predicate): Update.
20143 (phi_result_unknown_predicate): Update.
20144 (predicate_for_phi_result): Update.
20145 (array_index_predicate): Update.
20146 (estimate_function_body_sizes): Update.
20147 (estimate_node_size_and_time): Update.
20148 (estimate_ipcp_clone_size_and_time): Update.
20149 (remap_predicate): Rename to ...
20150 (predicate::remap_after_inlining): ... this one.
20151 (remap_hint_predicate): Update.
20152 (inline_merge_summary): Update.
20153 (inline_update_overall_summary): Update.
20154 (estimate_size_after_inlining): Update.
20155 (read_predicate): Rename to ...
20156 (predicate::stream_in): ... this one.
20157 (read_inline_edge_summary): Update.
20158 (write_predicate): Rename to ...
20159 (predicate::stream_out): ... this one.
20160 (write_inline_edge_summary): Update.
20161 * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
20162 (clause_t): Turn to uint32_t
20163 (predicate): Turn to class; implement constructor and operators
20164 ==, !=, &
20165 (size_time_entry): Update.
20166 (inline_summary): Update.
20167 (inline_edge_summary): Update.
20168
20169 2017-05-18 Marc Glisse <marc.glisse@inria.fr>
20170
20171 * fold-const.c (fold_binary_loc): Move transformation...
20172 * match.pd (C - X CMP X): ... here.
20173
20174 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
20175
20176 * config/sparc/sparc.c (sparc_option_override): Set function
20177 alignment for -mcpu=niagara7 to 64 to match the I$ line.
20178 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
20179 latency to 1.
20180 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
20181 latency to 2.
20182 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
20183
20184 2017-05-18 Marek Polacek <polacek@redhat.com>
20185
20186 PR sanitizer/80797
20187 * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
20188 (pass_ubsan::execute): Call gimple_assign_single_p instead of
20189 gimple_assign_load_p.
20190
20191 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
20192
20193 PR middle-end/80692
20194 * real.c (do_compare): Give decimal_do_compare preference over
20195 comparing just the signs.
20196
20197 2017-05-17 Uros Bizjak <ubizjak@gmail.com>
20198
20199 * doc/md.texi (Canonicalization of Instructions): Describe the
20200 canonical form of instructions that inherently set a condition
20201 code register.
20202
20203 2017-05-17 Peter Bergner <bergner@vnet.ibm.com>
20204
20205 PR middle-end/80775
20206 * tree-cfg.c: Move deletion of unreachable case statements to after
20207 the merging of consecutive case labels.
20208
20209 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
20210
20211 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
20212 readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
20213 restoring of callee-saved registers.
20214
20215 2017-05-17 Eric Botcazou <ebotcazou@adacore.com>
20216
20217 * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
20218 * config/visium/visium.c (single_set_and_flags): Likewise.
20219 * config/visium/visium.md (Substitutions): Likewise.
20220
20221 2017-05-17 Martin Liska <mliska@suse.cz>
20222
20223 * cfg.c: Introduce dump_flags_t type and
20224 use it instead of int type.
20225 * cfg.h: Likewise.
20226 * cfghooks.c: Likewise.
20227 * cfghooks.h (struct cfg_hooks): Likewise.
20228 * cfgrtl.c: Likewise.
20229 * cfgrtl.h: Likewise.
20230 * cgraph.c (cgraph_node::get_body): Likewise.
20231 * coretypes.h: Likewise.
20232 * domwalk.c: Likewise.
20233 * domwalk.h: Likewise.
20234 * dumpfile.c (struct dump_option_value_info): Likewise.
20235 (dump_enable_all): Likewise.
20236 (dump_switch_p_1): Likewise.
20237 (opt_info_switch_p): Likewise.
20238 * dumpfile.h (enum tree_dump_index): Likewise.
20239 (struct dump_file_info): Likewise.
20240 * genemit.c: Likewise.
20241 * generic-match-head.c: Likewise.
20242 * gengtype.c (open_base_files): Likewise.
20243 * gimple-pretty-print.c: Likewise.
20244 * gimple-pretty-print.h: Likewise.
20245 * graph.c (print_graph_cfg): Likewise.
20246 * graphite-scop-detection.c (dot_all_sese): Likewise.
20247 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
20248 * loop-unroll.c (report_unroll): Likewise.
20249 * passes.c (pass_manager::register_one_dump_file): Likewise.
20250 * print-tree.c: Likewise.
20251 * statistics.c: Likewise.
20252 * tree-cfg.c: Likewise.
20253 * tree-cfg.h: Likewise.
20254 * tree-dfa.c: Likewise.
20255 * tree-dfa.h: Likewise.
20256 * tree-dump.c (dump_function): Likewise.
20257 * tree-dump.h (struct dump_info): Likewise.
20258 * tree-pretty-print.c: Likewise.
20259 * tree-pretty-print.h: Likewise.
20260 * tree-ssa-live.c: Likewise.
20261 * tree-ssa-live.h: Likewise.
20262 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
20263 * tree-vect-loop.c: Likewise.
20264 * tree-vect-slp.c: Likewise.
20265
20266 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com>
20267 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20268
20269 PR tree-optimization/80457
20270 * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
20271 of all arguments to a statement as scalar_to_vec operations.
20272 (vectorizable_call): Adjust call to vect_model_simple_cost for
20273 new parameter.
20274 (vectorizable_conversion): Likewise.
20275 (vectorizable_assignment): Likewise.
20276 (vectorizable_shift): Likewise.
20277 (vectorizable_operation): Likewise.
20278 (vectorizable_comparison): Likewise.
20279 (vect_is_simple_cond): Record the def types for operands.
20280 (vectorizable_condition): Likewise, call vect_model_simple_cost.
20281 * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
20282 for statement argument count.
20283
20284 2017-05-16 Carl Love <cel@us.ibm.com>
20285
20286 * config/rs6000/rs6000-c: Add support for built-in functions
20287 vector unsigned long long vec_bperm (vector unsigned long long,
20288 vector unsigned char)
20289 vector signed long long vec_mule (vector signed int,
20290 vector signed int)
20291 vector unsigned long long vec_mule (vector unsigned int,
20292 vector unsigned int)
20293 vector signed long long vec_mulo (vector signed int,
20294 vector signed int)
20295 vector unsigned long long vec_mulo (vector unsigned int,
20296 vector unsigned int)
20297 vector signed char vec_sldw (vector signed char,
20298 vector signed char,
20299 const int)
20300 vector unsigned char vec_sldw (vector unsigned char,
20301 vector unsigned char,
20302 const int)
20303 vector signed short vec_sldw (vector signed short,
20304 vector signed short,
20305 const int)
20306 vector unsigned short vec_sldw (vector unsigned short,
20307 vector unsigned short,
20308 const int)
20309 vector signed int vec_sldw (vector signed int,
20310 vector signed int,
20311 const int)
20312 vector unsigned int vec_sldw (vector unsigned int,
20313 vector unsigned int,
20314 const int)
20315 vector signed long long vec_sldw (vector signed long long,
20316 vector signed long long,
20317 const int)
20318 vector unsigned long long vec_sldw (vector unsigned long long,
20319 vector unsigned long long,
20320 const int)
20321 * config/rs6000/rs6000-c: Add support for built-in functions
20322 * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
20323 * config/rs6000/altivec.h: Add defintion for vec_sldw.
20324 * doc/extend.texi: Update the built-in documentation for the
20325 new built-in functions.
20326
20327 2017-05-16 Marek Polacek <polacek@redhat.com>
20328
20329 PR sanitizer/80536
20330 PR sanitizer/80386
20331 * tree.c (save_expr): Don't fold the expression.
20332
20333 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
20334
20335 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
20336 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
20337 and (?*y,m). Update insn attributes.
20338
20339 2017-05-16 Martin Liska <mliska@suse.cz>
20340
20341 * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
20342 flags argument of print_gimple_stmt, print_gimple_expr,
20343 print_generic_stmt and print_generic_expr.
20344 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
20345 * coretypes.h: Likewise.
20346 * except.c (dump_eh_tree): Likewise.
20347 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
20348 * gimple-pretty-print.h: Likewise.
20349 * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
20350 (backprop::push_to_worklist): Likewise.
20351 (backprop::pop_from_worklist): Likewise.
20352 (backprop::process_use): Likewise.
20353 (backprop::intersect_uses): Likewise.
20354 (note_replacement): Likewise.
20355 * gimple-ssa-store-merging.c
20356 (pass_store_merging::terminate_all_aliasing_chains): Likewise.
20357 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
20358 (pass_store_merging::execute): Likewise.
20359 * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
20360 (ssa_base_cand_dump_callback): Likewise.
20361 (dump_incr_vec): Likewise.
20362 (replace_refs): Likewise.
20363 (replace_mult_candidate): Likewise.
20364 (create_add_on_incoming_edge): Likewise.
20365 (create_phi_basis): Likewise.
20366 (insert_initializers): Likewise.
20367 (all_phi_incrs_profitable): Likewise.
20368 (introduce_cast_before_cand): Likewise.
20369 (replace_one_candidate): Likewise.
20370 * gimplify.c (gimplify_expr): Likewise.
20371 * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
20372 (set_rename): Likewise.
20373 (rename_uses): Likewise.
20374 (copy_loop_phi_nodes): Likewise.
20375 (add_close_phis_to_merge_points): Likewise.
20376 (copy_loop_close_phi_args): Likewise.
20377 (copy_cond_phi_args): Likewise.
20378 (graphite_copy_stmts_from_block): Likewise.
20379 (translate_pending_phi_nodes): Likewise.
20380 * graphite-poly.c (print_pdr): Likewise.
20381 (dump_gbb_cases): Likewise.
20382 (dump_gbb_conditions): Likewise.
20383 (print_scop_params): Likewise.
20384 * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
20385 (build_cross_bb_scalars_use): Likewise.
20386 (gather_bbs::before_dom_children): Likewise.
20387 * hsa-dump.c (dump_hsa_immed): Likewise.
20388 * ipa-cp.c (print_ipcp_constant_value): Likewise.
20389 (get_replacement_map): Likewise.
20390 * ipa-inline-analysis.c (dump_condition): Likewise.
20391 (estimate_function_body_sizes): Likewise.
20392 * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
20393 (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
20394 * ipa-prop.c (ipa_dump_param): Likewise.
20395 (ipa_print_node_jump_functions_for_edge): Likewise.
20396 (ipa_modify_call_arguments): Likewise.
20397 (ipa_modify_expr): Likewise.
20398 (ipa_dump_param_adjustments): Likewise.
20399 (ipa_dump_agg_replacement_values): Likewise.
20400 (ipcp_modif_dom_walker::before_dom_children): Likewise.
20401 * ipa-pure-const.c (check_stmt): Likewise.
20402 (pass_nothrow::execute): Likewise.
20403 * ipa-split.c (execute_split_functions): Likewise.
20404 * omp-offload.c (dump_oacc_loop_part): Likewise.
20405 (dump_oacc_loop): Likewise.
20406 * trans-mem.c (tm_log_emit): Likewise.
20407 (tm_memopt_accumulate_memops): Likewise.
20408 (dump_tm_memopt_set): Likewise.
20409 (dump_tm_memopt_transform): Likewise.
20410 * tree-cfg.c (gimple_verify_flow_info): Likewise.
20411 (print_loop): Likewise.
20412 * tree-chkp-opt.c (chkp_print_addr): Likewise.
20413 (chkp_gather_checks_info): Likewise.
20414 (chkp_get_check_result): Likewise.
20415 (chkp_remove_check_if_pass): Likewise.
20416 (chkp_use_outer_bounds_if_possible): Likewise.
20417 (chkp_reduce_bounds_lifetime): Likewise.
20418 * tree-chkp.c (chkp_register_addr_bounds): Likewise.
20419 (chkp_mark_completed_bounds): Likewise.
20420 (chkp_register_incomplete_bounds): Likewise.
20421 (chkp_mark_invalid_bounds): Likewise.
20422 (chkp_maybe_copy_and_register_bounds): Likewise.
20423 (chkp_build_returned_bound): Likewise.
20424 (chkp_get_bound_for_parm): Likewise.
20425 (chkp_build_bndldx): Likewise.
20426 (chkp_get_bounds_by_definition): Likewise.
20427 (chkp_generate_extern_var_bounds): Likewise.
20428 (chkp_get_bounds_for_decl_addr): Likewise.
20429 * tree-chrec.c (chrec_apply): Likewise.
20430 * tree-data-ref.c (dump_data_reference): Likewise.
20431 (dump_subscript): Likewise.
20432 (dump_data_dependence_relation): Likewise.
20433 (analyze_overlapping_iterations): Likewise.
20434 * tree-inline.c (expand_call_inline): Likewise.
20435 (tree_function_versioning): Likewise.
20436 * tree-into-ssa.c (dump_defs_stack): Likewise.
20437 (dump_currdefs): Likewise.
20438 (dump_names_replaced_by): Likewise.
20439 (dump_update_ssa): Likewise.
20440 (update_ssa): Likewise.
20441 * tree-object-size.c (pass_object_sizes::execute): Likewise.
20442 * tree-parloops.c (build_new_reduction): Likewise.
20443 (try_create_reduction_list): Likewise.
20444 (ref_conflicts_with_region): Likewise.
20445 (oacc_entry_exit_ok_1): Likewise.
20446 (oacc_entry_exit_single_gang): Likewise.
20447 * tree-pretty-print.h: Likewise.
20448 * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
20449 (get_scalar_evolution): Likewise.
20450 (add_to_evolution): Likewise.
20451 (get_loop_exit_condition): Likewise.
20452 (analyze_evolution_in_loop): Likewise.
20453 (analyze_initial_condition): Likewise.
20454 (analyze_scalar_evolution): Likewise.
20455 (instantiate_scev): Likewise.
20456 (number_of_latch_executions): Likewise.
20457 (gather_chrec_stats): Likewise.
20458 (final_value_replacement_loop): Likewise.
20459 (scev_const_prop): Likewise.
20460 * tree-sra.c (dump_access): Likewise.
20461 (disqualify_candidate): Likewise.
20462 (create_access): Likewise.
20463 (reject): Likewise.
20464 (maybe_add_sra_candidate): Likewise.
20465 (create_access_replacement): Likewise.
20466 (analyze_access_subtree): Likewise.
20467 (analyze_all_variable_accesses): Likewise.
20468 (sra_modify_assign): Likewise.
20469 (initialize_constant_pool_replacements): Likewise.
20470 (find_param_candidates): Likewise.
20471 (decide_one_param_reduction): Likewise.
20472 (replace_removed_params_ssa_names): Likewise.
20473 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
20474 * tree-ssa-copy.c (dump_copy_of): Likewise.
20475 (copy_prop_visit_cond_stmt): Likewise.
20476 * tree-ssa-dce.c (mark_operand_necessary): Likewise.
20477 * tree-ssa-dom.c (pass_dominator::execute): Likewise.
20478 (record_equivalences_from_stmt): Likewise.
20479 * tree-ssa-dse.c (compute_trims): Likewise.
20480 (delete_dead_call): Likewise.
20481 (delete_dead_assignment): Likewise.
20482 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
20483 (forward_propagate_into_cond): Likewise.
20484 (pass_forwprop::execute): Likewise.
20485 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
20486 * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
20487 Likewise.
20488 (move_computations_worker): Likewise.
20489 (execute_sm): Likewise.
20490 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
20491 (remove_exits_and_undefined_stmts): Likewise.
20492 (remove_redundant_iv_tests): Likewise.
20493 * tree-ssa-loop-ivopts.c (dump_use): Likewise.
20494 (adjust_iv_update_pos): Likewise.
20495 * tree-ssa-math-opts.c (bswap_replace): Likewise.
20496 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
20497 (value_replacement): Likewise.
20498 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
20499 * tree-ssa-pre.c (print_pre_expr): Likewise.
20500 (get_representative_for): Likewise.
20501 (create_expression_by_pieces): Likewise.
20502 (insert_into_preds_of_block): Likewise.
20503 (eliminate_insert): Likewise.
20504 (eliminate_dom_walker::before_dom_children): Likewise.
20505 (eliminate): Likewise.
20506 (remove_dead_inserted_code): Likewise.
20507 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
20508 * tree-ssa-reassoc.c (get_rank): Likewise.
20509 (eliminate_duplicate_pair): Likewise.
20510 (eliminate_plus_minus_pair): Likewise.
20511 (eliminate_not_pairs): Likewise.
20512 (undistribute_ops_list): Likewise.
20513 (eliminate_redundant_comparison): Likewise.
20514 (update_range_test): Likewise.
20515 (optimize_range_tests_var_bound): Likewise.
20516 (optimize_vec_cond_expr): Likewise.
20517 (rewrite_expr_tree): Likewise.
20518 (rewrite_expr_tree_parallel): Likewise.
20519 (linearize_expr): Likewise.
20520 (break_up_subtract): Likewise.
20521 (linearize_expr_tree): Likewise.
20522 (attempt_builtin_powi): Likewise.
20523 (attempt_builtin_copysign): Likewise.
20524 (transform_stmt_to_copy): Likewise.
20525 (transform_stmt_to_multiply): Likewise.
20526 (dump_ops_vector): Likewise.
20527 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
20528 (print_scc): Likewise.
20529 (set_ssa_val_to): Likewise.
20530 (visit_reference_op_store): Likewise.
20531 (visit_use): Likewise.
20532 (sccvn_dom_walker::before_dom_children): Likewise.
20533 (run_scc_vn): Likewise.
20534 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
20535 Likewise.
20536 (expr_hash_elt::print): Likewise.
20537 (const_and_copies::pop_to_marker): Likewise.
20538 (const_and_copies::record_const_or_copy_raw): Likewise.
20539 * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
20540 * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
20541 (dump_predicates): Likewise.
20542 (find_uninit_use): Likewise.
20543 (warn_uninitialized_phi): Likewise.
20544 (pass_late_warn_uninitialized::execute): Likewise.
20545 * tree-ssa.c (verify_vssa): Likewise.
20546 (verify_ssa): Likewise.
20547 (maybe_optimize_var): Likewise.
20548 * tree-vrp.c (dump_value_range): Likewise.
20549 (dump_all_value_ranges): Likewise.
20550 (dump_asserts_for): Likewise.
20551 (register_edge_assert_for_2): Likewise.
20552 (vrp_visit_cond_stmt): Likewise.
20553 (vrp_visit_switch_stmt): Likewise.
20554 (vrp_visit_stmt): Likewise.
20555 (vrp_visit_phi_node): Likewise.
20556 (simplify_cond_using_ranges_1): Likewise.
20557 (fold_predicate_in): Likewise.
20558 (evrp_dom_walker::before_dom_children): Likewise.
20559 (evrp_dom_walker::push_value_range): Likewise.
20560 (evrp_dom_walker::pop_value_range): Likewise.
20561 (execute_early_vrp): Likewise.
20562
20563 2017-05-16 Richard Biener <rguenther@suse.de>
20564
20565 * dwarf2out.c (loc_list_from_tree_1): Do not create
20566 DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
20567
20568 2017-05-16 Richard Biener <rguenther@suse.de>
20569
20570 * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
20571 just generated.
20572 (note_variable_value_in_expr): If we resolved the decl ref
20573 do not push to the stack.
20574
20575 2017-05-16 Matthew Wahab <matthew.wahab@arm.com>
20576
20577 * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
20578 operations in fast-math mode.
20579 (vaddq_f16): Likewise.
20580 (vmul_f16): Likewise.
20581 (vmulq_f16): Likewise.
20582 (vsub_f16): Likewise.
20583 (vsubq_f16): Likewise.
20584 * config/arm/neon.md (add<mode>3): New.
20585 (sub<mode>3): New.
20586 (fma:<VH:mode>3): New. Also remove outdated comment.
20587 (mul<mode>3): New.
20588
20589 2017-05-16 Martin Liska <mliska@suse.cz>
20590
20591 PR ipa/79849.
20592 PR ipa/79850.
20593 * ipa-devirt.c (warn_types_mismatch): Fix typo.
20594 (odr_types_equivalent_p): Likewise.
20595
20596 2017-05-15 Sylvestre Ledru <sylvestre@debian.org>
20597
20598 * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
20599
20600 2017-05-15 Uros Bizjak <ubizjak@gmail.com>
20601
20602 PR target/80425
20603 * config/i386.i386.md (*zero_extendsidi2): Do not penalize
20604 non-interunit SSE move alternatives with '?'.
20605 (zero-extendsidi peephole2): New peephole to skip intermediate
20606 general register in SSE zero-extend sequence.
20607
20608 2017-05-15 Jeff Law <law@redhat.com>
20609
20610 * reorg.c (relax_delay_slots): Create a new variable to hold
20611 the temporary target rather than clobbering TARGET_LABEL.
20612
20613 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
20614 missing argument to extract_bit_field call.
20615 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
20616
20617 2017-05-15 Martin Liska <mliska@suse.cz>
20618
20619 PR driver/31468
20620 * gcc.c (process_command): Do not allow empty argument of -o option.
20621
20622 2017-05-15 Renlin Li <renlin.li@arm.com>
20623
20624 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
20625 * config/aarch64/aarch64.c (aarch64_expand_call): Define.
20626 * config/aarch64/constraints.md (Usf): Add long call check.
20627 * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
20628 (call_value): Likewise.
20629 (sibcall): Likewise.
20630 (sibcall_value): Likewise.
20631 (call_insn): New.
20632 (call_value_insn): New.
20633 (sibcall_insn): Update rtx pattern.
20634 (sibcall_value_insn): Likewise.
20635 (call_internal): Remove.
20636 (call_value_internal): Likewise.
20637 (sibcall_internal): Likewise.
20638 (sibcall_value_internal): Likewise.
20639 (call_reg): Likewise.
20640 (call_symbol): Likewise.
20641 (call_value_reg): Likewise.
20642 (call_value_symbol): Likewise.
20643
20644 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
20645
20646 PR target/80600
20647 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
20648
20649 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
20650
20651 * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
20652 compatible with CCGOCmode and with CCZmode.
20653
20654 2017-05-14 Martin Sebor <msebor@redhat.com>
20655
20656 PR middle-end/77671
20657 * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
20658 (gimple_fold_builtin_snprintf): Same.
20659 * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
20660 (gimple_fold_builtin_snprintf): Same.
20661 * gimple-ssa-sprintf.c (get_format_string): Correct the detection
20662 of character types.
20663 (is_call_safe): New function.
20664 (try_substitute_return_value): Call it.
20665 (try_simplify_call): New function.
20666 (pass_sprintf_length::handle_gimple_call): Call it.
20667
20668 2017-05-14 Martin Sebor <msebor@redhat.com>
20669
20670 PR middle-end/80669
20671 * builtins.c (expand_builtin_stpncpy): Simplify.
20672
20673 2017-05-14 Daniel Santos <daniel.santos@pobox.com>
20674
20675 * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
20676 * config/i386/i386.h
20677 (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
20678 (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
20679 (struct machine_function): Add new members call_ms2sysv,
20680 call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
20681 (struct machine_frame_state): New fields sp_realigned and
20682 sp_realigned_offset.
20683 * config/i386/i386.c
20684 (enum xlogue_stub): New enum.
20685 (enum xlogue_stub_sets): New enum.
20686 (class xlogue_layout): New class.
20687 (struct ix86_frame): New fields stack_realign_allocate_offset,
20688 stack_realign_offset and outlined_save_offset. Modify comments to
20689 detail stack layout when using out-of-line stubs.
20690 (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
20691 (ix86_option_override_internal): Add sorry() for TARGET_SEH and
20692 -mcall-ms2sysv-xlogues.
20693 (stub_managed_regs): New static variable.
20694 (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
20695 registers managed by out-of-line stub.
20696 (disable_call_ms2sysv_xlogues): New function.
20697 (ix86_compute_frame_layout): Modify re-alignment calculations, disable
20698 m->call_ms2sysv when appropriate and compute frame layout for
20699 out-of-line stubs.
20700 (sp_valid_at, fp_valid_at): New inline functions.
20701 (choose_basereg): New function.
20702 (choose_baseaddr): Add align parameter, use choose_basereg and modify
20703 all callers.
20704 (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
20705 Use align parameter of choose_baseaddr to generated aligned SSE movs
20706 when possible.
20707 (pro_epilogue_adjust_stack): Modify to track
20708 machine_frame_state::sp_realigned.
20709 (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
20710 (ix86_nsaved_sseregs): Likewise.
20711 (ix86_emit_save_regs): Likewise.
20712 (ix86_emit_save_regs_using_mov): Likewise.
20713 (ix86_emit_save_sse_regs_using_mov): Likewise.
20714 (get_scratch_register_on_entry): Likewise.
20715 (gen_frame_set): New function.
20716 (gen_frame_load): Likewise.
20717 (gen_frame_store): Likewise.
20718 (emit_outlined_ms2sysv_save): Likewise.
20719 (emit_outlined_ms2sysv_restore): Likewise.
20720 (ix86_expand_prologue): Modify stack re-alignment code and call
20721 emit_outlined_ms2sysv_save when appropriate.
20722 (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add
20723 parameter rtx_insn *insn, which allows the function to be used to only
20724 generate the notes.
20725 (ix86_expand_epilogue): Modify validity checks of frame and stack
20726 pointers, and call emit_outlined_ms2sysv_restore when appropriate.
20727 (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
20728 * config/i386/predicates.md
20729 (save_multiple): New predicate.
20730 (restore_multiple): Likewise.
20731 * config/i386/sse.md
20732 (save_multiple<mode>): New pattern.
20733 (save_multiple_realign<mode>): Likewise.
20734 (restore_multiple<mode>): Likewise.
20735 (restore_multiple_and_return<mode>): Likewise.
20736 (restore_multiple_leave_return<mode>): Likewise.
20737 * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
20738
20739 2017-05-14 Julia Koval <julia.koval@intel.com>
20740
20741 * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
20742 * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
20743 (__builtin_ia32_xsetbv): New builtins.
20744 * config/i386/i386.c (ix86_expand_special_args_builtin):
20745 Process new types.
20746 (ix86_expand_builtin): Special expand for new intrinsics.
20747 * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
20748 (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
20749 * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
20750
20751 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20752
20753 * cfganal.c (inverted_post_order_compute): Change argument type
20754 to vec *.
20755 * cfganal.h (inverted_post_order_compute): Adjust prototype.
20756 * df-core.c (rest_of_handle_df_initialize): Adjust.
20757 (rest_of_handle_df_finish): Likewise.
20758 (df_analyze_1): Likewise.
20759 (df_analyze): Likewise.
20760 (loop_inverted_post_order_compute): Change argument to be a vec *.
20761 (df_analyze_loop): Adjust.
20762 (df_get_n_blocks): Likewise.
20763 (df_get_postorder): Likewise.
20764 * df.h (struct df_d): Change field to be a vec.
20765 * lcm.c (compute_laterin): Adjust.
20766 (compute_available): Likewise.
20767 * lra-lives.c (lra_create_live_ranges_1): Likewise.
20768 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
20769 * tree-ssa-pre.c (compute_antic): Likewise.
20770
20771 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20772
20773 * cfganal.c (connect_infinite_loops_to_exit): Adjust.
20774 (depth_first_search::depth_first_search): Change structure init
20775 function to this constructor.
20776 (depth_first_search::add_bb): Rename function to this member.
20777 (depth_first_search::execute): Likewise.
20778 (flow_dfs_compute_reverse_finish): Adjust.
20779
20780 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20781
20782 * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
20783 (longest_simple_path): Likewise.
20784 * shrink-wrap.c (spread_components): Likewise.
20785 (disqualify_problematic_components): Likewise.
20786 (emit_common_heads_for_components): Likewise.
20787 (emit_common_tails_for_components): Likewise.
20788 (insert_prologue_epilogue_for_components): Likewise.
20789
20790 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20791
20792 * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
20793 auto_sbitmap.
20794
20795 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20796
20797 * df-core.c (df_set_blocks): Start using auto_bitmap.
20798 (df_compact_blocks): Likewise.
20799 * df-problems.c (df_rd_confluence_n): Likewise.
20800 * df-scan.c (df_insn_rescan_all): Likewise.
20801 (df_process_deferred_rescans): Likewise.
20802 (df_update_entry_block_defs): Likewise.
20803 (df_update_exit_block_uses): Likewise.
20804 (df_entry_block_bitmap_verify): Likewise.
20805 (df_exit_block_bitmap_verify): Likewise.
20806 (df_scan_verify): Likewise.
20807 * lra-constraints.c (lra_constraints): Likewise.
20808 (undo_optional_reloads): Likewise.
20809 (lra_undo_inheritance): Likewise.
20810 * lra-remat.c (calculate_gen_cands): Likewise.
20811 (do_remat): Likewise.
20812 * lra-spills.c (assign_spill_hard_regs): Likewise.
20813 (spill_pseudos): Likewise.
20814 * tree-ssa-pre.c (bitmap_set_and): Likewise.
20815 (bitmap_set_subtract_values): Likewise.
20816
20817 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20818
20819 * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
20820 management with auto_bitmap.
20821 (fix_inter_tick): Likewise.
20822 (fix_recovery_deps): Likewise.
20823 * ira.c (add_store_equivs): Likewise.
20824 (find_moveable_pseudos): Likewise.
20825 (split_live_ranges_for_shrink_wrap): Likewise.
20826 * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
20827 (rtx_reuse_manager::seen_def_p): Likewise.
20828 (rtx_reuse_manager::set_seen_def): Likewise.
20829 * print-rtl.h (class rtx_reuse_manager): Likewise.
20830
20831 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20832
20833 * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
20834 lifetime.
20835 (migrate_btr_def): Likewise.
20836 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
20837 * df-core.c (loop_post_order_compute): Likewise.
20838 (loop_inverted_post_order_compute): Likewise.
20839 * hsa-common.h: Likewise.
20840 * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
20841 * init-regs.c (initialize_uninitialized_regs): Likewise.
20842 * ipa-inline.c (resolve_noninline_speculation): Likewise.
20843 (inline_small_functions): Likewise.
20844 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
20845 * ira.c (combine_and_move_insns): Likewise.
20846 (build_insn_chain): Likewise.
20847 * loop-invariant.c (find_invariants): Likewise.
20848 * lower-subreg.c (propagate_pseudo_copies): Likewise.
20849 * predict.c (tree_predict_by_opcode): Likewise.
20850 (predict_paths_leading_to): Likewise.
20851 (predict_paths_leading_to_edge): Likewise.
20852 (estimate_loops_at_level): Likewise.
20853 (estimate_loops): Likewise.
20854 * shrink-wrap.c (try_shrink_wrapping): Likewise.
20855 (spread_components): Likewise.
20856 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
20857 * tree-loop-distribution.c (rdg_build_partitions): Likewise.
20858 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
20859 * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
20860 * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
20861 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
20862 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
20863 * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
20864 (mark_threaded_blocks): Likewise.
20865 (thread_through_all_blocks): Likewise.
20866 * tree-ssa.c (verify_ssa): Likewise.
20867 (execute_update_addresses_taken): Likewise.
20868 * tree-ssanames.c (verify_ssaname_freelists): Likewise.
20869
20870 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20871
20872 * cfganal.c (mark_dfs_back_edges): Replace manual stack with
20873 auto_vec.
20874 (post_order_compute): Likewise.
20875 (inverted_post_order_compute): Likewise.
20876 (pre_and_rev_post_order_compute_fn): Likewise.
20877
20878 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20879
20880 * genrecog.c (int_set::int_set): Explicitly construct our
20881 auto_vec base class.
20882 * vec.h (auto_vec::auto_vec): New constructor.
20883
20884 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20885
20886 * bitmap.h (class auto_bitmap): New constructor taking
20887 bitmap_obstack * argument.
20888
20889 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20890
20891 * bitmap.h (class auto_bitmap): Change type of m_bits to
20892 bitmap_head, and adjust ctor / dtor and member operators.
20893
20894 2017-05-13 Uros Bizjak <ubizjak@gmail.com>
20895
20896 * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
20897 when returned register mode doesn't match original mode.
20898
20899 2017-05-12 Jeff Law <law@redhat.com>
20900 Jakub Jelinek <jakub@redhat.com>
20901
20902 * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
20903 we look for cc setter after the compare-elim changes.
20904 * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
20905 within the vector to match what compare-elim now expects.
20906 (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
20907 (xorsi3_flags, one_cmplsi2_flags): Likewise.
20908
20909 * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
20910 after the compare-elim changes.
20911 * config/rx/rx.md (abssi2_flags): Fix order of patterns within
20912 the vector to match what compare-elim now expects.
20913 (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
20914 (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
20915 (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
20916 (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
20917 (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
20918
20919 * config/visium/visium.c (single_set_and_flags): Fix where
20920 we look for cc setter after the compare-elim changes.
20921 * config/visium/visium.md (flags_subst_logic): Fix order of patterns
20922 with the vector to match what compare-elim now expects.
20923 (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
20924 (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
20925 (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
20926 (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
20927 (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
20928 (neg<mode>2_insn_set_overflow): Likewise.
20929
20930 2017-05-12 Jim Wilson <jim.wilson@linaro.org>
20931
20932 PR middle-end/79794
20933 * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
20934 maybe_expand_insn call, set ops[0].target. If still set after call,
20935 set alt_rtl. Add extra arg to recursive calls.
20936 (extract_bit_field): Add alt_rtl argument. Pass to
20937 extract_bit_field.
20938 * expmed.h (extract_bit_field): Fix prototype.
20939 * expr.c (emit_group_load_1, copy_blkmode_from_reg)
20940 (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
20941 to extract_bit_field_calls.
20942 (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
20943 Pass alt_rtl to extract_bit_field calls.
20944 * calls.c (store_unaligned_arguments_into_psuedos)
20945 load_register_parameters): Pass extra NULL to extract_bit_field calls.
20946 * optabs.c (maybe_legitimize_operand): Clear op->target when call
20947 gen_reg_rtx.
20948 * optabs.h (struct expand_operand): Add target bitfield.
20949
20950 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
20951
20952 * compare-elim.c (try_eliminate_compare): Canonicalize
20953 operation with embedded compare to
20954 [(set (reg:CCM) (compare:CCM (operation) (immediate)))
20955 (set (reg) (operation)].
20956
20957 * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
20958
20959 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
20960
20961 PR target/80723
20962 * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
20963 cost of adding a carry flag for ADC instruction.
20964 [case MINUS]: Ignore the cost of subtracting a carry flag
20965 for SBB instruction.
20966
20967 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
20968
20969 * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
20970 and x86intrin.h
20971 * config/rs6000/bmiintrin.h: New file.
20972 * config/rs6000/bmi2intrin.h: New file.
20973 * config/rs6000/x86intrin.h: New file.
20974
20975 2017-05-12 Jeff Law <law@redhat.com>
20976
20977 * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
20978 markers.
20979
20980 2017-05-12 Peter Bergner <bergner@vnet.ibm.com>
20981
20982 PR middle-end/80707
20983 * tree-cfg.c: Remove cfg edges of unreachable case statements.
20984
20985 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
20986
20987 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
20988 early expansion of vector divide builtins.
20989 (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
20990 builtins identified as having unsigned arguments.
20991
20992 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
20993
20994 * config/rs6000/rs6000.c (gimple-fold.h): New #include.
20995 (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
20996 expansion of vector logical operations (and, andc, or, xor,
20997 nor, orc, nand).
20998
20999 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
21000
21001 * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
21002 * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
21003
21004 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
21005
21006 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
21007 early GIMPLE expansion of vector multiplies.
21008
21009 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
21010
21011 * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
21012 TARGET_HAVE_MOVT conditional.
21013 (movt splitter): Likewise.
21014
21015 2017-05-12 Richard Biener <rguenther@suse.de>
21016
21017 * tree-ssa-sccvn.h (has_VN_INFO): Declare.
21018 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21019 Fold all stmts not inplace.
21020
21021 2017-05-12 Richard Biener <rguenther@suse.de>
21022
21023 PR tree-optimization/80713
21024 * tree-ssa-pre.c (remove_dead_inserted_code): Clear
21025 inserted_exprs bit for not removed stmts.
21026
21027 2017-05-12 Thomas Schwinge <thomas@codesourcery.com>
21028
21029 PR middle-end/69921
21030 * tree-parloops.c (create_parallel_loop): Set "oacc kernels
21031 parallelized" attribute for parallelized OpenACC kernels.
21032 * omp-offload.c (execute_oacc_device_lower): Use it.
21033
21034 * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
21035 Set "oacc kernels" attribute.
21036 * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
21037 parameter. Adjust all users.
21038 (oacc_fn_attrib_kernels_p): Remove function.
21039 * omp-offload.c (execute_oacc_device_lower): Look for "oacc
21040 kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
21041 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
21042 * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
21043 assert "oacc kernels" attribute is set.
21044
21045 2017-05-11 Carl Love <cel@us.ibm.com>
21046
21047 * config/rs6000/rs6000-c: Add support for built-in functions
21048 vector unsigned char vec_popcnt (vector signed char)
21049 vector unsigned char vec_popcnt (vector unsigned char)
21050 vector unsigned short vec_popcnt (vector signed short)
21051 vector unsigned short vec_popcnt (vector unsigned short)
21052 vector unsigned int vec_popcnt (vector signed int)
21053 vector unsigned int vec_popcnt (vector unsigned int)
21054 vector unsigned long long vec_popcnt (vector signed long long)
21055 vector unsigned long long vec_popcnt (vector unsigned long long)
21056 vector signed long long vec_slo (vector signed long long,
21057 vector signed char)
21058 vector signed long long vec_slo (vector signed long long,
21059 vector unsigned char)
21060 vector unsigned long long vec_slo (vector unsigned long long,
21061 vector signed char)
21062 vector unsigned long long vec_slo (vector unsigned long long,
21063 vector unsigned char)
21064 * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
21065 VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
21066 * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
21067 vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
21068 * doc/extend.texi: Update the built-in documentation file for the
21069 new built-in functions.
21070
21071 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
21072
21073 * attribs.h (sorted_attr_string): Move machine independent
21074 functions for target clone support from the i386 port to common
21075 code. Rename ix86_function_versions to common_function_versions.
21076 Rename make_name to make_unique_name.
21077 (common_function_versions): Likewise.
21078 (make_unique_name): Likewise.
21079 (make_dispatcher_decl): Likewise.
21080 (is_function_default_version): Likewise.
21081 * attribs.c (attr_strcmp): Likewise.
21082 (sorted_attr_string): Likewise.
21083 (common_function_versions): Likewise.
21084 (make_unique_name): Likewise.
21085 (make_dispatcher_decl): Likewise.
21086 (is_function_default_version): Likewise.
21087 * config/i386/i386.c (attr_strcmp): Likewise.
21088 (sorted_attr_string): Likewise.
21089 (ix86_function_versions): Likewise.
21090 (make_name): Likewise.
21091 (make_dispatcher_decl): Likewise.
21092 (is_function_default_version): Likewise.
21093 (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
21094
21095 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21096
21097 PR target/80695
21098 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
21099 Account for direct move costs for vec_construct of integer
21100 vectors.
21101
21102 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
21103
21104 PR target/80706
21105 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
21106 (UNSPEC_STX_ATOMIC): Ditto.
21107 (loaddi_via_sse): New insn.
21108 (storedi_via_sse): Ditto.
21109 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
21110 Update corresponding peephole2 patterns.
21111 (atomic_storedi_fpu): Ditto.
21112
21113 2017-05-11 Julia Koval <julia.koval@intel.com>
21114
21115 * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
21116 (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
21117 New intrinsics.
21118 * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
21119 (__builtin_ia32_rsqrt14ss_mask): New builtins.
21120 * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
21121
21122 2017-05-11 Nathan Sidwell <nathan@acm.org>
21123
21124 * graphite-poly.c: Include dumpfile.h.
21125
21126 * dumpfle.h (dump_function): Declare here ...
21127 * tree-dump.h (dump_function): ... not here.
21128 * dumpfile.c: #include tree-cfg.h.
21129 (dump_function): Move here from ...
21130 * tree-dump.c (dump_function): ... here.
21131 * gimplify.c: #include splay-tree.h, not tree-dump.h.
21132 * graphite-poly.c: Don't include tree-dump.h.
21133 * cgraphclones.c: Include dumpfile.h not tree-dump.h.
21134 * print-tree.c: Likewise.
21135 * stor-layout.c: Likewise.
21136 * tree-nested.c: Likewise.
21137
21138 * dumpfile.c (dump_start): Use TDF_FLAGS.
21139 (dump_enable_all): Fix TDF_KIND check thinko.
21140
21141 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
21142
21143 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21144 array entries to represent two legal parameterizations of the
21145 overloaded __builtin_cmpb function, as represented by the
21146 P6_OV_BUILTIN_CMPB constant.
21147 (altivec_resolve_overloaded_builtin): Add special case handling
21148 for the __builtin_cmpb function, as represented by the
21149 P6_OV_BUILTIN_CMPB constant.
21150 * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
21151 (BU_P6_64BIT_2): New macro.
21152 (BU_P6_OVERLOAD_2): New macro
21153 (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
21154 (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
21155 (CMPB): Add overload support to represent both 32-bit and 64-bit
21156 compare-bytes function.
21157 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
21158 support for TARGET_CMPB.
21159 * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
21160 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
21161 documentation of the __builtin_cmpb overloaded built-in function.
21162
21163 2017-05-11 Richard Biener <rguenther@suse.de>
21164
21165 PR tree-optimization/80705
21166 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
21167 bases are not vectorizable.
21168
21169 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21170
21171 * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
21172 when counting register pressure.
21173
21174 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21175
21176 * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
21177 (iv_ca_more_deps): Renamed to ...
21178 (iv_ca_compare_deps): ... this.
21179 (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
21180
21181 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21182
21183 * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
21184 to ...
21185 (determine_group_iv_costs): ... here.
21186 (find_inv_vars_cb): Record inv var if it's not recorded before.
21187
21188 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21189
21190 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
21191 (get_shiftadd_cost): Ditto.
21192
21193 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21194
21195 * tree-ssa-address.c: Include header file.
21196 (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
21197 address.
21198 (add_to_parts): Refactor.
21199 (addr_to_parts): New parameter. Update use of move_hint_to_base.
21200 (create_mem_ref): Update use of addr_to_parts. Re-associate addr
21201 in new order.
21202
21203 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21204
21205 PR tree-optimization/53090
21206 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
21207 COMP_IV_EXPR_2.
21208 (extract_cond_operands): Detect condition with IV on both sides
21209 and return COMP_IV_EXPR_2.
21210 (find_interesting_uses_cond): Add iv_use for both IVs in condition.
21211 (rewrite_use_compare): Simplify by removing call to function
21212 extract_cond_operands.
21213
21214 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21215
21216 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
21217 (extract_cond_operands): Detect condition comparing against non-
21218 invariant bound and return appropriate enum value.
21219 (find_interesting_uses_cond): Update use of extract_cond_operands.
21220 Handle its return value accordingly.
21221 (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
21222
21223 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21224
21225 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
21226 nonlinear iv_use computation in loop invariant sensitive way.
21227
21228 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21229
21230 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
21231 (find_iv_candidates): Call relate_compare_use_with_all_cands.
21232
21233 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21234
21235 * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
21236 (dump_cand): Support iv_cand.inv_exprs.
21237 (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
21238 for candidates.
21239 (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
21240 iv_cand.inv_exprs.
21241
21242 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21243
21244 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
21245 from ...
21246 * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
21247 as local function. Include necessary header files.
21248 * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
21249
21250 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21251
21252 * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
21253
21254 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21255
21256 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
21257 operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
21258 RSHIFT_EXPR and BIT_NOT_EXPR.
21259
21260 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21261
21262 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
21263 (adjust_setup_cost): New parameter supporting round up adjustment.
21264 (struct address_cost_data): Delete.
21265 (force_expr_to_var_cost): Don't bound cost with spill_cost.
21266 (split_address_cost, ptr_difference_cost): Delete.
21267 (difference_cost, compare_aff_trees, record_inv_expr): Delete.
21268 (struct ainc_cost_data): New struct.
21269 (get_address_cost_ainc): New function.
21270 (get_address_cost, get_computation_cost): Reimplement.
21271 (determine_group_iv_cost_address): Record inv_expr for all uses of
21272 a group.
21273 (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
21274 (iv_ca_has_deps): Reimplemented to ...
21275 (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps
21276 than OLD_CP.
21277 (iv_ca_extend): Call iv_ca_more_deps.
21278
21279 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21280
21281 * tree-ssa-address.c (struct mem_address): Move to header file.
21282 (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
21283 * tree-ssa-address.h (struct mem_address): Move from C file.
21284 (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
21285
21286 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21287
21288 * tree-affine.h (aff_combination_type): New interface.
21289 (aff_combination_zero_p): Remove static.
21290 (aff_combination_const_p): New interface.
21291 (aff_combination_singleton_var_p): New interfaces.
21292
21293 2017-05-11 Richard Biener <rguenther@suse.de>
21294
21295 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21296 Skip unreachable blocks and destinations.
21297 (eliminate): Move stmt removal and fixup ...
21298 (fini_eliminate): ... here. Skip inserted exprs.
21299 (pass_pre::execute): Move fini_pre after fini_eliminate.
21300 * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
21301 (tail_merge_optimize): Run cleanup_tree_cfg if requested by
21302 PRE to get rid of dead code that has invalid SSA form and
21303 split critical edges again.
21304
21305 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21306
21307 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
21308
21309 2017-05-11 Richard Biener <rguenther@suse.de>
21310
21311 * passes.c (execute_function_todo): Verify loops if they are
21312 said to be up-to-date.
21313 * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
21314 * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
21315
21316 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
21317
21318 PR target/80090
21319 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
21320 handle calling assemble_external ourself.
21321
21322 PR target/79027
21323 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
21324 modes with zero size. Enhance comment.
21325
21326 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21327
21328 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
21329 built-ins for vec_xl and vec_xst with short and char pointer
21330 arguments.
21331
21332 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
21333
21334 * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
21335 (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
21336 (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
21337 (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
21338 (_mm_maskz_min_round_ss): New intrinsics.
21339 * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
21340 (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
21341 * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
21342 (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
21343 (__builtin_ia32_minss_mask_round): New builtins.
21344 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21345 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
21346 * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
21347 Rename to ...
21348 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
21349 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
21350 Change to ...
21351 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
21352 ... this.
21353
21354 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
21355
21356 * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
21357 (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
21358 (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
21359 (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
21360 (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
21361 (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
21362 (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
21363 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21364 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
21365 * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
21366 (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
21367 (__builtin_ia32_mulss_mask_round): New builtins.
21368 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21369 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
21370 * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
21371 Rename to ...
21372 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
21373 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
21374 Change to ...
21375 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
21376 ... this.
21377
21378 2017-05-10 Julia Koval <julia.koval@intel.com>
21379
21380 * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
21381 (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
21382 (_mm256_setr_m128i): New intrinsics.
21383
21384 2017-05-10 Julia Koval <julia.koval@intel.com>
21385
21386 * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
21387 (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
21388 (_mm_maskz_rcp14_ss): New intrinsics.
21389 * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
21390 (__builtin_ia32_rcp14ss_mask): New builtins.
21391 * config/i386/sse.md (srcp14<mode>_mask): New pattern.
21392
21393 2017-05-10 Peter Bergner <bergner@vnet.ibm.com>
21394
21395 PR tree-optimization/51513
21396 * tree-cfg.c (gimple_seq_unreachable_p): New function.
21397 (assert_unreachable_fallthru_edge_p): Use it.
21398 (group_case_labels_stmt): Likewise.
21399 * tree-cfg.h: Prototype it.
21400 * stmt.c: Include cfghooks.h and tree-cfg.h.
21401 (emit_case_dispatch_table) <gap_label>: New local variable.
21402 Use it to fill dispatch table gaps.
21403 Test for default_label before updating probabilities.
21404 (expand_case) <default_label>: Remove unneeded initialization.
21405 Test for unreachable default case statement and remove its edge.
21406 Set default_label accordingly.
21407 * tree-ssa-ccp.c (optimize_unreachable): Update comment.
21408
21409 2017-05-10 Carl Love <cel@us.ibm.com>
21410
21411 * config/rs6000/rs6000-c: Add support for built-in functions
21412 vector signed char vec_neg (vector signed char)
21413 vector signed short int vec_neg (vector short int)
21414 vector signed int vec_neg (vector signed int)
21415 vector signed long long vec_neg (vector signed long long)
21416 vector float vec_neg (vector float)
21417 vector double vec_neg (vector double)
21418 * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
21419 overload.
21420 * config/rs6000/altivec.h: Add define for vec_neg
21421 * doc/extend.texi: Update the built-in documentation for the
21422 new built-in functions.
21423
21424 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21425
21426 PR tree-optimization/77644
21427 * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
21428
21429 2017-05-10 Nathan Sidwell <nathan@acm.org>
21430
21431 * dumpfile.h (TDI_lang_all): New.
21432 (TDF_KIND): New. Renumber others
21433 (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
21434 than bits.
21435 * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add
21436 lang-all.
21437 (get_dump_file_name): Adjust suffix generation.
21438 (dump_enable_all): Use TDF_KIND.
21439 * doc/invoke.texi (-fdump-lang-all): Document.
21440
21441 * dumpfile.h: Tabify.
21442
21443 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com>
21444
21445 PR target/80671
21446 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
21447 Move member access before delete.
21448
21449 2017-05-10 Alexandre Oliva <aoliva@redhat.com>
21450
21451 * tree-inline.c (expand_call_inline): Split block at stmt
21452 before the call.
21453
21454 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
21455
21456 PR target/68163
21457 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
21458 are now unused after splitting mov{sf,sd}_hardfloat.
21459 (f32_lr2): Likewise.
21460 (f32_lm): Likewise.
21461 (f32_lm2): Likewise.
21462 (f32_li): Likewise.
21463 (f32_li2): Likewise.
21464 (f32_lv): Likewise.
21465 (f32_sr): Likewise.
21466 (f32_sr2): Likewise.
21467 (f32_sm): Likewise.
21468 (f32_sm2): Likewise.
21469 (f32_si): Likewise.
21470 (f32_si2): Likewise.
21471 (f32_sv): Likewise.
21472 (f32_dm): Likewise.
21473 (f32_vsx): Likewise.
21474 (f32_av): Likewise.
21475 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
21476 For movsf, order stores so the VSX stores occur before the GPR
21477 store which encourages the register allocator to use a traditional
21478 FPR instead of a GPR. For movsd, order the stores so that the GPR
21479 store comes before the VSX stores to allow the power6 to work.
21480 This is due to the power6 not having a 32-bit integer store
21481 instruction from a FPR.
21482 (movsf_hardfloat): Likewise.
21483 (movsd_hardfloat): Likewise.
21484
21485 2017-05-09 Martin Sebor <msebor@redhat.com>
21486
21487 PR translation/80280
21488 * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
21489 added in r247778.
21490
21491 PR translation/80280
21492 * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
21493 data member added in r247778.
21494 (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
21495
21496 2017-05-09 Nathan Sidwell <nathan@acm.org>
21497
21498 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
21499
21500 * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
21501 typedefs.
21502
21503 2017-05-09 Marek Polacek <polacek@redhat.com>
21504
21505 * doc/invoke.texi: Fix typo.
21506
21507 2017-05-09 Richard Biener <rguenther@suse.de>
21508
21509 * tree-vrp.c (vrp_val_is_max): Adjust comment.
21510 (vrp_val_is_min): Likewise.
21511 (set_value_range_to_value): Likewise.
21512 (set_value_range_to_nonnegative): Likewise.
21513 (gimple_assign_nonzero_p): Likewise.
21514 (gimple_stmt_nonzero_p): Likewise.
21515 (vrp_int_const_binop): Likewise. Remove unreachable case.
21516 (adjust_range_with_scev): Adjust comments.
21517 (compare_range_with_value): Likewise.
21518 (extract_range_from_phi_node): Likewise.
21519 (test_for_singularity): Likewise.
21520
21521 2017-05-09 Richard Biener <rguenther@suse.de>
21522
21523 * tree-vrp.c (get_single_symbol): Add assert that we don't
21524 get overflowed constants as invariant part.
21525 (compare_values_warnv): Add comment before the TREE_NO_WARNING
21526 checks. Use wi::cmp instead of recursing for integer constants.
21527 (compare_values): Just ignore whether we assumed undefined
21528 overflow instead of failing the compare.
21529 (extract_range_for_var_from_comparison_expr): Add comment before the
21530 TREE_NO_WARNING sets.
21531 (test_for_singularity): Likewise.
21532 (extract_range_from_comparison): Do not disable optimization
21533 when we assumed undefined overflow.
21534 (extract_range_basic): Remove init of unused var.
21535
21536 2017-05-09 Richard Biener <rguenther@suse.de>
21537
21538 * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
21539 (extract_range_from_multiplicative_op_1): Adjust.
21540 (extract_range_from_binary_expr_1): Use int_const_binop.
21541
21542 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
21543
21544 PR target/80101
21545 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
21546 rs6000_store_data_bypass_p in seven define_bypass directives and
21547 in several comments.
21548 * config/rs6000/rs6000-protos.h: Add prototype for
21549 rs6000_store_data_bypass_p function.
21550 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
21551 function implements slightly different (rs6000-specific) semantics
21552 than store_data_bypass_p, returning false rather than aborting
21553 with assertion error when arguments do not satisfy the
21554 requirements of store data bypass.
21555 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
21556 rs6000_store_data_bypass_p.
21557
21558 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
21559
21560 * config/xtensa/xtensa-protos.h
21561 (xtensa_initial_elimination_offset): New declaration.
21562 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
21563 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
21564 macro definition, add case for FRAME_POINTER_REGNUM when
21565 FRAME_GROWS_DOWNWARD.
21566 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
21567 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
21568 xtensa_initial_elimination_offset.
21569
21570 2017-05-08 Nathan Sidwell <nathan@acm.org>
21571
21572 * doc/invoke.texi: Alphabetize -fdump options.
21573
21574 2017-05-08 Martin Sebor <msebor@redhat.com>
21575
21576 PR translation/80280
21577 * config/sol2-c.c (solaris_pragma_align): Correct quoting.
21578
21579 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
21580
21581 * target.def (compute_frame_layout): New optional target hook.
21582 * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
21583 * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
21584 * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
21585 target hook.
21586 * reload1.c (verify_initial_elim_offsets): Likewise.
21587 * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
21588 (use_simple_return_p): Call arm_compute_frame_layout if needed.
21589 (arm_get_frame_offsets): Split up into this ...
21590 (arm_compute_frame_layout): ... and this function.
21591
21592 2017-05-08 Richard Sandiford <richard.sandiford@arm.com>
21593
21594 * config/aarch64/constraints.md (Usa): New constraint.
21595 * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
21596
21597 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
21598
21599 * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
21600 with_multilib_list after it has been checked.
21601
21602 2017-05-08 Richard Biener <rguenther@suse.de>
21603
21604 * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
21605 (bitmap_set_subtract_values): Likewise.
21606
21607 2017-05-08 Richard Biener <rguenther@suse.de>
21608
21609 * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
21610 (gimple_assign_nonzero): ... this and remove strict_overflow_p
21611 argument.
21612 (gimple_stmt_nonzero_warnv_p): Rename to ...
21613 (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
21614 argument.
21615 (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
21616 (extract_range_basic): Adjust, do not disable propagation on
21617 strict overflow sensitive simplification.
21618 (vrp_visit_cond_stmt): Likewise.
21619
21620 2017-05-05 Jan Hubicka <hubicka@ucw.cz>
21621
21622 * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
21623 body size unconditionally.
21624
21625 2017-05-07 Jeff Law <law@redhat.com>
21626
21627 Revert:
21628 2017-05-06 Jeff Law <law@redhat.com>
21629 PR tree-optimization/78496
21630 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
21631 code.
21632
21633 PR tree-optimization/78496
21634 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
21635 (simplify_stmt_using_ranges): Call it.
21636 (vrp_dom_walker::before_dom_children): Extract equivalences
21637 from an ASSERT_EXPR with an equality comparison against a
21638 constant.
21639
21640 2017-05-06 Jeff Law <law@redhat.com>
21641
21642 PR tree-optimization/78496
21643 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
21644 code.
21645
21646 PR tree-optimization/78496
21647 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
21648 (simplify_stmt_using_ranges): Call it.
21649 (vrp_dom_walker::before_dom_children): Extract equivalences
21650 from an ASSERT_EXPR with an equality comparison against a
21651 constant.
21652
21653 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
21654
21655 * lra-constraints.c (lra_copy_reg_equiv): New function.
21656 (split_reg): Use it to copy equivalence information from the
21657 original register to the spill register.
21658
21659 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
21660
21661 PR rtl-optimization/75964
21662 * simplify-rtx.c (simplify_const_relational_operation): Remove
21663 invalid handling of comparisons of integer ABS.
21664
21665 2017-05-06 Uros Bizjak <ubizjak@gmail.com>
21666
21667 * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
21668 initialize to zero.
21669 (init_regs): Remove declaration.
21670 (function_arg_advance_32): Initialize error_p as boolean variable.
21671
21672 2017-05-05 Nathan Sidwell <nathan@acm.org>
21673
21674 * store-motion.c (remove_reachable_equiv_notes): Reformat long
21675 lines. Use for (;;).
21676
21677 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21678
21679 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
21680 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
21681 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
21682 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
21683 VF=2 that require versioning.
21684
21685 2017-05-05 David Malcolm <dmalcolm@redhat.com>
21686
21687 * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
21688 int.
21689
21690 2017-05-05 David Malcolm <dmalcolm@redhat.com>
21691
21692 * diagnostic.h (diagnostic_override_option_index): Convert from
21693 macro to inline function.
21694
21695 2017-05-05 David Malcolm <dmalcolm@redhat.com>
21696
21697 * diagnostic.c (last_module_changed_p): New function.
21698 (set_last_module): New function.
21699 (diagnostic_report_current_module): Convert macro usage to
21700 the above functions.
21701 * diagnostic.h (diagnostic_context::last_module): Strengthen
21702 from const line_map * to const line_map_ordinary *.
21703 (diagnostic_last_module_changed): Delete macro.
21704 (diagnostic_set_last_module): Delete macro.
21705
21706 2017-05-05 David Malcolm <dmalcolm@redhat.com>
21707
21708 * diagnostic.c (diagnostic_impl): Replace report_diagnostic
21709 with diagnostic_report_diagnostic.
21710 (diagnostic_n_impl_richloc): Likewise.
21711 * diagnostic.h (report_diagnostic): Delete macro.
21712 * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
21713 with diagnostic_report_diagnostic.
21714 * substring-locations.c (format_warning_va): Likewise.
21715
21716 2017-05-05 David Malcolm <dmalcolm@redhat.com>
21717
21718 * diagnostic.c (diagnostic_report_diagnostic): Eliminate
21719 save/restor of format_spec. Move option-printing code to...
21720 (print_option_information): ...this new function, and
21721 reimplement by simply printing to the pretty_printer,
21722 rather than appending to the format string.
21723
21724 2017-05-05 David Malcolm <dmalcolm@redhat.com>
21725
21726 * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
21727 handling logic into...
21728 (update_effective_level_from_pragmas): ...this new function.
21729
21730 2017-05-04 Andrew Waterman <andrew@sifive.com>
21731
21732 * config/riscv/riscv.opt (mstrict-align): New option.
21733 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
21734 (SLOW_UNALIGNED_ACCESS): Define.
21735 (riscv_slow_unaligned_access): Declare.
21736 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
21737 field.
21738 (riscv_slow_unaligned_access): New variable.
21739 (rocket_tune_info): Set slow_unaligned_access to true.
21740 (optimize_size_tune_info): Set slow_unaligned_access to false.
21741 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
21742 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
21743 (riscv_option_override): Set riscv_slow_unaligned_access.
21744 * doc/invoke.texi: Add -mstrict-align to RISC-V.
21745
21746 2017-05-04 Kito Cheng <kito.cheng@gmail.com>
21747
21748 * config/riscv/riscv.md: Unify indentation.
21749
21750 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
21751
21752 PR target/79038
21753 PR target/79202
21754 PR target/79203
21755 * config/rs6000/rs6000.md (u code attribute): Add FIX and
21756 UNSIGNED_FIX.
21757 (extendsi<mode>2): Add support for doing sign extension via
21758 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
21759 don't have ISA 3.0 instructions.
21760 (extendsi<mode>2 splitter): Likewise.
21761 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
21762 generate the normal insns since SImode can now go in vector
21763 registers. Disallow the special UNSPECs needed for previous
21764 machines to hide SImode being used. Add new insns
21765 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
21766 (fix_trunc<mode>si2_stfiwx): Likewise.
21767 (fix_trunc<mode>si2_internal): Likewise.
21768 (fixuns_trunc<mode>si2): Likewise.
21769 (fixuns_trunc<mode>si2_stfiwx): Likewise.
21770 (fctiw<u>z_<mode>_smallint): Likewise.
21771 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
21772 of floating point to 32-bit integer from doing a direct move to
21773 the GPR registers to do a store.
21774 (fctiwz_<mode>): Break long line.
21775
21776 2017-05-05 Bin Cheng <bin.cheng@arm.com>
21777
21778 * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
21779 * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
21780 (addr_list, addr_offset_valid_p): New.
21781 (split_address_groups): Check offset validity with above function.
21782 (gt-tree-ssa-loop-ivopts.h): Include header file.
21783
21784 2017-05-05 Nathan Sidwell <nathan@acm.org>
21785
21786 * config.gcc (arm*-*-*): Add missing 'fi'.
21787
21788 2017-05-05 Steve Ellcey <sellcey@cavium.com>
21789
21790 * doc/invoke.texi (-fopt-info): Explicitly say order of options
21791 included in -fopt-info does not matter.
21792 * doc/optinfo.texi (-fopt-info): Fix description of default
21793 behavour. Explicitly say order of options included in -fopt-info
21794 does not matter.
21795
21796 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
21797
21798 * config.gcc: Allow combinations of aprofile and rmprofile values for
21799 --with-multilib-list.
21800 * config/arm/t-multilib: New file.
21801 * config/arm/t-aprofile: Remove initialization of MULTILIB_*
21802 variables. Remove setting of ISA and floating-point ABI in
21803 MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in
21804 MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
21805 and MULTILIB_DIRNAMES respectively. Add comment to introduce all
21806 matches. Add architecture matches for marvel-pj4 and generic-armv7-a
21807 CPU options.
21808 * config/arm/t-rmprofile: Likewise except for the matches changes.
21809 * doc/install.texi (--with-multilib-list): Document the combination of
21810 aprofile and rmprofile values and warn about pitfalls in doing that.
21811
21812 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
21813
21814 * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
21815 (movdi_aarch64): Likewise.
21816
21817 2017-05-05 Jakub Jelinek <jakub@redhat.com>
21818
21819 PR tree-optimization/80632
21820 * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
21821 field.
21822 (build_arrays): Initialize it for virtual phis.
21823 (fix_phi_nodes): Use it for virtual phis.
21824
21825 PR tree-optimization/80558
21826 * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
21827 [x, y] op z into [x op, y op z] for op & or | if conditions
21828 are met.
21829
21830 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
21831 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
21832
21833 PR target/71607
21834 * config/arm/arm.md (use_literal_pool): Remove.
21835 (64-bit immediate split): No longer takes cost into consideration
21836 if arm_disable_literal_pool is enabled.
21837 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
21838 used when arm_disable_literal_pool is enabled.
21839 (arm_max_const_double_inline_cost): Remove use of
21840 arm_disable_literal_pool.
21841 (push_minipool_fix): Add assert.
21842 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
21843 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
21844 (no_literal_pool_sf_immediate): New.
21845
21846 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21847
21848 PR tree-optimization/80613
21849 * tree-ssa-dce.c (propagate_necessity): Remove cases for
21850 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
21851
21852 2017-05-05 Richard Biener <rguenther@suse.de>
21853
21854 * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
21855
21856 2017-05-05 Georg-Johann Lay <avr@gjlay.de>
21857
21858 * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
21859 of this flag from insn conditions due to removal from r247495.
21860
21861 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
21862
21863 * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
21864 New function.
21865 (arm_early_store_addr_dep_ptr): Likewise.
21866 * config/arm/aarch-common-protos.h
21867 (arm_early_load_addr_dep_ptr): Add prototype.
21868 (arm_early_store_addr_dep_ptr): Likewise.
21869 * config/arm/cortex-a53.md: Add new bypasses.
21870
21871 2017-05-05 Jakub Jelinek <jakub@redhat.com>
21872
21873 * tree.c (next_type_uid): Change type to unsigned.
21874 (type_hash_canon): Decrement back next_type_uid if
21875 freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs
21876 also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
21877 if possible.
21878
21879 2017-05-04 Martin Sebor <msebor@redhat.com>
21880
21881 * builtins.c: Fix a trivial typo in a comment.
21882
21883 PR middle-end/79234
21884 * builtins.c (check_sizes): Adjust to handle reading past the end.
21885 Avoid printing excessive upper bound of ranges. Use %E to print
21886 tree nodes instead of converting them to %wu.
21887 (expand_builtin_memchr): New function.
21888 (compute_dest_size): Rename...
21889 (compute_objsize): ...to this.
21890 (expand_builtin_memcpy): Adjust.
21891 (expand_builtin_mempcpy): Adjust.
21892 (expand_builtin_strcat): Adjust.
21893 (expand_builtin_strcpy): Adjust.
21894 (check_strncat_sizes): Adjust.
21895 (expand_builtin_strncat): Adjust.
21896 (expand_builtin_strncpy): Adjust and simplify.
21897 (expand_builtin_memset): Adjust.
21898 (expand_builtin_bzero): Adjust.
21899 (expand_builtin_memcmp): Adjust.
21900 (expand_builtin): Handle memcmp.
21901 (maybe_emit_chk_warning): Check strncat just once.
21902
21903 2017-05-04 Martin Sebor <msebor@redhat.com>
21904
21905 PR preprocessor/79214
21906 PR middle-end/79222
21907 PR middle-end/79223
21908 * builtins.c (check_sizes): Add inlining context and issue
21909 warnings even when -Wno-system-headers is set.
21910 (check_strncat_sizes): Same.
21911 (expand_builtin_strncat): Same.
21912 (expand_builtin_memmove): New function.
21913 (expand_builtin_stpncpy): Same.
21914 (expand_builtin): Handle memmove and stpncpy.
21915
21916 2017-05-04 Bin Cheng <bin.cheng@arm.com>
21917
21918 * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
21919 which is not used any more.
21920
21921 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
21922
21923 * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
21924
21925 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
21926
21927 * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
21928 (cortexa53_tunings): Likewise.
21929 (cortexa57_tunings): Likewise.
21930 (cortexa72_tunings): Likewise.
21931 (cortexa73_tunings): Likewise.
21932
21933 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
21934
21935 * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
21936 Set loop alignment to 8.
21937
21938 2017-05-04 Martin Sebor <msebor@redhat.com>
21939
21940 PR translation/80280
21941 * builtins.c (expand_builtin_object_size): Add missing quoting to
21942 %D and like directives.
21943 * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
21944 (hsa_type_for_tree_type): Same.
21945 (verify_function_arguments): Same.
21946 * symtab.c (symbol_table::change_decl_assembler_name): Same.
21947 * varasm.c (get_section): Same.
21948 (mark_weak): Same.
21949
21950 2017-05-04 Martin Sebor <msebor@redhat.com>
21951
21952 PR translation/80280
21953 * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
21954
21955 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
21956
21957 * config/aarch64/aarch64.c (generic_addrcost_table):
21958 Change HI/TI mode setting.
21959
21960 2017-05-04 Martin Jambor <mjambor@suse.cz>
21961
21962 PR tree-optimization/80622
21963 * tree-sra.c (comes_initialized_p): New function.
21964 (build_accesses_from_assign): Only set write lazily when
21965 comes_initialized_p is false.
21966 (analyze_access_subtree): Use comes_initialized_p.
21967 (propagate_subaccesses_across_link): Assert !comes_initialized_p
21968 instead of testing for PARM_DECL.
21969
21970 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21971
21972 * config/aarch64/aarch64.md (prefetch); Adjust predicate and
21973 constraint on operand 0 to allow more general addressing modes.
21974 Adjust output template.
21975 * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
21976 New function.
21977 * config/aarch64/aarch64-protos.h
21978 (aarch64_address_valid_for_prefetch_p): Declare prototype.
21979 * config/aarch64/constraints.md (Dp): New address constraint.
21980 * config/aarch64/predicates.md (aarch64_prefetch_operand): New
21981 predicate.
21982
21983 2017-05-04 Jan Hubicka <hubicka@ucw.cz>
21984
21985 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
21986 update use of estimate_ipcp_clone_size_and_time.
21987 (estimate_local_effects): Update use of
21988 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
21989 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
21990 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
21991 Return nonspecialized time.
21992
21993 2017-05-04 Richard Biener <rguenther@suse.de>
21994
21995 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
21996 for the last VUSE which def dominates the PHI. Directly call
21997 maybe_skip_until.
21998 (get_continuation_for_phi_1): Remove.
21999
22000 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org>
22001
22002 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
22003 to explain the use of truncating division. Cap the number of
22004 iterations to the maximum given by nb_iterations_upper_bound,
22005 if defined.
22006
22007 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
22008
22009 * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
22010 * configure: Regenerate.
22011 * config.in: Regenerate.
22012 * config/i386/driver-mingw32.c: new file.
22013 * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
22014 * config.host: Link driver-mingw32.o on MinGW host.
22015 * doc/install.texi: Document new --enable-mingw-wildcard configure
22016 option.
22017
22018 2017-05-04 Marek Polacek <polacek@redhat.com>
22019
22020 PR tree-optimization/80612
22021 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
22022
22023 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
22024 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
22025
22026 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
22027 (movt splitter): Likewise.
22028 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
22029 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
22030 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
22031 block for Thumb-1 with MOVT.
22032 (thumb2_legitimate_address_p): Move code block ...
22033 (can_avoid_literal_pool_for_label_p): ... into this new function.
22034 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
22035 literal pool.
22036 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
22037 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
22038 "M-profile targets with the MOVT instruction".
22039
22040 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
22041
22042 * config/arm/arm-builtins.c (arm_init_builtins): Rename
22043 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
22044 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
22045
22046 2017-05-04 Martin Liska <mliska@suse.cz>
22047
22048 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
22049 variable cond_code.
22050
22051 2017-05-04 Richard Biener <rguenther@suse.de>
22052
22053 * tree.c (array_at_struct_end_p): Handle arrays at struct
22054 end with flexarrays more conservatively. Refactor and treat
22055 arrays of arrays or aggregates more strict. Fix
22056 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
22057 * tree.c (array_at_struct_end_p): Adjust prototype.
22058 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
22059 * gimple-fold.c (get_range_strlen): Likewise.
22060 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
22061
22062 2017-05-04 Richard Biener <rguenther@suse.de>
22063
22064 PR tree-optimization/31130
22065 * tree-vrp.c (needs_overflow_infinity): Remove as always returning
22066 false.
22067 (supports_overflow_infinity): Likewise.
22068 (is_negative_overflow_infinity): Likewise.
22069 (is_positive_overflow_infinity): Likewise.
22070 (is_overflow_infinity): Likewise.
22071 (stmt_overflow_infinity): Likewise.
22072 (overflow_infinity_range_p): Likewise.
22073 (usable_range_p): Remove as always returning true.
22074 (make_overflow_infinity): Remove.
22075 (negative_overflow_infinity): Likewise.
22076 (positive_overflow_infinity): Likewise.
22077 (avoid_overflow_infinity): Likewise.
22078 (set_value_range): Adjust accordingly.
22079 (set_value_range_to_nonnegative): Likewise, remove now unused
22080 overflow_infinity arg.
22081 (vrp_operand_equal_p): Adjust.
22082 (update_value_range): Likewise.
22083 (range_int_cst_singleton_p): Likewise.
22084 (operand_less_p): Likewise.
22085 (compare_values_warnv): Likewise.
22086 (extract_range_for_var_from_comparison_expr): Likewise.
22087 (vrp_int_const_binop): Likewise.
22088 (zero_nonzero_bits_from_vr): Likewise.
22089 (extract_range_from_multiplicative_op_1): Likewise.
22090 (extract_range_from_binary_expr_1): Likewise.
22091 (extract_range_from_unary_expr): Likewise.
22092 (extract_range_from_comparison): Likewise.
22093 (extract_range_basic): Likewise.
22094 (adjust_range_with_scev): Likewise.
22095 (compare_ranges): Likewise.
22096 (compare_range_with_value): Likewise.
22097 (dump_value_range): Likewise.
22098 (test_for_singularity): Likewise, remove strict_overflow_p parameter
22099 never used.
22100 (simplify_cond_using_ranges): Adjust.
22101
22102 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
22103
22104 * brig-builtins.def: Added a builtin for class_f64.
22105 * builtin-types.def: Added a builtin type needed by class_f64.
22106
22107 2017-05-03 Jason Merrill <jason@redhat.com>
22108
22109 * timevar.def: Add TV_CONSTEXPR.
22110
22111 2017-05-03 David Malcolm <dmalcolm@redhat.com>
22112
22113 * common.opt (fdiagnostics-parseable-fixits): Fix typo.
22114
22115 2017-05-03 Martin Jambor <mjambor@suse.cz>
22116
22117 * ipa-prop.c (ipa_update_after_lto_read): Removed.
22118 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
22119 * ipa-cp.c (ipcp_propagate_stage): Do not call
22120 ipa_update_after_lto_read.
22121 * ipa-inline.c (ipa_inline): Likewise.
22122
22123 2017-05-03 Martin Jambor <mjambor@suse.cz>
22124
22125 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY
22126 tag. Added a default constructor and a destructor.
22127 (ipa_edge_args_sum_t): New class;
22128 (ipa_edge_args_sum): Declare.
22129 (ipa_edge_args_vector): Remove declaration.
22130 (IPA_EDGE_REF): Use ipa_edge_args_sum.
22131 (ipa_free_edge_args_substructures): Remove declaration.
22132 (ipa_check_create_edge_args): Use ipa_edge_args_sum.
22133 (ipa_edge_args_info_available_for_edge_p): Likewise.
22134 * ipa-prop.c (ipa_edge_args_vector): Removed.
22135 (edge_removal_hook_holder): Likewise.
22136 (edge_duplication_hook_holder): Likewise.
22137 (ipa_edge_args_sum): New variable.
22138 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
22139 ipa_edge_args_vector.
22140 (ipa_free_edge_args_substructures): Likewise.
22141 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
22142 ipa_edge_args_vector.
22143 (ipa_edge_removal_hook): Turned into method
22144 ipa_edge_args_sum_t::remove.
22145 (ipa_edge_duplication_hook): Turned into method
22146 ipa_edge_args_sum_t::duplicate.
22147 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
22148 registering edge hooks.
22149 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
22150 * ipa-inline-analysis.c (estimate_function_body_sizes): Test
22151 ipa_edge_args_sum instead of ipa_edge_args_vector.
22152 * ipa-profile.c (ipa_profile): Likewise.
22153
22154 2017-05-03 Martin Jambor <mjambor@suse.cz>
22155
22156 * symbol-summary.h (function_summary): New method exists.
22157 (function_summary::symtab_removal): Deallocate through release.
22158 (call_summary): New class.
22159 (gt_ggc_mx): New overload.
22160 (gt_pch_nx): Likewise.
22161 (gt_pch_nx): Likewise.
22162
22163 2017-05-03 Jeff Law <law@redhat.com>
22164
22165 PR tree-optimization/78496
22166 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
22167 from simplify_cond_using_ranges. Split off code to walk
22168 backwards through casts into ...
22169 (simplify_cond_using_ranges_2): New function.
22170 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
22171 (execute_vrp): After identifying jump threads, call
22172 simplify_cond_using_ranges_2.
22173
22174 2017-05-03 Jan Hubicka <hubicka@ucw.cz>
22175
22176 PR bootstrap/80609
22177 * ipa-inline.h (inline_summary): Add ctor.
22178 (create_ggc): Do not use ggc_cleared_alloc.
22179
22180 2017-05-03 Jeff Downs <heydowns@somuchpressure.net>
22181 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22182
22183 * gcc.c (handle_braces): Support escaping in switch matching
22184 text.
22185 * doc/invoke.texi (Spec Files): Document it.
22186 Remove superfluous @code markup in items.
22187
22188 2017-05-03 David Malcolm <dmalcolm@redhat.com>
22189
22190 * diagnostic-show-locus.c (struct column_range): New struct.
22191 (get_affected_columns): New function.
22192 (get_printed_columns): New function.
22193 (struct correction): New struct.
22194 (correction::ensure_capacity): New function.
22195 (correction::ensure_terminated): New function.
22196 (struct line_corrections): New struct.
22197 (line_corrections::~line_corrections): New dtor.
22198 (line_corrections::add_hint): New function.
22199 (layout::print_trailing_fixits): Reimplement in terms of the new
22200 classes.
22201 (selftest::test_overlapped_fixit_printing): New function.
22202 (selftest::diagnostic_show_locus_c_tests): Call it.
22203
22204 2017-05-03 Nathan Sidwell <nathan@acm.org>
22205
22206 Canonicalize canonical type hashing
22207 * tree.h (type_hash_canon_hash): Declare.
22208 * tree.c (type_hash_list, attribute_hash_list): Move into
22209 type_hash_canon_hash.
22210 (build_type_attribute_qual_variant): Break out hash code calc into
22211 type_hash_canon_hash.
22212 (type_hash_canon_hash): New. Generic type hash computation.
22213 (build_range_type_1, build_array_type_1, build_function_type,
22214 build_method_type_directly, build_offset_type, build_complex_type,
22215 make_vector_type): Call it.
22216
22217 2017-05-03 Richard Biener <rguenther@suse.de>
22218
22219 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
22220 When all DRs have unknown misaligned do not always peel
22221 when there is a store but apply the same costing model as if
22222 there were only loads.
22223
22224 2017-05-03 Richard Biener <rguenther@suse.de>
22225
22226 Revert
22227 PR tree-optimization/80492
22228 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
22229 compare_base_decls returning dont-know properly.
22230
22231 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
22232
22233 * config/arm/iterators.md (CCSI): New mode iterator.
22234 (arch): New mode attribute.
22235 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
22236 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
22237 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI
22238 code iterator for success result mode.
22239 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
22240 the corresponding new insn generators.
22241
22242 2017-05-03 Bin Cheng <bin.cheng@arm.com>
22243
22244 Revert r247509
22245 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22246 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
22247
22248 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org>
22249
22250 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
22251 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
22252 (DDR_A): Wrap DDR argument in brackets.
22253 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
22254 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
22255 (DDR_REVERSED_P): Likewise.
22256
22257 2017-05-03 Jakub Jelinek <jakub@redhat.com>
22258
22259 PR tree-optimization/79472
22260 * tree-switch-conversion.c (struct switch_conv_info): Add
22261 contiguous_range and default_case_nonstandard fields.
22262 (collect_switch_conv_info): Compute contiguous_range and
22263 default_case_nonstandard fields, don't clear final_bb if
22264 contiguous_range and only the default case doesn't have the required
22265 structure.
22266 (check_all_empty_except_final): Set default_case_nonstandard instead
22267 of failing if contiguous_range and the default case doesn't have empty
22268 block.
22269 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
22270 and only the default case doesn't have the required constants. Skip
22271 virtual phis.
22272 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW
22273 if default_case_nonstandard.
22274 (build_constructors): Build constant 1 just once. Assert that default
22275 values aren't inserted in between cases if contiguous_range. Skip
22276 virtual phis.
22277 (build_arrays): Skip virtual phis.
22278 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
22279 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
22280 Handle virtual phis.
22281 (gen_inbound_check): Handle default_case_nonstandard case.
22282 (process_switch): Adjust check_final_bb caller. Call
22283 gather_default_values with the first non-default case instead of
22284 default case if default_case_nonstandard.
22285
22286 2017-05-02 Nathan Sidwell <nathan@acm.org>
22287
22288 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
22289 check. Fix formatting.
22290
22291 2017-05-02 Jan Hubicka <hubicka@ucw.cz>
22292
22293 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
22294 errors when comparing specialized and unspecialized times.
22295
22296 2017-05-02 David Malcolm <dmalcolm@redhat.com>
22297
22298 * diagnostic-show-locus.c
22299 (layout::should_print_annotation_line_p): Make private.
22300 (layout::print_annotation_line): Make private.
22301 (layout::annotation_line_showed_range_p): Make private.
22302 (layout::show_ruler): Make private.
22303 (layout::print_source_line): Make private. Pass in line and
22304 line_width, rather than calling location_get_source_line. Drop
22305 returned value.
22306 (layout::print_leading_fixits): New method.
22307 (layout::print_any_fixits): Rename to...
22308 (layout::print_trailing_fixits): ...this, and make private.
22309 Don't print newline fixits.
22310 (diagnostic_show_locus): Move logic for printing one row into...
22311 (layout::print_line): ...this new function. Move the
22312 location_get_source_line call and error-handling from
22313 print_source_line to here. Call print_leading_fixits, and rename
22314 print_any_fixits to print_trailing_fixits.
22315 (selftest::test_fixit_insert_containing_newline): Update now that
22316 newlines are partially supported.
22317 (selftest::test_fixit_insert_containing_newline_2): New test.
22318 (selftest::test_fixit_replace_containing_newline): Update comments.
22319 (selftest::diagnostic_show_locus_c_tests): Call the new test.
22320 * edit-context.c (class added_line): New class.
22321 (class edited_line): Describe newline handling in comment.
22322 (edited_line::actually_edited_p): New method.
22323 (edited_line::print_content): Delete redundant decl.
22324 (edited_line::m_predecessors): New field.
22325 (edited_file::print_content): Call edited_line::print_content.
22326 (edited_file::print_diff): Update to support newlines.
22327 (edited_file::print_diff_hunk): Likewise.
22328 (edited_file::print_run_of_changed_lines): New function.
22329 (edited_file::print_diff_line): Convert to...
22330 (print_diff_line): ...this.
22331 (edited_file::get_effective_line_count): New function.
22332 (edited_line::edited_line): Initialize new field m_predecessors.
22333 (edited_line::~edited_line): Clean up m_predecessors.
22334 (edited_line::apply_fixit): Handle newlines.
22335 (edited_line::get_effective_line_count): New function.
22336 (edited_line::print_content): New function.
22337 (edited_line::print_diff_lines): New function.
22338 (selftest::test_applying_fixits_insert_containing_newline): New
22339 test.
22340 (selftest::test_applying_fixits_replace_containing_newline): New
22341 test.
22342 (selftest::insert_line): New function.
22343 (selftest::test_applying_fixits_multiple_lines): Add example of
22344 inserting a line.
22345 (selftest::edit_context_c_tests): Call the new tests.
22346
22347 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22348
22349 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
22350 parameter cand. Update dump information.
22351 (get_computation_cost): Update uses.
22352
22353 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22354
22355 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
22356 (get_computation_aff): Reorder parameters. Use get_computation_aff_1.
22357 (get_computation_at, rewrite_use_address): Update use of
22358 get_computation_aff.
22359
22360 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22361
22362 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
22363 (get_computation): Delete.
22364 (get_computation_cost): Implement like get_computation_cost_at.
22365 Use get_computation_at.
22366 (get_computation_cost_at): Delete.
22367 (rewrite_use_nonlinear_expr): Use get_computation_at.
22368 (rewrite_use_compare, remove_unused_ivs): Ditto.
22369
22370 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22371
22372 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
22373
22374 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22375
22376 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
22377 (ivopts_global_cost_for_size): Rename parameter and update uses.
22378 (iv_ca_recount_cost): Update uses.
22379 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
22380 candidates seperately in n_invs and n_cands.
22381 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
22382
22383 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22384
22385 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
22386 (find_inv_vars_cb): New.
22387 (find_depends): Renamed to ...
22388 (find_inv_vars): ... this.
22389 (add_candidate_1, force_var_cost): Call find_inv_vars.
22390 (split_address_cost, determine_group_iv_cost_cond): Ditto.
22391
22392 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22393
22394 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
22395 inv_vars. Add inv_exprs.
22396 (struct iv_cand): Rename depends_on to inv_vars.
22397 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
22398 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around.
22399 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
22400 (dump_cand): Dump inv_vars.
22401 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
22402 (record_invariant, find_depends, add_candidate_1): Ditto.
22403 (set_group_iv_cost, force_var_cost): Ditto.
22404 (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
22405 (get_computation_cost_at, get_computation_cost): Ditto.
22406 (determine_group_iv_cost_generic): Ditto.
22407 (determine_group_iv_cost_address): Ditto.
22408 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
22409 (determine_group_iv_costs): Ditto.
22410 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
22411 (iv_ca_set_remove_invariants): Renamed to ...
22412 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs.
22413 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
22414 (iv_ca_set_add_invariants): Renamed to ...
22415 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs.
22416 (iv_ca_set_cp): Use iv_ca_set_add_invs.
22417 (iv_ca_has_deps): Support inv_vars and inv_exprs.
22418 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
22419 (create_new_ivs): Remove useless dump.
22420
22421 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22422
22423 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
22424 iv_cand code.
22425 (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
22426 (iv_ca_set_no_cp, create_new_iv): Ditto.
22427
22428 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22429
22430 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
22431
22432 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
22433
22434 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
22435 function tree_check2.
22436
22437 2017-05-02 Martin Liska <mliska@suse.cz>
22438
22439 * doc/gcov.texi: Add missing preposition.
22440 * gcov.c (function_info::function_info): Properly fill up
22441 all member variables.
22442
22443 2017-05-02 Tamar Christina <tamar.christina@arm.com>
22444
22445 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
22446
22447 2017-05-02 Tamar Christina <tamar.christina@arm.com>
22448
22449 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
22450
22451 2017-05-02 Martin Liska <mliska@suse.cz>
22452
22453 PR lto/77954.
22454 * lto-streamer-in.c (lto_read_tree_1): Remove
22455 LTO_STREAMER_DEBUG.
22456 * lto-streamer.c (struct tree_hash_entry): Likewise.
22457 (struct tree_entry_hasher): Likewise.
22458 (tree_entry_hasher::hash): Likewise.
22459 (tree_entry_hasher::equal): Likewise.
22460 (lto_streamer_init): Likewise.
22461 (lto_orig_address_map): Likewise.
22462 (lto_orig_address_get): Likewise.
22463 (lto_orig_address_remove): Likewise.
22464 * lto-streamer.h: Likewise.
22465 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
22466 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
22467
22468 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com>
22469
22470 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
22471 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
22472 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
22473 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
22474 (mm_maskz_sub_round_ss, _mm_mask_add_sd)
22475 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
22476 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
22477 (mm_maskz_sub_ss): New intrinsics.
22478 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
22479 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
22480 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
22481 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
22482 (__builtin_ia32_subss_mask_round): New builtins.
22483 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
22484 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
22485 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
22486 Renamed to ...
22487 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
22488 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
22489 Changed to ...
22490 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
22491 ... this.
22492
22493 2017-05-02 Martin Jambor <mjambor@suse.cz>
22494
22495 PR tree-optimization/78687
22496 * tree-sra.c (access): New field parent.
22497 (process_subtree_disqualification): New function.
22498 (disqualify_candidate): Call it.
22499 (build_accesses_from_assign): Reset write flag if creating an
22500 assighnment link.
22501 (build_access_subtree): Fill in parent field and also prpagate
22502 down grp_write flag.
22503 (create_artificial_child_access): New parameter set_grp_write, set
22504 grp_write to its value.
22505 (propagate_subaccesses_across_link): Also propagate grp_write flag
22506 values.
22507 (propagate_all_subaccesses): Push the closest parent back to work
22508 queue if add_access_to_work_queue returned true.
22509
22510 2017-05-02 Richard Biener <rguenther@suse.de>
22511
22512 * common.opt (fstrict-overflow): Alias negative to fwrapv.
22513 * doc/invoke.texi (fstrict-overflow): Remove all traces of
22514 -fstrict-overflow documentation.
22515 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
22516 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
22517 flag_strict_overflow.
22518 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
22519 * lto-opts.c (lto_write_options): Do not stream it.
22520 * lto-wrapper.c (merge_and_complain): Do not handle it.
22521 * opts.c (default_options_table): Do not set -fstrict-overflow.
22522 (finish_options): Likewise do not clear it when sanitizing.
22523 * simplify-rtx.c (simplify_const_relational_operation): Do not
22524 test flag_strict_overflow.
22525
22526 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
22527
22528 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
22529 using enabled attribute.
22530 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
22531 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
22532 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
22533 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
22534 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
22535 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
22536 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
22537 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
22538 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
22539 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
22540
22541 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
22542
22543 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
22544
22545 2017-05-02 Richard Biener <rguenther@suse.de>
22546
22547 PR tree-optimization/80591
22548 Revert
22549 2017-04-10 Richard Biener <rguenther@suse.de>
22550
22551 * tree-ssa-structalias.c (find_func_aliases): Properly handle
22552 asm inputs.
22553
22554 2017-05-02 Richard Biener <rguenther@suse.de>
22555
22556 PR tree-optimization/80549
22557 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
22558 (cleanup_tree_cfg_noloop): Create forwarders to known loop
22559 headers if they do not have a preheader.
22560
22561 2017-05-02 Martin Liska <mliska@suse.cz>
22562
22563 PR other/80589
22564 * common.opt: Fix typo.
22565 * doc/invoke.texi: Likewise.
22566
22567 2017-05-01 Jan Beulich <jbeulich@suse.com>
22568
22569 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
22570 swapping, add (x,x,m,x,n) alternative.
22571
22572 2017-05-01 Nathan Sidwell <nathan@acm.org>
22573
22574 * calls.c (combine_pending_stack_adjustment_and_call): Remove
22575 unnecessary unadjusted_alignment check.
22576
22577 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
22578
22579 PR c++/80038
22580 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
22581 operations here.
22582 * gimplify.c (gimplify_cilk_detach): New function.
22583 (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
22584 * tree-core.h: Document EXPR_CILK_SPAWN.
22585 * tree.h (EXPR_CILK_SPAWN): Define.
22586
22587 2017-05-01 David Malcolm <dmalcolm@redhat.com>
22588
22589 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
22590 to use new fixit_hint representation, using the "replace" logic.
22591 (get_line_span_for_fixit_hint): Likewise.
22592 (layout::print_any_fixits): Likewise.
22593 (selftest::test_one_liner_many_fixits): Rename to...
22594 (selftest::test_one_liner_many_fixits_1): ...this, and update
22595 comment and expected output to reflect that the multiple fix-it
22596 hints are now consolidated into one insertion.
22597 (selftest::test_one_liner_many_fixits_2): New test.
22598 (selftest::test_diagnostic_show_locus_one_liner): Update for
22599 above.
22600 (selftest::test_fixit_consolidation): Update for fix-it API
22601 change.
22602 * diagnostic.c (print_parseable_fixits): Likewise.
22603 * edit-context.c (edited_line::m_line_events): Convert from
22604 auto_vec <line_event *> to auto_vec <line_event>.
22605 (class line_event): Convert from abstract base class to a concrete
22606 class, taking over the role of replace_event.
22607 (class insert_event): Delete.
22608 (class replace_event): Rename to class line_event. Convert to
22609 half-open range.
22610 (edit_context::add_fixits): Reimplement.
22611 (edit_context::apply_insert): Delete.
22612 (edit_context::apply_replace): Rename to...
22613 (edit_context::apply_fixit): ...this. Convert to half-open range.
22614 (edited_file::apply_insert): Delete.
22615 (edited_file::apply_replace): Rename to...
22616 (edited_file::apply_fixit): ...this.
22617 (edited_line::~edited_line): Drop deletion of events.
22618 (edited_line::apply_insert): Delete.
22619 (edited_line::apply_replace): Rename to...
22620 (edited_line::apply_fixit): ...this. Convert to half-open range.
22621 Update for change to type of m_line_events.
22622 * edit-context.h (edit_context::apply_insert): Delete.
22623 (edit_context::apply_replace): Rename to...
22624 (edit_context::apply_fixit): ...this.
22625
22626 2017-05-01 Martin Sebor <msebor@redhat.com>
22627
22628 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
22629 known.
22630
22631 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
22632
22633 PR target/68491
22634 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
22635 __get_cpuid_max returns 0.
22636 (__get_cpuid_count): Ditto.
22637
22638 2017-05-01 Eric Botcazou <ebotcazou@adacore.com>
22639
22640 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
22641 replacement expression is another instance of one of its arguments.
22642
22643 2017-05-01 Jakub Jelinek <jakub@redhat.com>
22644
22645 PR target/79430
22646 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
22647 check for stack push/pop autoinc.
22648 * config/i386/i386.c (ix86_agi_dependent): Return false
22649 if the only reason why modified_in_p returned true is that
22650 addr is SP based and set_insn is a push or pop.
22651
22652 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
22653
22654 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
22655 overflow check.
22656
22657 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
22658
22659 PR ipa/79224
22660 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
22661 (account_size_time): Use two predicates - exec_pred and
22662 nonconst_pred_ptr.
22663 (evaluate_conditions_for_known_args): Compute both clause and
22664 nonspec_clause.
22665 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
22666 (inline_summary_t::duplicate): Update.
22667 (estimate_function_body_sizes): Caluculate exec and nonconst predicates
22668 separately.
22669 (compute_inline_parameters): Likewise.
22670 (estimate_edge_size_and_time): Update caluclation of time.
22671 (estimate_node_size_and_time): Compute both time and nonspecialized
22672 time.
22673 (estimate_ipcp_clone_size_and_time): Update.
22674 (inline_merge_summary): Update.
22675 (do_estimate_edge_time): Update.
22676 (do_estimate_edge_size): Update.
22677 (do_estimate_edge_hints): Update.
22678 (inline_read_section, inline_write_summary): Stream both new predicates.
22679 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
22680 as argument.
22681 (compute_inlined_call_time): Cleanup.
22682 (big_speedup_p): Update.
22683 (edge_badness): Update.
22684 * ipa-inline.h (INLINE_TIME_SCALE): Remove.
22685 (size_time_entry): Replace predicate by exec_predicate and
22686 nonconst_predicate.
22687 (edge_growth_cache_entry): Cache both time nad nonspecialized time.
22688 (estimate_edge_time): Return also nonspec_time.
22689 (reset_edge_growth_cache): Update.
22690
22691 2017-04-29 Jakub Jelinek <jakub@redhat.com>
22692
22693 PR rtl-optimization/80491
22694 * ifcvt.c (noce_process_if_block): When looking for x setter
22695 with missing else_bb, don't check only the insn right before
22696 cond_earliest, but look for the last insn that x is modified in
22697 within the same bb.
22698
22699 PR rtl-optimization/80491
22700 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
22701
22702 2017-04-29 Marc Glisse <marc.glisse@inria.fr>
22703
22704 PR tree-optimization/80487
22705 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
22706
22707 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22708
22709 PR tree-optimization/79697
22710 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
22711 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
22712 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
22713 BUILT_IN_STRNDUP.
22714 * gimple-fold.c (gimple_fold_builtin_realloc): New function.
22715 (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
22716
22717 2017-04-28 Martin Sebor <msebor@redhat.com>
22718
22719 PR tree-optimization/80523
22720 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
22721 (init_target_to_host_charmap, target_to_host, target_strtol10): New
22722 functions.
22723 (maybe_warn, format_directive, parse_directive): Use new functions.
22724 (pass_sprintf_length::execute): Call init_target_to_host_charmap.
22725
22726 2017-04-28 Marc Glisse <marc.glisse@inria.fr>
22727
22728 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
22729
22730 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
22731
22732 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
22733 target_header_dir): Set correctly.
22734 * configure: Regenerated.
22735 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
22736 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
22737 instead of SYSTEM_HEADER_DIR.
22738
22739 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
22740
22741 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
22742 (estimate_local_effects): Likewise.
22743 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
22744 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
22745 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
22746 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
22747 do_estimate_edge_time, estimate_edge_time): Likewise.
22748 * ipa-inline-analysis.c (estimate_node_size_and_time,
22749 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
22750 (estimate_time_after_inlining): Remove.
22751
22752 2017-04-28 Martin Liska <mliska@suse.cz>
22753
22754 * doc/gcov.texi: Enhance documentation of gcov.
22755
22756 2017-04-28 Martin Liska <mliska@suse.cz>
22757
22758 * doc/gcov.texi: Sort options in alphabetic order.
22759 * doc/gcov-dump.texi: Likewise.
22760 * doc/gcov-tool.texi: Likewise.
22761 * gcov.c (print_usage): Likewise.
22762 * gcov-dump.c (print_usage): Likewise.
22763 * gcov-tool.c (print_merge_usage_message): Likewise.
22764 (print_rewrite_usage_message): Likewise.
22765 (print_overlap_usage_message): Likewise.
22766
22767 2017-04-28 Martin Liska <mliska@suse.cz>
22768
22769 PR gcov-profile/53915
22770 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
22771
22772 2017-04-28 Martin Liska <mliska@suse.cz>
22773
22774 PR gcov-profile/79891
22775 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
22776 is marked by compiler as living on a line.
22777 (get_cycles_count): Remove usage of the union.
22778 (output_intermediate_file): Likewise.
22779 (find_source): Fix GNU coding style.
22780 (accumulate_line_counts): Remove old non-all block mode.
22781 (output_lines): Remove usage of the union.
22782 * profile.c (output_location): Include all BBs, even if
22783 belonging to a same line (and file) as a previous BB.
22784
22785 2017-04-28 Martin Liska <mliska@suse.cz>
22786
22787 * gcov.c (process_args): Handle new argument 'w'.
22788 (read_graph_file): Assign ID to BBs.
22789 (output_branch_count): Display BB # if verbose flag is set.
22790 (output_lines): Likewise for arcs.
22791 (print_usage): Add '--verbose' option help.
22792 * doc/gcov.texi: Document --verbose (-w) option.
22793
22794 2017-04-28 Martin Liska <mliska@suse.cz>
22795
22796 * gcov.c (struct block_location_info): New struct.
22797 (process_file): Fill up the new structure.
22798 (read_graph_file): Replace usage of encoding by the newly added
22799 struct.
22800 (add_line_counts): Likewise.
22801 (accumulate_line_counts): Remove usage of the union.
22802 (function_info::function_info): New function.
22803 (function_info::~function_info): Likewise.
22804 (process_file): Call delete instead of release_function.
22805 (release_function): Release the function.
22806 (release_structures): Call delete instead of release_function.
22807 (solve_flow_graph): Replace usage of num_blocks.
22808 (find_exception_blocks): Likewise.
22809 (output_lines): Fix GNU coding style.
22810
22811 2017-04-28 Martin Liska <mliska@suse.cz>
22812
22813 PR driver/56469
22814 * coverage.c (coverage_remove_note_file): New function.
22815 * coverage.h: Declare the function.
22816 * toplev.c (finalize): Clean if an error has been seen.
22817
22818 2017-04-28 Martin Liska <mliska@suse.cz>
22819
22820 PR gcov-profile/80031
22821 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
22822 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
22823 * gcov.c (read_graph_file): Read just number of blocks.
22824 * profile.c (branch_prob): Do not stream 0 flags per a basic
22825 block.
22826
22827 2017-04-28 Martin Liska <mliska@suse.cz>
22828
22829 * gcov-dump.c (tag_*): Add new argument to declarations.
22830 (dump_gcov_file): Likewise.
22831 (tag_blocks): Add and use new argument depth.
22832 (tag_arcs): Likewise.
22833 (tag_lines): Likewise.
22834 (tag_counters): Likewise.
22835 (tag_summary): Likewise.
22836 (dump_working_sets): Use depth to do a proper indentation.
22837
22838 2017-04-28 Jakub Jelinek <jakub@redhat.com>
22839
22840 PR bootstrap/80531
22841 * cgraph.h (symtab_node::debug_symtab): No longer inline.
22842 * symtab.c (symtab_node::debug_symtab): Move definition here.
22843
22844 2017-04-28 Richard Biener <rguenther@suse.de>
22845
22846 * lto-streamer.h (LTO_major_version): Bump to 7.
22847
22848 2017-04-28 Richard Biener <rguenther@suse.de>
22849
22850 * tree-vrp.c (assert_info): New struct.
22851 (add_assert_info): New helper.
22852 (register_edge_assert_for_2): Refactor to add asserts to a vector
22853 of assert_info.
22854 (register_edge_assert_for_1): Likewise.
22855 (register_edge_assert_for): Likewise.
22856 (finish_register_edge_assert_for): New helper actually registering
22857 asserts where live on edge.
22858 (find_conditional_asserts): Adjust.
22859 (find_switch_asserts): Likewise.
22860 (evrp_dom_walker::try_find_new_range): Generalize.
22861 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
22862
22863 2017-04-27 Marek Polacek <polacek@redhat.com>
22864
22865 PR sanitizer/80349
22866 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
22867 arg10 and arg11 to itype.
22868
22869 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
22870
22871 * doc/extend.texi (Object Size Checking): Improve grammar.
22872
22873 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
22874
22875 PR target/80530
22876 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
22877 that the logic for permitting reciprocal estimates matches that
22878 in use_rsqrt_p.
22879
22880 2017-04-27 Jakub Jelinek <jakub@redhat.com>
22881
22882 PR c++/80534
22883 * tree.c (type_cache_hasher::equal): Only compare
22884 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
22885 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
22886 non-aggregate element types.
22887 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
22888 about the flag on ARRAY_TYPEs in the comment, formatting fix.
22889
22890 2017-04-27 Richard Biener <rguenther@suse.de>
22891
22892 PR middle-end/80533
22893 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
22894 stripping ARRAY_REFs from MEM_EXPR make sure we're not
22895 keeping a reference to a trailing array.
22896
22897 2017-04-27 Richard Biener <rguenther@suse.de>
22898
22899 PR middle-end/80539
22900 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
22901 being in loop-closed SSA form conservatively.
22902 (chrec_fold_multiply_poly_poly): Likewise.
22903
22904 2017-04-27 Tamar Christina <tamar.christina@arm.com>
22905
22906 PR middle-end/79665
22907 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
22908 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
22909
22910 2017-04-27 Jakub Jelinek <jakub@redhat.com>
22911
22912 PR target/77728
22913 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
22914 (aarch64_function_arg_alignment): Return unsigned int again, but still
22915 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
22916 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
22917 Don't emit -Wpsabi note.
22918 (aarch64_function_arg_boundary): Likewise.
22919 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
22920 caller.
22921
22922 2017-04-26 Nathan Sidwell <nathan@acm.org>
22923
22924 * tree.h (crc32_unsigned_n): Declare.
22925 (crc32_unsigned, crc32_unsigned): Make inline.
22926 * tree.c (crc32_unsigned_bits): Replace with ...
22927 (crc32_unsigned_n): ... this.
22928 (crc32_unsigned, crc32_byte): Remove.
22929 (crc32_string): Remove unnecessary braces.
22930
22931 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
22932
22933 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
22934 * ipa-inline-analysis.c (MAX_TIME): Remove.
22935 (account_size_time): Use sreal for time.
22936 (dump_inline_summary): Update.
22937 (estimate_function_body_sizes): Update.
22938 (estimate_edge_size_and_time): Update.
22939 (estimate_calls_size_and_time): Update.
22940 (estimate_node_size_and_time): Update.
22941 (inline_merge_summary): Update.
22942 (inline_update_overall_summary): Update.
22943 (estimate_time_after_inlining): Update.
22944 (inline_read_section): Update.
22945 (inline_write_summary): Update.
22946 * ipa-inline.c (compute_uninlined_call_time): Update.
22947 (compute_inlined_call_time): Update.
22948 (recursive_inlining): Update.
22949 (inline_small_functions): Update.
22950 (dump_overall_stats): Update.
22951 * ipa-inline.h: Include sreal.h.
22952 (size_time_entry): Turn time to sreal.
22953 (inline_summary): Turn self_time nad time to sreal.
22954
22955 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
22956
22957 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
22958 data-streamer.h
22959 (sreal::stream_out, sreal::stream_in): New.
22960 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
22961
22962 2017-04-25 Jakub Jelinek <jakub@redhat.com>
22963
22964 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
22965 environment.
22966
22967 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
22968
22969 PR target/70799
22970 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
22971 Handle ASHIFTRT.
22972 (dimode_scalar_chain::compute_convert_gain): Ditto.
22973 (dimode_scalar_chain::make_vector_copies): Ditto.
22974 (dimode_scalar_chain::convert_reg): Ditto.
22975 (dimode_scalar_chain::convert_insn): Ditto.
22976 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
22977 (VI248_AVX512BW_1): New mode iterator.
22978 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
22979 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
22980 mode iterator.
22981
22982 2017-04-25 Martin Sebor <msebor@redhat.com>
22983
22984 PR tree-optimization/80497
22985 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
22986 constants are representable in HOST_WIDE_INT.
22987 (parse_directive): Ditto.
22988
22989 2017-04-25 Martin Sebor <msebor@redhat.com>
22990
22991 PR bootstrap/80486
22992 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
22993 (new_zero_array): Adjust signature.
22994 (dom_info::dom_init): Used unsigned rather that size_t.
22995 (dom_info::dom_info): Same.
22996
22997 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22998 Jakub Jelinek <jakub@redhat.com>
22999
23000 PR target/77728
23001 * config/arm/arm.c: Include gimple.h.
23002 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
23003 returns negative, increment ncrn only if it returned positive.
23004 (arm_needs_doubleword_align): Return int instead of bool,
23005 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
23006 members, but if there is any such non-FIELD_DECL
23007 > PARM_BOUNDARY aligned decl, return -1 instead of false.
23008 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
23009 returns negative, increment nregs only if it returned positive.
23010 (arm_setup_incoming_varargs): Likewise.
23011 (arm_function_arg_boundary): Emit -Wpsabi note if
23012 arm_needs_doubleword_align returns negative, return
23013 DOUBLEWORD_ALIGNMENT only if it returned positive.
23014
23015 2017-04-25 Marek Polacek <polacek@redhat.com>
23016
23017 PR sanitizer/80349
23018 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
23019 first argument to type.
23020
23021 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
23022
23023 PR target/80482
23024 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
23025 type checks to test for compatibility instead of equality.
23026
23027 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23028 Jakub Jelinek <jakub@redhat.com>
23029
23030 PR target/77728
23031 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
23032 type.
23033 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
23034 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
23035 the alignment computation, but return their maximum in warn_alignment.
23036 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
23037 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
23038 is smaller.
23039 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
23040 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
23041 caller.
23042
23043 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23044
23045 * config/arc/simdext.md (dmpyh): Fix typo.
23046
23047 2017-04-25 Richard Biener <rguenther@suse.de>
23048
23049 PR tree-optimization/80492
23050 * alias.c (compare_base_decls): Handle registers with asm
23051 specification conservatively.
23052 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
23053 compare_base_decls returning dont-know properly.
23054
23055 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23056
23057 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
23058 (legitimate_offset_address_p): New function.
23059 (arc_legitimate_address_p): Use above function.
23060
23061 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23062
23063 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
23064
23065 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23066
23067 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
23068 ACCH registers whenever they are available.
23069
23070 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23071
23072 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
23073 double regs fix when not used.
23074
23075 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23076
23077 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
23078 core registers.
23079 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
23080 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
23081
23082 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23083
23084 * config/arc/arc.c (arc_output_addsi): Check for h-register class
23085 when emitting short ADD instructions.
23086
23087 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23088
23089 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
23090 constraint.
23091 (cmpsi_cc_c_insn): Likewise.
23092 (cbranchsi4_scratch): Compute proper instruction length using
23093 compact_hreg_operand.
23094 * config/arc/predicates.md (compact_hreg_operand): New predicate.
23095
23096 2017-04-25 Richard Biener <rguenther@suse.de>
23097
23098 PR middle-end/80509
23099 * passes.c (pass_manager::pass_manager): Initialize
23100 m_name_to_pass_map.
23101
23102 2017-04-25 Richard Biener <rguenther@suse.de>
23103
23104 PR tree-optimization/79201
23105 * tree-ssa-sink.c (statement_sink_location): Handle calls.
23106
23107 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23108
23109 PR target/80464
23110 * config/s390/vector.md: Split MEM->GPR vector moves for
23111 non-s_operand addresses.
23112
23113 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23114
23115 PR target/79895
23116 * config/s390/predicates.md (reload_const_wide_int_operand): New
23117 predicate.
23118 * config/s390/s390.md ("movti"): Remove d/P alternative.
23119 ("movti_bigconst"): New pattern definition.
23120
23121 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
23122
23123 PR target/80080
23124 * s390-protos.h (s390_expand_cs_hqi): Removed.
23125 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
23126 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
23127 modes as well as CCZ1mode and CCZmode.
23128 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
23129 signature of s390_emit_compare_and_swap.
23130 (s390_expand_cs_hqi): Likewise, make static.
23131 (s390_expand_cs_tdsi): Generate an explicit compare before trying
23132 compare-and-swap, in some cases.
23133 (s390_expand_cs): Wrapper function.
23134 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
23135 atomic_exchange.
23136 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
23137 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
23138 patterns for small and large integers. Forbid symref memory operands.
23139 Move expander to s390.c. Require cc register.
23140 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
23141 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
23142 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
23143 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
23144 symref memory operands. Remove CC mode and call s390_match_ccmode
23145 instead.
23146 ("atomic_exchange<mode>"): Allow and implement all integer modes.
23147
23148 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
23149
23150 * config/s390/s390.md (define_peephole2): New peephole to help
23151 combining the load-and-test pattern with volatile memory.
23152
23153 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
23154
23155 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
23156 with CCZmode for TARGET_Z196.
23157
23158 2017-04-25 Jakub Jelinek <jakub@redhat.com>
23159
23160 PR rtl-optimization/80501
23161 * combine.c (make_compound_operation_int): Set subreg_code to SET
23162 even for AND with mask of the sign bit of mode.
23163
23164 PR rtl-optimization/80500
23165 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
23166 sum's initial value.
23167
23168 2017-04-25 Julian Brown <julian@codesourcery.com>
23169 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
23170
23171 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
23172
23173 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
23174
23175 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
23176
23177 2017-04-25 Julian Brown <julian@codesourcery.com>
23178 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
23179
23180 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
23181 (thunderx2t99_sha): New Reservation.
23182
23183 2017-04-25 Julian Brown <julian@codesourcery.com>
23184 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
23185
23186 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
23187 type for 1-element load.
23188
23189 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
23190
23191 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
23192
23193 2017-04-24 Martin Jambor <mjambor@suse.cz>
23194
23195 PR tree-optimization/80293
23196 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
23197 char arrays not totally scalarizable if it is false.
23198 (analyze_all_variable_accesses): Pass correct value in the new
23199 parameter. Add a statistics counter.
23200
23201 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
23202
23203 PR middle-end/79931
23204 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
23205
23206 2017-04-24 Richard Biener <rguenther@suse.de>
23207
23208 PR tree-optimization/80494
23209 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
23210 out for complex types.
23211
23212 2017-04-24 Richard Biener <rguenther@suse.de>
23213
23214 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
23215 * tree-ssa-sccvn.c (print_scc): Print SCC size.
23216 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
23217 (DFS): Adjust and never fail.
23218 (sccvn_dom_walker::fail): Remove.
23219 (sccvn_dom_walker::before_dom_children): Adjust.
23220 (run_scc_vn): Likewise and never fail.
23221 * tree-ssa-pre.c (pass_pre::execute): Adjust.
23222 (pass_fre::execute): Likewise.
23223
23224 2017-04-24 Richard Biener <rguenther@suse.de>
23225
23226 PR tree-optimization/79725
23227 * tree-ssa-sink.c (statement_sink_location): Return whether
23228 failure reason was zero uses. Move that check later.
23229 (sink_code_in_bb): Deal with zero uses by removing the stmt
23230 if possible.
23231
23232 2017-04-24 Richard Biener <rguenther@suse.de>
23233
23234 PR c++/2972
23235 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
23236 pointer-based references.
23237
23238 2017-04-24 Richard Biener <rguenther@suse.de>
23239
23240 PR bootstrap/79814
23241 * pass_manager.h (pass_manager::operator new): Remove.
23242 (pass_manager::operator delete): Likewise.
23243 * passes.c (pass_manager::operator new): Remove.
23244 (pass_manager::operator delete): Likewise.
23245 (pass_manager::pass_manager): Zero individual pass members.
23246
23247 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
23248
23249 PR target/70799
23250 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
23251 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
23252 Check "XEXP (src, 1)" operand here.
23253 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
23254 Check "XEXP (src, 1)" operand here.
23255 (dimode_scalar_chain::make_vector_copies): Detect count register
23256 of a shift instruction. Zero extend count register from QImode
23257 to DImode to satisfy vector shift pattern count operand predicate.
23258 Substitute vector shift count operand with a DImode copy.
23259 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
23260 vector register.
23261
23262 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
23263
23264 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
23265 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
23266 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
23267 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
23268 (UNSPEC_NOREX_MEM): Remove definition.
23269
23270 2017-04-21 Richard Biener <rguenther@suse.de>
23271
23272 PR tree-optimization/79547
23273 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
23274 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
23275 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
23276 without any constraints.
23277
23278 2017-04-21 Richard Biener <rguenther@suse.de>
23279
23280 PR tree-optimization/78847
23281 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
23282
23283 2017-04-21 Richard Biener <rguenther@suse.de>
23284
23285 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
23286 (build_distinct_type_copy): Likewise.
23287 (build_variant_type_copy): Likewise.
23288 * tree.c (build_qualified_type): Pass down mem-stat info.
23289 (build_distinct_type_copy): Likewise.
23290 (build_variant_type_copy): Likewise.
23291
23292 2017-04-21 Richard Biener <rguenther@suse.de>
23293
23294 PR tree-optimization/80237
23295 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
23296 defaulted to NULL.
23297 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
23298 for a simplified result.
23299
23300 2016-04-21 Richard Biener <rguenther@suse.de>
23301
23302 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
23303 sth as strict as a simple_iv but a chrec without symbols and an
23304 operand defined in the loop we are peeling (and not some subloop).
23305 (propagate_constants_for_unrolling): Propagate all constants.
23306
23307 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
23308
23309 PR target/79804
23310 * config/i386/i386.c (print_reg): Remove assert for disalowed
23311 regno values, call output_operand_lossage instead.
23312
23313 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
23314
23315 PR target/78090
23316 * config/i386/constraints.md (Yc): New register constraint.
23317 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
23318 Use Yc constraint for alternative 2 of operand 0. Remove
23319 preferred_for_speed attribute.
23320
23321 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
23322
23323 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
23324 lastprivate clauses in SIMT case.
23325
23326 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
23327
23328 * doc/invoke.texi (-Wextra-semi): Document new warning option.
23329
23330 2017-04-20 Richard Biener <rguenther@suse.de>
23331
23332 PR tree-optimization/57796
23333 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
23334 as N scalar stores.
23335 (vect_model_load_cost): Cost gathers as N scalar loads.
23336
23337 2017-04-20 Richard Biener <rguenther@suse.de>
23338
23339 * ggc-page.c (ggc_allocated_p): Rename to ...
23340 (safe_lookup_page_table_entry): ... this and return the lookup
23341 result.
23342 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
23343
23344 2017-04-20 Richard Biener <rguenther@suse.de>
23345
23346 PR tree-optimization/80453
23347 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
23348 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
23349 from the conditions.
23350 (vn_phi_eq): Pass them down.
23351 (vn_phi_lookup): Record them.
23352 (vn_phi_insert): Likewise.
23353
23354 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
23355
23356 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
23357 uninitialized variable warning to avoid buffer overrun.
23358
23359 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
23360
23361 PR other/71250
23362 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
23363 is suppressed for '{ 0 }' in C.
23364
23365 2017-04-20 Jakub Jelinek <jakub@redhat.com>
23366
23367 * BASE-VER: Set to 8.0.0.
23368
23369 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
23370
23371 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
23372 priority .init_array and .fini_array section with SECTION_NOTYPE
23373 flag.
23374
23375 2017-04-20 Jakub Jelinek <jakub@redhat.com>
23376
23377 PR middle-end/80423
23378 * tree.h (build_array_type): Add typeless_storage default argument.
23379 * tree.c (type_cache_hasher::equal): Also compare
23380 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
23381 (build_array_type): Add typeless_storage argument, set
23382 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
23383 recursive call.
23384 (build_nonshared_array_type): Adjust build_array_type_1 caller.
23385 (build_array_type): Likewise. Add typeless_storage argument.
23386
23387 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
23388 Jakub Jelinek <jakub@redhat.com>
23389
23390 PR tree-optimization/80426
23391 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
23392 operation on symbolic operands, also compute the overflow for the
23393 invariant part when the operation degenerates into a negation.
23394
23395 2017-04-19 Jakub Jelinek <jakub@redhat.com>
23396
23397 PR debug/80461
23398 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
23399 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
23400
23401 PR debug/80436
23402 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
23403
23404 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
23405
23406 PR target/80462
23407 * config/avr/avr.c (tree.h): Include it.
23408 (cgraph.h): Include it.
23409 (avr_encode_section_info): Don't warn for uninitialized progmem
23410 variable if it's just an alias.
23411
23412 2017-04-19 Richard Biener <rguenther@suse.de>
23413
23414 PR ipa/65972
23415 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
23416 when needed by AutoPGO.
23417
23418 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
23419
23420 PR lto/50345
23421 * doc/lto.texi: Remove an extra 'that'.
23422
23423 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
23424
23425 PR rtl-optimization/80429
23426 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
23427 are only used in debug insns.
23428
23429 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
23430 Vladimir Makarov <vmakarov@redhat.com>
23431
23432 * config/sparc/predicates.md (input_operand): Add comment. Return
23433 true for any memory operand when LRA is in progress.
23434 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
23435
23436 2017-04-18 Jeff Law <law@redhat.com>
23437
23438 PR target/74563
23439 * mips.md ({return,simple_return}_internal): Do not overwrite
23440 operands[0].
23441
23442 2017-04-18 Jakub Jelinek <jakub@redhat.com>
23443
23444 PR tree-optimization/80443
23445 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
23446 instead of adding 1, subtract -1 and similarly instead of subtracting
23447 1 add -1.
23448
23449 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
23450
23451 PR rtl-optimization/80357
23452 * haifa-sched.c (tmp_bitmap): New variable.
23453 (model_recompute): Handle duplicate use records.
23454 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
23455 (free_global_sched_pressure_data): Free it.
23456
23457 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
23458
23459 Revert:
23460 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
23461 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
23462 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
23463 instead of SYSTEM_HEADER_DIR.
23464
23465 2017-04-18 Jeff Law <law@redhat.com>
23466
23467 PR middle-end/80422
23468 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
23469 predecessors after walking up the insn chain.
23470
23471 2017-04-18 Jakub Jelinek <jakub@redhat.com>
23472
23473 PR debug/80263
23474 * dwarf2out.c (modified_type_die): Try harder not to emit internal
23475 sizetype type into debug info.
23476
23477 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
23478
23479 PR target/80099
23480 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
23481 unneeded test for TARGET_UPPER_REGS_SF.
23482 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
23483
23484 2017-04-18 Jakub Jelinek <jakub@redhat.com>
23485
23486 PR sanitizer/80444
23487 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
23488 instead of gsi_after_labels.
23489
23490 2017-04-18 Jeff Law <law@redhat.com>
23491
23492 * regcprop.c (maybe_mode_change): Avoid creating copies of the
23493 stack pointer.
23494
23495 Revert:
23496 2017-04-13 Jeff Law <law@redhat.com>
23497 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
23498 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
23499
23500 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
23501
23502 PR target/79453
23503 * config/avr/avr.c (intl.h): Include it.
23504 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
23505
23506 2017-04-18 Martin Liska <mliska@suse.cz>
23507
23508 PR gcov-profile/78783
23509 * gcov-tool.c (gcov_output_files): Validate that destination
23510 file is either removed by the tool or by a user.
23511
23512 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
23513 Guy Benyei <guybe@mellanox.com>
23514
23515 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
23516 block, and do not negate it, the stored id is already negative.
23517
23518 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
23519
23520 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
23521
23522 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
23523
23524 PR target/80098
23525 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
23526 masks of options that should be turned off if the VSX vector
23527 options are turned off.
23528 (OTHER_P8_VECTOR_MASKS): Likewise.
23529 (OTHER_VSX_VECTOR_MASKS): Likewise.
23530 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
23531 rs6000_disable_incompatible_switches to validate no type switches
23532 like -mvsx.
23533 (rs6000_incompatible_switch): New function to disallow turning on
23534 other vector options if -mno-vsx, -mno-power8-vector, or
23535 -mno-power9-vector are specified.
23536
23537 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
23538
23539 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
23540
23541 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
23542
23543 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
23544 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
23545 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
23546 (ARG_POINTER_CFA_OFFSET): Likewise.
23547
23548 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
23549
23550 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
23551 conditions to take advantage of various optimizations.
23552
23553 2017-04-13 Jeff Law <law@redhat.com>
23554
23555 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
23556 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
23557 (zero_extendsidi2_dext): Likewise.
23558
23559 2017-04-13 Jakub Jelinek <jakub@redhat.com>
23560
23561 PR sanitizer/80403
23562 * fold-const.c (fold_ternary_loc): Revert
23563 use op0 instead of fold_convert_loc (loc, type, arg0) part of
23564 2017-04-12 change.
23565
23566 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
23567
23568 PR rtl-optimization/80343
23569 * lra-remat.c (update_scratch_ops): Assign original hard reg to
23570 new scratch pseudo.
23571
23572 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
23573
23574 PR sanitizer/80414
23575 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
23576 to ubsan_encode_value.
23577
23578 2017-04-13 Jeff Law <law@redhat.com>
23579
23580 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
23581 appearing in DEBUG_INSNs.
23582
23583 2017-04-13 Martin Liska <mliska@suse.cz>
23584
23585 PR gcov-profile/80413
23586 * gcov-io.c (gcov_write_string): Copy to buffer just when
23587 allocated size is greater than zero.
23588
23589 2017-04-13 Jakub Jelinek <jakub@redhat.com>
23590
23591 PR debug/80321
23592 * dwarf2out.c (decls_for_scope): Ignore declarations of
23593 current_function_decl in BLOCK_NONLOCALIZED_VARS.
23594
23595 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
23596
23597 PR lto/69953
23598 * ipa-visibility.c (non_local_p): Fix typos.
23599 (localize_node): When localizing symbol in same comdat group,
23600 dissolve the group only when we know external symbols are going
23601 to be privatized.
23602 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
23603
23604 2017-04-12 Jakub Jelinek <jakub@redhat.com>
23605
23606 PR tree-optimization/79390
23607 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
23608 order does not result in usable sequence, retry with reversed operand
23609 order.
23610
23611 PR sanitizer/80403
23612 PR sanitizer/80404
23613 PR sanitizer/80405
23614 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
23615 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
23616 op0 instead of fold_convert_loc (loc, type, arg0).
23617
23618 2017-04-12 Jeff Law <law@redhat.com>
23619
23620 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
23621 has a delay slot in the generated code.
23622
23623 * config/cris/cris.md (cris_preferred_reload_class): Return
23624 GENNONACR_REGS rather than GENERAL_REGS.
23625
23626 2017-04-12 Jakub Jelinek <jakub@redhat.com>
23627
23628 PR c/80163
23629 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
23630 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
23631 signedness of the result type.
23632
23633 2017-04-12 Richard Biener <rguenther@suse.de>
23634 Jeff Law <law@redhat.com>
23635
23636 PR tree-optimization/80359
23637 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
23638 trim stores to TARGET_MEM_REFs.
23639
23640 2017-04-12 Richard Biener <rguenther@suse.de>
23641
23642 PR tree-optimization/79390
23643 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
23644 threading case even more.
23645
23646 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
23647
23648 PR target/80382
23649 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
23650 for quad_address_p for TImode, instead of just not indexed_address.
23651
23652 2017-04-12 Richard Biener <rguenther@suse.de>
23653 Bernd Edlinger <bernd.edlinger@hotmail.de>
23654
23655 PR middle-end/79671
23656 * alias.c (component_uses_parent_alias_set_from): Handle
23657 TYPE_TYPELESS_STORAGE.
23658 (get_alias_set): Likewise.
23659 * tree-core.h (tree_type_common): Add typeless_storage flag.
23660 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
23661 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
23662 for types containing members with TYPE_TYPELESS_STORAGE.
23663 (place_field): Likewise.
23664 (layout_type): Likewise for ARRAY_TYPE.
23665 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
23666 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
23667 TYPE_TYPELESS_STORAGE.
23668 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
23669
23670 2017-04-12 Jakub Jelinek <jakub@redhat.com>
23671
23672 PR sanitizer/80349
23673 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
23674 first argument to type.
23675
23676 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23677
23678 PR target/80376
23679 PR target/80315
23680 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
23681 CONST0_RTX (mode) rather than const0_rtx where appropriate.
23682 (rs6000_expand_binop_builtin): Likewise.
23683 (rs6000_expand_ternop_builtin): Likewise; also add missing
23684 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
23685 vshasigma built-ins.
23686 * doc/extend.texi: Document that vec_xxpermdi's third argument
23687 must be a constant.
23688
23689 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
23690
23691 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
23692 Use shift_const cost parameter when calculating gain of STV shifts.
23693
23694 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
23695
23696 PR rtl-optimization/70478
23697 * lra-constraints.c (process_alt_operands): Check memory for
23698 disfavoring memory insn operand.
23699
23700 2017-04-11 Jakub Jelinek <jakub@redhat.com>
23701
23702 PR middle-end/80100
23703 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
23704 left shift in unsigned HOST_WIDE_INT type.
23705
23706 PR rtl-optimization/80385
23707 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
23708 (not (neg X)) into (plus X -1) for complex or non-integral modes.
23709
23710 PR libgomp/80394
23711 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
23712 if they have any depend clauses.
23713
23714 2017-04-11 Martin Liska <mliska@suse.cz>
23715
23716 PR ipa/80212
23717 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
23718 * ipa-split.c (split_function): Create a local comdat symbol
23719 if caller is in a comdat group.
23720
23721 2017-04-11 Martin Liska <mliska@suse.cz>
23722
23723 PR ipa/80212
23724 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
23725 flags.
23726
23727 2017-04-11 Martin Sebor <msebor@redhat.com>
23728
23729 PR middle-end/80364
23730 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
23731 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
23732 for INTEGER_TYPE.
23733 (directive::set_width, directive::set_precision, format_character):
23734 Adjust.
23735 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
23736 INTEGER_TYPE.
23737
23738 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
23739
23740 PR target/80389
23741 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
23742 conflict, set target->arch_name instead of target->cpu_name.
23743
23744 2017-04-11 Richard Biener <rguenther@suse.de>
23745
23746 PR tree-optimization/80374
23747 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
23748 build_zero_cst, remove fold_convertible_p check again.
23749
23750 2017-04-11 Martin Liska <mliska@suse.cz>
23751
23752 PR sanitizer/70878
23753 * ubsan.c (instrument_object_size): Do not instrument register
23754 variables.
23755
23756 2017-04-11 Jakub Jelinek <jakub@redhat.com>
23757
23758 PR target/80381
23759 * config/i386/i386-builtin-types.def
23760 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
23761 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
23762 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
23763 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
23764 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
23765 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
23766 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
23767 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
23768 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
23769 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
23770 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
23771 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
23772 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
23773 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
23774 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
23775 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
23776 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
23777 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
23778 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
23779 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
23780 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
23781 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
23782 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
23783 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
23784 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
23785 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
23786 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
23787 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
23788 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
23789 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
23790 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
23791 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
23792 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
23793 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
23794 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
23795 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
23796 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
23797 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
23798 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
23799 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
23800 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
23801 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
23802 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
23803 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
23804 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
23805 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
23806 aliases.
23807 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
23808 flag to second_arg_count, handle 4 argument function type _COUNT
23809 aliases, handle second_arg_count on second argument rather than last.
23810
23811 2017-04-10 Jeff Law <law@redhat.com>
23812
23813 PR tree-optimization/80374
23814 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
23815 record anything if we can not convert integer_zero_node to the
23816 desired type.
23817
23818 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
23819
23820 PR target/80108
23821 * config/rs6000/rs6000.c (rs6000_option_override_internal):
23822 Enhance special handling given to the TARGET_P9_MINMAX option in
23823 relation to certain other options.
23824
23825 2017-04-10 Bin Cheng <bin.cheng@arm.com>
23826
23827 PR tree-optimization/80153
23828 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
23829 remove POINTER_PLUS_EXPR's base part directly, rather than through
23830 aff_tree.
23831
23832 2017-04-10 Richard Biener <rguenther@suse.de>
23833 Bin Cheng <bin.cheng@arm.com>
23834
23835 PR tree-optimization/80153
23836 * tree-affine.c (aff_combination_to_tree): Get base pointer from
23837 the first element of pointer type aff_tree. Build result expr in
23838 aff_tree's type.
23839 (add_elt_to_tree): Convert to type unconditionally. Remove other
23840 fold_convert calls.
23841 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
23842 (rewrite_use_nonlinear_expr): Check invariant using iv information.
23843
23844 2017-04-10 Richard Biener <rguenther@suse.de>
23845
23846 * tree-ssa-structalias.c (find_func_aliases): Properly handle
23847 asm inputs.
23848
23849 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
23850
23851 PR rtl-optimization/70478
23852 * lra-constraints.c (curr_small_class_check): New.
23853 (update_and_check_small_class_inputs): New.
23854 (process_alt_operands): Update curr_small_class_check. Disfavor
23855 alternative insn memory operands. Check available regs for small
23856 class operands.
23857
23858 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
23859
23860 PR target/80057
23861 * config/mips/mips.opt (-mvirt): Update description.
23862 * doc/invoke.texi (-mvirt): Likewise.
23863
23864 2017-04-10 Richard Biener <rguenther@suse.de>
23865
23866 PR middle-end/80362
23867 * fold-const.c (fold_binary_loc): Look at unstripped ops when
23868 looking for NEGATE_EXPR in -A / -B to A / B folding.
23869
23870 2017-04-10 Martin Liska <mliska@suse.cz>
23871
23872 PR gcov-profile/80224
23873 * gcov.c (print_usage): Fix usage string.
23874 (get_gcov_intermediate_filename): Remove.
23875 (output_gcov_file): Use both for normal and intermediate format.
23876 (generate_results): Do not initialize special file for
23877 intermediate format.
23878
23879 2017-04-10 Richard Biener <rguenther@suse.de>
23880
23881 PR tree-optimization/80304
23882 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
23883 for safelen.
23884
23885 2017-04-10 Nathan Sidwell <nathan@acm.org>
23886
23887 PR target/79905
23888 * config/rs6000/rs6000.c (rs6000_vector_type): New.
23889 (rs6000_init_builtins): Use it.
23890
23891 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23892
23893 * config/arm/arm.md (<mrc>): Add mode to SET source.
23894 (<mrrc>): Likewise.
23895
23896 2017-04-10 Richard Biener <rguenther@suse.de>
23897
23898 PR middle-end/80344
23899 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
23900
23901 2017-04-10 Jakub Jelinek <jakub@redhat.com>
23902
23903 PR target/80324
23904 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
23905 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
23906 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
23907 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
23908 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
23909 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
23910 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
23911 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
23912 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
23913 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
23914 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
23915 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
23916 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
23917 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
23918 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
23919 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
23920 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
23921 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
23922 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
23923 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
23924 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
23925 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
23926 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
23927
23928 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
23929
23930 PR rtl-optimization/70478
23931 * lra-constraints.c: Reverse the last patch.
23932
23933 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
23934
23935 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
23936 Add comment for WCHAR_T.
23937
23938 2017-04-08 Martin Liska <mliska@suse.cz>
23939
23940 Revert:
23941 2017-04-07 Martin Liska <mliska@suse.cz>
23942
23943 PR ipa/80212
23944 * ipa-split.c (split_function): Add function part to a same comdat
23945 group.
23946
23947 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
23948
23949 PR target/80358
23950 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
23951
23952 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
23953
23954 * rs6000/rs6000.c (vec_load_pendulum): Rename...
23955 (vec_pairing): ...to this.
23956 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
23957 (rs6000_sched_init): Adjust for name change.
23958 (struct rs6000_sched_context): Likewise.
23959 (rs6000_init_sched_context): Likewise.
23960 (rs6000_set_sched_context): Likewise.
23961
23962 2017-04-07 Jakub Jelinek <jakub@redhat.com>
23963
23964 PR target/80322
23965 PR target/80323
23966 PR target/80325
23967 PR target/80326
23968 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
23969 intrinsics.
23970 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
23971 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
23972 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
23973
23974 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
23975
23976 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
23977
23978 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
23979
23980 PR rtl-optimization/70703
23981 * ira-color.c (update_conflict_hard_regno_costs): Use
23982 int64_t instead of HOST_WIDE_INT.
23983
23984 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
23985
23986 PR rtl-optimization/70478
23987 * lra-constraints.c (process_alt_operands): Disfavor alternative
23988 insn memory operands.
23989
23990 2017-04-07 Jeff Law <law@redhat.com>
23991
23992 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
23993 CALL and NOTE_INSN_CALL_ARG_LOCATION.
23994
23995 2017-04-07 Martin Liska <mliska@suse.cz>
23996
23997 PR target/79889
23998 * config/aarch64/aarch64.c (aarch64_process_target_attr):
23999 Show error message instead of an ICE.
24000
24001 2017-04-07 Martin Liska <mliska@suse.cz>
24002
24003 PR ipa/80212
24004 * ipa-split.c (split_function): Add function part to a same comdat
24005 group.
24006
24007 2017-04-07 Richard Biener <rguenther@suse.de>
24008
24009 PR middle-end/80341
24010 * tree.c (get_unwidened): Also handle ! for_type case for
24011 INTEGER_CSTs.
24012 * convert.c (do_narrow): Split out from ...
24013 (convert_to_integer_1): ... here. Do not pass final truncation
24014 type to get_unwidened for TRUNC_DIV_EXPR.
24015
24016 2017-04-07 Richard Biener <rguenther@suse.de>
24017
24018 * tree-affine.c (wide_int_ext_for_comb): Take type rather
24019 than aff_tree.
24020 (aff_combination_const): Adjust.
24021 (aff_combination_scale): Likewise.
24022 (aff_combination_add_elt): Likewise.
24023 (aff_combination_add_cst): Likewise.
24024 (aff_combination_convert): Likewise.
24025 (add_elt_to_tree): Likewise. Remove unused argument.
24026 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
24027
24028 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
24029
24030 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
24031 definition.
24032 * config/arm/arm.c (arm_default_short_enums): Use
24033 ARM_DEFAULT_SHORT_ENUMS.
24034 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
24035
24036 2017-04-06 Jakub Jelinek <jakub@redhat.com>
24037
24038 PR debug/80234
24039 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
24040 members with redundant out-of-class redeclaration.
24041
24042 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
24043
24044 PR target/80286
24045 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
24046 * config/i386/i386.md (*zero_extendsidi2):
24047 Add (?*x,*x) and (?*v,*v) alternatives.
24048
24049 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
24050
24051 PR target/79733
24052 * config/i386/i386.c (ix86_expand_builtin)
24053 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
24054 mode from insn data. Convert operands to insn operand mode.
24055 Copy operands that don't satisfy insn predicate to a register.
24056
24057 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
24058
24059 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
24060 Update comments.
24061
24062 2017-04-06 Richard Biener <rguenther@suse.de>
24063
24064 PR tree-optimization/80334
24065 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
24066 preserve alignment of accesses.
24067
24068 2017-04-06 Richard Biener <rguenther@suse.de>
24069
24070 PR tree-optimization/80262
24071 * tree-sra.c (build_ref_for_offset): Preserve address-space
24072 information.
24073 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
24074 Drop useless address-space information on MEM_REF offsets.
24075
24076 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
24077
24078 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
24079
24080 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
24081
24082 PR rtl-optimization/70703
24083 * ira-color.c (update_conflict_hard_regno_costs): Use
24084 HOST_WIDE_INT instead of long.
24085
24086 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
24087
24088 PR target/80298
24089 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
24090 not defined for x86_64 target. Add -mmmx target option when __SSE2__
24091 is not defined.
24092 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
24093 for x86_64 target. Handle -m3dnowa option.
24094
24095 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
24096
24097 PR rtl-optimization/70703
24098 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
24099 (update_conflict_hard_regno_costs): Use long instead of unsigned
24100 arithmetic for cost calculation.
24101
24102 2017-04-05 Jakub Jelinek <jakub@redhat.com>
24103 Bernd Edlinger <bernd.edlinger@hotmail.de>
24104
24105 PR sanitizer/80308
24106 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
24107 for big endian.
24108
24109 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
24110
24111 PR target/78002
24112 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
24113 ptr_mode with Pmode throughout.
24114 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
24115 into probe_stack_range and use DImode.
24116
24117 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
24118
24119 PR target/79890
24120 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
24121 call_eh_return is true.
24122
24123 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24124
24125 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
24126 Initialize last_match_fntype_index.
24127
24128 2017-04-05 Jakub Jelinek <jakub@redhat.com>
24129
24130 PR target/80310
24131 * tree-nvr.c: Include internal-fn.h.
24132 (pass_return_slot::execute): Ignore internal calls without
24133 direct optab.
24134
24135 2017-04-04 Jakub Jelinek <jakub@redhat.com>
24136 Richard Biener <rguenther@suse.de>
24137
24138 PR c++/80297
24139 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
24140 captures used multiple times, except for the last use.
24141 * generic-match-head.c: Include gimplify.h.
24142
24143 2017-04-04 Jakub Jelinek <jakub@redhat.com>
24144
24145 PR tree-optimization/79390
24146 * target.h (struct noce_if_info): Declare.
24147 * targhooks.h (default_noce_conversion_profitable_p): Declare.
24148 * target.def (noce_conversion_profitable_p): New target hook.
24149 * ifcvt.h (struct noce_if_info): New type, moved from ...
24150 * ifcvt.c (struct noce_if_info): ... here.
24151 (noce_conversion_profitable_p): Renamed to ...
24152 (default_noce_conversion_profitable_p): ... this. No longer
24153 static nor inline.
24154 (noce_try_store_flag_constants, noce_try_addcc,
24155 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
24156 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
24157 instead of noce_conversion_profitable_p.
24158 * config/i386/i386.c: Include ifcvt.h.
24159 (ix86_option_override_internal): Don't override
24160 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
24161 (ix86_noce_conversion_profitable_p): New function.
24162 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
24163 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
24164 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
24165 * doc/tm.texi: Regenerated.
24166
24167 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24168
24169 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
24170 correction.
24171
24172 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
24173
24174 PR target/80307
24175 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
24176 instructions for small multiply cores.
24177
24178 2017-04-04 Jeff Law <law@redhat.com>
24179
24180 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
24181 added member.
24182 (mips_expand_vec_perm_const): Initialize elements in orig_perm
24183 that are not set by the loop over the elements.
24184
24185 2017-04-04 Jakub Jelinek <jakub@redhat.com>
24186
24187 PR target/80286
24188 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
24189 int mode, convert_modes it to mode as unsigned, otherwise use
24190 lowpart_subreg to mode rather than SImode.
24191 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
24192 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
24193 Use DImode instead of SImode for the shift count operand.
24194 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
24195 Likewise.
24196
24197 2017-04-04 Richard Biener <rguenther@suse.de>
24198
24199 PR middle-end/80281
24200 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
24201 arithmetic done for the negate or the plus. Simplify.
24202 (A - (-B) -> A + B): Likewise.
24203 * fold-const.c (split_tree): Make sure to not negate pointers.
24204
24205 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
24206
24207 PR rtl-optimization/60818
24208 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
24209 a compare of comparisons with the thing compared if this results
24210 in a different machine mode.
24211
24212 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
24213
24214 * alias.c (base_alias_check): Fix typo in comment.
24215 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
24216 * cgraphunit.c (symbol_table::compile): Likewise.
24217 * collect2.c (maybe_run_lto_and_relink): Likewise.
24218 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
24219 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
24220 * config/avr/avr.c (avr_map_op_t): Likewise.
24221 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
24222 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
24223 * config/epiphany/epiphany.md (movcc): Likewise.
24224 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
24225 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
24226 Likewise.
24227 * config/mips/mips.c (mips_save_restore_reg): Likewise.
24228 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
24229 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
24230 * config/sh/sh.c (sh_rtx_costs): Likewise.
24231 * fold-const.c (fold_truth_andor): Likewise.
24232 * genautomata.c (collapse_flag): Likewise.
24233 * gengtype.h (struct type::u::s): Likewise.
24234 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
24235 * input.c (FORMAT_AMOUNT): Likewise.
24236 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
24237 (known_aggs_to_agg_replacement_list): Likewise.
24238 * ipa-inline-analysis.c: Likewise.
24239 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
24240 * ipa-polymorphic-call.c
24241 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
24242 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
24243 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
24244 Likewise.
24245 * modulo-sched.c (apply_reg_moves): Likewise.
24246 * omp-expand.c (build_omp_regions_1): Likewise.
24247 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
24248 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
24249 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
24250 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
24251 * value-prof.c: Likewise.
24252 * var-tracking.c (val_reset): Likewise.
24253
24254 2017-04-03 Richard Biener <rguenther@suse.de>
24255
24256 PR tree-optimization/80275
24257 * fold-const.c (split_address_to_core_and_offset): Handle
24258 POINTER_PLUS_EXPR.
24259
24260 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
24261
24262 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
24263 descriptors is at least equal to that of functions.
24264
24265 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
24266
24267 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
24268
24269 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
24270
24271 PR target/80250
24272 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
24273 (mov<IMOD4:mode>): New expander.
24274 (*mov<IMOD4:mode>_internal): New insn and split pattern.
24275
24276 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
24277
24278 PR rtl-optimization/79405
24279 * fwprop.c (propagations_left): New variable.
24280 (forward_propagate_into): Decrement it.
24281 (fwprop_init): Initialize it.
24282 (fw_prop): If the variable has reached zero, stop propagating.
24283 (fwprop_addr): Ditto.
24284
24285 2017-03-31 Jakub Jelinek <jakub@redhat.com>
24286
24287 PR debug/79255
24288 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
24289 a FUNCTION_DECL, pass it as decl instead of origin to
24290 process_scope_var.
24291
24292 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
24293
24294 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
24295 string.
24296
24297 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
24298
24299 PR target/80107
24300 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
24301 TARGET_VSX_SMALL_INTEGER.
24302
24303 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24304
24305 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
24306 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
24307
24308 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
24309
24310 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
24311 extraction from odd-numbered MSA register.
24312
24313 2017-03-31 Jakub Jelinek <jakub@redhat.com>
24314
24315 PR middle-end/80173
24316 * expmed.c (store_bit_field_1): Don't attempt to create
24317 a word subreg out of hard registers wider than word if they
24318 have HARD_REGNO_NREGS of 1 for their mode.
24319
24320 PR middle-end/80163
24321 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
24322 conversions to integer types wider than word and pointer.
24323
24324 PR debug/80025
24325 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
24326 (rtx_equal_for_cselib_p): Pass 0 to it.
24327 * cselib.c (cselib_hasher::equal): Likewise.
24328 (rtx_equal_for_cselib_1): Add depth argument. If depth
24329 is 128, don't look up VALUE locs and punt. Increment
24330 depth in recursive calls when walking VALUE locs.
24331
24332 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
24333
24334 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
24335 (make_gcov_file_name): Use the canonical path name for generating
24336 the MD5 value.
24337 (read_line): Fix handling of files with ascii null bytes.
24338
24339 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
24340
24341 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
24342 to initialise a vector register instead
24343 of using a const_int.
24344
24345 2017-03-30 Jakub Jelinek <jakub@redhat.com>
24346
24347 PR translation/80189
24348 * gimplify.c (omp_default_clause): Use %qs instead of %s in
24349 diagnostic messages.
24350
24351 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
24352
24353 PR target/80246
24354 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
24355 (dfp_diex_<mode>): Update mode of operand 1.
24356 * doc/extend.texi (dxex, dxexq): Document change to return type.
24357 (diex, diexq): Document change to argument type.
24358
24359 2017-03-30 Martin Jambor <mjambor@suse.cz>
24360
24361 PR ipa/77333
24362 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
24363 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
24364 it reflects the signature changes performed at the callee side.
24365 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
24366 to cgraph_build_function_type_skip_args.
24367 (build_function_decl_skip_args): Adjust call to the above function.
24368
24369 2017-03-30 Jakub Jelinek <jakub@redhat.com>
24370
24371 PR target/80206
24372 * config/i386/sse.md
24373 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
24374 register as dest whenever it is a MEM not rtx_equal_p to the
24375 corresponding dup operand, and when forcing into reg move the
24376 reg into the memory afterwards.
24377 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
24378 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
24379 for the force_reg mode.
24380 (avx512vl_vextractf128<mode>): Use register as dest either
24381 always when a MEM, or when it is a MEM not rtx_equal_p to the
24382 corresponding dup operand, or even not when it is a CONST_VECTOR
24383 depending on the mode and lo vs. hi.
24384 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
24385 parens.
24386 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
24387 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
24388 Likewise. Require that operands[2] is even.
24389 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
24390 Remove extraneous parens. Require that operands[2] is a multiple
24391 of 4.
24392 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
24393 operands[0] is a MEM if <mask_applied>, the predicates/constraints
24394 disallow memory then.
24395
24396 2017-03-30 Richard Biener <rguenther@suse.de>
24397
24398 PR tree-optimization/77498
24399 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
24400 to non-constants over backedges.
24401
24402 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
24403
24404 PR rtl-optimization/80233
24405 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
24406 as last_combined_insn. Do not test for BARRIER_P separately.
24407
24408 2017-03-29 Andreas Schwab <schwab@suse.de>
24409
24410 PR ada/80146
24411 * calls.c (prepare_call_address): Convert funexp to Pmode before
24412 copying to temp reg.
24413
24414 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24415
24416 PR tree-optimization/80158
24417 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
24418 Handle possible future case of more than one alternate
24419 interpretation.
24420 (replace_rhs_if_not_dup): Likewise.
24421 (replace_one_candidate): Likewise.
24422
24423 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
24424
24425 PR rtl-optimization/80193
24426 * ira.c (ira): Do not check allocation for LRA.
24427
24428 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
24429
24430 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
24431 (nvptx_output_simt_exit): Declare.
24432 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
24433 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
24434 (init_softstack_frame): Move initialization of crtl->is_leaf to...
24435 (nvptx_declare_function_name): ...here. Emit declaration of local
24436 memory space buffer for omp_simt_enter insn.
24437 (nvptx_output_unisimt_switch): New.
24438 (nvptx_output_softstack_switch): New.
24439 (nvptx_output_simt_enter): New.
24440 (nvptx_output_simt_exit): New.
24441 * config/nvptx/nvptx.h (struct machine_function): New fields
24442 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
24443 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
24444 (UNSPECV_SIMT_EXIT): Ditto.
24445 (omp_simt_enter_insn): New insn.
24446 (omp_simt_enter): New expansion.
24447 (omp_simt_exit): New insn.
24448 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
24449
24450 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
24451 (expand_GOMP_SIMT_ENTER_ALLOC): New.
24452 (expand_GOMP_SIMT_EXIT): New.
24453 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
24454 (GOMP_SIMT_ENTER_ALLOC): Ditto.
24455 (GOMP_SIMT_EXIT): Ditto.
24456 * target-insns.def (omp_simt_enter): New insn.
24457 (omp_simt_exit): Ditto.
24458 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
24459 simt_dlist.
24460 (lower_rec_simd_input_clauses): Implement SIMT privatization.
24461 (lower_rec_input_clauses): Likewise.
24462 (lower_lastprivate_clauses): Handle SIMT privatization.
24463
24464 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
24465 (ompdevlow_adjust_simt_enter): New.
24466 (find_simtpriv_var_op): New.
24467 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
24468 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
24469
24470 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
24471 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
24472 (copy_decl_for_dup_finish): Ditto.
24473
24474 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
24475
24476 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
24477
24478 PR target/53383
24479 * config/i386/i386.c (ix86_option_override_internal): Always
24480 allow -mpreferred-stack-boundary=3 for 64-bit targets.
24481
24482 2017-03-28 Bin Cheng <bin.cheng@arm.com>
24483
24484 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
24485
24486 2017-03-28 Bin Cheng <bin.cheng@arm.com>
24487
24488 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
24489 mark new edge's irreducible flag accordign to it.
24490 (vect_do_peeling): Check loop preheader edge's irreducible flag
24491 and pass it to function slpeel_add_loop_guard.
24492
24493 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
24494
24495 PR tree-optimization/80218
24496 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
24497 Update block frequencies and counts.
24498
24499 2017-03-28 Richard Biener <rguenther@suse.de>
24500
24501 PR tree-optimization/78644
24502 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
24503 of a simplification result we may not use it at all.
24504
24505 2017-03-28 Richard Biener <rguenther@suse.de>
24506
24507 PR ipa/80205
24508 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
24509 without arguments, generate default definition of a SSA name.
24510
24511 2017-03-28 Richard Biener <rguenther@suse.de>
24512
24513 PR middle-end/80222
24514 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
24515 TYPE_REF_CAN_ALIAS_ALL references.
24516 * fold-const.c (fold_indirect_ref_1): Likewise.
24517
24518 2017-03-28 Martin Liska <mliska@suse.cz>
24519
24520 PR ipa/80104
24521 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
24522 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
24523
24524 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
24525 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
24526
24527 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
24528 (EXTRA_SPECS): Define.
24529 (SUBTARGET_EXTRA_SPECS): Likewise.
24530 (SUBTARGET_CPP_SPEC): Likewise.
24531 * config/arc/elf.h (EXTRA_SPECS): Renamed to
24532 SUBTARGET_EXTRA_SPECS.
24533 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
24534
24535 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
24536
24537 * config/arc/simdext.md (vst64_insn): Update pattern.
24538 (vld32wh_insn): Likewise.
24539 (vld32wl_insn): Likewise.
24540 (vld64_insn): Likewise.
24541 (vld32_insn): Likewise.
24542
24543 2017-03-28 Marek Polacek <polacek@redhat.com>
24544
24545 PR sanitizer/80067
24546 * fold-const.c (fold_comparison): Use protected_set_expr_location
24547 instead of SET_EXPR_LOCATION.
24548
24549 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
24550
24551 * tree.c (add_expr): Avoid name lookup warning.
24552
24553 2017-03-27 Jeff Law <law@redhat.com>
24554
24555 PR tree-optimization/80216
24556 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
24557 function name. Limit recursion depth.
24558 (record_temporary_equivalences): Corresponding changes.
24559
24560 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
24561
24562 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
24563 covered first.
24564
24565 2017-03-27 Jakub Jelinek <jakub@redhat.com>
24566
24567 PR target/80102
24568 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
24569 notes.
24570 * cfgcleanup.c (reg_note_cfa_p): New array.
24571 (insns_have_identical_cfa_notes): New function.
24572 (old_insns_match_p): Don't cross-jump in between /f
24573 and non-/f instructions. If both i1 and i2 are frame related,
24574 verify all CFA notes, their order and content.
24575
24576 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
24577
24578 PR target/78543
24579 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
24580 HImode and SImode with zero extend to DImode to one insn.
24581 (bswap<mode>2_extenddi): Likewise.
24582 (bswapsi2_extenddi): Likewise.
24583 (bswaphi2_extendsi): Likewise.
24584 (bswaphi2): Combine bswap HImode and SImode into one insn.
24585 Separate memory insns from swapping register.
24586 (bswapsi2): Likewise.
24587 (bswap<mode>2): Likewise.
24588 (bswaphi2_internal): Delete, no longer used.
24589 (bswapsi2_internal): Likewise.
24590 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
24591 store, and gpr<-gpr swap insns.
24592 (bswap<mode>2_store): Likewise.
24593 (bswaphi2_reg): Register only splitter, combine with the splitter.
24594 (bswaphi2 splitter): Likewise.
24595 (bswapsi2_reg): Likewise.
24596 (bswapsi2 splitter): Likewise.
24597 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
24598 the insns into load, store, and register/register insns.
24599 (bswapdi2_ldbrx): Likewise.
24600 (bswapdi2_load): Likewise.
24601 (bswapdi2_store): Likewise.
24602 (bswapdi2_reg): Likewise.
24603
24604 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
24605
24606 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
24607 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
24608
24609 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
24610
24611 PR target/80103
24612 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
24613 add comments.
24614 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
24615 special handling for target option conflicts between dform
24616 options (-mpower9-dform, -mpower9-dform-vector,
24617 -mpower9-dform-scalar) and -mno-direct-move.
24618
24619 2017-03-27 Richard Biener <rguenther@suse.de>
24620
24621 PR tree-optimization/80181
24622 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
24623
24624 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
24625
24626 * config/arc/predicates.md (move_double_src_operand): Replace the
24627 call to move_double_src_operand with a call to address_operand.
24628
24629 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
24630
24631 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
24632 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
24633 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
24634
24635 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
24636
24637 * config/arc/predicates.md (long_immediate_loadstore_operand):
24638 Consider scaled addresses cases.
24639
24640 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
24641
24642 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
24643 restored when in interrupt.
24644 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
24645 doesn't have delay slot.
24646
24647 2017-03-27 Richard Biener <rguenther@suse.de>
24648
24649 PR ipa/79776
24650 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
24651 inlined thunk clones.
24652
24653 2017-03-27 Jakub Jelinek <jakub@redhat.com>
24654
24655 PR sanitizer/80168
24656 * asan.c (instrument_derefs): Copy over last operand from
24657 original COMPONENT_REF to the new COMPONENT_REF with
24658 DECL_BIT_FIELD_REPRESENTATIVE.
24659 * ubsan.c (instrument_object_size): Likewise.
24660
24661 2017-03-27 Richard Biener <rguenther@suse.de>
24662
24663 PR tree-optimization/80170
24664 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
24665 sure DR/SCEV didnt fold in constants we do not see when looking
24666 at the reference base alignment.
24667
24668 2017-03-27 Richard Biener <rguenther@suse.de>
24669
24670 PR middle-end/80171
24671 * gimple-fold.c (fold_ctor_reference): Properly guard against
24672 NULL return value from canonicalize_constructor_val.
24673
24674 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
24675
24676 PR target/80180
24677 * config/i386/i386.c (ix86_expand_builtin)
24678 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
24679 flags reg setting and flags reg using instructions.
24680 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
24681 clobbering instructions to zero extend op2.
24682
24683 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
24684
24685 * doc/install.texi (Configuration) <--with-aix-soname>:
24686 Update link to AIX ld.
24687
24688 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
24689
24690 PR rtl-optimization/80160
24691 PR rtl-optimization/80159
24692 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
24693 reg_alternate_class into account.
24694
24695 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
24696
24697 PR target/80148
24698 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
24699 to consider in curr_insn_transform.
24700
24701 2017-03-24 Jakub Jelinek <jakub@redhat.com>
24702
24703 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
24704 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
24705 and emit_mode_inner.
24706
24707 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24708
24709 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
24710 argument to the overloaded builtin variants. Use the new flag to
24711 deprecate certain builtin variants.
24712 * config/s390/s390-builtin-types.def: Add new builtin types.
24713 * config/s390/s390-builtins.h: Support new flags field for
24714 overloaded builtins.
24715 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
24716 (s390_macro_to_expand): Enable vector float data type.
24717 (s390_cpu_cpp_builtins_internal): Indicate support of the new
24718 builtins by incrementing the __VEC__ version number.
24719 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
24720 vec_xst.
24721 (s390_resolve_overloaded_builtin): Emit error messages depending
24722 on the builtin flags.
24723 * config/s390/s390.c (s390_expand_builtin): Support additional
24724 flags argument. Change error message to match the messages
24725 emitted in s390-c.c.
24726 * config/s390/s390.md: New UNSPEC_* constants.
24727 (op_type): Add new instruction types.
24728 * config/s390/vecintrin.h: Add new builtins and test data class
24729 constants.
24730 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
24731 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
24732 (VEC_INEXACT, VEC_NOINEXACT): New constants.
24733 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
24734 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
24735 ("vec_mergel<mode>"): V_HW -> VEC_HW.
24736
24737 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
24738 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
24739 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
24740 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
24741
24742 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
24743 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
24744 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
24745 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
24746
24747 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
24748 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
24749 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
24750 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
24751 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
24752 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
24753 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
24754
24755 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
24756 ("vec_scatter_element<V_HW_4:mode>_DI")
24757 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
24758 ("vec_fpint<mode>", "vflls")
24759 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
24760 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
24761 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
24762 ("*vec_cmphe<mode>_cc"): ... these.
24763
24764 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
24765 mode constant instead of magic value.
24766
24767 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24768
24769 * config/s390/s390.c (s390_expand_vec_compare): Support other
24770 vector floating point modes than just V2DF.
24771 (s390_expand_vcond): Likewise.
24772 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
24773 (s390_cannot_change_mode_class): Prevent mode changes between TF
24774 and V1TF in vector registers.
24775 * config/s390/s390.md (DF, SF): New mode attributes.
24776 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
24777 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
24778 SFmode support for VRs.
24779 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
24780 vector fp modes.
24781 (VFT, VF_HW): New mode iterators.
24782 (vw, sdx): New mode attributes.
24783 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
24784 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
24785 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
24786 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
24787 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
24788 also the new vector floating point modes. Renaming to ...
24789
24790 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
24791 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
24792 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
24793 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
24794 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
24795 ("vec_unordered<mode>"): ... these.
24796
24797 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
24798 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
24799 ("*vec_extendv2df"): New insn definitions.
24800
24801 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24802
24803 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
24804 ("mulditi3_2", "*muldi3_sign"): New patterns.
24805 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
24806 rename the pattern definition.
24807
24808 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24809
24810 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
24811 expander.
24812 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
24813
24814 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24815
24816 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
24817 instruction if possible.
24818 * config/s390/vector.md (vec_halfnumelts): New mode
24819 attribute.
24820 ("*vec_vllezlf<mode>"): New pattern.
24821
24822 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24823
24824 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
24825 ("popcountv4si2", "popcountv2di2"): Rename to ...
24826 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
24827 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
24828 condition.
24829 ("popcount<mode>2_vxe"): New pattern.
24830
24831 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24832
24833 * common/config/s390/s390-common.c (processor_flags_table): Add
24834 arch12.
24835 * config.gcc: Add arch12.
24836 * config/s390/driver-native.c (s390_host_detect_local_cpu):
24837 Default to arch12 for unknown CPU model numbers.
24838 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
24839 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
24840 PROCESSOR_max sanity check.
24841 * config/s390/s390-opts.h (enum processor_type): Add
24842 PROCESSOR_ARCH12.
24843 * config/s390/s390.c (processor_table): Add arch12.
24844 (s390_expand_builtin): Add check for B_VXE flag.
24845 (s390_issue_rate): Add PROCESSOR_ARCH12.
24846 (s390_get_sched_attrmask): Likewise.
24847 (s390_get_unit_mask): Likewise.
24848 (s390_sched_score): Enable z13 scheduling for arch12.
24849 (s390_sched_reorder): Likewise.
24850 (s390_sched_variable_issue): Likewise.
24851 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
24852 PF_VXE.
24853 (s390_tune_attr): Use z13 scheduling also for arch12.
24854 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
24855 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
24856 (TARGET_VXE_P): New macros.
24857 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
24858 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
24859 * config/s390/s390.opt: Add arch12 as processor_type.
24860
24861 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24862
24863 * config/s390/s390.md
24864 ("fixuns_truncdddi2", "fixuns_trunctddi2")
24865 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
24866 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
24867
24868 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
24869 Rename expanders to ...
24870
24871 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
24872 ("fixuns_truncdddi2_emu"): ... these.
24873
24874 ("fixuns_trunc<mode>si2_emu"): New expander.
24875
24876 ("*fixuns_truncdfdi2_z13"): Rename to ...
24877 ("*fixuns_truncdfdi2_vx"): ... this.
24878
24879 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24880
24881 * config/s390/2964.md: Remove the single element vector compare
24882 instructions which are no longer used.
24883 * config/s390/s390.c (s390_select_ccmode): Remove handling of
24884 vector CCmodes.
24885 (s390_canonicalize_comparison): Remove handling of DFmode
24886 compares.
24887 (s390_expand_vec_compare_scalar): Remove function.
24888 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
24889 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
24890 pattern.
24891 ("*cmp<mode>_ccs"): Add wfcdb instruction.
24892
24893 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24894
24895 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
24896 FP zero.
24897 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
24898 will anyway by matched by mov<mode>_64dfp.
24899
24900 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24901
24902 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
24903 vlef/vstef. Add missing operand to vleif.
24904
24905 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24906
24907 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
24908 pair for all vector types with 64 bit elements.
24909 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
24910 * config/s390/vector.md (V_HW_64): ... here.
24911 (V_128_NOSINGLE): New mode iterator.
24912 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
24913 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
24914 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
24915 ("*vec_load_pairv2di"): Change to ...
24916 ("*vec_load_pair<mode>"): ... this one.
24917
24918 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24919
24920 * config/s390/constraints.md: Add comments.
24921 (jKK): Reject element sizes > 8 bytes.
24922 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
24923 s_operands.
24924 * config/s390/s390.md: Add the s_operand checks formerly in
24925 s390_split_ok_p to various splitters where they are still
24926 required.
24927 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
24928 for 128 bit vectors. Plus two splitters.
24929
24930 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24931
24932 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
24933 the file.
24934
24935 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24936
24937 PR target/79893
24938 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
24939 error if the boundary argument is not constant.
24940
24941 2017-03-24 Jakub Jelinek <jakub@redhat.com>
24942
24943 PR rtl-optimization/80112
24944 * loop-doloop.c (doloop_condition_get): Don't check condition
24945 if cmp isn't SET with IF_THEN_ELSE src.
24946
24947 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24948
24949 PR tree-optimization/80158
24950 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
24951 replacing a candidate statement, also replace it for the
24952 candidate's alternate interpretation.
24953 (replace_rhs_if_not_dup): Likewise.
24954 (replace_one_candidate): Likewise.
24955
24956 2017-03-24 Richard Biener <rguenther@suse.de>
24957
24958 PR tree-optimization/80167
24959 * graphite-isl-ast-to-gimple.c
24960 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
24961 properly.
24962 (translate_isl_ast_to_gimple::get_rename): Likewise.
24963
24964 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
24965
24966 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
24967 handling of certain combinations of target options, including the
24968 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
24969 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
24970
24971 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24972
24973 PR target/71436
24974 * config/arm/arm.md (*load_multiple): Add reload_completed to
24975 matching condition.
24976
24977 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24978 Richard Biener <rguenth@suse.de>
24979
24980 PR tree-optimization/79908
24981 PR tree-optimization/80136
24982 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
24983 been cast away, gimplify_and_add suffices.
24984
24985 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
24986
24987 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
24988
24989 2017-03-23 Richard Biener <rguenther@suse.de>
24990
24991 PR tree-optimization/80032
24992 * gimplify.c (gimple_push_cleanup): Forced unconditional
24993 cleanups still have to go to the conditional_cleanups
24994 sequence.
24995
24996 2017-03-22 Jakub Jelinek <jakub@redhat.com>
24997
24998 PR tree-optimization/80072
24999 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
25000 to unsigned int.
25001 (next_operand_entry_id): Change type to unsigned int.
25002 (sort_by_operand_rank): Make sure to return the right return value
25003 even if unsigned fields are bigger than INT_MAX.
25004 (struct oecount): Change cnt and id type to unsigned int.
25005 (oecount_hasher::equal): Formatting fix.
25006 (oecount_cmp): Make sure to return the right return value
25007 even if unsigned fields are bigger than INT_MAX.
25008 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
25009
25010 PR c++/80129
25011 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
25012 TREE_READONLY on result if writing it more than once.
25013
25014 PR sanitizer/80110
25015 * doc/invoke.texi (-fsanitize=thread): Document that with
25016 -fnon-call-exceptions atomics are not able to throw
25017 exceptions.
25018
25019 PR sanitizer/80110
25020 * tsan.c: Include tree-eh.h.
25021 (instrument_builtin_call): Call maybe_clean_eh_stmt or
25022 maybe_clean_or_replace_eh_stmt where needed.
25023 (instrument_memory_accesses): Add cfg_changed argument.
25024 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
25025 if it returned true.
25026 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
25027
25028 PR rtl-optimization/63191
25029 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
25030 wrapper function, moved the whole old content into ...
25031 (ix86_delegitimize_address_1): ... this. New inline function.
25032 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
25033 true as last argument instead of ix86_delegitimize_address.
25034
25035 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
25036
25037 * config/aarch64/aarch64.c (generic_branch_cost): Copy
25038 cortexa57_branch_cost.
25039
25040 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
25041
25042 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
25043
25044 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
25045
25046 PR target/80123
25047 * doc/md.texi (Constraints): Document wA constraint.
25048 * config/rs6000/constraints.md (wA): New.
25049 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
25050 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
25051 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
25052 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
25053
25054 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
25055
25056 PR c++/80029
25057 * gimplify.c (is_oacc_declared): New function.
25058 (oacc_default_clause): Use it to set default flags for acc declared
25059 variables inside parallel regions.
25060 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
25061 declared variables.
25062 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
25063 declare attribute to any decl as necessary.
25064
25065 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
25066
25067 PR target/80082
25068 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
25069 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
25070 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
25071 (arm_arch_lpae): This.
25072 * config/arm/arm.c (arm_arch7ve): Rename into ...
25073 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
25074 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
25075 arm_arch_lpae.
25076
25077 2017-03-22 Martin Liska <mliska@suse.cz>
25078
25079 PR target/79906
25080 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
25081 error message instead of an ICE.
25082
25083 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25084
25085 * doc/extend.texi (6.11 Additional Floating Types): Revise.
25086
25087 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
25088
25089 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
25090 comments.
25091 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
25092 comments.
25093
25094 2017-03-21 Martin Sebor <msebor@redhat.com>
25095
25096 * doc/extend.texi: Use "cannot" instead of "can't."
25097 * doc/hostconfig.texi: Same.
25098 * doc/install.texi: Same.
25099 * doc/invoke.texi: Same.
25100 * doc/loop.texi: Same.
25101 * doc/md.texi: Same.
25102 * doc/objc.texi: Same.
25103 * doc/rtl.texi: Same.
25104 * doc/tm.texi: Same.
25105 * doc/tm.texi.in: Same.
25106 * doc/trouble.texi: Same.
25107
25108 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
25109
25110 PR debug/63238
25111 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
25112 (collect_checksum_attributes): Set it.
25113 (die_checksum_ordered): Use it.
25114
25115 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25116
25117 PR tree-optimization/79908
25118 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
25119 change: For a VA_ARG whose LHS has been cast away, use
25120 force_gimple_operand to construct the side effects.
25121
25122 2017-03-21 David Malcolm <dmalcolm@redhat.com>
25123
25124 PR translation/80001
25125 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
25126 more amenable to translation.
25127 (oacc_loop_auto_partitions): Likewise.
25128
25129 2017-03-21 Marek Polacek <polacek@redhat.com>
25130 Martin Sebor <msebor@redhat.com>
25131
25132 PR tree-optimization/80109
25133 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
25134 on INTEGRAL_TYPE_P.
25135
25136 2017-03-21 Jakub Jelinek <jakub@redhat.com>
25137 Segher Boessenkool <segher@kernel.crashing.org>
25138
25139 PR target/80125
25140 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
25141 check reg_used_between_p between insn and one of succ or succ2
25142 depending on if succ is artificial insn not inserted into insn
25143 stream.
25144
25145 2017-03-21 Martin Liska <mliska@suse.cz>
25146
25147 PR gcov-profile/80081
25148 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
25149 * doc/gcc.texi: Include gcov-dump stuff.
25150 * doc/gcov-dump.texi: New file.
25151
25152 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
25153
25154 PR rtl-optimization/79150
25155 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
25156 conditional jump, if the jump is the last insn of the loop.
25157
25158 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25159 Richard Biener <rguenth@suse.de>
25160
25161 PR tree-optimization/79908
25162 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
25163 been cast away, use force_gimple_operand to construct the side
25164 effects.
25165
25166 2017-03-21 Martin Liska <mliska@suse.cz>
25167
25168 PR libfortran/79956
25169 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
25170 to NULL.
25171
25172 2017-03-21 Brad Spengler <spender@grsecurity.net>
25173
25174 PR plugins/80094
25175 * plugin.c (htab_hash_plugin): New function.
25176 (add_new_plugin): Use it and adjust.
25177 (parse_plugin_arg_opt): Adjust.
25178 (init_one_plugin): Likewise.
25179
25180 2017-03-21 Richard Biener <rguenther@suse.de>
25181
25182 PR tree-optimization/80032
25183 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
25184 if set force the cleanup to happen unconditionally.
25185 (gimplify_target_expr): Push inserted clobbers with force_uncond
25186 to avoid them being removed by control-dependent DCE.
25187
25188 2017-03-21 Richard Biener <rguenther@suse.de>
25189
25190 PR tree-optimization/80122
25191 * tree-inline.c (copy_bb): Do not expans va-arg packs or
25192 va_arg_pack_len when the inlined call stmt requires pack
25193 expansion itself.
25194 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
25195
25196 2017-03-21 Jakub Jelinek <jakub@redhat.com>
25197
25198 PR sanitizer/78158
25199 * tsan.c (instrument_builtin_call): If the memory model argument
25200 is not a constant, assume it is valid.
25201
25202 PR c/67338
25203 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
25204 avoid UB.
25205
25206 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
25207
25208 PR rtl-optimization/79910
25209 * combine.c (can_combine_p): Do not allow combining an I0 or I1
25210 if its dest is used by an insn before I2 (other than the combined
25211 insns themselves, which are properly handled already).
25212
25213 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
25214
25215 Revert:
25216 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
25217
25218 * combine.c (record_used_regs): New static function.
25219 (try_combine): Handle situations where there is an additional
25220 instruction between I2 and I3 which needs to have a LOG_LINK
25221 updated.
25222
25223 Revert:
25224 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
25225
25226 * combine.c (try_combine): Delete redundant i1 test. Call
25227 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
25228
25229 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
25230
25231 PR target/80083
25232 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
25233 alternatives 13/14.
25234
25235 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25236
25237 PR tree-optimization/80054
25238 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
25239 the optimization if a PHI or any of its arguments is not dominated
25240 by the candidate's basis. Use gphi* rather than gimple* as
25241 appropriate.
25242 (replace_profitable_candidates): Clean up a gimple* variable that
25243 should be a gphi* variable.
25244
25245 2017-03-20 Martin Sebor <msebor@redhat.com>
25246
25247 PR c++/52477
25248 * doc/extend.texi (attribute constructor): Document present limitation.
25249
25250 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
25251
25252 PR target/79963
25253 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
25254 __POWER9_VECTOR__ #ifdef control, change template definition to
25255 use Power9-specific built-in function.
25256 (vec_any_eq): Likewise.
25257 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
25258 to control outcomes from this test.
25259 (vector_ae_<mode>p): For VEC_F modes, likewise.
25260
25261 2017-03-20 Ian Lance Taylor <iant@google.com>
25262
25263 * config/i386/i386.c (ix86_function_regparm): Save an extra
25264 register for -fsplit-stack with DECL_STATIC_CHAIN.
25265
25266 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
25267
25268 PR target/79912
25269 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
25270 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
25271
25272 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
25273
25274 * config/riscv/riscv.c (riscv_print_operand): Use "fence
25275 iorw,ow".
25276 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
25277 iorw,iorw".
25278
25279 2017-03-20 Marek Polacek <polacek@redhat.com>
25280
25281 PR sanitizer/80063
25282 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
25283
25284 2017-03-20 Richard Biener <rguenther@suse.de>
25285
25286 PR tree-optimization/80113
25287 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
25288 allocate extra SSA name for PHI def.
25289 (add_close_phis_to_outer_loops): Likewise.
25290 (add_close_phis_to_merge_points): Likewise.
25291 (copy_loop_close_phi_args): Likewise.
25292 (copy_cond_phi_nodes): Likewise.
25293
25294 2017-03-20 Martin Liska <mliska@suse.cz>
25295
25296 PR middle-end/79753
25297 * tree-chkp.c (chkp_build_returned_bound): Do not build
25298 returned bounds for a LHS that's not a BOUNDED_P type.
25299
25300 2017-03-20 Martin Liska <mliska@suse.cz>
25301
25302 PR target/79769
25303 PR target/79770
25304 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
25305 COMPLEX_CST and VECTOR_CST.
25306
25307 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25308
25309 PR target/78857
25310 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
25311 target operand. A new splitter adds the clobber statement in case
25312 the target operand is dead anyway.
25313
25314 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
25315
25316 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
25317 to age-old versions of binutils and glibc.
25318
25319 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
25320
25321 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
25322
25323 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
25324
25325 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
25326
25327 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
25328
25329 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
25330 requirement for binutils 2.13.
25331
25332 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
25333
25334 * combine.c (try_combine): Delete redundant i1 test. Call
25335 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
25336
25337 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
25338
25339 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
25340 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
25341 contents.
25342 <riscv64-*-elf>: Re-arrange section
25343 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
25344 <riscv32-*-linux>: Likewise.
25345 <riscv64-*-elf>: Likewise
25346 <riscv64-*-linux>: Likewise.
25347
25348 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
25349
25350 PR target/80052
25351 * aarch64.opt(verbose-cost-dump): Fix typo.
25352
25353 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
25354
25355 PR target/79951
25356 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
25357 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
25358
25359 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
25360
25361 * reload.c (find_reloads): When reloading a nonoffsettable address,
25362 use RELOAD_OTHER for it and its address reloads.
25363
25364 PR rtl-optimization/79910
25365 * combine.c (record_used_regs): New static function.
25366 (try_combine): Handle situations where there is an additional
25367 instruction between I2 and I3 which needs to have a LOG_LINK
25368 updated.
25369
25370 2017-03-17 Jeff Law <law@redhat.com>
25371
25372 PR tree-optimization/71437
25373 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
25374 conditional in the hash table first.
25375 (vrp_dom_walker::before_dom_children): Extract condition from
25376 ASSERT_EXPR. Record condition, its inverion and any implied
25377 conditions as well.
25378
25379 2017-03-17 Marek Polacek <polacek@redhat.com>
25380 Markus Trippelsdorf <markus@trippelsdorf.de>
25381
25382 PR tree-optimization/80079
25383 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
25384 m_stores_head.
25385
25386 2017-03-17 Richard Biener <rguenther@suse.de>
25387
25388 PR middle-end/80075
25389 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
25390 Properly verify the LHS before the RHS possibly claims to be
25391 handled.
25392 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
25393 do not throw.
25394
25395 2017-03-17 Martin Jambor <mjambor@suse.cz>
25396
25397 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
25398 (List of -O2 options): Likewise.
25399 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
25400 (-fipa-vrp) New.
25401
25402 2017-03-17 Tom de Vries <tom@codesourcery.com>
25403
25404 * gcov-dump.c (print_usage): Print bug_report_url.
25405
25406 2017-03-17 Richard Biener <rguenther@suse.de>
25407
25408 PR middle-end/80050
25409 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
25410 (parser::peek): Likewise.
25411
25412 2017-03-17 Richard Biener <rguenther@suse.de>
25413
25414 PR tree-optimization/80048
25415 * sese.c (free_sese_info): Properly release rename_map and
25416 copied_bb_map elements.
25417
25418 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
25419
25420 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
25421 Add linked-list forward and backlinks. Insert on
25422 construction, remove on destruction.
25423 (class pass_store_merging): Add m_stores_head field.
25424 (pass_store_merging::terminate_and_process_all_chains):
25425 Iterate over m_stores_head list.
25426 (pass_store_merging::terminate_all_aliasing_chains):
25427 Likewise.
25428 (pass_store_merging::execute): Check for debug stmts first.
25429 Push new chains onto the m_stores_head stack.
25430
25431 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
25432
25433 PR target/71294
25434 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
25435 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
25436 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
25437
25438 2017-03-16 Jeff Law <law@redhat.com>
25439
25440 PR tree-optimization/71437
25441 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
25442 member function. Implementation moved into after_dom_children
25443 member function and into the threader's thread_outgoing_edges
25444 function.
25445 (dom_opt_dom_walker::after_dom_children): Simplify by moving
25446 some code into new thread_outgoing_edges.
25447 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
25448 definition. Simplify marker handling (do it here). Assume we always
25449 have the available expression and the const/copies tables.
25450 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
25451 and tree-vrp.c
25452 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
25453 * tree-vrp.c (equiv_stack): No longer file scoped.
25454 (vrp_dom_walker): New class.
25455 (vrp_dom_walker::before_dom_children): New member function.
25456 (vrp_dom_walker::after_dom_children): Likewise.
25457 (identify_jump_threads): Setup domwalker. Use it rather than
25458 walking edges in a random order by hand. Simplify setup/finalization.
25459 (finalize_jump_threads): Remove.
25460 (vrp_finalize): Do not call identify_jump_threads here.
25461 (execute_vrp): Do it here instead and call thread_through_all_blocks
25462 here too.
25463
25464 PR tree-optimization/71437
25465 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
25466 callers changed.
25467 (simplify_stmt_for_jump_threading): Add basic_block argument. All
25468 callers changed.
25469 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
25470 (dom_opt_dom_walker::thread_across_edge): Remove
25471 handle_dominating_asserts argument. All callers changed.
25472 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
25473 changes. Remove calls to lhs_of_dominating_assert. Other
25474 uses of handle_dominating_asserts turn into unconditional code
25475 (simplify_control_stmt_condition_1): Likewise.
25476 (simplify_control_stmt_condition): Likewise.
25477 (thread_through_normal_block, thread_across_edge): Likewise.
25478 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
25479 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
25480 object if it is not an SSA_NAME.
25481 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
25482 before calling into the VRP specific simplifiers.
25483 (identify_jump_threads): Remove handle_dominating_asserts
25484 argument.
25485
25486 2017-03-16 Jakub Jelinek <jakub@redhat.com>
25487
25488 PR fortran/79886
25489 * tree-diagnostic.c (default_tree_printer): No longer static.
25490 * tree-diagnostic.h (default_tree_printer): New prototype.
25491
25492 2017-03-16 Tamar Christina <tamar.christina@arm.com>
25493
25494 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
25495 Change ins into fmov.
25496
25497 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25498
25499 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
25500 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
25501 Use h_con constraint for operand 1.
25502 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
25503 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
25504
25505 2017-03-15 Jeff Law <law@redhat.com>
25506
25507 PR tree-optimization/71437
25508 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
25509 (record_temporary_equivalences): Use it.
25510
25511 PR tree-optimization/71437
25512 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
25513 tree-ssa-scopedtables.
25514 (lookup_avail_expr, build_and_record_new_cond): Likewise.
25515 (record_conditions, record_cond, vuse_eq): Likewise.
25516 (record_edge_info): Adjust to API tweak of record_conditions.
25517 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
25518 (record_temporary_equivalences, optimize_stmt): Likewise.
25519 (eliminate_redundant_computations): Likewise.
25520 (record_equivalences_from_stmt): Likewise.
25521 * tree-ssa-scopedtables.c: Include options.h and params.h.
25522 (vuse_eq): New function, moved from tree-ssa-dom.c
25523 (build_and_record_new_cond): Likewise.
25524 (record_conditions): Likewise. Accept vector of conditions rather
25525 than edge_equivalence structure for first argument.
25526 for the first argument.
25527 (avail_exprs_stack::lookup_avail_expr): New member function, moved
25528 from tree-ssa-dom.c.
25529 (avail_exprs_stack::record_cond): Likewise.
25530 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
25531 from tree-ssa-dom.c.
25532 (avail_exprs_stack): Add new member functions lookup_avail_expr
25533 and record_cond.
25534 (record_conditions): Declare.
25535
25536 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
25537
25538 PR target/80017
25539 * lra-constraints.c (process_alt_operands): Increase reject for
25540 reloading an input/output operand.
25541
25542 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
25543
25544 PR target/79038
25545 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
25546 insns to convert from signed/unsigned char/short to IEEE 128-bit
25547 floating point.
25548 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
25549
25550 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
25551
25552 PR target/80019
25553 * config/i386/i386.c (ix86_vector_duplicate_value): Create
25554 subreg of inner mode for values already in registers.
25555
25556 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
25557
25558 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
25559 iteration reg is used after the loop.
25560
25561 2017-03-14 Martin Sebor <msebor@redhat.com>
25562
25563 PR tree-optimization/79800
25564 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
25565 precision in negative-positive range.
25566 (format_floating): Call non-const overload with adjusted precision.
25567
25568 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
25569
25570 PR target/79947
25571 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
25572 -mpowerpc-gfxopt.
25573
25574 2017-03-14 Martin Sebor <msebor@redhat.com>
25575
25576 PR middle-end/80020
25577 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
25578 * builtins.def (aligned_alloc): Use it.
25579
25580 PR c/79936
25581 * Makefile.in (GTFILES): Add calls.c.
25582 * calls.c: Include "gt-calls.h".
25583
25584 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
25585
25586 PR rtl-optimization/79728
25587 * regs.h (struct target_regs): New field
25588 x_contains_allocatable_regs_of_mode.
25589 (contains_allocatable_regs_of_mode): New macro.
25590 * reginfo.c (init_reg_sets_1): Initialize it, and change
25591 contains_reg_of_mode so it includes global regs as well.
25592 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
25593 rather than contains_regs_of_mode.
25594
25595 2017-03-14 Martin Liska <mliska@suse.cz>
25596
25597 * doc/invoke.texi: Document options that can't be combined with
25598 -fcheck-pointer-bounds.
25599
25600 2017-03-14 Martin Liska <mliska@suse.cz>
25601
25602 PR middle-end/79831
25603 * doc/invoke.texi (-Wchkp): Document the option.
25604
25605 2017-03-14 Martin Liska <mliska@suse.cz>
25606
25607 * Makefile.in: Install gcov-dump.
25608
25609 2017-03-14 Martin Liska <mliska@suse.cz>
25610
25611 * multiple_target.c (expand_target_clones): Bail out for
25612 an invalid attribute.
25613
25614 2017-03-14 Richard Biener <rguenther@suse.de>
25615
25616 * alias.c (struct alias_set_entry): Pack properly.
25617 * cfgloop.h (struct loop): Likewise.
25618 * cse.c (struct set): Likewise.
25619 * ipa-utils.c (struct searchc_env): Likewise.
25620 * loop-invariant.c (struct invariant): Likewise.
25621 * lra-remat.c (struct cand): Likewise.
25622 * recog.c (struct change_t): Likewise.
25623 * rtl.h (struct address_info): Likewise.
25624 * symbol-summary.h (function_summary): Likewise.
25625 * tree-loop-distribution.c (struct partition): Likewise.
25626 * tree-object-size.c (struct object_size_info): Likewise.
25627 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
25628 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
25629 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
25630 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
25631 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
25632 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
25633 (struct _stmt_vec_info): Likewise.
25634
25635 2017-03-14 Martin Liska <mliska@suse.cz>
25636
25637 PR target/79892
25638 * multiple_target.c (create_dispatcher_calls): Check that
25639 a target can create a function dispatcher.
25640
25641 2017-03-14 Martin Liska <mliska@suse.cz>
25642
25643 PR lto/66295
25644 * multiple_target.c (expand_target_clones): Drop local.local
25645 flag for default implementation.
25646
25647 2017-03-14 Richard Biener <rguenther@suse.de>
25648
25649 PR tree-optimization/80030
25650 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
25651
25652 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
25653
25654 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
25655 gcc_fallthrough() instead of __attribute__((fallthrough));
25656
25657 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
25658
25659 * doc/gcc.texi: Remove "up" link to (DIR).
25660 * doc/gccint.texi: Ditto.
25661
25662 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
25663
25664 * doc/install.texi (Specific) <avr>: Remove reference to
25665 binutils 2.13.
25666
25667 2017-03-13 Jeff Law <law@redhat.com>
25668
25669 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
25670 attribute rather than comments.
25671
25672 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
25673 match_scratch operand is highest.
25674
25675 2017-03-13 Martin Liska <mliska@suse.cz>
25676
25677 PR middle-end/78339
25678 * ipa-pure-const.c (warn_function_noreturn): If the declarations
25679 is a CHKP clone, use original declaration.
25680
25681 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
25682
25683 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
25684 (arc_conditional_register_usage): Use a different allocation order
25685 when optimizing for size.
25686 * common/config/arc/arc-common.c (arc_option_optimization_table):
25687 Section anchors default on when optimizing for size.
25688
25689 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
25690
25691 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
25692
25693 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
25694
25695 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
25696 * config/arc/arc.md (cpu_facility): Add cd variant.
25697 (*movqi_insn): Add code density variant.
25698 (*movhi_insn): Likewise.
25699 (*movqi_insn): Likewise.
25700 (*addsi3_mixed): Likewise.
25701 (subsi3_insn): Likewise.
25702
25703 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
25704
25705 * config/arc/arc.md (movsi_cond_exec): Update constraint.
25706
25707 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
25708
25709 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
25710 expressions with MINUS and UNARY ops.
25711
25712 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25713
25714 PR target/79911
25715 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
25716 Rename to...
25717 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
25718 between vec_select and vector argument.
25719 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
25720 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
25721 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
25722 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
25723 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
25724 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
25725
25726 2017-03-13 Richard Biener <rguenther@suse.de>
25727
25728 PR other/79991
25729 * params.def (vect-max-peeling-for-alignment): Fix typo.
25730
25731 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
25732
25733 * doc/install.texi (Specific) <mips-*-*>: Remove description of
25734 issue that only occurred with binutils below 2.18.
25735
25736 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
25737
25738 * doc/install.texi (Specific) <cris-axis-elf>: No longer
25739 refer to binutils 2.11/2.12 minimum.
25740
25741 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
25742
25743 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
25744 ftp.kernel.org and simplify binutils requirement.
25745
25746 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
25747
25748 * doc/invoke.texi (Warning Options): Fix spelling of link-time
25749 optimization.
25750 (Optimize Options): Ditto. Also remove redundancy.
25751
25752 2017-03-10 David Malcolm <dmalcolm@redhat.com>
25753
25754 PR translation/79848
25755 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
25756 "%qs".
25757 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
25758 to G_ to avoid double translation.
25759
25760 2017-03-10 David Malcolm <dmalcolm@redhat.com>
25761
25762 PR translation/79923
25763 * auto-profile.c (get_combined_location): Convert leading
25764 character of diagnostics to lower case and remove trailing period.
25765 (read_profile): Likewise for various diagnostics.
25766 * config/arm/arm.c (arm_option_override): Remove trailing period
25767 from various diagnostics.
25768 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
25769 (msp430_expand_delay_cycles): Likewise.
25770
25771 2017-03-10 David Malcolm <dmalcolm@redhat.com>
25772
25773 PR target/79925
25774 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
25775 full command-line argument, rather than just "str".
25776 (aarch64_validate_march): Likewise.
25777 (aarch64_validate_mtune): Likewise.
25778
25779 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
25780
25781 PR rtl-optimization/78911
25782 * lra-assigns.c (must_not_spill_p): New function.
25783 (spill_for): Use it.
25784
25785 2017-03-10 Jakub Jelinek <jakub@redhat.com>
25786
25787 PR tree-optimization/79981
25788 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
25789 ATOMIC_COMPARE_EXCHANGE ifn result.
25790 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
25791 IFN_ATOMIC_COMPARE_EXCHANGE.
25792
25793 2017-03-10 David Malcolm <dmalcolm@redhat.com>
25794
25795 PR driver/79875
25796 * opts.c (parse_sanitizer_options): Add missing question mark to
25797 "did you mean" message.
25798
25799 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25800
25801 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
25802 built-in.
25803 (VMULEUH_UNS): Likewise.
25804 (VMULOUB_UNS): Likewise.
25805 (VMULOUH_UNS): Likewise.
25806 * config/rs6000/rs6000.c (builtin_function_type): Remove
25807 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
25808
25809 2017-03-10 David Malcolm <dmalcolm@redhat.com>
25810
25811 PR bootstrap/79952
25812 * read-rtl-function.c (function_reader::read_rtx_operand): Update
25813 x with result of extra_parsing_for_operand_code_0.
25814 (function_reader::extra_parsing_for_operand_code_0): Convert
25815 return type from void to rtx, returning x. When reading
25816 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
25817 larger size containing struct block_symbol.
25818
25819 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
25820
25821 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
25822 -mfloat128-hardware without -m64.
25823
25824 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
25825
25826 PR target/79941
25827 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
25828 entries to the case statement that marks unsigned arguments to
25829 overloaded functions.
25830
25831 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
25832
25833 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
25834 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
25835
25836 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
25837
25838 PR target/79907
25839 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
25840 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
25841
25842 2017-03-10 Martin Liska <mliska@suse.cz>
25843
25844 PR target/65705
25845 PR target/69804
25846 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
25847 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
25848 FIELD != NULL.
25849
25850 2017-03-10 Olivier Hainque <hainque@adacore.com>
25851
25852 * tree-switch-conversion (array_value_type): Start by resetting
25853 candidate type to it's main variant.
25854
25855 2017-03-10 Jakub Jelinek <jakub@redhat.com>
25856
25857 PR rtl-optimization/79909
25858 * combine.c (try_combine): Use simplify_replace_rtx on individual
25859 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
25860 of the whole CALL_INSN_FUNCTION_USAGE.
25861
25862 PR tree-optimization/79972
25863 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
25864 get_range_info on SSA_NAMEs. Formatting fixes.
25865
25866 2017-03-10 Richard Biener <rguenther@suse.de>
25867 Jakub Jelinek <jakub@redhat.com>
25868
25869 PR tree-optimization/77975
25870 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
25871 edge to be constant.
25872 (get_val_for): For constant x return it. Formatting fix.
25873 (loop_niter_by_eval): Avoid pointless looping if the next iteration
25874 would use the same bases as the current one.
25875
25876 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25877
25878 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
25879 instead of vec_select for V1TImode.
25880 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
25881 longer needed.
25882 (VSX_LE_128): Add V1TI to this mode iterator.
25883 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
25884 (*vsx_le_perm_store_<mode>): Likewise.
25885 (pre-reload splitter for VSX stores): Likewise.
25886 (post-reload splitter for VSX stores): Likewise.
25887 (*vsx_xxpermdi2_le_<mode>): Likewise.
25888 (*vsx_lxvd2x2_le_<mode>): Likewise.
25889 (*vsx_stxvd2x2_le_<mode>): Likewise.
25890
25891 2017-03-09 Michael Eager <eager@eagercon.com>
25892
25893 Correct failures with --enable-checking=yes,rtl.
25894
25895 * config/microblaze/microblaze.c (microblaze_expand_shift):
25896 Replace GET_CODE test with CONST_INT_P and INTVAL test with
25897 test for const0_rtx.
25898 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
25899 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
25900
25901 2017-03-09 Richard Biener <rguenther@suse.de>
25902
25903 PR tree-optimization/79977
25904 * graphite-scop-detection.c (scop_detection::merge_sese):
25905 Handle the case of extra exits to blocks dominating the entry.
25906
25907 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
25908
25909 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
25910 Document rdynamic.
25911
25912 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
25913
25914 PR rtl-optimization/79949
25915 * lra-constraints.c (process_alt_operands): Check memory when
25916 trying to predict a cycle. Print about the overall increase.
25917
25918 2017-03-09 Richard Biener <rguenther@suse.de>
25919
25920 PR middle-end/79971
25921 * gimple-expr.c (useless_type_conversion_p): Preserve
25922 TYPE_SATURATING for fixed-point types.
25923
25924 2017-03-09 Richard Biener <rguenther@suse.de>
25925
25926 PR ipa/79970
25927 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
25928 alignment of BLKmode params.
25929
25930 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25931
25932 PR target/79913
25933 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
25934 (VALL_NO_V2Q): Likewise.
25935 (VDQF_DF): Delete.
25936 * config/aarch64/aarch64-simd.md
25937 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
25938 iterator.
25939 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
25940 VALL_NO_V2Q mode iterator.
25941 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
25942
25943 2017-03-09 Martin Liska <mliska@suse.cz>
25944
25945 PR tree-optimization/79631
25946 * tree-chkp-opt.c (chkp_is_constant_addr): Call
25947 tree_int_cst_sign_bit just for INTEGER constants.
25948
25949 2017-03-09 Martin Liska <mliska@suse.cz>
25950
25951 PR target/65705
25952 PR target/69804
25953 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
25954 sanitizers.
25955
25956 2017-03-09 Marek Polacek <polacek@redhat.com>
25957
25958 PR c++/79672
25959 * tree.c (inchash::add_expr): Handle TREE_VEC.
25960
25961 2017-03-09 Martin Liska <mliska@suse.cz>
25962
25963 PR ipa/79764
25964 (chkp_narrow_size_and_offset): New function.
25965 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
25966 (void chkp_parse_bit_field_ref): New function.
25967 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
25968 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
25969
25970 2017-03-09 Martin Liska <mliska@suse.cz>
25971
25972 PR ipa/79761
25973 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
25974 (chkp_find_bounds_1): Remove gcc_unreachable.
25975
25976 2017-03-09 Jakub Jelinek <jakub@redhat.com>
25977
25978 PR sanitizer/79944
25979 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
25980 BUILT_IN_SYNC*, determine the access type from the size suffix and
25981 always build a MEM_REF with that type. Handle forgotten
25982 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
25983
25984 PR target/79932
25985 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
25986 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
25987 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
25988 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
25989 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
25990 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
25991 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
25992 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
25993 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
25994 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
25995 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
25996 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
25997 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
25998 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
25999 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
26000 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
26001 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
26002 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
26003 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
26004 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
26005 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
26006 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
26007 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
26008 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
26009 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
26010 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
26011 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
26012 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
26013 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
26014 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
26015 definitions outside of __OPTIMIZE__ guarded section.
26016
26017 PR target/79932
26018 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
26019 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
26020 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
26021 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
26022 guarded section.
26023
26024 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26025
26026 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
26027 ("vfenez<mode>"): Add missing constraints.
26028
26029 2017-03-08 Martin Sebor <msebor@redhat.com>
26030
26031 PR target/79928
26032 * config/nds32/nds32.c (nds32_option_override):
26033 Fix misspelled diagnostic.
26034
26035 2017-03-08 Jakub Jelinek <jakub@redhat.com>
26036
26037 PR c/79940
26038 * gimplify.c (gimplify_omp_for): Replace index var in outer
26039 taskloop statement with an artificial variable and add
26040 OMP_CLAUSE_PRIVATE clause for it.
26041
26042 2017-03-08 Richard Biener <rguenther@suse.de>
26043
26044 PR tree-optimization/79955
26045 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
26046 for accesses that are completely outside of the variable.
26047
26048 2017-03-08 Andrew Haley <aph@redhat.com>
26049
26050 PR tree-optimization/79943
26051 * tree-ssa-loop-split.c (compute_new_first_bound): When
26052 calculating the new upper bound, (END-BEG) should be added, not
26053 subtracted.
26054
26055 2017-03-08 Jakub Jelinek <jakub@redhat.com>
26056
26057 * config/avr/avr.md (setmemhi): Make sure match_dup
26058 operand number comes before match_scratch.
26059
26060 2017-03-08 Richard Biener <rguenther@suse.de>
26061
26062 PR tree-optimization/79920
26063 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
26064 with ncopies == 1 to ...
26065 (vect_transform_slp_perm_load): ... here. Properly compute
26066 all element loads by iterating VF times over the group. Do
26067 not handle ncopies (computed in a broken way) in
26068 vect_create_mask_and_perm.
26069
26070 2017-03-08 Jakub Jelinek <jakub@redhat.com>
26071
26072 PR sanitizer/79904
26073 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
26074 is a uniform vector, use uniform_vector_p return value instead of
26075 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
26076
26077 2017-03-07 Marek Polacek <polacek@redhat.com>
26078
26079 PR middle-end/79809
26080 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
26081 (alloca_call_type): Likewise.
26082
26083 2017-03-07 Martin Liska <mliska@suse.cz>
26084
26085 * gcov.c (process_args): Put comment to correct location.
26086
26087 2017-03-07 Martin Liska <mliska@suse.cz>
26088
26089 PR middle-end/68270
26090 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
26091 Use array_at_struct_end_p instead of DECL_CHAIN (field).
26092 (chkp_narrow_bounds_for_field): Likewise.
26093 (chkp_parse_array_and_component_ref): Pass one more argument to
26094 call.
26095
26096 2017-03-07 Richard Biener <rguenther@suse.de>
26097
26098 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
26099 preheaders.
26100
26101 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
26102
26103 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
26104 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
26105
26106 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26107
26108 PR c/79855
26109 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
26110 to end of description.
26111 (PARAM_MAX_STORES_TO_MERGE): Likewise.
26112
26113 2017-03-07 Jakub Jelinek <jakub@redhat.com>
26114
26115 PR rtl-optimization/79901
26116 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
26117 ...
26118 (*avx512f_<code><mode>3<mask_name>): ... this.
26119 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
26120 iterator instead of VI8_AVX2_AVX512BW.
26121
26122 PR rtl-optimization/79901
26123 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
26124 min/max expander, expand it using expand_vec_cond_expr.
26125
26126 PR sanitizer/79897
26127 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
26128 temporary.
26129
26130 2017-03-06 Jakub Jelinek <jakub@redhat.com>
26131
26132 PR c++/79821
26133 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
26134 to void * for PCH reasons.
26135 * dwarf2out.c (output_loc_operands, output_die): Cast
26136 v.val_vec.array to unsigned char *.
26137
26138 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
26139
26140 PR target/77850
26141 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
26142 vector types.
26143
26144 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
26145
26146 PR rtl-optimization/79571
26147 * lra-constraints.c (process_alt_operands): Calculate static
26148 reject and subtract it from overall when only addresses will be
26149 reloaded.
26150
26151 2017-03-06 Julia Koval <julia.koval@intel.com>
26152
26153 PR target/79793
26154 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
26155 incoming stack boundary to 128 for 64-bit targets.
26156
26157 2017-03-06 Richard Biener <rguenther@suse.de>
26158
26159 PR tree-optimization/79894
26160 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
26161 to NULL after folding it.
26162
26163 2017-03-06 Richard Biener <rguenther@suse.de>
26164
26165 PR tree-optimization/79824
26166 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
26167 check disabling peeling for gaps.
26168
26169 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
26170
26171 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
26172 attributes): Document gettimeofday.
26173
26174 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
26175
26176 * config/s390/s390.c (s390_option_override_internal): Set
26177 PARAM_MIN_VECT_LOOP_BOUND
26178
26179 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
26180
26181 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
26182 * config/s390/s390.md: Likewise.
26183
26184 2017-03-06 Jakub Jelinek <jakub@redhat.com>
26185
26186 PR target/79812
26187 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
26188 (<avx2_avx512>_perm<mode>): Rename to ...
26189 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
26190 of VI8F_256_512.
26191 (<avx512>_perm<mode>_mask): Rename to ...
26192 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
26193 of VI8F_256_512.
26194 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
26195 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
26196 instead of VI8F_256_512.
26197 (avx512f_perm<mode>): New define_expand.
26198 (avx512f_perm<mode>_mask): Likewise.
26199 (avx512f_perm<mode>_1<mask_name>): New define_insn.
26200 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
26201
26202 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
26203
26204 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
26205 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
26206 if_then_else.
26207 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
26208
26209 2017-03-06 Martin Liska <mliska@suse.cz>
26210
26211 PR sanitize/79783
26212 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
26213 when having a SSA NAME w/o VAR_DECL assigned to it.
26214
26215 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
26216
26217 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
26218 msa_dpsub_<su>_d): Fix MODE for vec_select.
26219
26220 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
26221
26222 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
26223 argument.
26224 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
26225
26226 2017-03-06 Richard Biener <rguenther@suse.de>
26227
26228 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
26229 * plugin.c (register_plugin_info): Likewise.
26230 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
26231
26232 2017-03-05 Jakub Jelinek <jakub@redhat.com>
26233
26234 * config/i386/sse.md (sse_storehps, sse_storelps,
26235 avx_<castmode><avxsizesuffix>_<castmode>,
26236 avx512f_<castmode><avxsizesuffix>_<castmode>,
26237 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
26238 in condition that at least one operand is not a MEM.
26239
26240 2017-03-03 Jakub Jelinek <jakub@redhat.com>
26241
26242 PR middle-end/79805
26243 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
26244 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
26245 ECF_NOTHROW.
26246 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
26247 gimple_call_nothrow_p flag based on whether original builtin can throw.
26248 If it can, emit following stmts on the fallthrough edge.
26249 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
26250 don't create new bb if inserting just debug stmts on the edge, try to
26251 insert them on the fallthru bb or just reset debug stmts.
26252
26253 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
26254
26255 PR target/43763
26256 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
26257 restore recog_data (including the operand rtxes inside it) around
26258 the call to get_insn_template.
26259
26260 2017-03-03 Martin Sebor <msebor@redhat.com>
26261
26262 PR tree-optimization/79699
26263 * context.c (context::~context): Free MPFR caches to avoid
26264 a memory leak on program exit.
26265
26266 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26267
26268 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
26269 Use wide_int::ulow () instead of .elt (0).
26270
26271 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
26272
26273 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
26274 (*pushxf): Limit oF constraint to 32bit targets and add oC
26275 constraint for 64bit targets.
26276 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
26277 (*pushdf): Change rmF constraint to rmC.
26278
26279 2017-03-03 Martin Liska <mliska@suse.cz>
26280
26281 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
26282 Remove unused variable.
26283
26284 2017-03-03 Jakub Jelinek <jakub@redhat.com>
26285
26286 PR target/79807
26287 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
26288 is a memory operand, increase num_memory.
26289 (ix86_expand_args_builtin): Likewise.
26290
26291 2017-03-03 Jan Hubicka <jh@suse.cz>
26292
26293 PR lto/79760
26294 * ipa-devirt.c (maybe_record_node): Properly handle
26295 __cxa_pure_virtual visibility.
26296
26297 2017-03-03 Martin Liska <mliska@suse.cz>
26298
26299 PR tree-optimization/79803
26300 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
26301 assert.
26302 (pass_loop_prefetch::execute): Disabled optimization if an
26303 assumption about L1 cache size is not met.
26304
26305 2017-03-03 Martin Liska <mliska@suse.cz>
26306
26307 PR rtl-optimization/79574
26308 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
26309 (hash_scan_set): Likewise.
26310 (dump_hash_table): Likewise.
26311 (hoist_code): Likewise.
26312
26313 2017-03-03 Richard Biener <rguenther@suse.de>
26314
26315 * fixed-value.c (fixed_from_string): Restore use of elt (1)
26316 in place of uhigh ().
26317 (fixed_convert_from_real): Likewise.
26318
26319 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
26320
26321 PR target/79514
26322 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
26323
26324 2017-03-03 Richard Biener <rguenther@suse.de>
26325
26326 PR middle-end/79818
26327 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
26328 TYPE_OVERFLOW_UNDEFINED check.
26329
26330 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26331
26332 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
26333 numbers.
26334 (vector_ae_<mode>_p): Likewise.
26335 (vector_nez_<mode>_p): Likewise.
26336 (vector_ne_v2di_p): Likewise.
26337 (vector_ae_v2di_p): Likewise.
26338 (vector_ne_<mode>_p): Likewise.
26339 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
26340 numbers.
26341 (vsx_tsqrt<mode>2_fe): Likewise.
26342
26343 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
26344
26345 PR target/79514
26346 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
26347
26348 2017-03-02 Jakub Jelinek <jakub@redhat.com>
26349
26350 PR rtl-optimization/79780
26351 * cprop.c (one_cprop_pass): When second and further conditional trap
26352 in a single basic block is turned into an unconditional trap, turn it
26353 into a deleted note to avoid RTL verification failures.
26354
26355 2017-03-02 Richard Biener <rguenther@suse.de>
26356
26357 * fold-const.c (const_binop): Use ulow () instead of elt (0).
26358
26359 2017-03-02 Richard Biener <rguenther@suse.de>
26360
26361 PR tree-optimization/79345
26362 PR c++/42000
26363 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
26364 param and abort the walk, returning -1 if it is hit.
26365 (walk_aliased_vdefs): Take a limit param and pass it on.
26366 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
26367 defaulting to 0 and return a signed int.
26368 * tree-ssa-uninit.c (struct check_defs_data): New struct.
26369 (check_defs): New helper.
26370 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
26371 about uninitialized memory.
26372 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
26373 bogus uninitialized warning.
26374 (fixed_convert_from_real): Likewise.
26375
26376 2017-03-02 Bin Cheng <bin.cheng@arm.com>
26377
26378 PR tree-optimization/66768
26379 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
26380 iv_use if base object can't be determined.
26381
26382 2017-03-02 Jakub Jelinek <jakub@redhat.com>
26383
26384 PR tree-optimization/79345
26385 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
26386 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
26387 (get_pattern_stats): Initialize it.
26388 * genemit.c (gen_expand): Verify match_scratch numbers come after
26389 match_operand/match_dup numbers.
26390 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
26391 match_scratch numbers.
26392 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
26393 Likewise.
26394 * config/s390/s390.md (trunctdsd2): Likewise.
26395
26396 2017-03-02 Richard Biener <rguenther@suse.de>
26397
26398 * wide-int.h (wide_int_storage::operator=): Implement in terms
26399 of wi::copy.
26400
26401 2017-03-02 Richard Biener <rguenther@suse.de>
26402
26403 PR tree-optimization/79777
26404 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
26405 the to insert expression to sth existing.
26406
26407 2017-03-01 Martin Sebor <msebor@redhat.com>
26408
26409 PR middle-end/79692
26410 * gimple-ssa-sprintf.c
26411 (directive::known_width_and_precision): New function.
26412 (format_integer): Use it.
26413 (get_mpfr_format_length): Consider the full range of precision
26414 when computing %g output with the # flag. Set the likely byte
26415 count to 3 rather than 1 when precision is indeterminate.
26416 (format_floating): Correct the lower bound of precision.
26417
26418 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26419
26420 * doc/invoke.texi: Document default code model for 64-bit Linux.
26421
26422 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
26423
26424 PR target/79752
26425 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
26426 udiv rather than div since input pattern is unsigned.
26427
26428 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
26429
26430 * config/i386/i386.c (print_reg): Warn for values of
26431 unsupported size in integer register.
26432
26433 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
26434
26435 PR target/79439
26436 * config/rs6000/predicates.md (current_file_function_operand): Do
26437 not allow self calls to be local if the function is replaceable.
26438
26439 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
26440
26441 PR target/79395
26442 * config/rs6000/altivec.h (vec_ctz and others): Change the
26443 preprocessor macro that controls conditional compilation from
26444 _ARCH_PWR9 to __POWER9_VECTOR__.
26445 (vec_all_ne): Change parameterization of __altivec_scalar_pred
26446 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
26447 control (instead of _ARCH_PWR9 control) so that template
26448 definition uses power9-specific function.
26449 (vec_any_eq): Likewise.
26450 (vec_all_ne): Change macro definition to use a power9-specific
26451 expansion under #ifdef __POWER9_VECTOR__ control (instead of
26452 _ARCH_PWR9 control).
26453 (vec_any_eq) Likewise.
26454 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
26455 expansion for CMPNEF to remove support for xvcmpnesp instruction.
26456 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
26457 support for xvcmpnedp instruction.
26458 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
26459 macro expansion so that Power9 implementation of vec_all_ne does
26460 not use the AltiVec predicate framework.
26461 (VCMPNEH_P): Likewise.
26462 (VCMPNEW_P): Likewise.
26463 (VCMPNED_P): Likewise.
26464 (VCMPNEFP_P): Likewise.
26465 (VCMPNEDP_P): Likewise.
26466 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
26467 implementation of vec_any_eq to not use AltiVec predicate
26468 framework.
26469 (VCMPAEH_P): Likewise.
26470 (VCMPAEW_P): Likewise.
26471 (VCMPAED_P): Likewise.
26472 (VCMPAEFP_P): Likewise.
26473 (VCMPAEDP_P): Likewise.
26474 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
26475 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
26476 not use the AltiVec predicate framework.
26477 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
26478 of vec_any_eq to not use AltiVec predicate framework.
26479 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
26480 support for predefined __POWER9_VECTOR__ macro to indicate that
26481 Power9 instruction selection is enabled.
26482 (altivec_overloaded_builtins): Remove extraneous
26483 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
26484 function argument types RS6000_BTI_bool_V16QI and
26485 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
26486 entry for overloaded function argument types RS6000_BTI_bool_V4SI
26487 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
26488 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
26489 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
26490 Power9 for implementations of vec_cmpne. Change the signature for
26491 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
26492 (representing vec_all_ne) to remove the previously described first
26493 argument of type RS6000_BTI_INTSI, as this was an artifact of
26494 reliance on the AltiVec predicate framework, which is no longer
26495 used in the implementation of these functions. Add
26496 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
26497 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
26498 since, unlike the AltiVec predicate framework implementation, we
26499 do not share function descriptors between vec_alle and vec_anyeq.
26500 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
26501 set of modes that receive special treatment even when
26502 TARGET_P9_VECTOR is true. The special treatment emits code that
26503 does not depend on Power9 instructions.
26504 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
26505 define_expand to not rely on AltiVec predicate framework.
26506 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
26507 function.
26508 (vector_ne_v2di_p): Change this define_expand to not rely on
26509 AltiVec predicate framework.
26510 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
26511 function.
26512 (vector_ne_<mode>_p): Change this define_expand to not rely on
26513 AltiVec predicate framework.
26514 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
26515 function.
26516 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
26517 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
26518 define_insn pattern.
26519 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
26520 define_insn pattern because the xvcmpne<VSs>. instruction is not
26521 supported.
26522 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
26523 instruction is not supported.
26524
26525 2017-03-01 Jakub Jelinek <jakub@redhat.com>
26526
26527 * config/nvptx/nvptx.c: Include intl.h.
26528
26529 2017-03-01 Martin Jambor <mjambor@suse.cz>
26530
26531 PR lto/78140
26532 * ipa-prop.h (ipa_bits): Removed field known.
26533 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
26534 to pointers. Adjusted their comments to warn about their sharing.
26535 (ipcp_transformation_summary): Change bits to a vector of pointers.
26536 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
26537 (ipa_get_ipa_bits_for_value): Declare.
26538 * tree-vrp.h (value_range): Mark as GTY((for_user)).
26539 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
26540 (ipa_bits_hash_table): Likewise.
26541 (ipa_vr_ggc_hash_traits): Likewise.
26542 (ipa_vr_hash_table): Likewise.
26543 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
26544 being pointers and vr_known being removed.
26545 (ipa_set_jf_unknown): Likewise.
26546 (ipa_get_ipa_bits_for_value): New function.
26547 (ipa_set_jfunc_bits): Likewise.
26548 (ipa_get_value_range): New overloaded functions.
26549 (ipa_set_jfunc_vr): Likewise.
26550 (ipa_compute_jump_functions_for_edge): Use the above functions to
26551 construct bits and vr parts of jump functions.
26552 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
26553 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
26554 exist.
26555 (ipcp_grow_transformations_if_necessary): Also allocate
26556 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
26557 exist.
26558 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
26559 them. Fix too long lines.
26560 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
26561 vr_known being removed.
26562 (ipa_read_jump_function): Use new setter functions to construct bits
26563 and vr parts of jump functions or set them to NULL.
26564 (write_ipcp_transformation_info): Adjust for bits being pointers.
26565 (read_ipcp_transformation_info): Likewise.
26566 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
26567 space.
26568 Include gt-ipa-prop.h.
26569 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
26570 being pointers.
26571 (ipcp_store_bits_results): Likewise.
26572 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
26573 Do not write to existing jump functions but use a temporary instead.
26574
26575 2017-03-01 Jakub Jelinek <jakub@redhat.com>
26576
26577 PR c++/79681
26578 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
26579 attempt to use its first operand as BIT_FIELD_REF base.
26580
26581 2017-03-01 Richard Biener <rguenther@suse.de>
26582
26583 PR middle-end/79721
26584 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
26585 interpolating formula in wrapping arithmetic.
26586 (chrec_apply): Convert chrec_evaluate return value to wanted type.
26587
26588 2017-03-01 Jakub Jelinek <jakub@redhat.com>
26589
26590 PR tree-optimization/79734
26591 * tree-vect-generic.c (expand_vector_condition): Optimize
26592 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
26593 Handle VEC_COND_EXPR where comparison has different inner width from
26594 type's inner width.
26595
26596 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
26597
26598 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
26599 markup, and similar issues. Remove @opindex entries for things
26600 that aren't options. Add missing -mmpy-option entries.
26601
26602 2017-02-28 Jakub Jelinek <jakub@redhat.com>
26603
26604 PR tree-optimization/79737
26605 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
26606 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
26607 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
26608 instead of byte_size. Formatting fix.
26609 (shift_bytes_in_array_right): Formatting fix.
26610
26611 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
26612
26613 PR target/79749
26614 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
26615 condition on optimize for the leaf function test.
26616
26617 2017-02-28 Martin Liska <mliska@suse.cz>
26618
26619 PR lto/79625
26620 * read-rtl-function.c (function_reader::handle_unknown_directive):
26621 Bail out when one uses -flto.
26622
26623 2017-02-28 Martin Liska <mliska@suse.cz>
26624
26625 * common.opt: Replace space with tabular for options of <number>
26626 type.
26627 * config/i386/i386.opt: Show <number> value for
26628 -mlarge-data-threshold.
26629 * opts.c (print_filtered_help): Do not display number in hexadecimal
26630 format.
26631
26632 2017-02-28 Martin Liska <mliska@suse.cz>
26633
26634 * common.opt: Fix --help=option -Q for options which are of
26635 an enum type.
26636
26637 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
26638
26639 * config/i386/i386.c (print_reg): Error out for values
26640 of 8-bit size in invalid integer register.
26641
26642 2017-02-28 Martin Sebor <msebor@redhat.com>
26643
26644 PR tree-optimization/79691
26645 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
26646
26647 2017-02-28 Jakub Jelinek <jakub@redhat.com>
26648
26649 PR target/79729
26650 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
26651 gcc_unreachable with output_operand_lossage.
26652
26653 2017-02-28 Richard Biener <rguenther@suse.de>
26654
26655 PR tree-optimization/79740
26656 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
26657 inserts.
26658 (visit_nary_op): Insert the nary into the hashtable if we
26659 pattern-matched sth.
26660 * tree-ssa-pre.c (eliminate_insert): Robustify.
26661
26662 2017-02-28 Richard Biener <rguenther@suse.de>
26663
26664 PR middle-end/79731
26665 * fold-const.c (decode_field_reference): Reject out-of-bound
26666 accesses.
26667
26668 2017-02-28 Jakub Jelinek <jakub@redhat.com>
26669
26670 * config/i386/i386.c: Include intl.h.
26671 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
26672 instead of just cond ? "..." : "...".
26673 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
26674 * coverage.c (read_counts_file): Likewise.
26675 * omp-offload.c: Include intl.h.
26676 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
26677 of just cond ? "..." : "...".
26678 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
26679 of just cond ? "..." : "...".
26680
26681 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
26682
26683 PR target/79742
26684 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
26685 entry, if present.
26686 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
26687 'tune for' CPU name.
26688 * config/arm/arm-cpu-data.h: Regenerated.
26689
26690 2017-02-28 Richard Biener <rguenther@suse.de>
26691
26692 PR tree-optimization/79732
26693 * tree-inline.c (expand_call_inline): Do not shadow var.
26694
26695 2017-02-28 Richard Biener <rguenther@suse.de>
26696
26697 PR tree-optimization/79723
26698 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
26699 address-space properly.
26700
26701 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
26702
26703 * doc/optinfo.texi (Optimization groups): Fix option used for
26704 OPTGROUP_ALL.
26705 * doc/invoke.texi (-fopt-info): Document "omp".
26706 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
26707 (OPTGROUP_ALL): Add OPTGROUP_OMP.
26708 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
26709 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
26710 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
26711
26712 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
26713 all users.
26714 * dumpfile.c (optgroup_options): Instead of "openmp", associate
26715 OPTGROUP_OMP with "omp".
26716
26717 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
26718
26719 PR target/79544
26720 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
26721 for arithmetic shift of unsigned V2DI.
26722
26723 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
26724
26725 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
26726 arc/linux.h headers.
26727 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
26728 (LINK_SPEC): Likewise.
26729 (ARC_TLS_EXTRA_START_SPEC): Likewise.
26730 (EXTRA_SPECS): Likewise.
26731 (STARTFILE_SPEC): Likewise.
26732 (ENDFILE_SPEC): Likewise.
26733 (LIB_SPEC): Likewise.
26734 (TARGET_SDATA_DEFAULT): Likewise.
26735 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
26736 (MULTILIB_DEFAULTS): Likewise.
26737 (DWARF2_UNWIND_INFO): Likewise.
26738 * config/arc/big.h: New file.
26739 * config/arc/elf.h: Likewise.
26740 * config/arc/linux.h: Likewise.
26741 * config/arc/t-uClibc: Remove.
26742
26743 2017-02-27 Bin Cheng <bin.cheng@arm.com>
26744
26745 PR tree-optimization/77536
26746 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
26747 (tree_transform_and_unroll_loop): Use above function to compute the
26748 estimated niter of unrolled loop and use it when scaling profile.
26749 Also use count info rather than frequency if it's non-zero.
26750 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
26751 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
26752 (vect_transform_loop): Call above function.
26753
26754 2017-02-27 Richard Biener <rguenther@suse.de>
26755
26756 PR tree-optimization/45397
26757 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
26758 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
26759 (visit_nary_op): Add pattern matching for CSEing sign-changed
26760 or truncated operations with wider ones.
26761
26762 2017-02-27 Richard Biener <rguenther@suse.de>
26763
26764 PR tree-optimization/79690
26765 * tree-vect-stmts.c (vectorizable_store): Use vector type
26766 built from the DR with address-space.
26767
26768 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
26769
26770 * doc/invoke.texi (Optimize Options): Refine the description
26771 of asan-use-after-return.
26772
26773 2017-02-25 Alan Modra <amodra@gmail.com>
26774
26775 PR rtl-optimization/79584
26776 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
26777 base, not ad->base_term, the reg within base. Remove assertion
26778 that ad->base == ad->base_term. Replace gen_int_mode using
26779 bogus mode with const0_rtx.
26780
26781 2017-02-25 Jakub Jelinek <jakub@redhat.com>
26782
26783 PR middle-end/79396
26784 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
26785 FMA_EXPR like tcc_binary or tcc_unary.
26786
26787 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
26788
26789 PR debug/77589
26790 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
26791 bitfield.
26792 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
26793 (output_loc_operands): Handle DW_OP_call_ref and
26794 DW_OP_GNU_variable_value.
26795 (struct variable_value_struct): New type.
26796 (struct variable_value_hasher): Likewise.
26797 (variable_value_hash): New variable.
26798 (string_types): Remove.
26799 (copy_loc_descr): New function.
26800 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
26801 (prepend_loc_descr_to_each): New function.
26802 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
26803 instead of add_loc_descr_to_each if the first argument is single
26804 location list and the second has multiple.
26805 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
26806 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
26807 when looking for variable value which doesn't have other location info.
26808 (loc_list_from_tree): Formatting fix.
26809 (gen_array_type_die): Simplify DW_AT_string_length handling.
26810 (adjust_string_types): Remove.
26811 (gen_subprogram_die): Don't call adjust_string_types nor test/set
26812 string_types. Call resolve_variable_values.
26813 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
26814 (resolve_addr_in_expr): Likewise. Add A argument.
26815 (copy_deref_exprloc): Remove deref argument. Adjust for the
26816 original expression being DW_OP_GNU_variable_value with optionally
26817 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
26818 optionally after it.
26819 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
26820 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
26821 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
26822 (variable_value_hasher::hash, variable_value_hasher::equal): New
26823 methods.
26824 (resolve_variable_value_in_expr, resolve_variable_value,
26825 resolve_variable_values, note_variable_value_in_expr,
26826 note_variable_value): New functions.
26827 (dwarf2out_early_finish): Call note_variable_value on all toplevel
26828 DIEs.
26829
26830 2017-02-24 Jakub Jelinek <jakub@redhat.com>
26831
26832 PR c/79677
26833 * opts.h (handle_generated_option): Add GENERATED_P argument.
26834 * opts-common.c (handle_option): Adjust function comment.
26835 (handle_generated_option): Add GENERATED_P argument, pass it to
26836 handle_option.
26837 (control_warning_option): Pass false to handle_generated_option
26838 GENERATED_P.
26839 * opts.c (maybe_default_option): Pass true to handle_generated_option
26840 GENERATED_P.
26841 * optc-gen.awk: Likewise.
26842
26843 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
26844
26845 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
26846 a REG, look at the REG it is a SUBREG of.
26847 (splitter for cmpeqsi_t): Ditto.
26848
26849 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
26850
26851 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
26852 the special USEs with the pattern of the insn, not the insn itself.
26853
26854 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
26855
26856 PR target/79473
26857 * doc/invoke.texi: Document -mload-store-pairs.
26858
26859 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
26860 Sandra Loosemore <sandra@codesourcery.com>
26861
26862 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
26863 argument isn't a CONST_INT.
26864 (nios2_alternate_compare_const): Assert op is a CONST_INT.
26865 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
26866 (nios2_validate_compare): Bypass alternate compare logic if *op2
26867 is not a CONST_INT.
26868 (ldstwm_operation_p): Return false if first_base is not a REG or
26869 if first_offset is not a CONST_INT.
26870
26871 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
26872
26873 * config/cris/cris.md: Use correct operand in a define_peephole2.
26874
26875 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
26876
26877 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
26878
26879 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
26880
26881 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
26882 this_insn if it is an INSN or JUMP_INSN.
26883 (force_offsettable): Look at base, not at addr.
26884 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
26885 on things that aren't necessarily CONST_INTs.
26886
26887 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
26888
26889 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
26890 -mfpmath=sse is the default also for x86-32 targets with SSE2
26891 instruction set when @option{-ffast-math} is enabled
26892
26893 2017-02-24 Jeff Law <law@redhat.com>
26894
26895 PR rtl-optimizatoin/79286
26896 * ira.c (update_equiv_regs): Drop may_trap_p exception to
26897 dominance test.
26898
26899 2017-02-24 Richard Biener <rguenther@suse.de>
26900
26901 PR tree-optimization/79389
26902 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
26903 debug insns.
26904
26905 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
26906
26907 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
26908 function comment to reflect reality.
26909 (loop_exits_before_overflow): Fix typo in function description.
26910
26911 2017-02-24 Richard Biener <rguenther@suse.de>
26912
26913 PR tree-optimization/79389
26914 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
26915 properly that a threading opportunity exists. Detect conditional
26916 copy/constant propagation opportunities.
26917
26918 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
26919
26920 * config/visium/visium.md (type): Add trap.
26921 (b): New mode attribute.
26922 (*btst): Rename into...
26923 (*btst<mode>): ...this and adjust.
26924 (*cbranchsi4_btst_insn): Rename into...
26925 (*cbranch<mode>4_btst_insn): ...this and adjust.
26926 (trap): New define_insn.
26927
26928 2017-02-23 Jakub Jelinek <jakub@redhat.com>
26929
26930 PR tree-optimization/79389
26931 * ifcvt.c (struct noce_if_info): Add rev_cond field.
26932 (noce_reversed_cond_code): New function.
26933 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
26934 reversed_comparison_code. Formatting fix.
26935 (noce_try_store_flag): Test rev_cond != NULL in addition to
26936 reversed_comparison_code.
26937 (noce_try_store_flag_constants): Likewise.
26938 (noce_try_store_flag_mask): Likewise.
26939 (noce_try_addcc): Use rev_cond if non-NULL instead of
26940 reversed_comparison_code.
26941 (noce_try_cmove_arith): Likewise. Formatting fixes.
26942 (noce_try_minmax, noce_try_abs): Clear rev_cond.
26943 (noce_find_if_block): Initialize rev_cond.
26944 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
26945 instead of false as last argument never attempt to reverse it
26946 afterwards.
26947
26948 2017-02-23 Bin Cheng <bin.cheng@arm.com>
26949
26950 PR tree-optimization/79663
26951 * tree-predcom.c (combine_chains): Process refs in reverse order
26952 only for ZERO length chains, and add explaining comment.
26953
26954 2017-02-23 Jeff Law <law@redhat.com>
26955
26956 PR tree-optimization/79578
26957 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
26958 in call to operand_equal_p.
26959
26960 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
26961
26962 PR target/71017
26963 * config/i386/cpuid.h: Fix another undefined behavior.
26964
26965 2017-02-23 Richard Biener <rguenther@suse.de>
26966
26967 PR tree-optimization/79683
26968 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
26969 vector types for data-refs.
26970
26971 2017-02-23 Martin Liska <mliska@suse.cz>
26972
26973 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
26974
26975 2017-02-23 Jakub Jelinek <jakub@redhat.com>
26976
26977 PR middle-end/79665
26978 * internal-fn.c (get_range_pos_neg): Moved to ...
26979 * tree.c (get_range_pos_neg): ... here. No longer static.
26980 * tree.h (get_range_pos_neg): New prototype.
26981 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
26982 are known to be in between 0 and signed maximum inclusive, try to
26983 expand both unsigned and signed divmod and use the cheaper one from
26984 those.
26985
26986 2017-02-22 Jeff Law <law@redhat.com>
26987
26988 PR tree-optimization/79578
26989 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
26990 to compare base operands.
26991
26992 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
26993
26994 PR target/79211
26995 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
26996 gpc_reg_operand instead of fpr_reg_operand.
26997
26998 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
26999
27000 * config/mips/mips.c (mips_return_in_memory): Force FP
27001 vector types to be returned in memory for o32 ABI.
27002
27003 2017-02-22 Jakub Jelinek <jakub@redhat.com>
27004
27005 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
27006 instead of DW_TAG_member for static data member declarations and don't
27007 set no_linkage_name for static inline data members.
27008 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
27009 to DW_TAG_member.
27010
27011 2017-02-22 Martin Liska <mliska@suse.cz>
27012
27013 * doc/invoke.texi: Replace inequality signs with square brackets
27014 for -Wnormalized.
27015
27016 2017-02-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27017
27018 PR tree-optimization/68644
27019 * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
27020
27021 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
27022
27023 PR target/78660
27024 * lra-constraints.c (simplify_operand_subreg): Handle
27025 WORD_REGISTER_OPERATIONS targets.
27026
27027 2017-02-22 Jakub Jelinek <jakub@redhat.com>
27028
27029 PR target/70465
27030 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
27031 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
27032 elimination by swapping fld*.
27033
27034 2017-02-22 Richard Biener <rguenther@suse.de>
27035
27036 PR tree-optimization/79673
27037 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
27038 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
27039 irrelevant address-space qualifiers and avoiding a
27040 ADDR_SPACE_CONVERT_EXPR from fold_convert.
27041
27042 2017-02-22 Richard Biener <rguenther@suse.de>
27043
27044 PR tree-optimization/79666
27045 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
27046 to not symbolically negate if that may introduce undefined
27047 overflow.
27048
27049 2017-02-22 Martin Liska <mliska@suse.cz>
27050
27051 PR lto/79587
27052 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
27053 * data-streamer-out.c (streamer_write_gcov_count_stream):
27054 Likewise.
27055 * value-prof.c (stream_out_histogram_value): Make assert more
27056 precise based on type of counter.
27057
27058 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
27059
27060 PR target/79593
27061 * config/i386/i386.md (standard_x87sse_constant_load splitter):
27062 Use nonimmediate_operand instead of memory_operand for operand 1.
27063 (float-extend standard_x87sse_constant_load splitter): Ditto.
27064
27065 2017-02-21 Jeff Law <law@redhat.com>
27066
27067 PR tree-optimization/79621
27068 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
27069 blocks with edges to themselves.
27070
27071 2017-02-21 Jakub Jelinek <jakub@redhat.com>
27072
27073 PR target/79633
27074 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
27075 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
27076 Use gimple_call_builtin_p.
27077
27078 PR target/79570
27079 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
27080 on temporarily removed DEBUG_INSNs.
27081
27082 PR tree-optimization/79649
27083 * tree-loop-distribution.c (classify_partition): Give up on
27084 non-generic address space loads/stores.
27085
27086 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
27087
27088 * doc/loop.texi (Loop manipulation): Remove nonexistent
27089 tree_ssa_loop_version from the documentation.
27090 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
27091
27092 2017-02-21 Jakub Jelinek <jakub@redhat.com>
27093
27094 PR target/79494
27095 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
27096 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
27097 * config/rs6000/rs6000.c: Include except.h.
27098 (rs6000_expand_split_stack_prologue): Call
27099 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
27100
27101 2017-02-21 Martin Jambor <mjambor@suse.cz>
27102
27103 PR lto/79579
27104 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
27105 have been analyzed.
27106
27107 2017-02-21 Martin Jambor <mjambor@suse.cz>
27108
27109 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
27110 for backward compatibility only.
27111 * doc/invoke.texi (Option Summary): Remove all references to
27112 -fipa-cp-alignment.
27113
27114 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
27115
27116 PR target/78660
27117 Revert:
27118 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
27119
27120 * lra-constraints.c (curr_insn_transform): Handle
27121 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
27122
27123 2017-02-21 Martin Liska <mliska@suse.cz>
27124
27125 * config/i386/i386.opt: Replace -masm-dialect with -masm.
27126
27127 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
27128
27129 PR translation/79638
27130 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
27131
27132 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
27133
27134 PR ada/67205
27135 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
27136 (arm_function_ok_for_sibcall): Return false for an indirect call by
27137 descriptor if all the argument registers are used.
27138 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
27139 alignment of the function.
27140
27141 2017-02-21 Jakub Jelinek <jakub@redhat.com>
27142
27143 PR tree-optimization/61441
27144 * simplify-rtx.c (simplify_const_unary_operation): For
27145 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
27146 the sNaN unmodified.
27147
27148 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
27149
27150 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
27151 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
27152 instead of SYSTEM_HEADER_DIR.
27153
27154 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
27155 Martin Liška <mliska@suse.cz>
27156
27157 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
27158 Fix typos and grammar, use active voice, and clarify.
27159
27160 2017-02-20 Marek Polacek <polacek@redhat.com>
27161
27162 PR middle-end/79537
27163 * gimplify.c (gimplify_expr): Handle unused *&&L;.
27164
27165 PR sanitizer/79558
27166 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
27167
27168 2017-02-20 Jakub Jelinek <jakub@redhat.com>
27169
27170 PR target/79568
27171 * config/i386/i386.c (ix86_expand_builtin): Handle
27172 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
27173 ix86_builtins_isa[fcode].isa as a requirement of those
27174 flags and any other flag in the bitmask.
27175 (ix86_init_mmx_sse_builtins): Use 0 instead of
27176 ~OPTION_MASK_ISA_64BIT as mask.
27177 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
27178 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
27179 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
27180 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
27181
27182 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
27183
27184 PR target/78012
27185 * lra-constraints.c (split_reg): Check requested split mode
27186 is supported by the register.
27187
27188 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
27189
27190 * lra-constraints.c (simplify_operand_subreg): Remove early
27191 return false.
27192
27193 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
27194
27195 PR target/78660
27196 * lra-constraints.c (curr_insn_transform): Tighten condition
27197 for converting SUBREG reloads from OP_OUT to OP_INOUT.
27198
27199 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
27200
27201 PR target/78660
27202 * lra-constraints.c (curr_insn_transform): Handle
27203 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
27204
27205 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
27206
27207 Revert:
27208 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
27209
27210 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
27211
27212 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
27213
27214 PR c++/69523
27215 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
27216 description.
27217
27218 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
27219
27220 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
27221 for FMA_EXPR.
27222
27223 2017-02-18 Jakub Jelinek <jakub@redhat.com>
27224
27225 * final.c (last_columnnum, override_columnnum): New variables.
27226 (final_start_function): Set last_columnnum, pass it to begin_prologue
27227 hook and pass 0 to dwarf2out_begin_prologue.
27228 (final_scan_insn): Update override_columnnum. Pass last_columnnum
27229 to source_line debug hook.
27230 (notice_source_line): Compute last_columnnum and for debug_column_info
27231 return true on column changes.
27232 * debug.h (struct gcc_debug_hooks): Add column argument to
27233 source_line and begin_prologue hooks.
27234 (debug_nothing_int_charstar_int_bool): Remove prototype.
27235 (debug_nothing_int_int_charstar,
27236 debug_nothing_int_int_charstar_int_bool): New prototypes.
27237 (dwarf2out_begin_prologue): Add column argument.
27238 * debug.c (do_nothing_debug_hooks): Adjust source_line and
27239 begin_prologue hooks.
27240 (debug_nothing_int_charstar_int_bool): Remove.
27241 (debug_nothing_int_int_charstar,
27242 debug_nothing_int_int_charstar_int_bool): New functions.
27243 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
27244 through to dwarf2out_source_line.
27245 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
27246 (dwarf2out_source_line): Add column argument, emit it if requested.
27247 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
27248 arguments.
27249 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
27250 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
27251 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
27252 through to dwarf2out_begin_prologue.
27253 (vmsdbgout_source_line): Add column argument, pass it through to
27254 dwarf2out_source_line.
27255 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
27256 dbxout_source_line caller.
27257 (dbxout_source_line): Add column argument.
27258
27259 * common.opt (gno-column-info, gcolumn-info): New options.
27260 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
27261 (check_die): Also test for multiple DW_AT_decl_column attributes.
27262 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
27263 DW_AT_decl_column if requested.
27264 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
27265 if requested.
27266 (gen_variable_die): Likewise.
27267 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
27268 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
27269
27270 PR target/79569
27271 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
27272 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
27273 (ix86_handle_option): Handle OPT_m3dnowa.
27274 * doc/invoke.texi (-m3dnowa): Document.
27275 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
27276 -m3dnowa instead of -m3dnow -march=athlon.
27277
27278 PR target/79559
27279 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
27280 instead of gcc_assert for K, r and R code checks. Formatting fixes.
27281
27282 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27283
27284 PR target/79261
27285 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
27286 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
27287 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
27288 generator for vsx_xxpermdi_<mode>_be.
27289 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
27290 force big-endian semantics.
27291 (vsx_xxpermdi_<mode>_be): New define_expand with same
27292 implementation as previous version of vsx_xxpermdi_<mode>.
27293
27294 2017-02-17 Jakub Jelinek <jakub@redhat.com>
27295
27296 PR tree-optimization/79327
27297 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
27298 variable, its initialization and use.
27299
27300 2017-02-17 Julia Koval <julia.koval@intel.com>
27301
27302 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
27303 (OPTION_MASK_ISA_PKU_UNSET): New.
27304 (ix86_handle_option): Handle -mrdpid.
27305 * config/i386/cpuid.h (bit_RDPID): New.
27306 * config/i386/driver-i386.c (host_detect_local_cpu):
27307 Detect RDPID feature.
27308 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
27309 * config/i386/i386-c.c (ix86_target_macros_internal):
27310 Handle RDPID flag.
27311 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
27312 (ix86_valid_target_attribute_inner_p): Add "rdpid".
27313 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
27314 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
27315 * config/i386/i386.md (define_insn "rdpid"): New.
27316 * config/i386/i386.opt Add -mrdpid.
27317 * config/i386/immintrin.h (_rdpid_u32): New.
27318
27319 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
27320
27321 PR rtl-optimization/79541
27322 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
27323 instead of transforming it into USE.
27324
27325 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
27326
27327 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
27328 If HONOR_SNANS (SFmode) force the input to a register.
27329 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
27330 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
27331 an frsp or similar insn.
27332
27333 2017-02-17 Martin Liska <mliska@suse.cz>
27334
27335 PR rtl-optimization/79577
27336 * params.def (selsched-max-sched-times): Increase minimum to 1.
27337
27338 2017-02-17 Martin Liska <mliska@suse.cz>
27339
27340 PR rtl-optimization/79574
27341 * gcse.c (want_to_gcse_p): Prevent integer overflow.
27342
27343 2017-02-17 Martin Liska <mliska@suse.cz>
27344
27345 PR tree-optimization/79529
27346 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
27347 ssa_defined_default_def_p to handle cases which are implicitly
27348 defined.
27349 * tree-ssa.c (ssa_defined_default_def_p): New function.
27350 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
27351 which are implicitly defined.
27352 * tree-ssa.h (ssa_defined_default_def_p): Declare.
27353
27354 2017-02-17 Richard Biener <rguenther@suse.de>
27355
27356 PR middle-end/79576
27357 * params.def (max-ssa-name-query-depth): Limit to 10.
27358
27359 2017-02-17 Richard Biener <rguenther@suse.de>
27360
27361 PR tree-optimization/79552
27362 * tree-ssa-structalias.c (visit_loadstore): Properly verify
27363 default defs.
27364
27365 2017-02-17 Richard Biener <rguenther@suse.de>
27366
27367 PR bootstrap/79567
27368 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
27369
27370 2017-02-17 Marek Polacek <polacek@redhat.com>
27371
27372 PR middle-end/79536
27373 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
27374 (fold_negate_expr): New wrapper.
27375
27376 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
27377
27378 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
27379 Correct terminology and de-emphasize pre-standard behavior.
27380
27381 2017-02-16 Alan Modra <amodra@gmail.com>
27382
27383 PR rtl-optimization/79286
27384 * ira.c (def_dominates_uses): New function.
27385 (update_equiv_regs): Don't create an equivalence for insns that
27386 may trap where the register def does not dominate the use.
27387
27388 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
27389
27390 PR rtl-optimization/78127
27391 * lra.c (lra): Call lra_eliminate before finish the loop after
27392 lra_constraint.
27393
27394 2017-02-16 Richard Biener <rguenther@suse.de>
27395
27396 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
27397 isl/isl_val.h.
27398 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
27399 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
27400 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
27401 (isl_val_int_from_wi): New function.
27402 (extract_affine_gmp): Rename to ...
27403 (extract_affine_wi): ... this, take a widest_int.
27404 (extract_affine_int): Just wrap extract_affine_wi.
27405 (add_param_constraints): Use isl_val_int_from_wi.
27406 (add_loop_constraints): Likewise, and extract_affine_wi.
27407
27408 2017-02-15 Jeff Law <law@redhat.com>
27409
27410 PR middle-end/79521
27411 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
27412 ira_init_register_move_cost_if_necessary.
27413
27414 2017-02-15 Martin Sebor <msebor@redhat.com>
27415
27416 PR middle-end/32003
27417 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
27418 removed in a prior commit.
27419
27420 2017-02-15 Bin Cheng <bin.cheng@arm.com>
27421
27422 PR tree-optimization/79347
27423 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
27424 counters during peeling.
27425
27426 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
27427
27428 * Makefile.in (site.exp): Remove "set ISLVER".
27429
27430 2017-02-15 Jakub Jelinek <jakub@redhat.com>
27431
27432 PR target/79487
27433 * real.c (real_from_integer): Call real_convert even for decimal.
27434
27435 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
27436
27437 PR target/79421
27438 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
27439
27440 2017-02-14 Andrew Pinski <apinski@cavium.com>
27441
27442 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
27443 cores and change the partno/implementer to be correct.
27444 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
27445 the 'B" as the implementer.
27446 * config/aarch64/aarch64-tune.md: Regenerate.
27447
27448 2017-02-14 Carl Love <cel@us.ibm.com>
27449
27450 * config/rs6000/rs6000.c: Add case statement entry to make the
27451 xvcvuxdsp built-in argument unsigned.
27452 * config/rs6000/vsx.md: Fix the source and return operand types so they
27453 match the instruction definitions from the ISA document. Fix typo
27454 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
27455 statement.
27456
27457 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
27458
27459 PR target/79282
27460 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
27461 member early_clobber_alts.
27462 * lra-lives.c (reg_early_clobber_p): New.
27463 (process_bb_lives): Use it.
27464 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
27465 (debug_operand_data): Initialize early_clobber_alts.
27466 (setup_operand_alternative): Set up early_clobber_alts.
27467 (collect_non_operand_hard_regs): Ditto. Pass early clobber
27468 alternatives to new_insn_reg.
27469 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
27470 it.
27471 (lra_update_insn_regno_info): Pass the new arg.
27472
27473 2017-02-14 Jakub Jelinek <jakub@redhat.com>
27474
27475 PR middle-end/79505
27476 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
27477 (new_oacc_loop_raw): Don't clear already cleared fields.
27478
27479 PR target/79481
27480 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
27481 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
27482 _mm512_prefetch_i64gather_ps): New inline functions and macros.
27483
27484 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
27485
27486 PR target/79495
27487 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
27488
27489 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
27490
27491 PR target/79498
27492 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
27493 the extra instruction to the right place to store 128-bit constant
27494 when needed.
27495
27496 2017-02-14 Martin Sebor <msebor@redhat.com>
27497
27498 PR middle-end/79448
27499 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
27500 warning for strings of unknown length.
27501
27502 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
27503
27504 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
27505
27506 2017-02-14 Jeff Law <law@redhat.com>
27507
27508 PR target/79404
27509 * ira-costs.c (scan_one_insn): Initialize register move costs
27510 for pseudos seen in USE/CLOBBER insns.
27511
27512 PR tree-optimization/79095
27513 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
27514 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
27515 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
27516 if the operands are known to be not equal, then the resulting range
27517 is ~[0,0].
27518 (intersect_ranges): If the new range is ~[0,0] and the old range is
27519 wide, then prefer ~[0,0].
27520 * tree-vrp.c (overflow_comparison_p_1): New function.
27521 (overflow_comparison_p): New function.
27522 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
27523 if NAME is used in an overflow test.
27524 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
27525 overflow check that can be expressed as an equality test, then adjust
27526 ops to be that equality test.
27527
27528 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27529
27530 * config/s390/s390-builtin-types.def: Remove flags argument.
27531 * config/s390/s390.c (s390_init_builtins): Likewise.
27532
27533 2017-02-14 Martin Liska <mliska@suse.cz>
27534
27535 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
27536 vector. Fix trailing white spaces.
27537
27538 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
27539
27540 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
27541 HFmode.
27542
27543 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27544
27545 PR rtl-optimization/68664
27546 * config/arm/arm.c (arm_sched_can_speculate_insn):
27547 New function. Declare prototype.
27548 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
27549
27550 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27551
27552 PR rtl-optimization/68664
27553 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
27554 New function.
27555 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
27556
27557 2017-02-14 Amit Pawar <amit.pawar@amd.com>
27558
27559 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
27560 max skip bytes for function, loop and jump.
27561
27562 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
27563
27564 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
27565 ABS_EXPR for gimple dump.
27566
27567 2017-02-14 Jakub Jelinek <jakub@redhat.com>
27568
27569 PR target/79462
27570 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
27571
27572 PR tree-optimization/79408
27573 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
27574 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
27575 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
27576 also if rhs1 is INTEGER_CST.
27577
27578 2017-02-14 Richard Biener <rguenther@suse.de>
27579
27580 PR middle-end/79432
27581 * tree-into-ssa.c (insert_phi_nodes): When the function can
27582 have abnormal edges rewrite SSA names with broken use-def
27583 dominance out of SSA and register them for PHI insertion.
27584
27585 2017-02-13 Martin Sebor <msebor@redhat.com>
27586
27587 PR middle-end/79496
27588 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
27589 clearing info.nowrite flag when snprintf size argument is a range.
27590
27591 2017-02-13 Jakub Jelinek <jakub@redhat.com>
27592
27593 * cprop.c (cprop_jump): Add missing space in string literal.
27594 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
27595 (get_constraint_for_component_ref): Likewise.
27596 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
27597 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
27598 * lra-constraints.c (process_alt_operands): Likewise.
27599 * ipa-inline.c (inline_small_functions): Likewise.
27600 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
27601 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
27602 * trans-mem.c (diagnose_tm_1_op): Likewise.
27603 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
27604 (grid_parallel_clauses_gridifiable): Likewise.
27605
27606 * config/nvptx/mkoffload.c (process): Add space in between
27607 , and %d.
27608
27609 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
27610 "MOD4_SSE_REGS" and "ALL_REGS".
27611
27612 * spellcheck.c (test_data): Add , in between "foo" and "food".
27613
27614 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
27615
27616 PR target/79449
27617 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
27618 boundary crossing check and subsequent code generation agree.
27619
27620 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27621
27622 * config/aarch64/aarch64.c (has_memory_op): Delete.
27623 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
27624 has_memory_op.
27625
27626 2017-02-13 Jakub Jelinek <jakub@redhat.com>
27627
27628 PR rtl-optimization/79388
27629 PR rtl-optimization/79450
27630 * combine.c (distribute_notes): When removing TEM_INSN for which
27631 corresponding dest has last value recorded, invalidate that last
27632 value.
27633
27634 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27635
27636 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
27637 of explicit '@'. Add missing assembly comment marker on branch costs
27638 printout.
27639
27640 2017-02-13 Nathan Sidwell <nathan@acm.org>
27641
27642 * gengtype-lex.l (<in_struct>): Add '/'.
27643
27644 2017-02-13 Martin Liska <mliska@suse.cz>
27645
27646 PR c/79471
27647 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
27648
27649 2017-02-13 Richard Biener <rguenther@suse.de>
27650
27651 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
27652 Remove.
27653 * configure: Re-generate.
27654 * config.in: Likewise.
27655 * graphite-dependences.c: Simplify as if
27656 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
27657 * graphite-isl-ast-to-gimple.c: Likewise.
27658 * graphite-optimize-isl.c: Likewise.
27659 * graphite-poly.c: Likewise.
27660 * graphite-sese-to-poly.c: Likewise.
27661 * graphite.h: Likewise.
27662 * toplev.c: Include isl/version.h and use isl_version () for
27663 printing the ISL version.
27664 * doc/install.texi: Update ISL requirement.
27665
27666 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
27667
27668 * doc/standards.texi (Standards): Update reference to
27669 Objective-C 2.0.
27670
27671 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
27672
27673 * doc/extend.texi (Named Address Spaces): sourceware.org now
27674 defaults to https.
27675 * doc/install.texi (Binaries): Ditto.
27676 (Specific): Ditto.
27677
27678 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
27679
27680 * doc/cpp.texi: Replace "stringify"/"stringification" with C
27681 standard terminology "stringize"/"stringizing" throughout.
27682 * doc/cppinternals.texi: Likewise.
27683
27684 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
27685
27686 * doc/extend.texi: Fix some spelling mistakes and typos.
27687 * doc/invoke.texi: Likewise.
27688
27689 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
27690
27691 PR ipa/79224
27692 * params.def (inline-min-speedup) Change from 10 to 8.
27693
27694 2017-02-11 Jakub Jelinek <jakub@redhat.com>
27695
27696 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
27697 4.5.
27698
27699 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
27700
27701 PR ipa/79224
27702 * ipa-inline-analysis.c (get_minimal_bb): New function.
27703 (record_modified): Use it.
27704 (remap_edge_change_prob): Handle also ancestor functions.
27705
27706 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
27707
27708 * doc/contrib.texi (Contributors): Remove broken link into
27709 the Mauve CVS repository.
27710
27711 2017-02-11 Jakub Jelinek <jakub@redhat.com>
27712
27713 PR middle-end/79454
27714 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
27715 result computation whenever lhs doesn't have vector mode, not
27716 just when it has BLKmode.
27717
27718 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
27719
27720 * doc/makefile.texi (profiledbootstrap): Refer to the
27721 installation instructions only in textual form.
27722
27723 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
27724
27725 PR target/79295
27726 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
27727
27728 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
27729
27730 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
27731 (Specific): Update mingw-w64 reference.
27732 (Binaries): Ditto.
27733 (Specific): Remove broken link to Renesas RX processor.
27734
27735 2017-02-10 Richard Biener <rguenther@suse.de>
27736
27737 * toplev.c (process_options): Do not mention obsolete graphite
27738 options when printing sorry message about missing graphite support.
27739 Mention -floop-nest-optimize.
27740
27741 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
27742
27743 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
27744 (vtst_p16): Likewise.
27745 (vtstq_p8): Likewise.
27746 (vtstq_p16): Likewise.
27747 (vtst_p64): New.
27748 (vtstq_p64): Likewise.
27749 * config/arm/arm_neon.h (vgetq_lane_p64): New.
27750 (vset_lane_p64): New.
27751 (vsetq_lane_p64): New.
27752
27753 2017-02-10 Jakub Jelinek <jakub@redhat.com>
27754
27755 PR tree-optimization/79411
27756 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
27757 stmt operands are SSA_NAMEs used in abnormal phis.
27758 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
27759 phis.
27760
27761 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
27762
27763 PR ipa/70795
27764 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
27765 flag if needed.
27766
27767 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
27768
27769 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
27770
27771 2017-02-09 Jakub Jelinek <jakub@redhat.com>
27772
27773 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
27774 to avoid warning.
27775
27776 PR c/79413
27777 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
27778 not arbitrary TREE_CONSTANT.
27779
27780 PR c/79431
27781 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
27782 "omp declare target link" attribute unless is_global_var.
27783 * omp-offload.c (find_link_var_op): Likewise.
27784
27785 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
27786 Chung-Lin Tang <cltang@codesourcery.com>
27787
27788 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
27789 OMP_CLAUSE_TILE.
27790 (gimplify_adjust_omp_clauses): Don't delete TILE.
27791 (gimplify_omp_for): Deal with TILE.
27792 * internal-fn.c (expand_GOACC_TILE): New function.
27793 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
27794 (GOACC_TILE): New.
27795 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
27796 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
27797 element fields.
27798 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
27799 avoid DIV for outermost collapse var.
27800 (expand_oacc_for): Insert tile element loop as needed. Adjust.
27801 Remove out of date comments, fix whitespace.
27802 * omp-general.c (omp_extract_for_data): Deal with tiling.
27803 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
27804 adjust OLF_DIM_BASE value.
27805 (struct omp_for_data): Add tiling field.
27806 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
27807 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
27808 for auto loops. Remove default auto determining, moved to
27809 oacc_loop_fixed_partitions.
27810 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
27811 stmts, add e_mask field.
27812 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
27813 (oacc_thread_numbers): Use oacc_dim_call.
27814 (oacc_xform_tile): New.
27815 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
27816 (finish_oacc_loop): Adjust for ifns vector.
27817 (oacc_loop_discover_walk): Append loop abstraction sites to list,
27818 add case for GOACC_TILE fns.
27819 (oacc_loop_xform_loop): Delete.
27820 (oacc_loop_process): Iterate over call list directly, and add
27821 handling for GOACC_TILE fns.
27822 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
27823 dump partitioning.
27824 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
27825 vector partitioning to outer loops. Assign 2 partitions to loops
27826 when available. Add TILE handling.
27827 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
27828 (execite_oacc_device_lower): Process GOACC_TILE fns,
27829 ignore unknown specs.
27830 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
27831 * tree.c (omp_clause_num_ops): Adjust TILE ops.
27832 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
27833
27834 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
27835
27836 * configure.ac (ACX_BUGURL): Update.
27837 * configure: Regenerate.
27838
27839 2017-02-09 Richard Biener <rguenther@suse.de>
27840
27841 PR tree-optimization/69823
27842 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
27843 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
27844
27845 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
27846
27847 * config/arc/arc-c.def: Add __NPS400__ definition.
27848 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
27849 (TARGET_NPS400): Define.
27850
27851 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
27852
27853 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
27854 file.
27855 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
27856 pointer, arch_info.
27857 (arc_cpu_types): Fill the arch_info field with a pointer into the
27858 arc_arch_types table.
27859 (arc_selected_cpu): Declare.
27860 * config/arc/arc.c (arc_selected_cpu): Make global.
27861 (arc_selected_arch): Delete.
27862 (arc_base_cpu): Delete.
27863 (arc_override_options): Remove references to deleted variables,
27864 update access to arch information.
27865 (ARC_OPT): Update access to arch information.
27866 (ARC_OPTX): Likewise.
27867 * config/arc/arc.h (arc_base_cpu): Remove declaration.
27868 (TARGET_ARC600): Update access to arch information.
27869 (TARGET_ARC601): Likewise.
27870 (TARGET_ARC700): Likewise.
27871 (TARGET_EM): Likewise.
27872 (TARGET_HS): Likewise.
27873 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
27874 information.
27875
27876 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
27877
27878 PR target/78604
27879 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
27880 condition/operands for integer GE/LE/GEU/LEU operations.
27881
27882 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
27883
27884 PR translation/79397
27885 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
27886 of AltiVec.
27887
27888 2017-02-08 Martin Jambor <mjambor@suse.cz>
27889
27890 PR ipa/79375
27891 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
27892 whether allocation happened.
27893 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
27894 nothing was allocated.
27895
27896 2017-02-08 Jakub Jelinek <jakub@redhat.com>
27897
27898 PR tree-optimization/79408
27899 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
27900 constant, but SSA_NAME with a known integer range, use the minimum
27901 of that range instead of op1 to determine if modulo can be replaced
27902 with its first operand.
27903
27904 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27905
27906 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
27907
27908 2017-02-08 Richard Biener <rguenther@suse.de>
27909
27910 PR tree-optimization/71824
27911 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
27912 Check all loops contained in the merged region.
27913
27914 2017-02-07 Andrew Pinski <apinski@cavium.com>
27915
27916 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
27917
27918 2017-02-07 Andrew Pinski <apinski@cavium.com>
27919
27920 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
27921 (thunderxt88): Likewise.
27922 (thunderxt81): Disable LSE and change v8.1 to v8.
27923 (thunderxt83): Likewise.
27924
27925 2017-02-07 Jakub Jelinek <jakub@redhat.com>
27926 Richard Biener <rguenther@suse.de>
27927
27928 PR middle-end/79399
27929 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
27930 type from int to size_t.
27931 * ira-costs.c (struct_costs_size): Change type from int to size_t.
27932
27933 2017-02-07 Jakub Jelinek <jakub@redhat.com>
27934
27935 PR rtl-optimization/79386
27936 * cprop.c (bypass_conditional_jumps): Initialize
27937 bypass_last_basic_block already before splitting bbs after
27938 unconditional traps...
27939 (bypass_conditional_jumps): ... rather than here.
27940
27941 PR target/79299
27942 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
27943 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
27944 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
27945 fix -masm=intel patterns.
27946
27947 2017-02-07 Richard Biener <rguenther@suse.de>
27948
27949 PR tree-optimization/79256
27950 PR middle-end/79278
27951 * builtins.c (get_object_alignment_2): Use min_align_of_type
27952 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
27953 and ADJUST_FIELD_ALIGN.
27954
27955 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
27956 type parameter.
27957 * doc/tm.texi: Regenerate.
27958 * stor-layout.c (layout_decl): Adjust.
27959 (update_alignment_for_field): Likewise.
27960 (place_field): Likewise.
27961 (min_align_of_type): Likewise.
27962 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
27963 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
27964 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
27965 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
27966 * config/frv/frv.c (frv_adjust_field_align): Likewise.
27967 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
27968 * config/i386/i386.c (x86_field_alignment): Likewise.
27969 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
27970 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
27971 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
27972 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
27973 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
27974 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
27975 Likewise.
27976
27977 Revert
27978 2017-01-30 Richard Biener <rguenther@suse.de>
27979
27980 PR tree-optimization/79256
27981 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
27982 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
27983 alignment on TYPE.
27984
27985 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
27986
27987 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
27988 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
27989 builtins to SImode and emit a zero-extend, if necessary.
27990
27991 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
27992
27993 * docs/invoke.texi (RISC-V Options): Alphabetize.
27994
27995 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
27996
27997 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
27998 options.
27999
28000 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
28001
28002 * config/riscv/riscv.c: New file.
28003 * common/config/riscv/riscv-common.c: Likewise.
28004 * config.gcc: Likewise.
28005 * config/riscv/constraints.md: Likewise.
28006 * config/riscv/elf.h: Likewise.
28007 * config/riscv/generic.md: Likewise.
28008 * config/riscv/linux.h: Likewise.
28009 * config/riscv/multilib-generator: Likewise.
28010 * config/riscv/peephole.md: Likewise.
28011 * config/riscv/pic.md: Likewise.
28012 * config/riscv/predicates.md: Likewise.
28013 * config/riscv/riscv-builtins.c: Likewise.
28014 * config/riscv/riscv-c.c: Likewise.
28015 * config/riscv/riscv-ftypes.def: Likewise.
28016 * config/riscv/riscv-modes.def: Likewise.
28017 * config/riscv/riscv-opts.h: Likewise.
28018 * config/riscv/riscv-protos.h: Likewise.
28019 * config/riscv/riscv.h: Likewise.
28020 * config/riscv/riscv.md: Likewise.
28021 * config/riscv/riscv.opt: Likewise.
28022 * config/riscv/sync.md: Likewise.
28023 * config/riscv/t-elf-multilib: Likewise.
28024 * config/riscv/t-linux: Likewise.
28025 * config/riscv/t-linux-multilib: Likewise.
28026 * config/riscv/t-riscv: Likewise.
28027 * configure.ac: Likewise.
28028 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
28029 Waterman as RISC-V maintainers.
28030 * doc/install.texi: Add RISC-V entries.
28031 * doc/invoke.texi: Add RISC-V options section.
28032 * doc/md.texi: Add RISC-V constraints section.
28033 * configure: Regenerated.
28034
28035 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
28036
28037 PR target/66144
28038 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
28039 false values to be constant vectors with all 0 or all 1 bits set.
28040 (vcondu<mode><mode>): Likewise.
28041 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
28042 predicate.
28043 (fpmask_comparison_operator): Update comment.
28044 (vecint_comparison_operator): New predicate.
28045 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
28046 vector conditionals when the true and false values are constant
28047 vectors with all 0 bits or all 1 bits set.
28048
28049 2017-02-06 Martin Sebor <msebor@redhat.com>
28050
28051 PR tree-optimization/79376
28052 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
28053
28054 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
28055
28056 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
28057 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
28058 to simplify split condition.
28059
28060 2017-02-06 Jakub Jelinek <jakub@redhat.com>
28061
28062 * omp-expand.c (oxpand_omp_atomic_fetch_op,
28063 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
28064 false.
28065
28066 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
28067
28068 PR rtl-optimization/68664
28069 * target.def (can_speculate_insn): New hook.
28070 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
28071 * doc/tm.texi: Regenerate.
28072 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
28073 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
28074 (rs6000_sched_can_speculate_insn): New function.
28075
28076 2017-02-06 Jakub Jelinek <jakub@redhat.com>
28077
28078 PR tree-optimization/79284
28079 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
28080 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
28081 vectorizable_mask_load_store, vectorizable_operation,
28082 vect_is_simple_cond, get_same_sized_vectype): Use it instead
28083 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
28084 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
28085 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
28086 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
28087 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
28088 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
28089 is_gimple_assign (stmt). Replace another such test with
28090 is_gimple_assign (stmt).
28091
28092 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
28093
28094 PR target/78883
28095 * config/avr/avr.c (rtl-iter.h): Include it.
28096 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
28097 (avr_legitimate_combined_insn): ...and implementation.
28098
28099 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
28100
28101 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
28102 * config/s390/s390.c (s390_const_operand_ok)
28103 (s390_canonicalize_comparison, s390_extract_part)
28104 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
28105 (s390_contiguous_bitmask_p, s390_rtx_costs)
28106 (legitimize_pic_address): Likewise.
28107 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
28108 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
28109 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
28110 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
28111 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
28112
28113 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
28114
28115 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
28116 REGNO($0) == REGNO($1).
28117
28118 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28119
28120 * config/s390/linux.h(SIZE_TYPE): Add comment.
28121
28122 2017-02-06 Julian Brown <julian@codesourcery.com>
28123 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
28124 Virendra Pathak <virendra.pathak@broadcom.com>
28125
28126 * config/aarch64/aarch64-cores.def: Change the scheduler
28127 to Thunderx2t99.
28128 * config/aarch64/aarch64.md: Include thunderx2t99.md.
28129 * config/aarch64/thunderx2t99.md: New file.
28130
28131 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
28132
28133 * doc/standards.texi (Go Language): Update link to language
28134 standard.
28135
28136 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
28137
28138 * tree-eh.c (lower_resx): Sanitize profile.
28139 (cleanup_empty_eh_move_lp): Likewise.
28140
28141 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
28142
28143 PR tree-ssa/79347
28144 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
28145 ELSE_PROB.
28146 * cfgloopmanip.h (loop_version): Update prototype.
28147 * modulo-sched.c (sms_schedule): Update call of loop_version.
28148 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
28149 * tree-parloops.c (gen_parallel_loop): Likewise.
28150 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
28151 * tree-ssa-loop-split.c (split_loop): Likewise.
28152 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
28153 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
28154
28155 2017-02-05 Martin Liska <mliska@suse.cz>
28156
28157 PR bootstrap/78985
28158 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
28159 variable to NULL.
28160 (print_operand_address): Initialize a struct to zero.
28161
28162 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
28163
28164 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
28165 garbage collector only in textual form.
28166
28167 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
28168
28169 * doc/extend.texi (x86 specific memory model extensions for
28170 transactional memory): Simplify a phrase.
28171
28172 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
28173
28174 PR target/79353
28175 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
28176 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
28177 (atomic_storedi_1): Likewise.
28178
28179 2017-02-04 Jakub Jelinek <jakub@redhat.com>
28180
28181 PR tree-optimization/79338
28182 * tree-parloops.c (gather_scalar_reductions): Don't call
28183 vect_analyze_loop_form for loop->inner before destroying loop's
28184 loop_vinfo.
28185
28186 2017-02-03 Martin Sebor <msebor@redhat.com>
28187
28188 PR tree-optimization/79327
28189 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
28190 when precision has resulted in leading zeros.
28191 (format_integer): Adjust the likely counter to assume an unknown
28192 argument that may be zero is non-zero.
28193
28194 2017-02-03 Jason Merrill <jason@redhat.com>
28195
28196 PR c++/78689
28197 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
28198 avoid copying non-taken branch.
28199
28200 2017-02-03 Jakub Jelinek <jakub@redhat.com>
28201
28202 PR tree-optimization/79340
28203 * tree-vect-loop.c (vectorizable_reduction): Release
28204 vec_defs elements after safe_splicing them into other vectors.
28205 Formatting fixes.
28206
28207 PR tree-optimization/79327
28208 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
28209 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
28210 dirtype.
28211 (format_integer): Use wide_int_to_tree instead of build_int_cst
28212 + to_?hwi. If argmin is NULL, just set argmin and argmax to
28213 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
28214 of shortest and longest sequence.
28215
28216 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
28217
28218 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
28219 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
28220
28221 2017-02-03 Walter Lee <walt@tilera.com>
28222
28223 PR target/78862
28224 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
28225 after initial stackframe link reg save.
28226 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
28227
28228 2017-02-03 Jakub Jelinek <jakub@redhat.com>
28229
28230 PR target/79354
28231 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
28232 wu for stxssp alternative.
28233
28234 2017-02-03 Martin Sebor <msebor@redhat.com>
28235
28236 PR tree-optimization/79352
28237 * gimple-fold.c (get_range_strlen): Add argument.
28238 (get_range_strlen): Change return type to bool.
28239 (get_maxval_strlen): Pass in a dummy argument.
28240 * gimple-fold.h (get_range_strlen): Change return type to bool.
28241 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
28242 * tree.h (array_at_struct_end_p): Add argument.
28243 * tree.c (array_at_struct_end_p): Handle it.
28244
28245 2017-02-03 Martin Liska <mliska@suse.cz>
28246
28247 PR lto/66295
28248 * multiple_target.c (create_dispatcher_calls): Redirect edge
28249 from a caller of a dispatcher.
28250 (expand_target_clones): Make the clones local.
28251 (ipa_target_clone): Do both target clones and resolvers.
28252 (ipa_dispatcher_calls): Remove the pass.
28253 (pass_dispatcher_calls::gate): Likewise.
28254 (make_pass_dispatcher_calls): Likewise.
28255 * passes.def (pass_target_clone): Put as very first IPA early
28256 pass.
28257
28258 2017-02-03 Martin Liska <mliska@suse.cz>
28259
28260 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
28261 in case of a function with ifunc attribute.
28262
28263 2017-02-03 Martin Liska <mliska@suse.cz>
28264
28265 * cgraph.c (cgraph_node::dump): Dump function version info.
28266 * symtab.c (symtab_node::dump_base): Add missing new line.
28267
28268 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
28269
28270 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
28271 (ifcombine_ifandif): Use it.
28272
28273 2017-02-03 Martin Liska <mliska@suse.cz>
28274
28275 * doc/invoke.texi: Document default value for
28276 use-after-scope-direct-emission-threshold.
28277
28278 2017-02-03 Martin Liska <mliska@suse.cz>
28279
28280 PR tree-optimization/79339
28281 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
28282 (format_floating): Likewise.
28283
28284 2017-02-03 Martin Liska <mliska@suse.cz>
28285
28286 PR ipa/79337
28287 * ipa-prop.c (ipa_node_params_t::insert): Remove current
28288 implementation.
28289 (ipa_node_params_t::remove): Likewise.
28290 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
28291 initialization from removed ipa_node_params_t::insert.
28292 (ipa_node_params::~ipa_node_params): Move from removed
28293 ipa_node_params_t::release.
28294 * symbol-summary.h (symbol_summary::m_released): New member.
28295 Do not release a summary twice. Do not allow to call finalizer
28296 for types of a summary that live in GGC memory.
28297
28298 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
28299
28300 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
28301 cmp_branch fusion.
28302
28303 2017-02-02 Martin Sebor <msebor@redhat.com>
28304
28305 PR middle-end/79275
28306 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
28307 (format_string): Tighten up the range of output for non-constant
28308 strings and correct the expected range for wide non-constant strings.
28309
28310 2017-02-02 Martin Sebor <msebor@redhat.com>
28311
28312 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
28313
28314 PR middle-end/32003
28315 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
28316 index.
28317 (-fdump-tree-@var): Add to index and document how to come up
28318 with pass-specific option and dump file names.
28319 (-fdump-passes): Clarify where to look for output.
28320
28321 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
28322
28323 PR middle-end/77445
28324 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
28325 statistics of the analyzed path; allow threading for speed when
28326 any of BBs along the path are optimized for speed.
28327
28328 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
28329
28330 PR middle-end/78468
28331 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
28332 settings of the virtual registers.
28333
28334 Revert again
28335 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
28336
28337 * explow.c (get_dynamic_stack_size): Take known alignment of stack
28338 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
28339 needed.
28340
28341 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28342
28343 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
28344 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
28345
28346 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28347
28348 * config/s390/s390.md: Add missing comments with the expanded
28349 mnemonics.
28350 * config/s390/vector.md: Likewise.
28351 * config/s390/vx-builtins.md: Likewise.
28352
28353 2017-02-02 Jakub Jelinek <jakub@redhat.com>
28354
28355 PR target/79197
28356 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
28357 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
28358 conditions on a single line.
28359
28360 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28361
28362 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
28363 __S390_VX__ to __VX__.
28364
28365 2017-02-01 Andrew Pinski <apinski@cavium.com>
28366
28367 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
28368 stmt_info to record_stmt_cost.
28369 (vect_get_known_peeling_cost): Pass stmt_info if known to
28370 record_stmt_cost.
28371 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
28372 cpu_vector_cost field into
28373 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
28374 field into vec_int_stmt_cost and vec_fp_stmt_cost.
28375 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
28376 splitting of scalar_stmt_cost and vec_stmt_cost.
28377 (thunderx_vector_cost): Likewise.
28378 (cortexa57_vector_cost): LIkewise.
28379 (exynosm1_vector_cost): Likewise.
28380 (xgene1_vector_cost): Likewise.
28381 (thunderx2t99_vector_cost): Improve after the splitting of the two
28382 fields.
28383 (aarch64_builtin_vectorization_cost): Update for the splitting of
28384 scalar_stmt_cost and vec_stmt_cost.
28385
28386 2017-02-01 Torvald Riegel <triegel@redhat.com>
28387 Richard Henderson <rth@redhat.com>
28388
28389 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
28390 conditional on existance of a fast atomic load.
28391 * optabs-query.c (can_atomic_load_p): New function.
28392 * optabs-query.h (can_atomic_load_p): Declare it.
28393 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
28394 no fast atomic load is available for the particular size of access.
28395 (expand_atomic_compare_and_swap): Likewise.
28396 (expand_atomic_load): Likewise.
28397 (expand_atomic_store): Likewise.
28398 (expand_atomic_fetch_op): Likewise.
28399 * testsuite/lib/target-supports.exp
28400 (check_effective_target_sync_int_128): Remove x86 because it provides
28401 no fast atomic load.
28402 (check_effective_target_sync_int_128_runtime): Likewise.
28403
28404 2017-02-01 Richard Biener <rguenther@suse.de>
28405
28406 * graphite.c: Include tree-vectorizer.h for find_loop_location.
28407 (graphite_transform_loops): Provide opt-info for optimized nests.
28408 * tree-parloop.c (parallelize_loops): Provide opt-info for
28409 parallelized loops.
28410
28411 2017-02-01 Richard Biener <rguenther@suse.de>
28412
28413 PR middle-end/79315
28414 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
28415 was not set before.
28416
28417 2017-02-01 Richard Biener <rguenther@suse.de>
28418
28419 PR tree-optimization/71824
28420 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
28421 Verify the loops are valid in the merged SESE region.
28422 (scop_detection::can_represent_loop_1): Check analyzing the
28423 evolution of the number of iterations in the region succeeds.
28424
28425 2017-01-31 Ian Lance Taylor <iant@golang.org>
28426
28427 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
28428 REG_ARGS_SIZE note to 32-bit push insns and call insn.
28429
28430 2017-01-31 David Malcolm <dmalcolm@redhat.com>
28431
28432 PR preprocessor/79210
28433 * input.c (get_substring_ranges_for_loc): Replace line_width
28434 assertion with error-handling.
28435
28436 2017-01-31 Richard Biener <rguenther@suse.de>
28437
28438 PR tree-optimization/77318
28439 * graphite-sese-to-poly.c (extract_affine): Fix assert.
28440 (create_pw_aff_from_tree): Take loop parameter.
28441 (add_condition_to_pbb): Pass loop of the condition to
28442 create_pw_aff_from_tree.
28443
28444 2017-01-31 Jakub Jelinek <jakub@redhat.com>
28445
28446 * config/s390/s390.c (s390_asan_shadow_offset): New function.
28447 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
28448
28449 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
28450
28451 PR target/78597
28452 PR target/79038
28453 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
28454 no longer used.
28455 (convert_int_to_float128): Likewise.
28456 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
28457 (convert_int_to_float128): Likewise.
28458 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
28459 (UNSPEC_IEEE128_CONVERT): Likewise.
28460 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
28461 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
28462 Use local variables for IBM extended format.
28463 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
28464 (fix_trunc<mode>si2_fprs): Likewise.
28465 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
28466 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
28467 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
28468 to know that we can now have integers of all sizes in vector
28469 registers.
28470 (fix<uns>_<mode>di2_hw): Likewise.
28471 (float<uns>_<mode>si2_hw): Likewise.
28472 (fix_<mode>si2_hw): Likewise.
28473 (fixuns_<mode>si2_hw): Likewise.
28474 (float<uns>_<mode>di2_hw): Likewise.
28475 (float_<mode>di2_hw): Likewise.
28476 (float_<mode>si2_hw): Likewise.
28477 (floatuns_<mode>di2_hw): Likewise.
28478 (floatuns_<mode>si2_hw): Likewise.
28479 (xscvqp<su>wz_<mode>): Delete, no longer used.
28480 (xscvqp<su>dz_<mode>): Likewise.
28481 (xscv<su>dqp_<mode>): Likewise.
28482 (ieee128_mfvsrd_64bit): Likewise.
28483 (ieee128_mfvsrd_32bit): Likewise.
28484 (ieee128_mfvsrwz): Likewise.
28485 (ieee128_mtvsrw): Likewise.
28486 (ieee128_mtvsrd_64bit): Likewise.
28487 (ieee128_mtvsrd_32bit): Likewise.
28488
28489 2017-01-31 Martin Liska <mliska@suse.cz>
28490
28491 PR ipa/79285
28492 * ipa-prop.c (ipa_free_all_node_params): Call release method
28493 instead of ~sumbol_summary to not to trigger double times
28494 dtor of hash_map.
28495
28496 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
28497
28498 PR tree-optimization/71691
28499 * bitmap.h (class auto_bitmap): New.
28500 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
28501 is_maybe_undefined instead of ssa_undefined_value_p.
28502
28503 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28504
28505 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
28506 __S390_ARCH_LEVEL__ to __ARCH__.
28507
28508 2017-01-31 Jakub Jelinek <jakub@redhat.com>
28509
28510 PR tree-optimization/79267
28511 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
28512 if should_remove_lhs_p is true.
28513
28514 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
28515
28516 PR debug/63238
28517 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
28518 (add_alignment_attribute): New.
28519 (base_type_die): Add alignment attribute.
28520 (subrange_type_die): Likewise.
28521 (modified_type_die): Likewise.
28522 (gen_array_type_die): Likewise.
28523 (gen_descr_array_type_die: Likewise.
28524 (gen_enumeration_type_die): Likewise.
28525 (gen_subprogram_die): Likewise.
28526 (gen_variable_die): Likewise.
28527 (gen_field_die): Likewise.
28528 (gen_ptr_to_mbr_type_die): Likewise.
28529 (gen_struct_or_union_type_die): Likewise.
28530 (gen_subroutine_type_die): Likewise.
28531 (gen_typedef_die): Likewise.
28532 (base_type_cmp): Compare alignment attribute.
28533
28534 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
28535
28536 PR target/79170
28537 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
28538 (setb_unsigned) New pattern for setb with CCUNS.
28539 * config/rs6000/rs6000.c (expand_block_compare): Use a different
28540 subfc./subfe sequence to avoid overflow problems. Generate a
28541 shorter sequence with cmpld/setb for power9.
28542 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
28543 for generating subfc. instruction.
28544 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
28545 now uses this instruction.
28546
28547 2017-01-30 Ian Lance Taylor <iant@google.com>
28548
28549 PR debug/79289
28550 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
28551 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
28552
28553 2017-01-30 Martin Sebor <msebor@redhat.com>
28554
28555 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
28556 Move constant to the right of a relational operator.
28557 (get_mpfr_format_length, format_character, format_string): Ditto.
28558 (should_warn_p, maybe_warn): Same.
28559
28560 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
28561
28562 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
28563
28564 PR lto/79061
28565 * asan.c (get_translation_unit_decl): Remove function.
28566 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
28567
28568 2017-01-30 Martin Liska <mliska@suse.cz>
28569
28570 PR gcov-profile/79259
28571 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
28572 -fprofile-generate.
28573
28574 2017-01-30 Martin Liska <mliska@suse.cz>
28575
28576 PR bootstrap/78985
28577 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
28578 Initialize variables with NULL value.
28579
28580 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
28581
28582 PR target/79260
28583 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
28584 tm_p_file.
28585 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
28586
28587 2017-01-30 Richard Biener <rguenther@suse.de>
28588
28589 PR tree-optimization/79276
28590 * tree-vrp.c (process_assert_insertions): Properly adjust common
28591 when removing a duplicate.
28592
28593 * gcc.dg/torture/pr79276.c: New testcase.
28594
28595 2017-01-30 Richard Biener <rguenther@suse.de>
28596
28597 PR tree-optimization/79256
28598 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
28599 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
28600 alignment on TYPE.
28601 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
28602
28603 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
28604
28605 PR target/79240
28606 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
28607 ("*r<noxa>sbg_<mode>_sll_bitmask")
28608 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
28609 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
28610 Use contiguous_bitmask_nowrap_operand.
28611
28612 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28613
28614 PR target/79268
28615 * config/rs6000/altivec.h (vec_xl): Revise #define.
28616 (vec_xst): Likewise.
28617
28618 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
28619
28620 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
28621
28622 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
28623
28624 PR rtl-optimization/79194
28625 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
28626 traps before call to bypass_conditional_jumps.
28627
28628 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
28629
28630 PR tree-optimization/71374
28631 * lra-constraints.c (check_conflict_input_operands): New.
28632 (match_reload): Use it.
28633
28634 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
28635
28636 PR target/79131
28637 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
28638 account to calculate conflict_set.
28639
28640 2017-01-27 Bin Cheng <bin.cheng@arm.com>
28641
28642 PR rtl-optimization/78559
28643 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
28644 other_insn in combine.
28645
28646 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
28647
28648 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
28649 uint16_type_node for BT_UINT16.
28650
28651 2017-01-27 David Malcolm <dmalcolm@redhat.com>
28652
28653 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
28654 "RTL Tests" to menu.
28655 (GIMPLE Tests): New node.
28656 (RTL Tests): New node.
28657
28658 2017-01-27 Richard Biener <rguenther@suse.de>
28659
28660 PR tree-optimization/79245
28661 * tree-loop-distribution.c (distribute_loop): Apply cost
28662 modeling also to detected patterns.
28663
28664 2017-01-27 Richard Biener <rguenther@suse.de>
28665
28666 PR tree-optimization/71433
28667 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
28668 (compare_assert_loc): New function.
28669 (process_assert_insertions): Sort and optimize assert locations
28670 to remove duplicates and push down identical assertions on
28671 edges to their destination block.
28672
28673 2017-01-27 Richard Biener <rguenther@suse.de>
28674
28675 PR tree-optimization/79244
28676 * tree-vrp.c (remove_range_assertions): Forcefully propagate
28677 out SSA names even if abnormal.
28678
28679 2017-01-27 Jakub Jelinek <jakub@redhat.com>
28680
28681 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
28682 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
28683 instead of MPFR_RNDN.
28684
28685 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
28686
28687 PR target/79239
28688 * arm.c (arm_option_override): Don't call build_target_option_node
28689 until after doing all option overrides.
28690 (arm_valid_target_attribute_tree): Likewise.
28691
28692 2017-01-27 Martin Liska <mliska@suse.cz>
28693
28694 * doc/invoke.texi (-fprofile-arcs): Document profiling support
28695 for {cd}tors and C++ {cd}tors.
28696
28697 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
28698
28699 * config/s390/s390.md ("*setmem_long_and")
28700 ("*setmem_long_and_31z"): Use zero_extend instead of and.
28701
28702 2017-01-26 Martin Sebor <msebor@redhat.com>
28703
28704 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
28705 of precision.
28706
28707 2017-01-26 Martin Sebor <msebor@redhat.com>
28708
28709 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
28710 HAVE_DFmode before using XFmode or DFmode.
28711 (parse_directive): Avoid using the z length modifier to avoid
28712 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
28713
28714 PR middle-end/78703
28715 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
28716 to accept adjustment as an array.
28717 (get_int_range): New function.
28718 (struct directive): Make width and prec arrays.
28719 (directive::set_width, directive::set_precision): Call get_int_range.
28720 (format_integer, format_floating): Handle width and precision ranges.
28721 (format_string, parse_directive): Same.
28722
28723 2017-01-26 Jakub Jelinek <jakub@redhat.com>
28724
28725 PR debug/79129
28726 * dwarf2out.c (generate_skeleton_bottom_up): For children with
28727 comdat_type_p set, just clone them, but keep the children in the
28728 original DIE.
28729
28730 PR debug/78835
28731 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
28732 which have direct callers with -fvar-tracking-assignments enabled
28733 in the current TU.
28734 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
28735 inside of type units.
28736
28737 2017-01-26 Martin Sebor <msebor@redhat.com>
28738
28739 PR middle-end/78703
28740 * gimple-ssa-sprintf.c (struct result_range): Add likely and
28741 unlikely counters.
28742 (struct format_result): Replace number_chars, number_chars_min,
28743 and number_chars_max with a single member of struct result_range.
28744 Remove bounded.
28745 (format_result::operator+=): Adjust.
28746 (struct fmtresult): Remove bounded. Handle likely and unlikely
28747 counters.
28748 (fmtresult::adjust_for_width_or_precision): New function.
28749 (fmtresult:type_max_digits): New function.
28750 (bytes_remaining): Handle likely and unlikely counters.
28751 (min_bytes_remaining): Remove.
28752 (format_percent): Simplify.
28753 (format_integer, format_floating): Set likely and unlikely counters.
28754 (get_string_length, format_character, format_string): Same.
28755 (format_plain, should_warn_p): New function.
28756 (maybe_warn): Call should_warn_p. Update diagnostic messages
28757 and handle those for all directives, including plain strings.
28758 (format_directive): Handle likely and unlikely counters.
28759 Remove unnecessary quoting from diagnostics. Add an informational
28760 note.
28761 (add_bytes): Remove.
28762 (pass_sprintf_length::compute_format_length): Simplify.
28763 (try_substitute_return_value): Handle likely and unlikely counters.
28764
28765 2017-01-26 Carl Love <cel@us.ibm.com>
28766
28767 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
28768 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
28769
28770 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
28771
28772 PR target/79131
28773 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
28774 endianess for subregs into account.
28775 * lra-constraints.c (lra_constraints): Do risky transformations
28776 always on the first iteration.
28777 * lra-lives.c (check_pseudos_live_through_calls): Add arg
28778 last_call_used_reg_set.
28779 (process_bb_lives): Define and use last_call_used_reg_set.
28780 * lra.c (lra): Always continue after lra_constraints on the first
28781 iteration.
28782
28783 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
28784
28785 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
28786 constant.
28787 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
28788
28789 2017-01-26 Jakub Jelinek <jakub@redhat.com>
28790
28791 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
28792 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
28793 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
28794 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
28795 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
28796 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
28797 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
28798 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
28799 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
28800
28801 2017-01-26 Marek Polacek <polacek@redhat.com>
28802
28803 PR c/79199
28804 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
28805 for the third operand.
28806
28807 2017-01-26 Jakub Jelinek <jakub@redhat.com>
28808
28809 PR middle-end/79236
28810 * omp-low.c (struct omp_context): Add simt_stmt field.
28811 (scan_omp_for): Return omp_context *.
28812 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
28813 context to the _simt_ SIMD stmt.
28814 (lower_omp_for): For combined SIMD with sibling _simt_
28815 SIMD, make sure to use the same decls in _looptemp_
28816 clauses as in the sibling.
28817
28818 2017-01-26 David Sherwood <david.sherwood@arm.com>
28819
28820 PR middle-end/79212
28821 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
28822 all contexts.
28823
28824 2017-01-26 Jakub Jelinek <jakub@redhat.com>
28825
28826 PR target/70465
28827 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
28828 emit fld b; fld a; if possible.
28829
28830 * brig-builtins.def: Update copyright years.
28831 * config/arm/arm_acle_builtins.def: Update copyright years.
28832
28833 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
28834
28835 PR target/79179
28836 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
28837 constraint instead of o for the stxsd instruction.
28838
28839 2017-01-25 Carl Love <cel@us.ibm.com>
28840
28841 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
28842 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
28843
28844 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
28845
28846 * doc/invoke.texi (C++ Dialect Options): Fix typo.
28847
28848 2017-01-25 Richard Biener <rguenther@suse.de>
28849
28850 PR tree-optimization/69264
28851 * target.def (vector_alignment_reachable): Improve documentation.
28852 * doc/tm.texi: Regenerate.
28853 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
28854 and add a comment.
28855 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
28856 earlier changes with respect to TYPE_USER_ALIGN.
28857 (vector_alignment_reachable_p): Likewise. Improve dumping.
28858
28859 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28860
28861 PR target/79145
28862 * config/arm/arm.md (xordi3): Force constant operand into a register
28863 for TARGET_IWMMXT.
28864
28865 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28866
28867 * doc/invoke.texi (-fstore-merging): Correct default optimization
28868 levels at which it is enabled.
28869 (-O): Move -fstore-merging from list to...
28870 (-O2): ... Here.
28871
28872 2017-01-25 Richard Biener <rguenther@suse.de>
28873
28874 PR debug/78363
28875 * omp-expand.c: Include debug.h.
28876 (expand_omp_taskreg): Make sure to generate early debug before
28877 outlining anything from a function.
28878 (expand_omp_target): Likewise.
28879 (grid_expand_target_grid_body): Likewise.
28880
28881 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
28882
28883 PR lto/79061
28884 * asan.c (get_translation_unit_decl): New function.
28885 (asan_add_global): Extract modules file name from globals
28886 TRANSLATION_UNIT_DECL name.
28887
28888 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
28889
28890 PR target/77439
28891 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
28892 for long calls with APCS frame and VFP.
28893
28894 2017-01-24 David Malcolm <dmalcolm@redhat.com>
28895
28896 * cfg.c (original_copy_tables_initialized_p): New function.
28897 * cfg.h (original_copy_tables_initialized_p): New decl.
28898 * cfgrtl.c (relink_block_chain): Guard the call to
28899 free_original_copy_tables with a call to
28900 original_copy_tables_initialized_p.
28901 * cgraph.h (symtab_node::native_rtl_p): New decl.
28902 * cgraphunit.c (symtab_node::native_rtl_p): New function.
28903 (symtab_node::needed_p): Don't assert for early assembly output
28904 for __RTL functions.
28905 (cgraph_node::finalize_function): Set "force_output" for __RTL
28906 functions.
28907 (cgraph_node::analyze): Bail out early for __RTL functions.
28908 (analyze_functions): Update assertion to support __RTL functions.
28909 (cgraph_node::expand): Bail out early for __RTL functions.
28910 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
28911 __RTL functions.
28912 * function.h (struct function): Update comment for field
28913 "pass_startwith".
28914 * gimple-expr.c: Include "tree-pass.h".
28915 (gimple_has_body_p): Return false for __RTL functions.
28916 * Makefile.in (OBJS): Add run-rtl-passes.o.
28917 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
28918 accessor.
28919 (gcc::pass_manager::get_clean_slate): New accessor.
28920 * passes.c: Include "insn-addr.h".
28921 (should_skip_pass_p): Add logging. Update logic for running
28922 "expand" to be compatible with both __GIMPLE and __RTL. Guard
28923 property-provider override so it is only done for gimple passes.
28924 Don't skip dfinit.
28925 (skip_pass): New function.
28926 (execute_one_pass): Call skip_pass when skipping passes.
28927 * read-md.c (md_reader::read_char): Support filtering
28928 the input to a subset of line numbers.
28929 (md_reader::md_reader): Initialize fields
28930 m_first_line and m_last_line.
28931 (md_reader::read_file_fragment): New function.
28932 * read-md.h (md_reader::read_file_fragment): New decl.
28933 (md_reader::m_first_line): New field.
28934 (md_reader::m_last_line): New field.
28935 * read-rtl-function.c (function_reader::create_function): Only
28936 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
28937 curr_properties. Set DECL_INITIAL to a dummy block.
28938 (read_rtl_function_body_from_file_range): New function.
28939 * read-rtl-function.h (read_rtl_function_body_from_file_range):
28940 New decl.
28941 * run-rtl-passes.c: New file.
28942 * run-rtl-passes.h: New file.
28943
28944 2017-01-24 Jeff Law <law@redhat.com>
28945
28946 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
28947 buffer size.
28948
28949 2017-01-24 Bin Cheng <bin.cheng@arm.com>
28950
28951 PR tree-optimization/79159
28952 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
28953 (record_nonwrapping_iv): Improve boundary using above function if no
28954 value range information.
28955
28956 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
28957 Martin Jambor <mjambor@suse.cz>
28958
28959 * brig-builtins.def: New file.
28960 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
28961 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
28962 (DEF_HSAIL_SAT_BUILTIN): Likewise.
28963 (DEF_HSAIL_INTR_BUILTIN): Likewise.
28964 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
28965 * builtin-types.def (BT_INT8): New.
28966 (BT_INT16): Likewise.
28967 (BT_UINT8): Likewise.
28968 (BT_UINT16): Likewise.
28969 (BT_FN_ULONG): Likewise.
28970 (BT_FN_UINT_INT): Likewise.
28971 (BT_FN_UINT_ULONG): Likewise.
28972 (BT_FN_UINT_LONG): Likewise.
28973 (BT_FN_UINT_PTR): Likewise.
28974 (BT_FN_ULONG_PTR): Likewise.
28975 (BT_FN_INT8_FLOAT): Likewise.
28976 (BT_FN_INT16_FLOAT): Likewise.
28977 (BT_FN_UINT32_FLOAT): Likewise.
28978 (BT_FN_UINT16_FLOAT): Likewise.
28979 (BT_FN_UINT8_FLOAT): Likewise.
28980 (BT_FN_UINT64_FLOAT): Likewise.
28981 (BT_FN_UINT16_UINT32): Likewise.
28982 (BT_FN_UINT32_UINT16): Likewise.
28983 (BT_FN_UINT16_UINT16_UINT16): Likewise.
28984 (BT_FN_INT_PTR_INT): Likewise.
28985 (BT_FN_UINT_PTR_UINT): Likewise.
28986 (BT_FN_LONG_PTR_LONG): Likewise.
28987 (BT_FN_ULONG_PTR_ULONG): Likewise.
28988 (BT_FN_VOID_UINT64_UINT64): Likewise.
28989 (BT_FN_UINT8_UINT8_UINT8): Likewise.
28990 (BT_FN_INT8_INT8_INT8): Likewise.
28991 (BT_FN_INT16_INT16_INT16): Likewise.
28992 (BT_FN_INT_INT_INT): Likewise.
28993 (BT_FN_UINT_FLOAT_UINT): Likewise.
28994 (BT_FN_FLOAT_UINT_UINT): Likewise.
28995 (BT_FN_ULONG_UINT_UINT): Likewise.
28996 (BT_FN_ULONG_UINT_PTR): Likewise.
28997 (BT_FN_ULONG_ULONG_ULONG): Likewise.
28998 (BT_FN_UINT_UINT_UINT): Likewise.
28999 (BT_FN_VOID_UINT_PTR): Likewise.
29000 (BT_FN_UINT_UINT_PTR: Likewise.
29001 (BT_FN_UINT32_UINT64_PTR): Likewise.
29002 (BT_FN_INT_INT_UINT_UINT): Likewise.
29003 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
29004 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
29005 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
29006 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
29007 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
29008 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
29009 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
29010 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
29011 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
29012 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
29013 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
29014 * doc/frontends.texi: List BRIG FE.
29015 * doc/install.texi (Testing): Add BRIG tesring requirements.
29016 * doc/invoke.texi (Overall Options): Mention BRIG.
29017 * doc/standards.texi (Standards): Doucment BRIG HSA version.
29018
29019 2017-01-24 Richard Biener <rguenther@suse.de>
29020
29021 PR translation/79208
29022 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
29023
29024 2017-01-24 Martin Jambor <mjambor@suse.cz>
29025
29026 PR bootstrap/79198
29027 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
29028 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
29029 and known_contexts.
29030
29031 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
29032
29033 PR middle-end/79123
29034 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
29035 casts from signed to unsigned really don't have a range.
29036
29037 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
29038
29039 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
29040 GMP_RNDx for compatiblity.
29041
29042 2017-01-24 Martin Liska <mliska@suse.cz>
29043
29044 PR bootstrap/79132
29045 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
29046 that would prevent us to call alloca with -1 as argument.
29047
29048 2017-01-24 Jakub Jelinek <jakub@redhat.com>
29049
29050 * dwarf2out.c (output_compilation_unit_header, output_file_names):
29051 Avoid -Wformat-security warning.
29052
29053 2017-01-23 Andrew Pinski <apinski@cavium.com>
29054
29055 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
29056 cost table.
29057
29058 2017-01-23 Martin Sebor <msebor@redhat.com>
29059
29060 PR middle-end/78703
29061 * gimple-ssa-sprintf.c (warn_level): New global.
29062 (format_integer): Use it here and throughout the rest of the file.
29063 Use the same switch to compute sign as base.
29064 (maybe_warn): New function.
29065 (format_directive): Factor out warnings into maybe_warn.
29066 Add debugging output. Use warn_level.
29067 (add_bytes): Use warn_level.
29068 (pass_sprintf_length::compute_format_length): Add debugging output.
29069 (try_substitute_return_value): Same.
29070 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
29071
29072 PR middle-end/78703
29073 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
29074 (struct fmtresult, format_integer, format_floating): Adjust.
29075 (fmtresult::fmtresult): Set max correctly in two argument ctor.
29076 (get_string_length, format_string,format_directive): Same.
29077 (pass_sprintf_length::compute_format_length): Same.
29078 (try_substitute_return_value): Simplify slightly.
29079
29080 PR middle-end/78703
29081 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
29082 (fmtresult::operator+=): Outlined.
29083 (struct fmtresult): Add ctors.
29084 (struct conversion_spec): Rename...
29085 (struct directive): ...to this. Add and remove data members.
29086 (directive::set_width, directive::set_precision): New functions.
29087 (format_percent): Use fmtresult ctor.
29088 (get_width_and_precision): Remove.
29089 (format_integer): Make naming changes. Avoid computing width and
29090 precision.
29091 (format_floating): Same. Adjust indentation.
29092 (format_character, format_none): New functions.
29093 (format_string): Moved character handling to format_character.
29094 (format_directive): Remove arguments, change return type.
29095 (parse_directive): New function.
29096 (pass_sprintf_length::compute_format_length): Move directive
29097 parsing to parse_directive.
29098
29099 2017-01-23 Jakub Jelinek <jakub@redhat.com>
29100
29101 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
29102 (assign_assembler_name_if_needed): ... this.
29103 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
29104 (assign_assembler_name_if_needed): ... this.
29105 (free_lang_data_in_cgraph): Adjust callers.
29106 * cgraphunit.c (cgraph_node::analyze): Likewise.
29107 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
29108 Likewise.
29109
29110 2017-01-23 Richard Biener <rguenther@suse.de>
29111
29112 PR tree-optimization/79088
29113 PR tree-optimization/79188
29114 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
29115 resetting loop bounds after last path deletion. Reset loop
29116 bounds of the target loop, make code match the comments.
29117 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
29118 Make sure loops need no fixups.
29119
29120 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
29121
29122 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
29123 exponent support with double type for first argument.
29124 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
29125 type returned by __builtin_vec_extract_sig,
29126 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
29127 functions from "vector int" to "vector unsigned int" or from
29128 "vector long long int" to "vector unsigned long long int".
29129 Changed type returned by __builtin_vec_extract_exp,
29130 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
29131 functions from "vector int" to "vector unsigned int" or from
29132 "vector long long int" to "vector unsigned long long int".
29133 Changed return type of __builtin_vec_test_data_class,
29134 __builtin_vec_test_data_class_sp, and
29135 __builtin_vec_test_data_class_dp from "vector int" to
29136 "vector bool int" or from "vector long long int" to "vector bool
29137 long long int" and changed second argument type from "unsigned
29138 int" to "int". Added new overloaded function forms "vector float
29139 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
29140 "vector float __builtin_vec_insert_exp_sp (vector float, vector
29141 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
29142 double, vector unsigned long long int)" and "vector double
29143 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
29144 long int)". Changed return type of
29145 __builtin_scalar_test_data_class and
29146 __builtin_scalar_test_data_class_sp and
29147 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
29148 int" and changed second argument from "unsigned int" to "int".
29149 Changed type returned by __builtin_scalar_test_neg,
29150 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
29151 from "int" to "bool int". Added new overloaded function form
29152 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
29153 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
29154 exponent double-precision with floating point first argument.
29155 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
29156 documentation of scalar_test_data_class, scalar_test_neg,
29157 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
29158 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
29159 vec_test_data_class built-in functions to reflect refinements in
29160 their type signatures.
29161
29162 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
29163
29164 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
29165 size of buf.
29166 (aarch64_elf_asm_destructor): Likewise.
29167
29168 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
29169
29170 PR rtl-optimization/78634
29171 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
29172 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
29173 * ifcvt.c (noce_try_cmove): Add missing cost check.
29174
29175 PR rtl-optimization/71724
29176 * combine.c (if_then_else_cond): Look for situations where it is
29177 beneficial to undo the work of one of the recursive calls.
29178
29179 2017-01-23 Bin Cheng <bin.cheng@arm.com>
29180
29181 PR tree-optimization/70754
29182 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
29183 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
29184 combined stmt before it if not NULL.
29185 (combine_chains): Process refs reversely and compute dominance point
29186 for root ref.
29187
29188 2017-01-23 Martin Liska <mliska@suse.cz>
29189
29190 PR tree-optimization/79196
29191 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
29192 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
29193 instead of memcmp.
29194 (strlen_optimize_stmt): Call the renamed function.
29195
29196 2017-01-23 Michael Matz <matz@suse.de>
29197
29198 PR tree-optimization/78384
29199 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
29200
29201 2017-01-23 Richard Biener <rguenther@suse.de>
29202
29203 PR tree-optimization/79186
29204 * tree-vrp.c (register_new_assert_for): Make sure we've seen
29205 both incoming edges before moving an assert.
29206
29207 2017-01-23 Martin Jambor <mjambor@suse.cz>
29208
29209 * ipa-prop.c (load_from_param_1): Removed.
29210 (load_from_unmodified_param): Bits from load_from_param_1 put back
29211 here.
29212 (load_from_param): Removed.
29213 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
29214 with stmt. Reverted back to use of load_from_unmodified_param.
29215
29216 2017-01-23 Martin Jambor <mjambor@suse.cz>
29217
29218 PR ipa/79108
29219 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
29220 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
29221 field a pointer to garbage collected vector, mark lattices and
29222 ipcp_orig_node with GTY((skip)).
29223 (ipa_get_param_count): Adjust to descriptors being a pointer.
29224 (ipa_get_param): Likewise.
29225 (ipa_get_type): Likewise.
29226 (ipa_get_param_move_cost): Likewise.
29227 (ipa_set_param_used): Likewise.
29228 (ipa_get_controlled_uses): Likewise.
29229 (ipa_set_controlled_uses): Likewise.
29230 (ipa_is_param_used): Likewise.
29231 (ipa_node_params_t): Move into garbage collector. New methods insert
29232 and remove.
29233 (ipa_node_params_sum): Annotate wth GTY(()).
29234 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
29235 garbage collected.
29236 (ipa_load_from_parm_agg): Adjust declaration.
29237 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
29238 * ipa-profile.c (ipa_profile): Likewise.
29239 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
29240 (ipa_populate_param_decls): Make descriptors parameter garbage
29241 collected.
29242 (ipa_dump_param): Adjust to descriptors being a pointer.
29243 (ipa_alloc_node_params): Likewise.
29244 (ipa_initialize_node_params): Likewise.
29245 (load_from_param_1): Make descriptors parameter garbage collected.
29246 (load_from_unmodified_param): Likewise.
29247 (load_from_param): Likewise.
29248 (ipa_load_from_parm_agg): Likewise.
29249 (ipa_node_params::~ipa_node_params): Removed.
29250 (ipa_free_all_node_params): Remove call to delete operator.
29251 (ipa_node_params_t::insert): New.
29252 (ipa_node_params_t::remove): Likewise.
29253 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
29254 copy known_csts and known_contexts vectors.
29255 (ipa_read_node_info): Adjust to descriptors being a pointer.
29256 (ipcp_modif_dom_walker): Make m_descriptors field garbage
29257 collected.
29258 (ipcp_transform_function): Make descriptors variable garbage
29259 collected.
29260
29261 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
29262
29263 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
29264 * config/i386/avx512dqintrin.h: Ditto.
29265 * config/i386/avx512fintrin.h: Ditto.
29266 * config/i386/i386.c: Handle new builtins.
29267 * config/i386/i386-builtin.def: Add new builtins.
29268 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
29269 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
29270
29271 2017-01-23 Jakub Jelinek <jakub@redhat.com>
29272 Martin Liska <mliska@suse.cz>
29273
29274 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
29275 * asan.c (asan_expand_poison_ifn): Support stores and use
29276 appropriate ASAN report function.
29277 * internal-fn.c (expand_ASAN_POISON_USE): New function.
29278 * internal-fn.def (ASAN_POISON_USE): Declare.
29279 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
29280 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
29281 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
29282 ASAN_POISON calls w/o LHS.
29283 * tree-ssa.c (execute_update_addresses_taken): Create clobber
29284 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
29285 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
29286 * gimplify.c (asan_poison_variables): Add attribute
29287 use_after_scope_memory to variables that really needs to live
29288 in memory.
29289 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
29290 having the attribute.
29291
29292 2017-01-23 Martin Liska <mliska@suse.cz>
29293
29294 * asan.c (create_asan_shadow_var): New function.
29295 (asan_expand_poison_ifn): Likewise.
29296 * asan.h (asan_expand_poison_ifn): New declaration.
29297 * internal-fn.c (expand_ASAN_POISON): Likewise.
29298 * internal-fn.def (ASAN_POISON): New builtin.
29299 * sanopt.c (pass_sanopt::execute): Expand
29300 asan_expand_poison_ifn.
29301 * tree-inline.c (copy_decl_for_dup_finish): Make function
29302 external.
29303 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
29304 * tree-ssa.c (is_asan_mark_p): New function.
29305 (execute_update_addresses_taken): Rewrite local variables
29306 (identified just by use-after-scope as addressable) into SSA.
29307
29308 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
29309
29310 * doc/install.texi (Specific): opensource.apple.com uses https
29311 now. Remove trailing slash.
29312
29313 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
29314
29315 * README.Portability: Remove note on an Irix compatibility issue.
29316
29317 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
29318
29319 * gcov.c (INCLUDE_ALGORITHM): Define.
29320 (INCLUDE_VECTOR): Define.
29321 No longer include <vector> and <algorithm> directly.
29322
29323 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
29324
29325 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
29326 to https.
29327 * doc/invoke.texi (Code Gen Options): Ditto.
29328
29329 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
29330
29331 PR lto/78407
29332 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
29333
29334 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
29335
29336 rtl-optimization/79125
29337 * cprop.c (local_cprop_pass): Handle cases where we make an
29338 unconditional trap.
29339
29340 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
29341
29342 PR target/61729
29343 PR target/77850
29344 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
29345 read from, for big endian.
29346
29347 2017-01-20 Jiong Wang <jiong.wang@arm.com>
29348
29349 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
29350 register pauth builtins for LP64 only.
29351
29352 2017-01-20 Marek Polacek <polacek@redhat.com>
29353
29354 PR c/79152
29355 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
29356 non-case labels.
29357
29358 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
29359
29360 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
29361 of safelen status.
29362 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
29363 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
29364 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
29365
29366 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29367
29368 PR target/71270
29369 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
29370 in big-endian mode when they are not a single duplicated value.
29371
29372 2017-01-20 Richard Biener <rguenther@suse.de>
29373
29374 * BASE-VER: Bump to 7.0.1.
29375
29376 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
29377
29378 * omp-low.c (omplow_simd_context): New struct. Use it...
29379 (lower_rec_simd_input_clauses): ...here and...
29380 (lower_rec_input_clauses): ...here to hold common data. Adjust all
29381 references to idx, lane, max_vf, is_simt.
29382
29383 2017-01-20 Graham Markall <graham.markall@embecosm.com>
29384
29385 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
29386 mcpu=nps400.
29387
29388 2017-01-20 Martin Jambor <mjambor@suse.cz>
29389
29390 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
29391 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
29392 gt-hsa-common.h.
29393 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
29394 (GTFILES): Rename hsa.c to hsa-common.c.
29395 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
29396 * hsa-dump.c: Likewise.
29397 * hsa-gen.c: Likewise.
29398 * hsa-regalloc.c: Likewise.
29399 * ipa-hsa.c: Likewise.
29400 * omp-expand.c: Likewise.
29401 * omp-low.c: Likewise.
29402 * toplev.c: Likewise.
29403
29404 2017-01-20 Marek Polacek <polacek@redhat.com>
29405
29406 PR c/64279
29407 * doc/invoke.texi: Document -Wduplicated-branches.
29408 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
29409 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
29410 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
29411 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
29412 return 0 only when not OEP_LEXICOGRAPHIC.
29413 (fold_build_cleanup_point_expr): Use the expression
29414 location when building CLEANUP_POINT_EXPR.
29415 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
29416 * tree.c (add_expr): Handle error_mark_node.
29417
29418 2017-01-20 Martin Liska <mliska@suse.cz>
29419
29420 PR lto/69188
29421 * tree-profile.c (init_ic_make_global_vars): Do not call
29422 finalize_decl.
29423 (gimple_init_gcov_profiler): Likewise.
29424
29425 2017-01-20 Martin Liska <mliska@suse.cz>
29426
29427 PR ipa/71190
29428 * cgraph.h (maybe_create_reference): Remove argument and
29429 update comment.
29430 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
29431 argument.
29432 * ipa-cp.c (create_specialized_node): Likewise.
29433 * symtab.c (symtab_node::maybe_create_reference): Handle
29434 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
29435
29436 2017-01-20 Martin Liska <mliska@suse.cz>
29437
29438 * read-rtl-function.c (function_reader::create_function): Use
29439 build_decl instread of build_decl_stat.
29440
29441 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
29442
29443 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
29444 * config/i386/avx512dqintrin.h: Ditto.
29445 * config/i386/avx512fintrin.h: Ditto.
29446 * config/i386/i386-builtin-types.def: Add new types.
29447 * config/i386/i386.c: Handle new types.
29448 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
29449 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
29450 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
29451 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
29452 (__builtin_ia32_kshiftridi): New.
29453 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
29454
29455 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
29456
29457 PR target/78875
29458 PR target/79140
29459 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
29460 define to rs6000_init_stack_protect_guard.
29461 (rs6000_init_stack_protect_guard): New function.
29462
29463 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
29464 Yunqiang Su <yunqiang.su@imgtec.com>
29465
29466 * config.gcc (supported_defaults): Add madd4.
29467 (with_madd4): Add validation.
29468 (all_defaults): Add madd4.
29469 * config/mips/mips.opt (mmadd4): New option.
29470 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
29471 mmadd4.
29472 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
29473 __mips_no_madd4.
29474 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
29475 (ISA_HAS_FUSED_MADD4): Likewise.
29476 * doc/invoke.texi (-mmadd4): Document the new option.
29477 * doc/install.texi (--with-madd4): Document the new option.
29478
29479 2017-01-19 Jiong Wang <jiong.wang@arm.com>
29480
29481 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
29482 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
29483 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
29484 (aarch64_init_pauth_hint_builtins): New.
29485 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
29486 (aarch64_expand_builtin): Expand new builtins.
29487
29488 2017-01-19 Jiong Wang <jiong.wang@arm.com>
29489
29490 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
29491 * combine-stack-adj.c (no_unhandled_cfa): Handle
29492 REG_CFA_TOGGLE_RA_MANGLE.
29493 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
29494 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
29495 info for return address signing.
29496 (aarch64_expand_epilogue): Likewise.
29497
29498 2017-01-19 Jiong Wang <jiong.wang@arm.com>
29499
29500 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
29501 * config/aarch64/aarch64-protos.h
29502 (aarch64_return_address_signing_enabled): New declaration.
29503 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
29504 New function.
29505 (aarch64_expand_prologue): Sign return address before it's pushed onto
29506 stack.
29507 (aarch64_expand_epilogue): Authenticate return address fetched from
29508 stack.
29509 (aarch64_override_options): Sanity check for ILP32 and ISA level.
29510 (aarch64_attributes): New function attributes for "sign-return-address".
29511 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
29512 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
29513 ("*do_return"): Generate combined instructions according to key index.
29514 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
29515 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
29516 iterators.
29517 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
29518 * config/aarch64/aarch64.opt (msign-return-address=): New.
29519 * doc/extend.texi (AArch64 Function Attributes): Documents
29520 "sign-return-address=".
29521 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
29522
29523 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
29524
29525 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
29526 overall option summary.
29527
29528 2017-01-19 Jiong Wang <jiong.wang@arm.com>
29529
29530 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
29531 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
29532 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
29533 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
29534
29535 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
29536
29537 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
29538 -mpower9-minmax by default for -mcpu=power9.
29539 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
29540 128-bit floating point.
29541
29542 2017-01-20 Alan Modra <amodra@gmail.com>
29543
29544 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
29545 optimizing for size.
29546
29547 2017-01-20 Alan Modra <amodra@gmail.com>
29548
29549 PR target/79144
29550 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
29551 for strcmp and strncmp from corresponding builtin decl.
29552
29553 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
29554
29555 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
29556 instead of i386/rtems-64.h.
29557 * config/i386/rtems-64.h: Remove.
29558
29559 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
29560
29561 PR target/78478
29562 Revert:
29563 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
29564
29565 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
29566
29567 2017-01-19 Tamar Christina <tamar.christina@arm.com>
29568
29569 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
29570 Change int to HOST_WIDE_INT.
29571 * config/aarch64/aarch64-protos.h
29572 (aarch64_simd_gen_const_vector_dup): Likewise.
29573 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
29574
29575 2017-01-19 David Malcolm <dmalcolm@redhat.com>
29576
29577 * langhooks-def.h (lhd_type_for_size): New decl.
29578 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
29579 * langhooks.c (lhd_type_for_size): New function, taken from
29580 lto_type_for_size.
29581
29582 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
29583
29584 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
29585 define_bypass for CR latency.
29586 (power9-cracked-alu): Update bypass latency and remove power9-branch.
29587 (power9-alu2): Add define_bypass for CR latency.
29588 (power9-cmp): New.
29589 (power9-mul): Update insn latency.
29590 (power9-mul-compare): Update insn latency, bypass latency and remove
29591 power9-branch.
29592
29593 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29594
29595 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
29596 Delete.
29597 * config/aarch64/aarch64.md
29598 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
29599 aarch64_nopcrelative_literal_loads.
29600 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
29601
29602 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
29603
29604 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
29605 TARGET_LOONGSON_3A.
29606 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
29607
29608 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
29609
29610 PR target/78176
29611 * config.gcc (supported_defaults): Add lxc1-sxc1.
29612 (with_lxc1_sxc1): Add validation.
29613 (all_defaults): Add lxc1-sxc1.
29614 * config/mips/mips.opt (mlxc1-sxc1): New option.
29615 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
29616 mlxc1-sxc1.
29617 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
29618 __mips_no_lxc1_sxc1.
29619 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
29620 * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
29621 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
29622
29623 2017-01-19 Richard Biener <rguenther@suse.de>
29624
29625 PR tree-optimization/72488
29626 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
29627 sure to restore SSA info.
29628 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
29629
29630 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
29631
29632 PR rtl-optimization/79121
29633 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
29634 of the inner type when shifting an extended value.
29635
29636 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
29637
29638 PR lto/78407
29639 * symtab.c (symtab_node::equal_address_to): Fix comparing of
29640 interposable aliases.
29641
29642 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
29643
29644 PR target/78516
29645 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
29646 Use the evmergelohi instruction.
29647 (mov_si<mode>_e500_subreg4_2_le): Likewise.
29648 (mov_sitf_e500_subreg8_2_be): Likewise.
29649 (mov_sitf_e500_subreg12_2_le): Likewise.
29650 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
29651 (mov_si<mode>_e500_subreg4_2_be): Likewise.
29652 (mov_sitf_e500_subreg8_2_le): Likewise.
29653 (mov_sitf_e500_subreg12_2_be): Likewise.
29654
29655 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29656
29657 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
29658 attribute from vecsimple to vecperm.
29659 (altivec_vbpermq2): Likewise.
29660
29661 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29662
29663 PR target/79040
29664 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
29665
29666 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
29667 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
29668 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
29669 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
29670 case where N arg is SIZE_MAX.
29671 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
29672 (cmpstrsi): Add pattern.
29673
29674 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
29675
29676 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
29677 __builtin_vec_revb builtins.
29678 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
29679 built-in functions to support generation of the ISA 3.0 XXBR<x>
29680 vector byte reverse instructions.
29681 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
29682 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
29683 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
29684 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
29685 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
29686 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
29687 (P9V_BUILTIN_VEC_REVB): Likewise.
29688 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
29689 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
29690 (p9_xxbrq_v16qi): Likewise.
29691 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
29692 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
29693 (p9_xxbrh_v8hi): Likewise.
29694 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
29695 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
29696 vec_revb built-in functions.
29697
29698 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
29699
29700 PR rtl-optimization/78952
29701 * config/i386/i386.md (any_extract): New code iterator.
29702 (*insvqi_2): Use any_extract for source operand.
29703 (*insvqi_3): Use any_shiftrt for source operand.
29704
29705 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
29706
29707 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
29708 New function.
29709 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
29710
29711 2017-01-18 Matthias Klose <doko@ubuntu.com>
29712
29713 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
29714
29715 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29716
29717 * config/rs6000/altivec.h (vec_bperm): Change #define.
29718 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
29719 (altivec_vbpermq2): New define_insn.
29720 (altivec_vbpermd): Likewise.
29721 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
29722 function interface.
29723 (VBPERMD): Likewise.
29724 (VBPERM): New polymorphic function interface.
29725 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
29726 Add entries for P9V_BUILTIN_VEC_VBPERM.
29727 * doc/extend.texi: Add interfaces for vec_bperm.
29728
29729 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29730
29731 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
29732 first letter of error messages.
29733 (s390_resolve_overloaded_builtin): Likewise.
29734 * config/s390/s390.c (s390_expand_builtin): Likewise.
29735 (s390_invalid_arg_for_unprototyped_fn): Likewise.
29736 (s390_valid_target_attribute_inner_p): Likewise.
29737 * config/s390/s390.md ("tabort"): Likewise.
29738
29739 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
29740
29741 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
29742 (ISA_AVOID_DIV_HILO): New macro.
29743 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
29744 (ISA_HAS_DDIV): Likewise.
29745
29746 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
29747
29748 * doc/invoke.texi (fabi-version): Correct number of occurrences.
29749
29750 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
29751
29752 * doc/invoke.texi (fabi-version): Spelling fix.
29753
29754 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
29755
29756 PR c++/70182
29757 * doc/invoke.texi (fabi-version): Mention mangling fix for
29758 operator names.
29759
29760 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
29761
29762 PR c++/77489
29763 * doc/invoke.texi (fabi-version): Document discriminator mangling.
29764
29765 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
29766
29767 PR target/78875
29768 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
29769 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
29770 the new options.
29771 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
29772 flexible settings.
29773 (stack_protect_test): Ditto.
29774 * config/rs6000/rs6000.opt (mstack-protector-guard=,
29775 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
29776 options.
29777 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
29778 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
29779 -mstack-protector-guard-offset=.
29780 (RS/6000 and PowerPC Options): Ditto.
29781
29782 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
29783
29784 * config/i386/i386.h (MASK_CLASS_P): New define.
29785 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
29786 there are no registers from different register sets also when
29787 mask registers are used. Update function comment.
29788 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
29789 to (*k/*r) and (*k/*km) alternatives.
29790
29791 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
29792
29793 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
29794 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
29795 (EH_RETURN_HANDLER_RTX): New define.
29796 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
29797 Force frame pointer in EH return functions.
29798 (aarch64_expand_epilogue): Add barrier for eh_return.
29799 (aarch64_final_eh_return_addr): Remove.
29800 (aarch64_eh_return_handler_rtx): New function.
29801 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
29802 Remove.
29803 (aarch64_eh_return_handler_rtx): New prototype.
29804
29805 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29806
29807 * config/rs6000/altivec.h (vec_rlmi): New #define.
29808 (vec_vrlnm): Likewise.
29809 (vec_rlnm): Likewise.
29810 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
29811 (UNSPEC_VRLNM): Likewise.
29812 (VIlong): New mode iterator.
29813 (altivec_vrl<VI_char>mi): New define_insn.
29814 (altivec_vrl<VI_char>nm): Likewise.
29815 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
29816 function entry.
29817 (VRLDNM): Likewise.
29818 (RLNM): New polymorphic function entry.
29819 (VRLWMI): New monomorphic function entry.
29820 (VRLDMI): Likewise.
29821 (RLMI): New polymorphic function entry.
29822 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
29823 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
29824 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
29825 vec_vrlnm.
29826
29827 2017-01-17 Jakub Jelinek <jakub@redhat.com>
29828
29829 PR debug/78839
29830 * dwarf2out.c (field_byte_offset): Restore the
29831 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
29832 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
29833 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
29834 of build2 + fold.
29835
29836 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
29837
29838 PR ada/67205
29839 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
29840
29841 2017-01-17 Jakub Jelinek <jakub@redhat.com>
29842
29843 PR debug/71669
29844 * dwarf2out.c (add_data_member_location_attribute): For constant
29845 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
29846 instead of DW_AT_data_member_location, DW_AT_bit_offset and
29847 DW_AT_byte_size attributes.
29848
29849 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
29850
29851 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
29852 after forcing to constant memory when the code model is medium.
29853
29854 2017-01-17 Julia Koval <julia.koval@intel.com>
29855
29856 PR target/76731
29857 * config/i386/avx512fintrin.h
29858 (_mm512_i32gather_ps): Change __addr type to void const*.
29859 (_mm512_mask_i32gather_ps): Ditto.
29860 (_mm512_i32gather_pd): Ditto.
29861 (_mm512_mask_i32gather_pd): Ditto.
29862 (_mm512_i64gather_ps): Ditto.
29863 (_mm512_mask_i64gather_ps): Ditto.
29864 (_mm512_i64gather_pd): Ditto.
29865 (_mm512_mask_i64gather_pd): Ditto.
29866 (_mm512_i32gather_epi32): Ditto.
29867 (_mm512_mask_i32gather_epi32): Ditto.
29868 (_mm512_i32gather_epi64): Ditto.
29869 (_mm512_mask_i32gather_epi64): Ditto.
29870 (_mm512_i64gather_epi32): Ditto.
29871 (_mm512_mask_i64gather_epi32): Ditto.
29872 (_mm512_i64gather_epi64): Ditto.
29873 (_mm512_mask_i64gather_epi64): Ditto.
29874 (_mm512_i32scatter_ps): Change __addr type to void*.
29875 (_mm512_mask_i32scatter_ps): Ditto.
29876 (_mm512_i32scatter_pd): Ditto.
29877 (_mm512_mask_i32scatter_pd): Ditto.
29878 (_mm512_i64scatter_ps): Ditto.
29879 (_mm512_mask_i64scatter_ps): Ditto.
29880 (_mm512_i64scatter_pd): Ditto.
29881 (_mm512_mask_i64scatter_pd): Ditto.
29882 (_mm512_i32scatter_epi32): Ditto.
29883 (_mm512_mask_i32scatter_epi32): Ditto.
29884 (_mm512_i32scatter_epi64): Ditto.
29885 (_mm512_mask_i32scatter_epi64): Ditto.
29886 (_mm512_i64scatter_epi32): Ditto.
29887 (_mm512_mask_i64scatter_epi32): Ditto.
29888 (_mm512_i64scatter_epi64): Ditto.
29889 (_mm512_mask_i64scatter_epi64): Ditto.
29890 * config/i386/avx512pfintrin.h
29891 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
29892 (_mm512_mask_prefetch_i32gather_ps): Ditto.
29893 (_mm512_mask_prefetch_i64gather_pd): Ditto.
29894 (_mm512_mask_prefetch_i64gather_ps): Ditto.
29895 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
29896 (_mm512_prefetch_i32scatter_ps): Ditto.
29897 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
29898 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
29899 (_mm512_prefetch_i64scatter_pd): Ditto.
29900 (_mm512_prefetch_i64scatter_ps): Ditto.
29901 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
29902 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
29903 * config/i386/avx512vlintrin.h
29904 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
29905 (_mm_mmask_i32gather_ps): Ditto.
29906 (_mm256_mmask_i32gather_pd): Ditto.
29907 (_mm_mmask_i32gather_pd): Ditto.
29908 (_mm256_mmask_i64gather_ps): Ditto.
29909 (_mm_mmask_i64gather_ps): Ditto.
29910 (_mm256_mmask_i64gather_pd): Ditto.
29911 (_mm_mmask_i64gather_pd): Ditto.
29912 (_mm256_mmask_i32gather_epi32): Ditto.
29913 (_mm_mmask_i32gather_epi32): Ditto.
29914 (_mm256_mmask_i32gather_epi64): Ditto.
29915 (_mm_mmask_i32gather_epi64): Ditto.
29916 (_mm256_mmask_i64gather_epi32): Ditto.
29917 (_mm_mmask_i64gather_epi32): Ditto.
29918 (_mm256_mmask_i64gather_epi64): Ditto.
29919 (_mm_mmask_i64gather_epi64): Ditto.
29920 (_mm256_i32scatter_ps): Change __addr type to void*.
29921 (_mm256_mask_i32scatter_ps): Ditto.
29922 (_mm_i32scatter_ps): Ditto.
29923 (_mm_mask_i32scatter_ps): Ditto.
29924 (_mm256_i32scatter_pd): Ditto.
29925 (_mm256_mask_i32scatter_pd): Ditto.
29926 (_mm_i32scatter_pd): Ditto.
29927 (_mm_mask_i32scatter_pd): Ditto.
29928 (_mm256_i64scatter_ps): Ditto.
29929 (_mm256_mask_i64scatter_ps): Ditto.
29930 (_mm_i64scatter_ps): Ditto.
29931 (_mm_mask_i64scatter_ps): Ditto.
29932 (_mm256_i64scatter_pd): Ditto.
29933 (_mm256_mask_i64scatter_pd): Ditto.
29934 (_mm_i64scatter_pd): Ditto.
29935 (_mm_mask_i64scatter_pd): Ditto.
29936 (_mm256_i32scatter_epi32): Ditto.
29937 (_mm256_mask_i32scatter_epi32): Ditto.
29938 (_mm_i32scatter_epi32): Ditto.
29939 (_mm_mask_i32scatter_epi32): Ditto.
29940 (_mm256_i32scatter_epi64): Ditto.
29941 (_mm256_mask_i32scatter_epi64): Ditto.
29942 (_mm_i32scatter_epi64): Ditto.
29943 (_mm_mask_i32scatter_epi64): Ditto.
29944 (_mm256_i64scatter_epi32): Ditto.
29945 (_mm256_mask_i64scatter_epi32): Ditto.
29946 (_mm_i64scatter_epi32): Ditto.
29947 (_mm_mask_i64scatter_epi32): Ditto.
29948 (_mm256_i64scatter_epi64): Ditto.
29949 (_mm256_mask_i64scatter_epi64): Ditto.
29950 (_mm_i64scatter_epi64): Ditto.
29951 (_mm_mask_i64scatter_epi64): Ditto.
29952 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
29953 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
29954 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
29955 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
29956 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
29957 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
29958 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
29959 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
29960 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
29961 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
29962 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
29963 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
29964 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
29965 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
29966 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
29967 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
29968 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
29969 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
29970 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
29971 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
29972 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
29973 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
29974 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
29975 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
29976 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
29977 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
29978 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
29979 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
29980 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
29981 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
29982 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
29983 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
29984 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
29985 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
29986 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
29987 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
29988 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
29989 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
29990 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
29991 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
29992 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
29993 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
29994 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
29995 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
29996 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
29997 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
29998 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
29999 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
30000 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
30001 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
30002 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
30003 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
30004 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
30005 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
30006 definitions accordingly.
30007
30008 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
30009 Kuan-Lin Chen <kuanlinchentw@gmail.com>
30010
30011 PR target/79079
30012 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
30013 gen_lowpart.
30014
30015 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
30016
30017 PR target/79058
30018 * ira-conflicts.c (ira_build_conflicts): Update total conflict
30019 hard regs for inner regno.
30020
30021 2017-01-17 Martin Liska <mliska@suse.cz>
30022
30023 PR ipa/71207
30024 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
30025 assumption and add comment.
30026
30027 2017-01-17 Nathan Sidwell <nathan@acm.org>
30028
30029 * ipa-visibility.c (localize_node): New function, broken out of ...
30030 (function_and_variable_visibility): ... here. Call it.
30031
30032 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
30033
30034 PR middle-end/77445
30035 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
30036 correctly set frequency of oudgoing edge.
30037 (duplicate_thread_path): Fix profile updating.
30038
30039 2017-01-17 Jakub Jelinek <jakub@redhat.com>
30040
30041 PR other/79046
30042 * configure.ac: Add GCC_BASE_VER.
30043 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
30044 version from BASE-VER file.
30045 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
30046 (gcc.o): Depend on $(BASEVER).
30047 * common.opt (dumpfullversion): New option.
30048 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
30049 * doc/invoke.texi: Document -dumpfullversion.
30050 * doc/install.texi: Document --with-gcc-major-version-only.
30051 * configure: Regenerated.
30052
30053 2017-01-17 Richard Biener <rguenther@suse.de>
30054
30055 PR tree-optimization/71433
30056 * tree-vrp.c (register_new_assert_for): Merge same asserts
30057 on all incoming edges.
30058 (process_assert_insertions_for): Handle insertions at the
30059 beginning of BBs.
30060
30061 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
30062
30063 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
30064 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
30065
30066 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
30067
30068 PR target/78633
30069 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
30070 RTL sharing.
30071
30072 2017-01-17 Alan Modra <amodra@gmail.com>
30073
30074 PR target/79066
30075 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
30076 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
30077 symbolic stack limit when pic.
30078
30079 2017-01-16 Martin Sebor <msebor@redhat.com>
30080
30081 PR tree-optimization/78608
30082 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
30083
30084 2017-01-16 Jeff Law <law@redhat.com>
30085
30086 Revert:
30087 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
30088 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
30089 for several include directories that may be relative to sysroot.
30090 * config/i386/x-mingw32 (gplus_includedir): Define.
30091 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
30092 (native_system_includedir): Likewise.
30093 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
30094 override if TARGET_SYSTEM_ROOT is defined.
30095 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
30096
30097 PR tree-optimization/79090
30098 PR tree-optimization/33562
30099 PR tree-optimization/61912
30100 PR tree-optimization/77485
30101 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
30102 and computed trims into the dump file.
30103
30104 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
30105
30106 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
30107
30108 2017-01-16 Jakub Jelinek <jakub@redhat.com>
30109
30110 PR c/79089
30111 * gimplify.c (gimplify_init_constructor): If want_value and
30112 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
30113 fix.
30114
30115 PR target/79080
30116 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
30117 sequence. Formatting fixes.
30118 (doloop_optimize): Formatting fixes.
30119
30120 PR driver/49726
30121 * gcc.c (debug_level_greater_than_spec_func): New function.
30122 (static_spec_functions): Add debug-level-gt spec function.
30123 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
30124 !g0.
30125 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
30126 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
30127 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
30128 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
30129 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
30130 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
30131
30132 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
30133
30134 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
30135 QImode fixups to general and mask registers only.
30136
30137 2017-01-16 Carl Love <cel@us.ibm.com>
30138
30139 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
30140 for built-in functions
30141 vector signed char vec_nabs (vector signed char)
30142 vector signed short vec_nabs (vector signed short)
30143 vector signed int vec_nabs (vector signed int)
30144 vector signed long long vec_nabs (vector signed long long)
30145 vector float vec_nabs (vector float)
30146 vector double vec_nabs (vector double)
30147 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
30148 and NABS overload.
30149 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
30150 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
30151 * doc/extend.texi: Update the documentation file for the new built-in
30152 functions.
30153
30154 2017-01-16 Martin Sebor <msebor@redhat.com>
30155
30156 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
30157 message.
30158
30159 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30160
30161 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
30162 UNSPEC_VSX__XXSPLTD to require special splat handling.
30163
30164 2017-01-16 David Malcolm <dmalcolm@redhat.com>
30165
30166 PR bootstrap/78616
30167 * system.h: Poison strndup.
30168
30169 2017-01-16 Alan Modra <amodra@gmail.com>
30170
30171 PR target/79098
30172 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
30173 use a switch.
30174
30175 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
30176
30177 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
30178
30179 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
30180
30181 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
30182 call recog here. Assert that INSN_CODE (insn) is non-negative.
30183
30184 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
30185
30186 PR target/72749
30187 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
30188 fallthrough.
30189 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
30190 in the currently scheduled RTL fragment.
30191
30192 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
30193
30194 PR rtl-optimization/78751
30195 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
30196 give up.
30197
30198 2017-01-14 Jeff Law <law@redhat.com>
30199
30200 PR tree-optimization/79090
30201 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
30202 variable length stores.
30203 (compute_trims): Delete dead assignment to *trim_tail.
30204 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
30205 zero length.
30206
30207 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
30208
30209 PR rtl-optimization/78626
30210 PR rtl-optimization/78727
30211 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
30212 of a block, and split such blocks after everything else is finished.
30213
30214 2017-01-14 Alan Modra <amodra@gmail.com>
30215
30216 PR target/72749
30217 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
30218 target legitimate_combined_insn.
30219 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
30220 (rs6000_legitimate_combined_insn): New function.
30221 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
30222 all uses.
30223 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
30224 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
30225 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
30226
30227 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
30228
30229 * doc/frontends.texi (G++ and GCC): Remove references to Java.
30230
30231 2017-01-13 Jeff Law <law@redhat.com>
30232
30233 PR tree-optimization/33562
30234 PR tree-optimization/61912
30235 PR tree-optimization/77485
30236 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
30237 a statement.
30238 (delete_dead_assignment): Likewise.
30239 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
30240 statement to delete_dead_call and delete_dead_assignment.
30241
30242 2017-01-13 David Malcolm <dmalcolm@redhat.com>
30243
30244 PR c/78304
30245 * substring-locations.c (format_warning_va): Strengthen case 1 so
30246 that both endpoints of the substring must be within the format
30247 range for just the substring to be printed.
30248
30249 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
30250
30251 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
30252 * config/i386/i386.c (ix86_target_string): Add missing options
30253 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
30254 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
30255 flags_other and ix86_target_other to flags2_other. Display unknown
30256 isa2 options.
30257 (ix86_valid_target_attribute_inner_p): Add missing options and
30258 reorder options by implied ISAs, as in ix86_target_string.
30259
30260 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
30261
30262 * hash-table.h (hash_table::too_empty_p): New function.
30263 (hash_table::expand): Use it.
30264 (hash_table::traverse): Likewise.
30265 (hash_table::empty_slot): Use sizeof (value_type) instead of
30266 sizeof (PTR) to convert bytes to elements. Shrink the table
30267 if the current size is excessive for the current number of
30268 elements.
30269
30270 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
30271
30272 * ira-costs.c (record_reg_classes): Break from the inner loop
30273 early once alt_fail is known to be true. Update outer loop
30274 handling accordingly.
30275
30276 2017-01-13 Jeff Law <law@redhat.com>
30277
30278 * tree-ssa-dse.c (decrement_count): New function.
30279 (increment_start_addr, maybe_trim_memstar_call): Likewise.
30280 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
30281 when we know the partially dead statement is a mem* function.
30282
30283 PR tree-optimization/61912
30284 PR tree-optimization/77485
30285 * tree-ssa-dse.c: Include expr.h.
30286 (maybe_trim_constructor_store): New function.
30287 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
30288
30289 PR tree-optimization/33562
30290 PR tree-optimization/61912
30291 PR tree-optimization/77485
30292 * doc/invoke.texi: Document new dse-max-object-size param.
30293 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
30294 * tree-ssa-dse.c: Include params.h.
30295 (dse_store_status): New enum.
30296 (initialize_ao_ref_for_dse): New, partially extracted from
30297 dse_optimize_stmt.
30298 (valid_ao_ref_for_dse, normalize_ref): New.
30299 (setup_live_bytes_from_ref, compute_trims): Likewise.
30300 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
30301 (maybe_trim_partially_dead_store): Likewise.
30302 (maybe_trim_complex_store): Likewise.
30303 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
30304 Track what bytes live from the original store. Return tri-state
30305 for dead, partially dead or live.
30306 (dse_dom_walker): Add constructor, destructor and new private members.
30307 (delete_dead_call, delete_dead_assignment): New extracted from
30308 dse_optimize_stmt.
30309 (dse_optimize_stmt): Make a member of dse_dom_walker.
30310 Use initialize_ao_ref_for_dse.
30311
30312 PR tree-optimization/33562
30313 PR tree-optimization/61912
30314 PR tree-optimization/77485
30315 * sbitmap.h (bitmap_count_bits): Prototype.
30316 (bitmap_clear_range, bitmap_set_range): Likewise.
30317 * sbitmap.c (bitmap_clear_range): New function.
30318 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
30319
30320 2017-01-13 Martin Liska <mliska@suse.cz>
30321
30322 PR ipa/79043
30323 * function.c (set_cfun): Add new argument force.
30324 * function.h (set_cfun): Likewise.
30325 * ipa-inline-transform.c (inline_call): Use the function when
30326 strict alising from is dropped for function we inline to.
30327
30328 2017-01-13 Richard Biener <rguenther@suse.de>
30329
30330 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
30331 for dumping GIMPLE INTEGER_CSTs.
30332
30333 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30334
30335 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
30336 to 201112L since C++17.
30337
30338 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
30339
30340 PR sanitizer/78887
30341 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
30342 if -fsanitize=kernel-address is present.
30343
30344 2017-01-13 Richard Biener <rguenther@suse.de>
30345
30346 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
30347 as _Literal ( type ) number in case usual suffixes do not
30348 preserve all information.
30349
30350 2017-01-13 Richard Biener <rguenther@suse.de>
30351
30352 PR tree-optimization/77283
30353 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
30354 and ssa-iterators.h.
30355 (is_feasible_trace): Implement a cost model based on joiner
30356 PHI node uses.
30357
30358 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
30359
30360 PR target/79004
30361 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
30362 char or short to __float128/_Float128 directly.
30363
30364 2017-01-12 Martin Sebor <msebor@redhat.com>
30365
30366 to -Wformat-overflow.
30367 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
30368 (min_bytes_remaining): Same.
30369 (get_string_length): Same.
30370 (format_string): Same.
30371 (format_directive): Same.
30372 (add_bytes): Same.
30373 (pass_sprintf_length::handle_gimple_call): Same.
30374
30375 2017-01-12 Jakub Jelinek <jakub@redhat.com>
30376
30377 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
30378 info.nowrite calls with no lhs that can't throw. Return bool
30379 whether gsi_remove has been called or not.
30380 (pass_sprintf_length::handle_gimple_call): Return bool whether
30381 try_substitute_return_value called gsi_remove. Formatting fix.
30382 (pass_sprintf_length::execute): Don't use gsi_remove if
30383 handle_gimple_call returned true.
30384
30385 PR bootstrap/79069
30386 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
30387 be removed due to side-effects, don't remove following barrier nor
30388 turn the successor edge into fallthru edge.
30389
30390 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30391
30392 PR target/79044
30393 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
30394 element-reversing loads and stores as not swappable.
30395
30396 2017-01-12 Nathan Sidwell <nathan@acm.org>
30397 Nicolai Stange <nicstange@gmail.com>
30398
30399 * combine.c (try_combine): Don't ignore result of overlap checking
30400 loop. Combine overlap & asm check into single loop.
30401
30402 2017-01-12 Richard Biener <rguenther@suse.de>
30403
30404 * tree-pretty-print.c (dump_generic_node): Provide -gimple
30405 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
30406
30407 2017-01-12 Richard Biener <rguenther@suse.de>
30408
30409 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
30410 and TS_TARGET_OPTION directly derive from TS_BASE.
30411 * tree-core.h (tree_optimization_option): Derive from tree_base.
30412 (tree_target_option): Likewise.
30413
30414 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
30415
30416 * config/i386/i386.c (memory_address_length): Increase len
30417 only when rip_relative_addr_p returns false.
30418
30419 2017-01-11 Julia Koval <julia.koval@intel.com>
30420
30421 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
30422 (OPTION_MASK_ISA_SGX_SET): New.
30423 (ix86_handle_option): Handle OPT_msgx.
30424 * config.gcc: Added sgxintrin.h.
30425 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
30426 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
30427 * config/i386/i386.c (ix86_target_string): Add -msgx.
30428 (PTA_SGX): New.
30429 (ix86_option_override_internal): Handle new options.
30430 (ix86_valid_target_attribute_inner_p): Add sgx.
30431 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
30432 * config/i386/i386.opt: Add msgx.
30433 * config/i386/sgxintrin.h: New file.
30434 * config/i386/x86intrin.h: Add sgxintrin.h.
30435
30436 2017-01-11 Jakub Jelinek <jakub@redhat.com>
30437
30438 PR c++/71537
30439 * fold-const.c (maybe_nonzero_address): Return 1 for function
30440 local objects.
30441 (tree_single_nonzero_warnv_p): Don't handle function local objects
30442 here.
30443
30444 PR c++/72813
30445 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
30446 of c-header.
30447
30448 2017-01-11 David Malcolm <dmalcolm@redhat.com>
30449
30450 PR driver/78877
30451 * opts.c: Include "spellcheck.h"
30452 (struct string_fragment): New struct.
30453 (struct edit_distance_traits<const string_fragment &>): New
30454 struct.
30455 (get_closest_sanitizer_option): New function.
30456 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
30457
30458 2017-01-11 Jakub Jelinek <jakub@redhat.com>
30459
30460 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
30461 by 12.
30462 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
30463 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
30464 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
30465 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
30466 for initial die_offset if dwarf_split_debug_info.
30467 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
30468 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
30469 fields.
30470 (output_skeleton_debug_sections): Formatting fix. Use
30471 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
30472 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
30473
30474 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
30475
30476 * config/arm/cortex-a53.md: Add bypasses for
30477 cortex_a53_r2f_cvt.
30478 (cortex_a53_r2f): Only use for transfers.
30479 (cortex_a53_f2r): Likewise.
30480 (cortex_a53_r2f_cvt): Add reservation for conversions.
30481 (cortex_a53_f2r_cvt): Likewise.
30482
30483 2017-01-11 Tamar Christina <tamar.christina@arm.com>
30484
30485 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
30486 to all inlined functions, change static to extern.
30487
30488 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
30489
30490 PR target/78253
30491 * config/arm/arm.c (legitimize_pic_address): Handle reference to
30492 weak symbol.
30493 (arm_assemble_integer): Likewise.
30494
30495 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
30496
30497 * config.gcc: Use new awk script to check CPU, FPU and architecture
30498 parameters for --with-... options.
30499 * config/arm/parsecpu.awk: New file
30500 * config/arm/arm-cpus.in: New file.
30501 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
30502 files.
30503 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
30504 files.
30505 * config/arm/t-arm: Update dependency rules.
30506 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
30507 of processing .def files.
30508 * config/arm/genopt.sh: Deleted.
30509 * config/arm/gentune.sh: Deleted.
30510 * config/arm/arm-cores.def: Deleted.
30511 * config/arm/arm-arches.def: Deleted.
30512 * config/arm/arm-fpus.def: Deleted.
30513 * config/arm/arm-tune.md: Regenerated.
30514 * config/arm/arm-tables.opt: Regenerated.
30515 * config/arm/arm-cpu.h: New generated file.
30516 * config/arm/arm-cpu-data.h: New generated file.
30517 * config/arm/arm-cpu-cdata.h: New generated file.
30518
30519 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
30520
30521 PR lto/79042
30522 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
30523 bit.
30524 (input_varpool_node): Unpack dynamically_initialized bit.
30525
30526 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
30527
30528 PR rtl-optimization/79032
30529 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
30530 the alignment of the adjusted memory reference against that of MODE,
30531 instead of the alignment of the original memory reference.
30532
30533 2017-01-11 Martin Jambor <mjambor@suse.cz>
30534
30535 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
30536 test.
30537 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
30538 decorated functions.
30539
30540 2017-01-11 Richard Biener <rguenther@suse.de>
30541
30542 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
30543 set range/nonnull info for PHI results. Do not set it on
30544 stmts marked for removal.
30545
30546 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
30547
30548 * expr.c (store_field): In the bitfield case, fetch the return value
30549 from the registers before applying a single big-endian adjustment.
30550 Always do a final load for a BLKmode value not larger than a word.
30551
30552 2017-01-10 David Malcolm <dmalcolm@redhat.com>
30553
30554 PR c++/77949
30555 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
30556 that we correctly handle column numbers greater than
30557 LINE_MAP_MAX_COLUMN_NUMBER.
30558
30559 2017-01-10 Martin Sebor <msebor@redhat.com>
30560
30561 PR middle-end/78245
30562 * gimple-ssa-sprintf.c (get_destination_size): Call
30563 {init,fini}object_sizes.
30564 * tree-object-size.c (addr_object_size): Adjust.
30565 (pass_through_call): Adjust.
30566 (pass_object_sizes::execute): Adjust.
30567 * tree-object-size.h (fini_object_sizes): Declare.
30568
30569 2017-01-10 Martin Sebor <msebor@redhat.com>
30570
30571 PR tree-optimization/78775
30572 * builtins.c (get_size_range): Move...
30573 * calls.c: ...to here.
30574 (alloc_max_size): Accept zero argument.
30575 (operand_signed_p): Remove.
30576 (maybe_warn_alloc_args_overflow): Call get_size_range.
30577 * calls.h (get_size_range): Declare.
30578
30579 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
30580
30581 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
30582 from TI's devices.csv file as of September 2016.
30583 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
30584
30585 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
30586
30587 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
30588 * doc/invoke.texi: Likewise.
30589 * doc/md.texi: Likewise.
30590 * doc/objc.texi: Likewise.
30591
30592 2017-01-10 Joshua Conner <joshconner@google.com>
30593
30594 * config/arm/fuchsia-elf.h: New file.
30595 * config/fuchsia.h: New file.
30596 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
30597 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
30598 targets.
30599 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
30600
30601 2016-01-10 Richard Biener <rguenther@suse.de>
30602
30603 PR tree-optimization/79034
30604 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
30605 Propagate out degenerate PHIs in the joiner.
30606
30607 2017-01-10 Martin Liska <mliska@suse.cz>
30608
30609 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
30610 (sort_congruence_classes_by_decl_uid): Likewise.
30611 (sort_congruence_class_groups_by_decl_uid): Likewise.
30612 (sem_item_optimizer::merge_classes): Sort class, groups in these
30613 classes and members in the groups by DECL_UID of declarations.
30614 This would make merge operations stable.
30615
30616 2017-01-10 Martin Liska <mliska@suse.cz>
30617
30618 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
30619 usage of m_classes_vec.
30620 (sem_item_optimizer::~sem_item_optimizer): Likewise.
30621 (sem_item_optimizer::get_group_by_hash): Likewise.
30622 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
30623 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
30624 (sem_item_optimizer::verify_classes): Likewise.
30625 (sem_item_optimizer::process_cong_reduction): Likewise.
30626 (sem_item_optimizer::dump_cong_classes): Likewise.
30627 (sem_item_optimizer::merge_classes): Likewise.
30628 * ipa-icf.h (congruence_class_hash): Rename from
30629 congruence_class_group_hash. Remove declaration of m_classes_vec.
30630
30631 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
30632
30633 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
30634 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
30635 * config.gcc: Add avx512vpopcntdqintrin.h.
30636 * config/i386/avx512vpopcntdqintrin.h: New.
30637 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
30638 * config/i386/i386-builtin-types.def: Add new types.
30639 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
30640 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
30641 __builtin_ia32_vpopcountq_v8di_mask): New.
30642 * config/i386/i386-c.c (ix86_target_macros_internal): Define
30643 __AVX512VPOPCNTDQ__.
30644 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
30645 (PTA_AVX512VPOPCNTDQ): Define.
30646 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
30647 TARGET_AVX512VPOPCNTDQ_P): Define.
30648 * config/i386/i386.opt: Add mavx512vpopcntdq.
30649 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
30650 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
30651
30652 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
30653
30654 PR middle-end/77484
30655 * predict.def (PRED_CALL): Set to 67.
30656
30657 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
30658
30659 * expr.c (store_field): In the bitfield case, if the value comes from
30660 a function call and is of an aggregate type returned in registers, do
30661 not modify the field mode; extract the value in all cases if the mode
30662 is BLKmode and the size is not larger than a word.
30663
30664 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
30665
30666 PR target/71017
30667 * config/i386/cpuid.h: Fix undefined behavior.
30668
30669 2017-01-04 Jeff Law <law@redhat.com>
30670
30671 PR tree-optimization/79007
30672 PR tree-optimization/67955
30673 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
30674 conservative for pt.null when flag_non_call_exceptions is on.
30675
30676 2017-01-09 Jakub Jelinek <jakub@redhat.com>
30677
30678 PR translation/79019
30679 PR translation/79020
30680 * params.def (PARAM_INLINE_MIN_SPEEDUP,
30681 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
30682 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
30683 in descriptions.
30684 * config/avr/avr.opt (maccumulate-args): Likewise.
30685 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
30686 * common.opt (freport-bug): Likewise.
30687 * cif-code.def (CIF_FINAL_ERROR): Likewise.
30688 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
30689 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
30690 translatable string.
30691 * config/i386/i386.c (function_value_32): Likewise.
30692 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
30693 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
30694 Likewise.
30695 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
30696 * common/config/msp430/msp430-common.c (msp430_handle_option):
30697 Likewise.
30698 * symtab.c (symtab_node::verify_base): Likewise.
30699 * opts.c (set_debug_level): Likewise.
30700 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
30701 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
30702 missing whitespace to translatable strings.
30703 * config/avr/avr.md (bswapsi2): Fix typo in comment.
30704 * config/sh/superh.h: Likewise.
30705 * config/i386/xopintrin.h: Likewise.
30706 * config/i386/znver1.md: Likewise.
30707 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
30708 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
30709 * double-int.h (struct double_int): Likewise.
30710 * double-int.c (div_and_round_double): Likewise.
30711 * wide-int.cc: Likewise.
30712 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
30713 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
30714 * cfgcleanup.c (crossjumps_occured): Renamed to ...
30715 (crossjumps_occurred): ... this.
30716 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
30717 Adjust all uses.
30718
30719 PR tree-optimization/78899
30720 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
30721 returning bool return struct loop *, NULL for failure and the new
30722 loop on success.
30723 (versionable_outer_loop_p): Don't version outer loop if it has
30724 dont_vectorized bit set.
30725 (tree_if_conversion): When versioning outer loop, ensure
30726 tree_if_conversion is performed also on the inner loop of the
30727 non-vectorizable outer loop copy.
30728 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
30729 LOOP_VECTORIZED in inner loop of the scalar outer loop and
30730 prevent vectorization of it.
30731 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
30732 the outer loop vectorization of the non-scalar version is attempted
30733 before vectorization of the inner loop in scalar version. If
30734 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
30735 vectorization of its inner loop.
30736 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
30737 has 2 inner loops, rename also on edges from bb whose single pred
30738 is outer_loop->header. Fix typo in function comment.
30739
30740 2017-01-09 Martin Sebor <msebor@redhat.com>
30741
30742 PR bootstrap/79033
30743 * asan.c (asan_emit_stack_protection): Increase local buffer size
30744 to avoid snprintf truncation warning.
30745
30746 2017-01-09 Andrew Pinski <apinski@cavium.com>
30747
30748 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
30749 to reference thunderx2t99 for the tuning structure
30750 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
30751 Rename to ...
30752 (thunderx2t99_extra_costs): This.
30753 * config/aarch64/aarch64-tune.md: Regenerate.
30754 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
30755 (vulcan_addrcost_table): This.
30756 (vulcan_regmove_cost): Rename to ...
30757 (thunderx2t99_regmove_cost): This.
30758 (vulcan_vector_cost): Rename to ...
30759 (thunderx2t99_vector_cost): this.
30760 (vulcan_branch_cost): Rename to ...
30761 (thunderx2t99_branch_cost): This.
30762 (vulcan_tunings): Rename to ...
30763 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
30764 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
30765
30766 2017-01-09 Martin Jambor <mjambor@suse.cz>
30767
30768 PR ipa/78365
30769 PR ipa/78599
30770 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
30771 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
30772 (propagate_vr_accross_jump_function): Use the above function for all
30773 value range computations for pass-through jump functions and type
30774 converasion from explicit value range values.
30775 (ipcp_propagate_stage): Do not attempt to deduce types of formal
30776 parameters from TYPE_ARG_TYPES.
30777 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
30778 (ipa_write_node_info): Stream type of the actual argument.
30779 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
30780
30781 2017-01-09 Martin Liska <mliska@suse.cz>
30782
30783 PR pch/78970
30784 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
30785 (lookup_compiler): Do not show error message with have_E.
30786
30787 2017-01-09 Jakub Jelinek <jakub@redhat.com>
30788
30789 PR tree-optimization/78938
30790 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
30791 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
30792 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
30793 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
30794 fixes.
30795
30796 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30797
30798 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
30799 is const0_rtx.
30800
30801 2017-01-09 Richard Biener <rguenther@suse.de>
30802
30803 PR tree-optimization/78997
30804 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
30805 name condition properly.
30806
30807 2017-01-09 Richard Biener <rguenther@suse.de>
30808
30809 PR debug/79000
30810 * dwarf2out.c (is_cxx): New overload with context.
30811 (is_naming_typedef_decl): Use it.
30812
30813 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
30814
30815 * invoke.texi (Option Summary): Correct spacing in option lists
30816 and add line breaks to fix over-long lines.
30817
30818 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
30819
30820 PR middle-end/17660
30821
30822 * extend.texi (Common Variable Attributes): Add xref to GCC
30823 Internals manual to explain mode attribute keywords.
30824
30825 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
30826
30827 PR other/16519
30828 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
30829 and Preprocessor Options.
30830 (Options for Linking): Document -pthread here....
30831 (RS/6000 and PowerPC Options): ...not here.
30832 (Solaris 2 Options): ...or here.
30833 * doc/cppopts.texi: Document -pthread.
30834
30835 2017-01-08 Martin Sebor <msebor@redhat.com>
30836
30837 PR middle-end/77708
30838 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
30839 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
30840 New member functions.
30841 (format_directive): Used them.
30842 (add_bytes): Same.
30843 (pass_sprintf_length::handle_gimple_call): Same.
30844 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
30845 to avoid truncation for any argument.
30846 (extract_affine_mul): Same.
30847 * tree.c (get_file_function_name): Same.
30848
30849 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
30850
30851 PR middle-end/77484
30852 * predict.def (PRED_INDIR_CALL): Set to 86.
30853
30854 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
30855
30856 PR preprocessor/54124
30857 * doc/cppopts.texi: Reformat -d subtable to list the full name
30858 of the options. Add cross-reference to the docs for the general
30859 compiler -d options.
30860 * doc/invoke.texi (Developer Options): Add cross-reference to the
30861 preprocessor-specific -d option documentation.
30862
30863 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
30864
30865 PR preprocessor/13498
30866 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
30867 redudant material, and reflect new command-line options.
30868 (System Headers): Likewise.
30869
30870 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
30871
30872 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
30873 -isystem, and -idirafter. Copy-edit.
30874 * doc/cppopts.texi: Copy-edit. Remove contradiction about
30875 default for -ftrack-macro-expansion. Delete obsolete and
30876 badly-formatted implementation details about -fdebug-cpp output.
30877 * doc/cppwarnopts.texi: Copy-edit.
30878
30879 2017-01-07 David Malcolm <dmalcolm@redhat.com>
30880
30881 PR c++/72803
30882 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
30883 that the transition from a max line width >= 1<<10 to narrower
30884 lines works correctly.
30885
30886 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
30887
30888 * doc/options.texi (PerFunction): New.
30889 * opt-functions.awk (switch_flags): Map both Optimization and
30890 PerFunction to CL_OPTIMIZATION.
30891 * opth-gen.awk: Test for PerFunction flag along with
30892 Optimization.
30893 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
30894 it only when the latter is present. Skip those that don't in
30895 the hash function generator.
30896 * common.opt (fvar-tracking): Mark as PerFunction instead of
30897 Optimization.
30898 (fvar-tracking-assignments): Likewise.
30899 (fvar-tracking-assignments-toggle): Likewise.
30900 (fvar-tracking-uninit): Likewise.
30901
30902 2017-01-07 Jakub Jelinek <jakub@redhat.com>
30903
30904 PR translation/79018
30905 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
30906 the and store.
30907
30908 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
30909
30910 PR target/57583
30911 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
30912 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
30913 TARGET_LONG_JUMP_TABLE_OFFSETS.
30914 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
30915 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
30916 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
30917 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
30918 * config/m68k/m68k.md (tablejump expander): Likewise.
30919 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
30920 TARGET_LONG_JUMP_TABLE_OFFSETS.
30921 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
30922 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
30923
30924 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
30925 David Holsgrove <david.holsgrove@xilinx.com>
30926
30927 * common/config/microblaze/microblaze-common.c
30928 (TARGET_EXCEPT_UNWIND_INFO): Remove.
30929 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
30930 New prototype.
30931 * config/microblaze/microblaze.c (microblaze_must_save_register)
30932 (microblaze_expand_epilogue, microblaze_return_addr): Handle
30933 calls_eh_return.
30934 (microblaze_eh_return): New function.
30935 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
30936 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
30937 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
30938 * config/microblaze/microblaze.md (eh_return): New pattern.
30939
30940 2017-01-06 Jakub Jelinek <jakub@redhat.com>
30941
30942 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
30943 GCC_DIAGNOSTIC_STRINGIFY): Define.
30944
30945 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
30946
30947 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
30948
30949 * config/arm/arm.md (<mcrr>): New.
30950 (<mrrc>): New.
30951 * config/arm/arm.c (arm_arch5te): New.
30952 (arm_option_override): Set arm_arch5te.
30953 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
30954 and mrrc2.
30955 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
30956 (arm_mcrr_qualifiers): ... this. New.
30957 (MRRC_QUALIFIERS): Define to...
30958 (arm_mrrc_qualifiers): ... this. New.
30959 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
30960 __arm_mrrc2): New.
30961 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
30962 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
30963 (MRRCI, mrrc, MRRC): New.
30964 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
30965 VUNSPEC_MRRC2): New.
30966
30967 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
30968
30969 * config/arm/arm.md (<mcr>): New.
30970 (<mrc>): New.
30971 * config/arm/arm.c (arm_coproc_builtin_available): Add
30972 support for mcr, mrc, mcr2 and mrc2.
30973 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
30974 (arm_mcr_qualifiers): ... this. New.
30975 (MRC_QUALIFIERS): Define to ...
30976 (arm_mrc_qualifiers): ... this. New.
30977 (MCR_QUALIFIERS): Define to ...
30978 (arm_mcr_qualifiers): ... this. New.
30979 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
30980 __arm_mrc2): New.
30981 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
30982 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
30983 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
30984 VUNSPEC_MRC2): New.
30985
30986 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
30987
30988 * config/arm/arm.md (*ldc): New.
30989 (*stc): New.
30990 (<ldc>): New.
30991 (<stc>): New.
30992 * config/arm/arm.c (arm_coproc_builtin_available): Add
30993 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
30994 (arm_coproc_ldc_stc_legitimate_address): New.
30995 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
30996 'qualifier_const_pointer'.
30997 (LDC_QUALIFIERS): Define to...
30998 (arm_ldc_qualifiers): ... this. New.
30999 (STC_QUALIFIERS): Define to...
31000 (arm_stc_qualifiers): ... this. New.
31001 * config/arm/arm-protos.h
31002 (arm_coproc_ldc_stc_legitimate_address): New.
31003 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
31004 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
31005 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
31006 stc2, stcl, stc2l): New.
31007 * config/arm/constraints.md (Uz): New.
31008 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
31009 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
31010 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
31011 VUNSPEC_STC2L): New.
31012
31013 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
31014
31015 * config/arm/arm.md (<cdp>): New.
31016 * config/arm/arm.c (neon_const_bounds): Rename this ...
31017 (arm_const_bounds): ... this.
31018 (arm_coproc_builtin_available): New.
31019 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
31020 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
31021 (CDP_QUALIFIERS): Define to...
31022 (arm_cdp_qualifiers): ... this. New.
31023 (void_UP): Define.
31024 (arm_expand_builtin_args): Add case for 6 arguments.
31025 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
31026 (arm_const_bounds): ... this.
31027 (arm_coproc_builtin_available): New.
31028 * config/arm/arm_acle.h (__arm_cdp): New.
31029 (__arm_cdp2): New.
31030 * config/arm/arm_acle_builtins.def (cdp): New.
31031 (cdp2): New.
31032 * config/arm/iterators.md (CDPI,CDP,cdp): New.
31033 * config/arm/neon.md: Rename all 'neon_const_bounds' to
31034 'arm_const_bounds'.
31035 * config/arm/types.md (coproc): New.
31036 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
31037 * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
31038 * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
31039 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
31040
31041 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
31042
31043 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
31044 (UBINOP_QUALIFIERS): New.
31045 (si_UP): Define.
31046 (acle_builtin_data): New. Change comment.
31047 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
31048 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
31049 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
31050 arm_acle_builtins.def.
31051 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
31052 (arm_init_acle_builtins): New.
31053 (CRC32_BUILTIN): Remove.
31054 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
31055 crc32cb, crc32ch and crc32cw.
31056 (arm_init_crc32_builtins): Remove.
31057 (arm_init_builtins): Use arm_init_acle_builtins rather
31058 than arm_init_crc32_builtins.
31059 (arm_expand_acle_builtin): New.
31060 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
31061 * config/arm/arm_acle_builtins.def: New.
31062
31063 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
31064
31065 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
31066 (arm_builtin_datum): ... this.
31067 (arm_init_neon_builtin): Rename to ...
31068 (arm_init_builtin): ... this. Add a new parameters PREFIX
31069 and USE_SIG_IN_NAME.
31070 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
31071 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
31072 'arm_builtin_datum'.
31073 (arm_init_vfp_builtins): Likewise.
31074 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
31075 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
31076 (arm_expand_neon_args): Rename to ...
31077 (arm_expand_builtin_args): ... this. Rename builtin_arg
31078 enum values and differentiate between ARG_BUILTIN_MEMORY
31079 and ARG_BUILTIN_NEON_MEMORY.
31080 (arm_expand_neon_builtin_1): Rename to ...
31081 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
31082 values, arm_expand_builtin_args and add bool parameter NEON.
31083 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
31084 (arm_expand_vfp_builtin): Likewise.
31085 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
31086
31087 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
31088
31089 PR middle-end/77484
31090 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
31091 * predict.c (tree_estimate_probability_bb): Reverse direction of
31092 polymorphic call predictor.
31093
31094 2017-01-06 David Malcolm <dmalcolm@redhat.com>
31095
31096 * passes.c (execute_one_pass): Split out pass-skipping logic into...
31097 (determine_pass_name_match): ...this new function and...
31098 (should_skip_pass_p): ...this new function.
31099
31100 2017-01-06 Nathan Sidwell <nathan@acm.org>
31101
31102 * ipa-visibility.c (function_and_variable_visibility): Reformat
31103 comments and long lines. Remove extrneous if.
31104 * symtab.c (symtab_node::make_decl_local): Fix code format.
31105 (symtab_node::set_section_for_node): Fix comment typo.
31106
31107 2017-01-06 Martin Liska <mliska@suse.cz>
31108
31109 PR bootstrap/79003
31110 * lra-constraints.c: Rename invariant to lra_invariant.
31111 * predict.c (set_even_probabilities): Initialize e to NULL.
31112
31113 2017-01-05 Martin Sebor <msebor@redhat.com>
31114
31115 PR tree-optimization/78910
31116 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
31117 (format_integer): Correct off-by-one error in the handling
31118 of precision with negative numbers in signed conversions..
31119
31120 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
31121
31122 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
31123
31124 2017-01-05 Jakub Jelinek <jakub@redhat.com>
31125
31126 PR tree-optimization/71016
31127 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
31128 factor_out_conditional_conversion. Formatting fix.
31129 (factor_out_conditional_conversion): Add cond_stmt argument.
31130 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
31131 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
31132 Formatting fix.
31133
31134 2017-01-05 David Malcolm <dmalcolm@redhat.com>
31135
31136 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
31137 read-rtl-function.o, and selftest-rtl.o.
31138 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
31139 (selftest::aarch64_test_loading_full_dump): New function.
31140 (selftest::aarch64_run_selftests): New function.
31141 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
31142 selftest::aarch64_run_selftests.
31143 * config/i386/i386.c
31144 (selftest::ix86_test_loading_dump_fragment_1): New function.
31145 (selftest::ix86_test_loading_call_insn): New function.
31146 (selftest::ix86_test_loading_full_dump): New function.
31147 (selftest::ix86_test_loading_unspec): New function.
31148 (selftest::ix86_run_selftests): Call the new functions.
31149 * emit-rtl.c (maybe_set_max_label_num): New function.
31150 * emit-rtl.h (maybe_set_max_label_num): New decl.
31151 * function.c (instantiate_decls): Guard call to
31152 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
31153 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
31154 "static".
31155 * gensupport.c (gen_reader::gen_reader): Pass "false"
31156 for new "compact" param of rtx_reader.
31157 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
31158 rather than an empty string for NULL strings.
31159 * read-md.c: Potentially include config.h rather than bconfig.h.
31160 Wrap include of errors.h with #ifdef GENERATOR_FILE.
31161 (have_error): New global, copied from errors.c.
31162 (md_reader::read_name): Rename to...
31163 (md_reader::read_name_1): ...this, adding "out_loc" param,
31164 and converting "missing name or number" to returning false, rather
31165 than failing.
31166 (md_reader::read_name): Reimplement in terms of read_name_1.
31167 (md_reader::read_name_or_nil): New function.
31168 (md_reader::read_string): Handle "(nil)" by returning NULL.
31169 (md_reader::md_reader): Add new param "compact".
31170 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
31171 (md_reader::read_file): New method.
31172 * read-md.h (md_reader::md_reader): Add new param "compact".
31173 (md_reader::read_file): New method.
31174 (md_reader::is_compact): New accessor.
31175 (md_reader::read_name): Convert return type from void to file_location.
31176 (md_reader::read_name_or_nil): New decl.
31177 (md_reader::read_name_1): New decl.
31178 (md_reader::m_compact): New field.
31179 (noop_reader::noop_reader): Pass "false" for new "compact" param
31180 of rtx_reader.
31181 (rtx_reader::rtx_reader): Add new "compact" param.
31182 (rtx_reader::read_rtx_operand): Make virtual and convert return
31183 type from void to rtx.
31184 (rtx_reader::read_until): New decl.
31185 (rtx_reader::handle_any_trailing_information): New virtual function.
31186 (rtx_reader::postprocess): New virtual function.
31187 (rtx_reader::finalize_string): New virtual function.
31188 (rtx_reader::m_in_call_function_usage): New field.
31189 (rtx_reader::m_reuse_rtx_by_id): New field.
31190 * read-rtl-function.c: New file.
31191 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
31192 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
31193 (selftest::verify_three_block_rtl_cfg): New decl.
31194 * read-rtl-function.h: New file.
31195 * read-rtl.c: Potentially include config.h rather than bconfig.h.
31196 For host, include function.h, memmodel.h, and emit-rtl.h.
31197 (one_time_initialization): New function.
31198 (struct compact_insn_name): New struct.
31199 (compact_insn_names): New array.
31200 (find_code): Handle insn codes in compact dumps.
31201 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
31202 (bind_subst_iter_and_attr): Likewise.
31203 (add_condition_to_string): Likewise.
31204 (add_condition_to_rtx): Likewise.
31205 (apply_attribute_uses): Likewise.
31206 (add_current_iterators): Likewise.
31207 (apply_iterators): Likewise.
31208 (initialize_iterators): Guard usage of apply_subst_iterator with
31209 #ifdef GENERATOR_FILE.
31210 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
31211 (md_reader::read_mapping): Likewise.
31212 (add_define_attr_for_define_subst): Likewise.
31213 (add_define_subst_attr): Likewise.
31214 (read_subst_mapping): Likewise.
31215 (check_code_iterator): Likewise.
31216 (rtx_reader::read_rtx): Likewise. Move one-time initialization
31217 logic to...
31218 (one_time_initialization): New function.
31219 (rtx_reader::read_until): New method.
31220 (read_flags): New function.
31221 (parse_reg_note_name): New function.
31222 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
31223 Handle reuse_rtx ids.
31224 Wrap iterator lookup within #ifdef GENERATOR_FILE.
31225 Add parsing support for RTL dumps, mirroring the special-cases in
31226 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
31227 values, and calling handle_any_trailing_information.
31228 (rtx_reader::read_rtx_operand): Convert return type from void
31229 to rtx, returning return_rtx. Handle case 'e'. Call
31230 finalize_string on XSTR and XTMPL fields.
31231 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
31232 "(nil)" values were omitted. Call the postprocess vfunc on the
31233 return_rtx.
31234 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
31235 class ctor. Initialize m_in_call_function_usage. Call
31236 one_time_initialization.
31237 * rtl-tests.c (selftest::test_uncond_jump): Call
31238 set_new_first_and_last_insn.
31239 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
31240 * selftest-rtl.c: New file.
31241 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
31242 (selftest::get_insn_by_uid): New decl.
31243 * selftest-run-tests.c (selftest::run_tests): Call
31244 read_rtl_function_c_tests.
31245 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
31246 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
31247 dumps.
31248
31249 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
31250
31251 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
31252 operands in a special way. Assert that pos+len <= mode precision.
31253
31254 2017-01-05 Jakub Jelinek <jakub@redhat.com>
31255
31256 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
31257 3 argument Alias with unlimited for the negative form.
31258 (fno-vect-cost-model): Removed.
31259
31260 2017-01-05 Martin Liska <mliska@suse.cz>
31261
31262 * hsa-gen.c (gen_hsa_divmod): New function.
31263 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
31264
31265 2017-01-05 Martin Liska <mliska@suse.cz>
31266
31267 PR pch/78970
31268 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
31269 header.
31270
31271 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31272
31273 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
31274 small constant length operands.
31275
31276 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31277
31278 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
31279 between loop iterations.
31280
31281 2017-01-05 Martin Liska <mliska@suse.cz>
31282
31283 PR sanitizer/78815
31284 * gimplify.c (gimplify_decl_expr): Compare to
31285 asan_poisoned_variables instread of checking flags.
31286 (gimplify_target_expr): Likewise.
31287 (gimplify_expr): Likewise.
31288 (gimplify_function_tree): Conditionally initialize
31289 asan_poisoned_variables.
31290
31291 2017-01-04 Jeff Law <law@redhat.com>
31292
31293 PR tree-optimizatin/78812
31294 * rtl.h (contains_mem_rtx_p): Prototype.
31295 * ifcvt.c (containts_mem_rtx_p): Move from here to...
31296 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
31297 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
31298 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
31299 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
31300
31301 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
31302
31303 * input.c (assert_char_at_range): Default-initialize actual_range.
31304
31305 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
31306
31307 * df-scan.c (df_ref_create_structure): Make regno unsigned,
31308 to match the caller.
31309
31310 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
31311
31312 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
31313 insns after final jump in test to emit dummy move.
31314
31315 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
31316
31317 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
31318 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
31319
31320 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
31321
31322 * multiple_target.c (create_dispatcher_calls): Init e_next.
31323 * tree-ssa-loop-split.c (split_loop): Init border.
31324 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
31325 scalar_type.
31326
31327 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
31328
31329 PR target/71977
31330 PR target/70568
31331 PR target/78823
31332 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
31333 (altivec_register_operand): Do not return true if the operand
31334 contains a SUBREG mixing SImode and SFmode.
31335 (vsx_register_operand): Likewise.
31336 (vsx_reg_sfsubreg_ok): New predicate.
31337 (vfloat_operand): Do not return true if the operand contains a
31338 SUBREG mixing SImode and SFmode.
31339 (vint_operand): Likewise.
31340 (vlogical_operand): Likewise.
31341 (gpc_reg_operand): Likewise.
31342 (int_reg_operand): Likewise.
31343 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
31344 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
31345 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
31346 SImode and SFmode.
31347 (rs6000_emit_move_si_sf_subreg): New helper function.
31348 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
31349 fixup SUBREGs involving SImode and SFmode.
31350 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
31351 numbers for the new peephole2 optimization.
31352 (peephole2 for SFmode unions): New peephole2 to optimize cases in
31353 the GLIBC math library that do AND/IOR/XOR operations on single
31354 precision floating point.
31355 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
31356 target macros to say whether we need to avoid SUBREGs mixing
31357 SImode and SFmode.
31358 (TARGET_ALLOW_SF_SUBREG): Likewise.
31359 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
31360 (UNSPEC_SI_FROM_SF): Likewise.
31361 (iorxor): Change spacing.
31362 (and_ior_xor): New iterator for AND, IOR, and XOR.
31363 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
31364 (movdi_from_sf_zero_ext): Likewise.
31365 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
31366 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
31367 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
31368 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
31369 (fms<mode>4): Likewise.
31370 (fnma<mode>4): Likewise.
31371 (fnms<mode>4): Likewise.
31372 (nfma<mode>4): Likewise.
31373 (nfms<mode>4): Likewise.
31374
31375 2017-01-04 Marek Polacek <polacek@redhat.com>
31376
31377 PR c++/64767
31378 * doc/invoke.texi: Document -Wpointer-compare.
31379
31380 2017-01-04 Jakub Jelinek <jakub@redhat.com>
31381
31382 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
31383 RejectNegative.
31384
31385 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
31386 descriptions for -gdwarf-5 and emit them as uleb128 instead of
31387 2-byte data.
31388
31389 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
31390
31391 PR target/78056
31392 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
31393 documentation of the powerpc_popcntb_ok attribute.
31394 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
31395 code to issue warning messages if a requested CPU configuration is
31396 not supported by the binary (assembler and loader) toolchain.
31397 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
31398 made to define a built-in function that has been disabled.
31399 (paired_init_builtins): Add assertion to prevent ICE if attempt is
31400 made to define a built-in function that has been disabled.
31401 (altivec_init_builtins): Add comment explaining why definition
31402 of the DST built-in functions is not preceded by an assertion
31403 check. Add assertions to prevent ICE if attempts are made to
31404 define an altivec predicate or an abs* built-in function that has
31405 been disabled.
31406 (htm_init_builtins): Add comment explaining why definition of the
31407 htm built-in functions is not preceded by an assertion check.
31408
31409 2017-01-04 Jeff Law <law@redhat.com>
31410
31411 PR tree-optimizatin/67955
31412 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
31413 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
31414 the points-to solution does not include pt_null. Use DECL_PT_UID
31415 unconditionally.
31416
31417 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
31418
31419 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
31420 Use gen_int_mode instead of gen_lopwart for const_int operands.
31421
31422 2017-01-04 Jakub Jelinek <jakub@redhat.com>
31423
31424 PR tree-optimization/71563
31425 * match.pd: Simplify X << Y into X if Y is known to be 0 or
31426 out of range value - has low bits known to be zero.
31427
31428 2017-01-04 Alan Modra <amodra@gmail.com>
31429
31430 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
31431 * configure: Regenerate.
31432 * config.in: Regenerate.
31433
31434 2017-01-04 Jakub Jelinek <jakub@redhat.com>
31435
31436 PR bootstrap/77569
31437 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
31438 a substring of the message, but strcmp with the whole message. Ifdef
31439 ENABLE_NLS, translate the message first using dgettext.
31440
31441 2017-01-03 Jeff Law <law@redhat.com>
31442
31443 PR tree-optimizatin/78856
31444 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
31445 (mark_threaded_blocks): Remove code to truncate thread paths that
31446 cross multiple loop headers. Instead invalidate the cached loop
31447 iteration information and handle case of a thread path walking
31448 into an irreducible region.
31449
31450 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
31451
31452 PR target/78900
31453 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
31454 assertions. Add support for doing the signbit if the IEEE 128-bit
31455 floating point value is in a GPR.
31456 * config/rs6000/rs6000.md (Fsignbit): Delete.
31457 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
31458 Update the length attribute if the value is in a GPR.
31459 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
31460 the sign or zero extension instruction, since the value is always 0/1.
31461 (signbit<mode>2_dm2): Delete using <Fsignbit>.
31462
31463 PR target/78953
31464 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
31465 extracting SImode to a GPR register so that we can generate a
31466 store, limit the vector to be in a traditional Altivec register
31467 for the vextuwrx instruction.
31468
31469 2017-01-03 Ian Lance Taylor <iant@google.com>
31470
31471 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
31472
31473 2017-01-03 Martin Sebor <msebor@redhat.com>
31474
31475 PR tree-optimization/78696
31476 * gimple-ssa-sprintf.c (format_floating): Correct handling of
31477 precision. Use MPFR for %f for greater fidelity. Correct handling
31478 of %g.
31479 (pass_sprintf_length::compute_format_length): Set width and precision
31480 specified by asrerisk to void_node for vararg functions.
31481 (try_substitute_return_value): Adjust dump output.
31482
31483 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
31484
31485 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
31486
31487 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
31488
31489 * doc/invoke.texi (SPARC options): Document -mlra as the default.
31490 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
31491 -mlra/-mno-lra was passed to the compiler.
31492
31493 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
31494
31495 PR rtl-optimization/65618
31496 * emit-rtl.c (try_split): Move initialization of "before" and
31497 "after" to just before the call to emit_insn_after_setloc.
31498
31499 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
31500
31501 * doc/md.texi (Standard Names): Remove reference to Java frontend.
31502
31503 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
31504
31505 * dwarf2out.c (gen_enumeration_type_die): When
31506 -gno-strict-dwarf, add a DW_AT_encoding attribute.
31507
31508 2017-01-03 Jakub Jelinek <jakub@redhat.com>
31509
31510 PR tree-optimization/78965
31511 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
31512 Change first argument from const call_info & to call_info &. For %n
31513 set info.nowrite to false.
31514
31515 PR middle-end/78901
31516 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
31517 possibly throwing calls.
31518
31519 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
31520 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
31521 and fns handling, rather than in a separate case SSA_NAME.
31522
31523 2017-01-02 Jeff Law <law@redhat.com>
31524
31525 * config/darwin-driver.c (darwin_driver_init): Const-correctness
31526 fixes for first_period and second_period variables.
31527
31528 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
31529
31530 PR target/78967
31531 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
31532 (*insvqi_1): New insn pattern.
31533 (*insvqi_1_mem_rex64): Ditto.
31534 (*insvqi_2): Ditto.
31535 (*insvqi_3): Rename from *insvqi.
31536
31537 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
31538
31539 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
31540
31541 * doc/cfg.texi (Edges): Remove reference to Java.
31542 (Maintaining the CFG): Ditto.
31543
31544 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
31545
31546 PR middle-end/77674
31547 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
31548 transparent aliases.
31549
31550 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
31551
31552 PR middle-end/77484
31553 * predict.def (PRED_CALL): Update hitrate.
31554 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
31555 * predict.c (tree_estimate_probability_bb): Split CALL predictor
31556 into direct/indirect/polymorphic variants.
31557
31558 2017-01-01 Jakub Jelinek <jakub@redhat.com>
31559
31560 Update copyright years.
31561
31562 * gcc.c (process_command): Update copyright notice dates.
31563 * gcov-dump.c (print_version): Ditto.
31564 * gcov.c (print_version): Ditto.
31565 * gcov-tool.c (print_version): Ditto.
31566 * gengtype.c (create_file): Ditto.
31567 * doc/cpp.texi: Bump @copying's copyright year.
31568 * doc/cppinternals.texi: Ditto.
31569 * doc/gcc.texi: Ditto.
31570 * doc/gccint.texi: Ditto.
31571 * doc/gcov.texi: Ditto.
31572 * doc/install.texi: Ditto.
31573 * doc/invoke.texi: Ditto.
31574 \f
31575 Copyright (C) 2017 Free Software Foundation, Inc.
31576
31577 Copying and distribution of this file, with or without modification,
31578 are permitted in any medium without royalty provided the copyright
31579 notice and this notice are preserved.