1 2017-10-24 H.J. Lu <hongjiu.lu@intel.com>
4 * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
5 ENDBR instruction at function entrance if function is only
8 2017-10-24 Jakub Jelinek <jakub@redhat.com>
11 * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
12 patterns to better describe from which operation the CF is computed.
13 (addcarry<mode>_0, subborrow<mode>_0): New patterns.
14 * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
15 one LTU with [DT]Imode and another one with [SD]Imode. If arg0
16 is 0, use _0 suffixed expanders instead of emitting a comparison
19 2017-10-06 Sergey Shalnov <Sergey.Shalnov@intel.com>
21 * config/i386/i386.md(*movsf_internal, *movdf_internal):
22 Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
24 2017-10-24 Eric Botcazou <ebotcazou@adacore.com>
27 * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
28 * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
29 * loop-iv.c (iv_get_reaching_def): Likewise.
30 * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
31 variable is promoted and the partition contains undefined values.
33 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
35 * config/nios2/nios2.c (nios2_rtx_costs): Make costs better
37 (nios2_address_cost): Define.
38 (nios2_legitimize_address): Recognize (exp + constant) directly.
39 (TARGET_ADDRESS_COST): Define.
41 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
43 * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
44 (nios2_symbolic_memory_operand_p): Declare.
45 (nios2_split_large_constant): Declare.
46 (nios2_split_symbolic_memory_operand): Declare.
47 * config/nios2/nios2.c: Adjust includes.
48 (nios2_symbolic_constant_allowed): New.
49 (nios2_symbolic_constant_p): New.
50 (nios2_plus_symbolic_constant_p): New.
51 (nios2_valid_addr_expr_p): Recognize addresses involving
53 (nios2_legitimate_address_p): Likewise, also LO_SUM.
54 (nios2_symbolic_memory_operand_p): New.
55 (nios2_large_constant_p): New.
56 (nios2_split_large_constant): New.
57 (nios2_split_plus_large_constant): New.
58 (nios2_split_symbolic_memory_operand): New.
59 (nios2_legitimize_address): Code refactoring. Handle addresses
60 involving symbolic constants.
61 (nios2_emit_move_sequence): Likewise.
62 (nios2_print_operand): Improve error output.
63 (nios2_print_operand_address): Handle LO_SUM.
64 (nios2_cdx_narrow_form_p): Likewise.
65 * config/nios2/nios2.md (movqi_internal): Add splitter for memory
66 operands involving symbolic constants.
67 (movhi_internal, movsi_internal): Likewise.
68 (zero_extendhisi2, zero_extendqi<mode>2): Likewise.
69 (extendhisi2, extendqi<mode>2): Likewise.
71 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
73 * tree-pass.h (PROP_rtl_split_insns): Define.
74 * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
76 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
78 * config/nios2/nios2.c (TARGET_LRA_P): Don't override.
80 2017-10-23 Jakub Jelinek <jakub@redhat.com>
83 * target.def (const_not_ok_for_debug_p): Default to
84 default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
85 * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
86 * targhooks.c (default_const_not_ok_for_debug_p): New function.
87 * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
88 which targetm.const_not_ok_for_debug_p returned true.
89 * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
91 * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
93 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
94 * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
95 UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
97 (ix86_const_not_ok_for_debug_p): New function.
98 (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
99 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
101 2017-10-23 David Malcolm <dmalcolm@redhat.com>
104 * system.h: Conditionally include "unique-ptr.h" if
105 INCLUDE_UNIQUE_PTR is defined.
106 * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
107 of defining INCLUDE_UNIQUE_PTR before including "system.h".
109 2017-10-23 Sebastian Perta <sebastian.perta@renesas.com>
111 * config/rl78/rl78.md: New define_expand "subdi3".
113 2017-10-23 H.J. Lu <hongjiu.lu@intel.com>
116 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
117 DF_REF_INSN if DF_REF_INSN_INFO is false.
119 2017-10-23 Jan Hubicka <hubicka@ucw.cz>
121 * i386.c (dimode_scalar_chain::compute_convert_gain): Use
122 xmm_move instead of sse_move.
123 (sse_store_index): New function.
124 (ix86_register_move_cost): Be more sensible about mismatch stall;
125 model AVX moves correctly; make difference between sse->integer and
127 (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
128 moves; make difference between SSE and AVX.
129 * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
130 and zmm_move. Increase size of sse load and store tables;
131 add unaligned load and store tables; add ssemmx_to_integer.
132 * x86-tune-costs.h: Update all entries according to real
133 move latencies from Agner Fog's manual and chip documentation.
135 2017-10-23 Jakub Jelinek <jakub@redhat.com>
138 * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
139 * config/i386/constraints.md (Wf): New constraint.
140 * config/i386/i386.md (UNSPEC_SBB): New unspec.
141 (cmp<dwi>_doubleword): Removed.
142 (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
143 (sub<mode>3_carry_ccgz): Use unspec instead of compare.
144 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
145 expand with cmp<dwi>_doubleword. For LTU and GEU use
146 sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
148 * common.opt (gcolumn-info): Enable by default.
149 * doc/invoke.texi (gcolumn-info): Document new default.
151 2017-10-23 Richard Biener <rguenther@suse.de>
153 PR tree-optimization/82672
154 * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
155 Fold the stmt if we propagated into it.
157 2017-10-23 Richard Biener <rguenther@suse.de>
159 * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
160 (bitmap_remove_expr_from_set): ... this. All callers call this
161 for non-constant values.
162 (bitmap_set_subtract): Rename to...
163 (bitmap_set_subtract_expressions): ... this. Adjust and
165 (bitmap_set_contains_value): Remove superfluous check.
166 (bitmap_set_replace_value): Inline into single caller ...
167 (bitmap_value_replace_in_set): ... here and simplify.
168 (dependent_clean): Merge into ...
169 (clean): ... this using an overload. Adjust.
170 (prune_clobbered_mems): Adjust.
171 (compute_antic_aux): Likewise.
172 (compute_partial_antic_aux): Likewise.
174 2017-10-23 Richard Biener <rguenther@suse.de>
176 PR tree-optimization/82129
178 2017-08-01 Richard Biener <rguenther@suse.de>
180 PR tree-optimization/81181
181 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
182 (compute_antic): ... end of iteration here.
184 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
186 * target.def (starting_frame_offset): New hook.
187 * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
188 (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
189 * doc/tm.texi.in: Regenerate.
190 * hooks.h (hook_hwi_void_0): Declare.
191 * hooks.c (hook_hwi_void_0): New function.
192 * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
193 STARTING_FRAME_OFFSET.
194 * builtins.c (expand_builtin_setjmp_receiver): Likewise.
195 * reload1.c (reload): Likewise.
196 * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
197 instead of STARTING_FRAME_OFFSET.
198 * function.c (try_fit_stack_local): Likewise.
199 (assign_stack_local_1): Likewise
200 (instantiate_virtual_regs): Likewise.
201 * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
202 * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
203 * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
204 * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
205 * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
206 * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
207 * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
208 * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
209 * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
210 * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
211 * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
212 * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
213 * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
214 * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
215 * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
216 * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
217 * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
218 * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
219 * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
220 * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
221 * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
222 * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
223 * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
224 * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
225 * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
226 * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
227 * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
228 * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
229 * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
230 * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
231 * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
232 * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
233 * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
234 * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
235 * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
236 * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
237 * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
238 * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
239 * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
240 * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
241 * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
242 * config/avr/avr.c (avr_starting_frame_offset): Make static and
243 return a HOST_WIDE_INT.
244 (avr_builtin_setjmp_frame_value): Use it instead of
245 STARTING_FRAME_OFFSET.
246 (TARGET_STARTING_FRAME_OFFSET): Redefine.
247 * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
248 * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
250 (TARGET_STARTING_FRAME_OFFSET): Redefine.
251 * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
252 * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
253 (TARGET_CONSTANT_ALIGNMENT): Redefine.
254 * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
255 * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
256 (TARGET_STARTING_FRAME_OFFSET): Redefine.
257 * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
258 * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
259 (TARGET_STARTING_FRAME_OFFSET): Redefine.
260 * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
261 * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
263 (TARGET_STARTING_FRAME_OFFSET): Redefine.
264 * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
265 * config/mips/mips.c (mips_compute_frame_info): Refer to
266 TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
267 (mips_starting_frame_offset): New function.
268 (TARGET_STARTING_FRAME_OFFSET): Redefine.
269 * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
270 * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
271 * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
272 and return a HOST_WIDE_INT.
273 (TARGET_STARTING_FRAME_OFFSET): Redefine.
274 (mmix_initial_elimination_offset): Refer to
275 TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
276 * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
277 * config/pa/pa.c (pa_starting_frame_offset): New function.
278 (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
279 (pa_expand_prologue): Likewise.
280 (TARGET_STARTING_FRAME_OFFSET): Redefine.
281 * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
282 !FRAME_GROWS_DOWNWARD handling to...
283 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
284 * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
285 !FRAME_GROWS_DOWNWARD handling to...
286 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
287 * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
288 !FRAME_GROWS_DOWNWARD handling to...
289 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
290 * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
292 (rs6000_starting_frame_offset): New function.
293 * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
294 !FRAME_GROWS_DOWNWARD handling to...
295 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
296 * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
297 !FRAME_GROWS_DOWNWARD handling to...
298 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
299 * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
300 !FRAME_GROWS_DOWNWARD handling to...
301 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
302 * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
303 (rs6000_starting_frame_offset): New function.
304 * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
305 * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
306 * config/vax/vax.c (vax_starting_frame_offset): New function.
307 (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
308 (TARGET_STARTING_FRAME_OFFSET): Redefine.
309 * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
310 * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
311 (TARGET_STARTING_FRAME_OFFSET): Redefine.
312 * system.h (STARTING_FRAME_OFFSET): Poison.
314 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
316 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
317 SCALAR_TYPE_MODE instead of TYPE_MODE.
319 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
320 Alan Hayward <alan.hayward@arm.com>
321 David Sherwood <david.sherwood@arm.com>
323 * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
325 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
326 Alan Hayward <alan.hayward@arm.com>
327 David Sherwood <david.sherwood@arm.com>
329 * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
331 2017-10-23 Richard Biener <rguenther@suse.de>
333 PR tree-optimization/82129
334 * tree-ssa-pre.c (bitmap_set_and): Remove.
335 (compute_antic_aux): Compute ANTIC_OUT intersection in a way
336 canonicalizing expressions in the set to those with lowest
337 ID rather than taking that from the first edge.
339 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
341 * combine.c (rtx_equal_for_field_assignment_p): Use
344 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
345 Alan Hayward <alan.hayward@arm.com>
346 David Sherwood <david.sherwood@arm.com>
348 * internal-fn.c (expand_direct_optab_fn): Don't assign directly
349 to a SUBREG_PROMOTED_VAR.
351 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
352 Alan Hayward <alan.hayward@arm.com>
353 David Sherwood <david.sherwood@arm.com>
355 * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
356 (expand_debug_source_expr): Likewise.
357 * combine.c (combine_simplify_rtx): Likewise.
358 * cse.c (fold_rtx): Likewise.
359 * optabs.c (expand_float): Likewise.
360 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
361 (simplify_binary_operation_1): Likewise.
363 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
364 Alan Hayward <alan.hayward@arm.com>
365 David Sherwood <david.sherwood@arm.com>
367 * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
368 (record_promoted_value): Likewise.
369 * expr.c (expand_expr_real_2): Likewise.
370 * ree.c (update_reg_equal_equiv_notes): Likewise.
371 (combine_set_extension): Likewise.
372 * rtlanal.c (low_bitmask_len): Likewise.
373 * simplify-rtx.c (neg_const_int): Likewise.
374 (simplify_binary_operation_1): Likewise.
376 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
377 Alan Hayward <alan.hayward@arm.com>
378 David Sherwood <david.sherwood@arm.com>
380 * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
381 * regcprop.c (maybe_mode_change): Likewise.
382 * reload1.c (alter_reg): Likewise.
384 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
386 * inchash.h (inchash::hash::add_wide_int): New function.
387 * lto-streamer-out.c (hash_tree): Use it.
389 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
391 * inchash.h (inchash::hash::add_wide_int): Rename to...
392 (inchash::hash::add_hwi): ...this.
393 * ipa-devirt.c (hash_odr_vtable): Update accordingly.
394 (polymorphic_call_target_hasher::hash): Likewise.
395 * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
396 (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
397 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
398 * lto-streamer-out.c (hash_tree): Likewise.
399 * optc-save-gen.awk: Likewise.
400 * tree.c (add_expr): Likewise.
402 2017-10-22 Uros Bizjak <ubizjak@gmail.com>
405 * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
406 for ordered inequality comparisons even with TARGET_IEEE_FP.
408 2017-10-22 Uros Bizjak <ubizjak@gmail.com>
411 * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
412 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
413 Expand with cmp<dwi>_doubleword.
415 2017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
417 * extend.texi: Add x86 specific to 'nocf_check' attribute.
419 * invoke.texi: Add -mcet, -mibt, -mshstk options. Add x86
420 specific to -fcf-protection option.
422 2017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
424 * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
425 (OPTION_MASK_ISA_SHSTK_SET): Likewise.
426 (OPTION_MASK_ISA_IBT_UNSET): Likewise.
427 (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
428 (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
429 * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
430 (extra_objs): Add cet.o for Linux/x86 targets.
431 (tmake_file): Add i386/t-cet for Linux/x86 targets.
432 * config/i386/cet.c: New file.
433 * config/i386/cetintrin.h: Likewise.
434 * config/i386/t-cet: Likewise.
435 * config/i386/cpuid.h (bit_SHSTK): New.
437 * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
438 pass IBT and SHSTK bits.
439 * config/i386/i386-builtin-types.def
440 (VOID_FTYPE_UNSIGNED_PVOID): New.
441 (VOID_FTYPE_UINT64_PVOID): Likewise.
442 * config/i386/i386-builtin.def: Add CET intrinsics.
443 * config/i386/i386-c.c (ix86_target_macros_internal): Add
444 OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
445 * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
446 * config/i386/i386-protos.h (make_pass_insert_endbranch): New
448 * config/i386/i386.c (rest_of_insert_endbranch): New.
449 (pass_data_insert_endbranch): Likewise.
450 (pass_insert_endbranch): Likewise.
451 (make_pass_insert_endbranch): Likewise.
452 (ix86_notrack_prefixed_insn_p): Likewise.
453 (ix86_target_string): Add -mibt, -mshstk flags.
454 (ix86_option_override_internal): Add flag_cf_protection
456 (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
457 (ix86_print_operand): Add 'notrack' prefix output.
458 (ix86_init_mmx_sse_builtins): Add CET intrinsics.
459 (ix86_expand_builtin): Expand CET intrinsics.
460 (x86_output_mi_thunk): Add 'endbranch' instruction.
461 * config/i386/i386.h (TARGET_IBT): New.
462 (TARGET_IBT_P): Likewise.
463 (TARGET_SHSTK): Likewise.
464 (TARGET_SHSTK_P): Likewise.
465 * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
466 UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
467 UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
468 (builtin_setjmp_setup): New pattern.
469 (builtin_longjmp): Likewise.
470 (rdssp<mode>): Likewise.
471 (incssp<mode>): Likewise.
472 (saveprevssp): Likewise.
473 (rstorssp): Likewise.
474 (wrss<mode>): Likewise.
475 (wruss<mode>): Likewise.
476 (setssbsy): Likewise.
477 (clrssbsy): Likewise.
478 (nop_endbr): Likewise.
479 * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
481 * config/i386/immintrin.h: Include <cetintrin.h>.
482 * config/i386/linux-common.h
483 (file_end_indicate_exec_stack_and_cet): New prototype.
484 (TARGET_ASM_FILE_END): New.
486 2017-10-20 Jan Hubicka <hubicka@ucw.cz>
488 * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
489 latencies instead of having separate table; make difference between
490 integer and float costs.
491 * i386.h (processor_costs): Remove scalar_stmt_cost,
492 scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
493 scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
495 * x86-tune-costs.h: Remove entries which has been removed in
496 procesor_costs from all tables; make cond_taken_branch_cost
497 and cond_not_taken_branch_cost COST_N_INSNS based.
499 2017-10-20 Jan Hubicka <hubicka@ucw.cz>
501 * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
503 2017-10-20 Jakub Jelinek <jakub@redhat.com>
505 * config/i386/i386.md (isa): Remove fma_avx512f.
506 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
507 <avx512>_fmadd_<mode>_mask3<round_name>,
508 <avx512>_fmsub_<mode>_mask<round_name>,
509 <avx512>_fmsub_<mode>_mask3<round_name>,
510 <avx512>_fnmadd_<mode>_mask<round_name>,
511 <avx512>_fnmadd_<mode>_mask3<round_name>,
512 <avx512>_fnmsub_<mode>_mask<round_name>,
513 <avx512>_fnmsub_<mode>_mask3<round_name>,
514 <avx512>_fmaddsub_<mode>_mask<round_name>,
515 <avx512>_fmaddsub_<mode>_mask3<round_name>,
516 <avx512>_fmsubadd_<mode>_mask<round_name>,
517 <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
518 (*vec_widen_umult_even_v16si<mask_name>,
519 *vec_widen_smult_even_v16si<mask_name>): Likewise.
520 (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
522 2017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
524 * extend.texi: Add 'nocf_check' documentation.
525 * gimple.texi: Add second parameter to
526 gimple_build_call_from_tree.
527 * invoke.texi: Add -fcf-protection documentation.
528 * rtl.texi: Add REG_CALL_NOTRACK documenation.
530 2017-10-20 Richard Biener <rguenther@suse.de>
532 PR tree-optimization/82473
533 * tree-vect-loop.c (vectorizable_reduction): Properly get at
534 the largest input type.
536 2017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
538 * c-attribs.c (handle_nocf_check_attribute): New function.
539 (c_common_attribute_table): Add 'nocf_check' handling.
540 * gimple-parser.c: Add second argument NULL to
541 gimple_build_call_from_tree.
542 * attrib.c (comp_type_attributes): Check nocf_check attribute.
543 * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
545 * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
546 * common.opt: Add fcf-protection flag.
547 * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
548 * flag-types.h: Add enum cf_protection_level.
549 * gimple.c (gimple_build_call_from_tree): Add second parameter.
550 Add 'nocf_check' attribute propagation to gimple call.
551 * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
552 (gimple_build_call_from_tree): Update prototype.
553 (gimple_call_nocf_check_p): New function.
554 (gimple_call_set_nocf_check): Likewise.
555 * gimplify.c: Add second argument to gimple_build_call_from_tree.
556 * ipa-icf.c: Add nocf_check attribute in statement hash.
557 * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
558 * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
559 * toplev.c (process_options): Add flag_cf_protection handling.
561 2017-10-19 Jan Hubicka <hubicka@ucw.cz>
563 * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
565 2017-10-20 Richard Biener <rguenther@suse.de>
567 PR tree-optimization/82603
568 * tree-if-conv.c (predicate_mem_writes): Make sure to only
569 remove false predicated stores.
571 2017-10-20 Richard Biener <rguenther@suse.de>
573 * graphite-isl-ast-to-gimple.c
574 (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
575 Remove return value and simplify, dump copied stmt after lhs
577 (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
578 Reduce dump verbosity.
579 (gsi_insert_earliest): Likewise.
580 (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
581 * graphite.c (print_global_statistics): Adjust dumping.
582 (print_graphite_scop_statistics): Likewise.
583 (print_graphite_statistics): Do not dump loops here.
584 (graphite_transform_loops): But here.
586 2017-10-20 Nicolas Roche <roche@adacore.com>
588 * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
589 * configure: Regenerate.
591 2017-10-20 Jakub Jelinek <jakub@redhat.com>
594 * tree-cfg.c (pass_warn_function_return::execute): In noreturn
595 functions when optimizing replace GIMPLE_RETURN stmts with
596 calls to __builtin_unreachable ().
599 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
600 for -fsanitize=thread link of executables.
601 (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
605 * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
607 (<shift_insn><mode>3<mask_name>): Change the last of the 3
608 define_insns for logical vector shifts to use VI248_AVX512BW
609 iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
610 condition, useless isa and prefix attributes. Change the first
611 2 of these define_insns to ...
612 (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
613 define_insn for avx512vl.
614 (<shift_insn><mode>3): ... and this, new define_insn without
615 masking for non-avx512vl.
618 * config/i386/sse.md (*andnot<mode>3,
619 <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
620 (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
621 and 256-bit vectors, the (=x,x,xm) alternative and when mask is
622 not applied use empty suffix even for TARGET_AVX512VL.
623 * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
624 is applied, supply evex,evex or evex,evex,evex instead of just
627 2017-10-20 Julia Koval <julia.koval@intel.com>
629 * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
630 (OPTION_MASK_ISA_GFNI_UNSET): New.
631 (ix86_handle_option): Handle OPT_mgfni.
632 * config/i386/cpuid.h (bit_GFNI): New.
633 * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
634 * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
635 * config/i386/i386.c (ix86_target_string): Add -mgfni.
636 (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
637 * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
638 * config/i386/i386.opt: Add mgfni.
640 2017-10-20 Orlando Arias <oarias@knights.ucf.edu>
642 * config/msp430/msp430.c (msp430_option_override): Disable
643 -fdelete-null-pointer-checks.
644 * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
646 2017-10-19 Jan Hubicka <hubicka@ucw.cz>
648 * x86-tune-costs.h (generic_cost, core_cost): Correct costs
649 of x87 and SSE instructions.
651 2017-10-19 Jan Hubicka <hubicka@ucw.cz>
653 * asan.c (create_cond_insert_point): Do not update edge count.
654 * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
655 (afdo_propagate_circuit): Likewise.
656 (afdo_calculate_branch_prob): Likewise.
657 (afdo_annotate_cfg): Likewise.
658 * basic-block.h (struct edge_def): Remove count.
659 (edge_def::count): New accessor.
660 * bb-reorder.c (rotate_loop): Update.
661 (find_traces_1_round): Update.
662 (connect_traces): Update.
663 (sanitize_hot_paths): Update.
664 * cfg.c (unchecked_make_edge): Update.
665 (make_single_succ_edge): Update.
666 (check_bb_profile): Update.
667 (dump_edge_info): Update.
668 (update_bb_profile_for_threading): Update.
669 (scale_bbs_frequencies_int): Update.
670 (scale_bbs_frequencies_gcov_type): Update.
671 (scale_bbs_frequencies_profile_count): Update.
672 (scale_bbs_frequencies): Update.
673 * cfganal.c (connect_infinite_loops_to_exit): Update.
674 * cfgbuild.c (compute_outgoing_frequencies): Update.
675 (find_many_sub_basic_blocks): Update.
676 * cfgcleanup.c (try_forward_edges): Update.
677 (try_crossjump_to_edge): Update
678 * cfgexpand.c (expand_gimple_cond): Update
679 (expand_gimple_tailcall): Update
680 (construct_exit_block): Update
681 * cfghooks.c (verify_flow_info): Update
682 (redirect_edge_succ_nodup): Update
684 (make_forwarder_block): Update
685 (duplicate_block): Update
686 (account_profile_record): Update
687 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
688 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
689 * cfgloopmanip.c (scale_loop_profile): Update.
691 (lv_adjust_loop_entry_edge): Update.
692 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
693 (force_nonfallthru_and_redirect): Update.
694 (purge_dead_edges): Update.
695 (rtl_flow_call_edges_add): Update.
696 * cgraphunit.c (init_lowered_empty_function): Update.
697 (cgraph_node::expand_thunk): Update.
698 * gimple-pretty-print.c (dump_probability): Update.
699 (dump_edge_probability): Update.
700 * gimple-ssa-isolate-paths.c (isolate_path): Update.
701 * haifa-sched.c (sched_create_recovery_edges): Update.
702 * hsa-gen.c (convert_switch_statements): Update.
703 * ifcvt.c (dead_or_predicable): Update.
704 * ipa-inline-transform.c (inline_transform): Update.
705 * ipa-split.c (split_function): Update.
706 * ipa-utils.c (ipa_merge_profiles): Update.
707 * loop-doloop.c (add_test): Update.
708 * loop-unroll.c (unroll_loop_runtime_iterations): Update.
709 * lto-streamer-in.c (input_cfg): Update.
710 (input_function): Update.
711 * lto-streamer-out.c (output_cfg): Update.
712 * modulo-sched.c (sms_schedule): Update.
713 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
714 * predict.c (maybe_hot_edge_p): Update.
715 (unlikely_executed_edge_p): Update.
716 (probably_never_executed_edge_p): Update.
717 (dump_prediction): Update.
718 (drop_profile): Update.
719 (propagate_unlikely_bbs_forward): Update.
720 (determine_unlikely_bbs): Update.
721 (force_edge_cold): Update.
722 * profile.c (compute_branch_probabilities): Update.
723 * reg-stack.c (better_edge): Update.
724 * shrink-wrap.c (handle_simple_exit): Update.
725 * tracer.c (better_p): Update.
726 * trans-mem.c (expand_transaction): Update.
727 (split_bb_make_tm_edge): Update.
728 * tree-call-cdce.c: Update.
729 * tree-cfg.c (gimple_find_sub_bbs): Update.
730 (gimple_split_edge): Update.
731 (gimple_duplicate_sese_region): Update.
732 (gimple_duplicate_sese_tail): Update.
733 (gimple_flow_call_edges_add): Update.
734 (insert_cond_bb): Update.
735 (execute_fixup_cfg): Update.
736 * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
737 * tree-complex.c (expand_complex_div_wide): Update.
738 * tree-eh.c (lower_resx): Update.
739 (unsplit_eh): Update.
740 (cleanup_empty_eh_move_lp): Update.
741 * tree-inline.c (copy_edges_for_bb): Update.
742 (freqs_to_counts): Update.
743 (copy_cfg_body): Update.
744 * tree-ssa-dce.c (remove_dead_stmt): Update.
745 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
746 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
747 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
748 (unloop_loops): Update.
749 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
750 * tree-ssa-loop-split.c (connect_loops): Update.
751 (split_loop): Update.
752 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
753 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
754 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
755 * tree-ssa-reassoc.c (branch_fixup): Update.
756 * tree-ssa-tail-merge.c (replace_block_by): Update.
757 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
758 (compute_path_counts): Update.
759 (update_profile): Update.
760 (recompute_probabilities): Update.
761 (update_joiner_offpath_counts): Update.
762 (estimated_freqs_path): Update.
763 (freqs_to_counts_path): Update.
764 (clear_counts_path): Update.
765 (ssa_fix_duplicate_block_edges): Update.
766 (duplicate_thread_path): Update.
767 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
768 (case_bit_test_cmp): Update.
769 (collect_switch_conv_info): Update.
770 (gen_inbound_check): Update.
771 (do_jump_if_equal): Update.
772 (emit_cmp_and_jump_insns): Update.
773 * tree-tailcall.c (decrease_profile): Update.
774 (eliminate_tail_call): Update.
775 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
776 (vect_do_peeling): Update.
777 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
778 * ubsan.c (ubsan_expand_null_ifn): Update.
779 (ubsan_expand_ptr_ifn): Update.
780 * value-prof.c (gimple_divmod_fixed_value): Update.
781 (gimple_mod_pow2): Update.
782 (gimple_mod_subtract): Update.
784 (gimple_stringop_fixed_value): Update.
786 2017-10-19 Uros Bizjak <ubizjak@gmail.com>
789 * config/i386/i386.md (sub to cmp): New peephole2 pattern.
791 2017-10-19 Alexander Monakov <amonakov@ispras.ru>
793 PR rtl-optimization/82395
794 * ira-color.c (allocno_priority_compare_func): Fix comparison step
795 based on non_spilled_static_chain_regno_p.
797 2017-10-19 Uros Bizjak <ubizjak@gmail.com>
799 * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
800 (ix86_emit_mode_set): Rewrite insn mnemonic construction.
801 (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
803 2017-10-19 Martin Sebor <msebor@redhat.com>
805 PR tree-optimization/82596
806 * tree.c (array_at_struct_end_p): Handle STRING_CST.
808 2017-10-19 Eric Botcazou <ebotcazou@adacore.com>
810 * asan.c (handle_builtin_alloca): Deal with all alloca variants.
811 (get_mem_refs_of_builtin_call): Likewise.
812 * builtins.c (expand_builtin_apply): Adjust call to
813 allocate_dynamic_stack_space.
814 (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
815 the third argument to allocate_dynamic_stack_space, otherwise -1.
816 (expand_builtin): Deal with all alloca variants.
817 (is_inexpensive_builtin): Likewise.
818 * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
819 * calls.c (special_function_p): Deal with all alloca variants.
820 (initialize_argument_information): Adjust call to
821 allocate_dynamic_stack_space.
822 (expand_call): Likewise.
823 * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
824 * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
825 * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
826 use it for the stack usage computation.
827 * explow.h (allocate_dynamic_stack_space): Adjust prototype.
828 * function.c (gimplify_parameters): Call build_alloca_call_expr.
829 * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
830 Take into account 3rd argument of __builtin_alloca_with_align_and_max.
831 (in_loop_p): Remove first argument and useless check.
832 (pass_walloca::execute): Remove useless test and adjust call to above.
833 * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
834 * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
835 (gimplify_call_expr): Deal with all alloca variants.
836 * hsa-gen.c (gen_hsa_alloca): Likewise.
837 (gen_hsa_insns_for_call): Likewise.
838 * ipa-pure-const.c (special_builtin_state): Likewise.
839 * tree-chkp.c (chkp_build_returned_bound): Likewise.
840 * tree-object-size.c (alloc_object_size): Likewise.
841 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
842 (call_may_clobber_ref_p_1): Likewise.
843 * tree-ssa-ccp.c (evaluate_stmt): Likewise.
844 (ccp_fold_stmt): Likewise.
845 (optimize_stack_restore): Likewise.
846 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
847 (mark_all_reaching_defs_necessary_1): Likewise.
848 (propagate_necessity): Likewise.
849 (eliminate_unnecessary_stmts): Likewise.
850 * tree.c (build_common_builtin_nodes): Build
851 BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
852 (build_alloca_call_expr): New function.
853 * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
854 (CASE_BUILT_IN_ALLOCA): Likewise.
855 (build_alloca_call_expr): Declare.
856 * varasm.c (incorporeal_function_p): Deal with all alloca variants.
858 2017-10-19 Eric Botcazou <ebotcazou@adacore.com>
861 * dwarf2out.c (new_die_raw): New static inline function.
862 (new_die): Use it to create the DIE.
863 (add_AT_external_die_ref): Likewise.
864 (clone_die): Likewise.
865 (clone_as_declaration): Likewise.
866 (dwarf2out_vms_debug_main_pointer): Likewise.
867 (base_type_die): Likewise. Remove early return for corner cases.
868 Do not call add_pubtype on the DIE here.
869 (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
870 (modified_type_die): Adjust the lookup for reverse order DIEs. Skip
871 typedefs for base types with DW_AT_endianity. Make sure a DIE with
872 native order exists for base types, attach the DIE manually and call
873 add_pubtype on it. Do not equate a reverse order DIE to the type.
875 2017-10-19 Richard Earnshaw <rearnsha@arm.com>
877 * config/arm/arm.c (align_ok_ldrd_strd): New function.
878 (mem_ok_for_ldrd_strd): New parameter align. Extract the alignment of
880 (gen_operands_ldrd_strd): Validate the alignment of the accesses.
882 2017-10-19 Jakub Jelinek <jakub@redhat.com>
884 * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN. Or
885 SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
886 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
887 BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
888 * opts.c (sanitizer_opts): Add builtin.
889 * ubsan.c (instrument_builtin): New function.
890 (pass_ubsan::execute): Call it.
891 (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
892 * doc/invoke.texi: Document -fsanitize=builtin.
894 * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
895 builtins, store max (log2 (align), 0) into uchar field instead of
896 align into uptr field.
897 (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
898 store uchar 0 field instead of uptr 0 field.
899 (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
900 instead of passing one address of struct with 2 locations pass
901 two addresses of structs with 1 location each.
902 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
903 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
904 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
905 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
906 (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
907 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
908 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
909 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
911 2017-10-19 Martin Liska <mliska@suse.cz>
914 * file-find.c (remove_prefix): Remove.
915 * file-find.h (remove_prefix): Likewise.
916 * gcc-ar.c: Remove smartness of lookup.
918 2017-10-19 Segher Boessenkool <segher@kernel.crashing.org>
920 * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
921 *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
922 *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
924 2017-10-19 Jakub Jelinek <jakub@redhat.com>
927 * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
928 (setcc + and to xor + setcc): New peephole2.
930 2017-10-19 Tom de Vries <tom@codesourcery.com>
932 * doc/sourcebuild.texi (Test Directives, Variants of
933 dg-require-support): Add dg-require-stack-size.
935 2017-10-19 Martin Liska <mliska@suse.cz>
938 * gimplify.c (gimplify_decl_expr): Do not instrument variables
939 that have a large alignment.
940 (gimplify_target_expr): Likewise.
942 2017-10-18 Segher Boessenkool <segher@kernel.crashing.org>
944 PR rtl-optimization/82602
945 * ira.c (rtx_moveable_p): Return false for volatile asm.
947 2017-10-18 Uros Bizjak <ubizjak@gmail.com>
950 * config/i386/i386-modes.def (CCGZ): New CC mode.
951 * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
952 * config/i386/predicates.md (ix86_comparison_operator):
954 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
955 Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
956 with double-word subtraction.
957 (put_condition_code): Handle CCGZmode.
959 2017-10-18 Aldy Hernandez <aldyh@redhat.com>
961 * wide-int.cc (debug (const wide_int &)): New.
962 (debug (const wide_int *)): New.
963 (debug (const widest_int &)): New.
964 (debug (const widest_int *)): New.
966 2017-10-18 Vladimir Makarov <vmakarov@redhat.com>
969 * lra-constraints.c (curr_insn_transform): Use non-input operand
970 instead of output one for matched reload.
972 2017-10-18 Bin Cheng <bin.cheng@arm.com>
974 * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
975 (tree-ssa-loop-ivopts.h): New header file.
976 (struct builtin_info): New fields.
977 (classify_builtin_1): Compute and record base and offset parts for
978 memset builtin partition by calling strip_offset.
979 (offset_cmp, fuse_memset_builtins): New functions.
980 (finalize_partitions): Fuse adjacent memset partitions by calling
982 * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
983 Expose the interface.
984 * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
986 2017-10-18 Bin Cheng <bin.cheng@arm.com>
988 PR tree-optimization/82574
989 * tree-loop-distribution.c (find_single_drs): New parameter. Check
990 that data reference must be executed exactly once per iteration
991 against the outermost loop in nest.
992 (classify_partition): Update call to above function.
994 2017-10-18 Richard Biener <rguenther@suse.de>
996 PR tree-optimization/82591
997 * graphite.c (graphite_transform_loops): Move code gen message
999 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
1000 Here. Handle scop_to_isl_ast failing.
1001 (scop_to_isl_ast): Limit the number of ISL operations.
1003 2017-10-18 Richard Biener <rguenther@suse.de>
1005 * graphite-isl-ast-to-gimple.c
1006 (translate_isl_ast_to_gimple::set_rename): Simplify.
1007 (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
1008 (graphite_copy_stmts_from_block): ... here.
1009 (copy_bb_and_scalar_dependences): Simplify.
1010 (add_parameters_to_ivs_params): Canonicalize.
1011 (generate_entry_out_of_ssa_copies): Simplify.
1012 * graphite-sese-to-poly.c (extract_affine_name): Simplify
1013 by passing in ISL dimension.
1014 (parameter_index_in_region_1): Rename to ...
1015 (parameter_index_in_region): ... this.
1016 (extract_affine): Adjust assert, pass down parameter index.
1017 (add_param_constraints): Use range-info when available.
1018 (build_scop_context): Adjust.
1019 * sese.c (new_sese_info): Adjust.
1020 (free_sese_info): Likewise.
1021 * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
1022 Remove unused typedefs.
1023 (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
1025 2017-10-18 Martin Liska <mliska@suse.cz>
1027 * combine.c (simplify_compare_const): Add gcc_fallthrough.
1029 2017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
1031 * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
1032 (s390_sched_init): Do not reset s390_sched_state if we entered the
1033 current basic block via a fallthru edge and all others are unlikely.
1035 2017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
1037 * config/s390/s390.c (NUM_SIDES): New variable.
1038 (LONGRUNNING_THRESHOLD): New variable.
1039 (LATENCY_FACTOR): New variable.
1040 (s390_sched_score): Decrease score for long-running instructions on
1042 (s390_sched_variable_issue): Perform bookkeeping for long-running
1045 2017-10-18 Richard Biener <rguenther@suse.de>
1047 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
1048 Simplify with removal of the parameter rename map.
1049 (set_rename): Likewise.
1050 (should_copy_to_new_region): Likewise.
1051 (graphite_copy_stmts_from_block): Likewise.
1052 (copy_bb_and_scalar_dependences): Remove initialization of
1053 unused copied_bb_map.
1055 (copy_internal_parameters): Likewise.
1056 (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
1057 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
1058 Use INTEGRAL_TYPE_P.
1059 (parameter_index_in_region_1): Rename to ...
1060 (assign_parameter_index_in_region): ... this. Assert we have
1061 a parameter we handle.
1062 (scan_tree_for_params): Adjust.
1063 * sese.h (parameter_rename_map_t): Remove.
1064 (struct sese_info_t): Remove unused parameter_rename_map and
1065 copied_bb_map members.
1066 * sese.c (new_sese_info): Adjust.
1067 (free_sese_info): Likewise.
1069 2017-10-18 Martin Liska <mliska@suse.cz>
1072 * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
1073 on an abnormal edge.
1075 2017-10-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
1077 * doc/invoke.texi (ffunction-sections and fdata-sections):
1080 2017-10-17 Eric Botcazou <ebotcazou@adacore.com>
1082 * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
1083 the use statement can throw internally.
1085 2017-10-17 Eric Botcazou <ebotcazou@adacore.com>
1087 * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
1088 any RTX present on the RHS of a SET.
1089 * compare-elim.c (try_eliminate_compare): Restore comment.
1091 2017-10-17 Jakub Jelinek <jakub@redhat.com>
1093 * langhooks.h (struct lang_hooks): Document that tree_size langhook
1094 may be also called on tcc_type nodes.
1095 * langhooks.c (lhd_tree_size): Likewise.
1097 2017-10-17 David Malcolm <dmalcolm@redhat.com>
1099 * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
1100 format_warning_at_substring.
1101 (maybe_warn): Convert source_range * param to a location_t. Pass
1102 UNKNOWN_LOCATION rather than NULL to fmtwarn.
1103 (format_directive): Remove code to extract source_ranges and
1104 source_range * in favor of just a location_t.
1105 (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
1107 * substring-locations.c (format_warning_va): Convert
1108 source_range * param to a location_t.
1109 (format_warning_at_substring): Likewise.
1110 * substring-locations.h (format_warning_va): Likewise.
1111 (format_warning_at_substring): Likewise.
1113 2017-10-17 Jan Hubicka <hubicka@ucw.cz>
1115 * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
1117 * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
1118 and scatter/gather ops.
1120 * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
1121 vec_gather_load and vec_scatter_store.
1122 * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
1123 * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
1124 * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
1125 * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
1126 * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
1127 * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
1129 2017-10-17 Uros Bizjak <ubizjak@gmail.com>
1131 * reg-stack.c (compare_for_stack_reg): Add bool argument.
1132 Detect FTST instruction and handle its register pops. Only pop
1133 second operand if can_pop_second_op is true.
1134 (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
1135 set can_pop_second_op to false in the compare_for_stack_reg call.
1137 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
1138 output_fp_compare for stack register operands.
1139 * config/i386/i386.c (output_fp_compare): Do not output SSE compare
1140 instructions here. Do not emit stack register pops here. Assert
1141 that FCOMPP pops next to top stack register. Rewrite function.
1143 2017-10-17 Nathan Sidwell <nathan@acm.org>
1146 * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
1147 use DECL_ASSEMBLER_NAME_RAW.
1150 * tree.c (tree_code_size): Reformat. Punt to lang hook for unknown
1153 2017-10-17 Qing Zhao <qing.zhao@oracle.com>
1154 Wilco Dijkstra <wilco.dijkstra@arm.com>
1156 * builtins.c (expand_builtin_update_setjmp_buf): Add a
1157 converstion to Pmode from the buf_addr.
1159 2017-10-17 Richard Biener <rguenther@suse.de>
1161 * graphite-dependences.c (scop_get_reads_and_writes): Change
1162 output parameters to references.
1164 2017-10-17 Jackson Woodruff <jackson.woodruff@arm.com>
1166 PR 71026/tree-optimization
1167 * fold-const.c (distribute_real_division): Removed.
1168 (fold_binary_loc): Remove calls to distribute_real_divison.
1170 2017-10-17 Richard Biener <rguenther@suse.de>
1172 * graphite-scop-detection.c
1173 (scop_detection::stmt_has_simple_data_refs_p): Always use
1174 the full nest as region.
1175 (try_generate_gimple_bb): Likewise.
1176 * sese.c (scalar_evolution_in_region): Simplify now that
1177 SCEV can handle instantiation in regions.
1178 * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
1179 in the non-loop part of a function if requested.
1181 2017-10-17 Richard Biener <rguenther@suse.de>
1183 PR tree-optimization/82563
1184 * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
1186 (graphite_regenerate_ast_isl): Call it.
1187 * graphite-scop-detection.c (build_scops): Remove entry edge split.
1189 2017-10-17 Jakub Jelinek <jakub@redhat.com>
1191 PR tree-optimization/82549
1192 * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
1193 Formatting fixes. Instead of calling make_bit_field_ref with negative
1196 2017-10-17 Olga Makhotina <olga.makhotina@intel.com>
1198 * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
1199 _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
1200 _mm_maskz_reduce_ss): New.
1201 * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
1202 __builtin_ia32_reducess_mask): Ditto..
1203 (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
1204 * config/i386/sse.md (reduces<mode>): Renamed to ...
1205 (reduces<mode><mask_scalar_name>): ... this.
1206 (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}): Changed
1208 (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
1209 %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
1211 2017-10-16 David Malcolm <dmalcolm@redhat.com>
1213 * Makefile.in (OBJS): Add unique-ptr-tests.o.
1214 * selftest-run-tests.c (selftest::run_tests): Call
1215 selftest::unique_ptr_tests_cc_tests.
1216 * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
1217 * unique-ptr-tests.cc: New file.
1219 2017-10-16 Vladimir Makarov <vmakarov@redhat.com>
1222 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
1224 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
1225 (make_hard_regno_born, make_hard_regno_dead): Update
1226 bb_killed_pseudos and bb_gen_pseudos for fixed regs.
1228 2017-10-16 Jeff Law <law@redhat.com>
1230 * tree-ssa-dse.c (live_bytes_read): Fix thinko.
1232 2017-10-16 Jan Hubicka <hubicka@ucw.cz>
1234 * x86-tune-costs.h (znver1_cost): Fix move cost tables.
1236 2017-10-16 Olivier Hainque <hainque@adacore.com>
1238 * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
1239 with_cpu if we were configured for an e500v2 target cpu name.
1241 2017-10-16 Thomas Preud'homme <thomas.preudhomme@arm.com>
1243 * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
1244 * doc/invoke.texi: Document +nodsp as a valid extension for
1247 2017-10-16 Martin Liska <mliska@suse.cz>
1249 * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
1250 (test_set_range): Likewise.
1251 (test_range_functions): Rename to ...
1252 (test_bit_in_range): ... this.
1253 (sbitmap_c_tests): Add new test.
1255 2017-10-16 Tamar Christina <tamar.christina@arm.com>
1257 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): New.
1258 (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
1259 (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
1261 2017-10-16 Tamar Christina <tamar.christina@arm.com>
1263 * config/aarch64/aarch64-builtins.c
1264 (aarch64_types_quadopu_lane_qualifiers): New.
1265 (TYPES_QUADOPU_LANE): New.
1266 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
1267 (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
1268 (aarch64_<sur>dot_laneq<vsi2qi>): New.
1269 * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
1270 (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
1271 * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
1272 (Vdottype, DOTPROD): New.
1273 (sur): Add SDOT and UDOT.
1275 2017-10-16 Tamar Christina <tamar.christina@arm.com>
1277 * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
1278 (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
1279 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add TARGET_DOTPROD.
1280 * config/aarch64/aarch64-option-extensions.def (dotprod): New.
1281 * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75): Enable TARGET_DOTPROD.
1282 (cortex-a75.cortex-a55): Likewise.
1283 * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
1285 2017-10-16 Tamar Christina <tamar.christina@arm.com>
1287 * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
1288 (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS): New.
1289 * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane): new.
1290 * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
1291 (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
1292 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
1293 (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
1294 * config/arm/types.md (neon_dot, neon_dot_q): New.
1295 * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
1297 2017-10-16 Tamar Christina <tamar.christina@arm.com>
1299 * config/arm/arm.h (TARGET_DOTPROD): New.
1300 * config/arm/arm.c (arm_arch_dotprod): New.
1301 (arm_option_reconfigure_globals): Add arm_arch_dotprod.
1302 * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
1303 * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
1304 (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
1305 (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
1306 * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
1307 * doc/invoke.texi (armv8.2-a): Document dotprod
1309 2017-10-14 Jan Hubicka <hubicka@ucw.cz>
1311 * i386.c (ix86_vec_cost): New function.
1312 (ix86_rtx_costs): Handle vector operations better.
1313 * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
1314 * x86-tune-costs.h: Add new costs to all tables.
1316 2017-10-14 Jan Hubicka <hubicka@ucw.cz>
1318 * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
1320 * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
1321 divsd, sqrtss and sqrtsd
1322 * x86-tune-costs.h: Add new entries to all costs.
1323 (znver1_cost): Fix to match real instruction latencies.
1325 2017-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1326 Michael Collison <michael.collison@arm.com>
1328 * compare-elim.c: Include emit-rtl.h.
1329 (can_merge_compare_into_arith): New function.
1330 (try_validate_parallel): Likewise.
1331 (try_merge_compare): Likewise.
1332 (try_eliminate_compare): Call the above when no previous clobber
1334 (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
1337 2017-10-14 Jakub Jelinek <jakub@redhat.com>
1341 * tree-ssa-phiopt.c (value_replacement): Comment fix. Handle
1342 up to 2 preparation statements for ASSIGN in MIDDLE_BB.
1346 * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
1347 to be any operand_equal_p operands. For & (B - 1) require
1348 B to be power of 2. Recognize
1349 (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
1351 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
1354 * optabs.c (expand_memory_blockage): Fix call of
1355 targetm.have_memory_blockage.
1357 2017-10-14 Jakub Jelinek <jakub@redhat.com>
1360 * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
1361 x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
1362 objects to extra_objs instead of overwriting it.
1364 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
1366 * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
1367 Use any_fp_register_operand as operand[3] predicate. Simplify
1368 equality test for operands[2] and operands[4] memory location.
1369 (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
1370 (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
1371 (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
1372 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
1373 any_fp_register_operand as operand[1] predicate. Simplify
1374 equality test for operands[0] and operands[3] memory location.
1375 (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
1376 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
1377 (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
1379 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
1381 * target-insns.def: Add memory_blockage.
1382 * optabs.c (expand_memory_blockage): New function.
1383 (expand_asm_memory_barrier): Rename ...
1384 (expand_asm_memory_blockage): ... to this.
1385 (expand_mem_thread_fence): Call expand_memory_blockage
1386 instead of expand_asm_memory_barrier.
1387 (expand_mem_singnal_fence): Ditto.
1388 (expand_atomic_load): Ditto.
1389 (expand_atomic_store): Ditto.
1390 * doc/md.texi (Standard Pattern Names For Generation):
1391 Document memory_blockage instruction pattern.
1393 2017-10-13 Sebastian Perta <sebastian.perta@renesas.com>
1395 * config/rl78/rl78.c (rl78_emit_libcall): New function.
1396 * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
1397 * config/rl78/rl78.md: New define_expand "adddi3".
1399 2017-10-13 Jan Hubicka <hubicka@ucw.cz>
1401 * cfghooks.c (verify_flow_info): Disable check that all probabilities
1404 2017-10-13 Jeff Law <law@redhat.com>
1406 * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
1408 2017-10-13 Jakub Jelinek <jakub@redhat.com>
1411 * internal-fn.c (expand_mul_overflow): If both operands have
1412 the same highpart of -1 or 0 and the topmost bit of lowpart
1413 is different, overflow is if res <= 0 rather than res < 0.
1415 2017-10-13 Pat Haugen <pthaugen@us.ibm.com>
1417 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
1418 TARGET_P9_VECTOR code for unaligned_load case.
1420 2017-10-13 Jan Hubicka <hubicka@ucw.cz>
1422 * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
1424 2017-10-13 Nathan Sidwell <nathan@acm.org>
1426 * tree-core.h (tree_contains_struct): Make bool.
1427 * tree.c (tree_contains_struct): Likewise.
1428 * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
1429 (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
1430 MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
1431 MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
1432 MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
1434 2017-10-13 Richard Biener <rguenther@suse.de>
1436 * graphite-isl-ast-to-gimple.c
1437 (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
1438 parameters and dominance check.
1439 (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
1440 (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
1441 (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
1442 Do not update SSA form here or do intermediate IL verification.
1443 * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
1444 (graphite_initialize): Remove check on the number of loops in
1445 the function and inline into graphite_transform_loops.
1446 (graphite_finalize): Inline into graphite_transform_loops.
1447 (graphite_transform_loops): Perform SSA update and IL verification
1449 * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
1451 2017-10-13 Richard Biener <rguenther@suse.de>
1453 * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
1454 graphite_expression_type_precision): Avoid global constructor
1456 (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
1457 (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
1458 (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
1459 (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
1460 (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
1461 * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
1463 2017-10-13 H.J. Lu <hongjiu.lu@intel.com>
1466 * config/i386/i386.h (ix86_red_zone_size): New.
1467 * config/i386/i386.md (push peephole2s): Replace
1468 "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
1470 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
1471 Alan Hayward <alan.hayward@arm.com>
1472 David Sherwood <david.sherwood@arm.com>
1474 * combine.c (can_change_dest_mode): Reject changes in
1475 REGMODE_NATURAL_SIZE.
1477 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
1478 Alan Hayward <alan.hayward@arm.com>
1479 David Sherwood <david.sherwood@arm.com>
1481 * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
1482 (expand_debug_source_expr): Likewise.
1483 * combine.c (combine_simplify_rtx): Likewise.
1484 * cse.c (fold_rtx): Likewise.
1485 * fwprop.c (canonicalize_address): Likewise.
1486 * targhooks.c (default_shift_truncation_mask): Likewise.
1488 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
1489 Alan Hayward <alan.hayward@arm.com>
1490 David Sherwood <david.sherwood@arm.com>
1492 * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
1493 (widened_mode): Likewise.
1494 (expand_unop): Likewise.
1495 * ree.c (transform_ifelse): Likewise.
1496 (merge_def_and_ext): Likewise.
1497 (combine_reaching_defs): Likewise.
1498 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1500 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
1501 Alan Hayward <alan.hayward@arm.com>
1502 David Sherwood <david.sherwood@arm.com>
1504 * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
1505 * combine.c (gen_lowpart_for_combine): Likewise.
1506 * dwarf2out.c (rtl_for_decl_location): Likewise.
1507 * final.c (alter_subreg): Likewise.
1508 * rtlhooks.c (gen_lowpart_general): Likewise.
1509 (gen_lowpart_if_possible): Likewise.
1511 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
1512 Alan Hayward <alan.hayward@arm.com>
1513 David Sherwood <david.sherwood@arm.com>
1515 * calls.c (expand_call): Use subreg_lowpart_offset.
1516 * cse.c (cse_insn): Likewise.
1517 * regcprop.c (copy_value): Likewise.
1518 (copyprop_hardreg_forward_1): Likewise.
1520 2017-10-13 Jakub Jelinek <jakub@redhat.com>
1523 * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
1524 *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
1525 =Q constraints to +Q and into insn condition add check
1526 that operands[0] and operands[1] are equal.
1527 (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
1528 =Q constraints to +Q and into insn condition add check
1529 that operands[0] is equal to either operands[1] or operands[2].
1532 * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
1533 instead of handling MINUS_EXPR twice (once for each argument),
1534 canonicalize operand order and handle just once, use rtype where
1535 possible. Handle (A << B) | (A >> (-B & (Z - 1))).
1538 * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
1539 any values of __C while still being pattern recognizable as a simple
1542 2017-10-13 Richard Biener <rguenther@suse.de>
1544 PR tree-optimization/82451
1546 2017-10-02 Richard Biener <rguenther@suse.de>
1548 PR tree-optimization/82355
1549 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
1550 a mapping for the enclosing loop but avoid generating one for
1552 (copy_bb_and_scalar_dependences): Remove premature codegen
1553 error on PHIs in blocks duplicated into multiple places.
1554 * graphite-scop-detection.c
1555 (scop_detection::stmt_has_simple_data_refs_p): For a loop not
1556 in the region use it as loop and nest to analyze the DR in.
1557 (try_generate_gimple_bb): Likewise.
1558 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
1559 (add_loop_constraints): For blocks in a loop not in the region
1560 create a dimension with a single iteration.
1561 * sese.h (gbb_loop_at_index): Remove assert.
1563 * cfgloop.c (loop_preheader_edge): For the loop tree root
1564 return the single successor of the entry block.
1565 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
1566 Reset the SCEV hashtable and niters.
1567 * graphite-scop-detection.c
1568 (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
1569 assert that we only have POLYNOMIAL_CHREC that vary in loops
1570 contained in the region.
1571 (scop_detection::graphite_can_represent_expr): Adjust.
1572 (scop_detection::stmt_has_simple_data_refs_p): For loops
1573 not in the region set loop to NULL. The nest is now the
1574 entry edge to the region.
1575 (try_generate_gimple_bb): Likewise.
1576 * sese.c (scalar_evolution_in_region): Adjust for
1577 instantiate_scev change.
1578 * tree-data-ref.h (graphite_find_data_references_in_stmt):
1579 Make nest parameter the edge into the region.
1580 (create_data_ref): Likewise.
1581 * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
1582 entry edge into a region and adjust instantiate_scev calls.
1583 (create_data_ref): Likewise.
1584 (graphite_find_data_references_in_stmt): Likewise.
1585 (find_data_references_in_stmt): Pass the loop preheader edge
1586 from the nest argument.
1587 * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
1588 parameter the edge into the region.
1589 (instantiate_parameters): Use the loop preheader edge as entry.
1590 * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
1592 (get_instantiated_value_entry): Make instantiate_below parameter
1593 the edge into the region.
1594 (instantiate_scev_name): Likewise. Adjust dominance checks,
1595 when we cannot use loop-based instantiation instantiate by
1596 walking use-def chains.
1597 (instantiate_scev_poly): Adjust.
1598 (instantiate_scev_binary): Likewise.
1599 (instantiate_scev_convert): Likewise.
1600 (instantiate_scev_not): Likewise.
1601 (instantiate_array_ref): Remove.
1602 (instantiate_scev_3): Likewise.
1603 (instantiate_scev_2): Likewise.
1604 (instantiate_scev_1): Likewise.
1605 (instantiate_scev_r): Do not blindly handle N-operand trees.
1606 Do not instantiate array-refs. Handle all constants and invariants.
1607 (instantiate_scev): Make instantiate_below parameter
1608 the edge into the region.
1609 (resolve_mixers): Use the loop preheader edge for the region
1610 parameter to instantiate_scev_r.
1611 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
1613 2017-10-13 Richard Biener <rguenther@suse.de>
1615 PR tree-optimization/82525
1616 * graphite-isl-ast-to-gimple.c
1617 (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
1619 (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
1620 Fail code generation when we cannot represent the isl integer.
1621 (binary_op_to_tree): Elide modulo operations that are no-ops
1622 in the type we code generate. Remove now superfluous code
1625 2017-10-13 Richard Biener <rguenther@suse.de>
1627 * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
1628 (scop_detection::harmful_loop_in_region): Remove premature
1629 IV type restriction.
1630 (scop_detection::graphite_can_represent_scev): We can handle
1631 pointer IVs just fine.
1633 2017-10-13 Alan Modra <amodra@gmail.com>
1635 * doc/extend.texi (Extended Asm <Clobbers>): Rename to
1636 "Clobbers and Scratch Registers". Add paragraph on
1637 alternative to clobbers for scratch registers and OpenBLAS
1640 2017-10-13 Alan Modra <amodra@gmail.com>
1642 * doc/extend.texi (Clobbers): Correct vax example. Delete old
1643 example of a memory input for a string of known length. Move
1644 commentary out of table. Add a number of new examples
1645 covering array memory inputs.
1647 2017-10-12 Martin Liska <mliska@suse.cz>
1649 PR tree-optimization/82493
1650 * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
1651 (test_range_functions): New function.
1652 (sbitmap_c_tests): Likewise.
1653 * selftest-run-tests.c (selftest::run_tests): Run new tests.
1654 * selftest.h (sbitmap_c_tests): New function.
1656 * tree-ssa-dse.c (live_bytes_read): Fix thinko.
1658 2017-10-12 Michael Meissner <meissner@linux.vnet.ibm.com>
1660 * config/rs6000/amo.h: Fix spacing issue.
1662 2017-10-12 Jakub Jelinek <jakub@redhat.com>
1665 * config/i386/i386.md (*ashl<mode>3_mask_1,
1666 *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
1667 *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
1670 2017-10-12 Jan Hubicka <hubicka@ucw.cz>
1672 * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
1673 (profile_probability): Set max_probability
1674 to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
1676 * profile-count.c (profile_probability::differs_from_p): Do not
1677 rely on max_probaiblity == 10000
1679 2017-10-12 Jeff Law <law@redhat.com>
1681 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
1684 2017-10-12 Martin Sebor <msebor@redhat.com>
1688 * cgraphunit.c (maybe_diag_incompatible_alias): New function.
1689 (handle_alias_pairs): Call it.
1690 * common.opt (-Wattribute-alias): New option.
1691 * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
1692 * doc/invoke.texi (-Wattribute-alias): Document.
1694 2017-10-12 Vladimir Makarov <vmakarov@redhat.com>
1697 2017-10-11 Vladimir Makarov <vmakarov@redhat.com>
1699 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
1701 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
1702 (make_hard_regno_born, make_hard_regno_dead): Update
1703 bb_killed_pseudos and bb_gen_pseudos.
1705 2017-10-12 Jan Hubicka <hubicka@ucw.cz>
1707 * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
1709 2017-10-12 Uros Bizjak <ubizjak@gmail.com>
1711 * config/alpha/alpha.c (alpha_split_conditional_move):
1712 Use std::swap instead of manually swapping.
1713 (alpha_stdarg_optimize_hook): Ditto.
1714 (alpha_canonicalize_comparison): Ditto.
1716 2017-10-12 Bin Cheng <bin.cheng@arm.com>
1718 * tree-loop-distribution.c (struct builtin_info): New struct.
1719 (struct partition): Refactor fields into struct builtin_info.
1720 (partition_free): Free struct builtin_info.
1721 (build_size_arg_loc, build_addr_arg_loc): Delete.
1722 (generate_memset_builtin, generate_memcpy_builtin): Get memory range
1723 information from struct builtin_info.
1724 (find_single_drs): New function refactored from classify_partition.
1725 Also moved builtin validity checks to this function.
1726 (compute_access_range, alloc_builtin): New functions.
1727 (classify_builtin_st, classify_builtin_ldst): New functions.
1728 (classify_partition): Refactor code into functions find_single_drs,
1729 classify_builtin_st and classify_builtin_ldst.
1730 (distribute_loop): Don't do runtime alias check when distributing
1732 (find_seed_stmts_for_distribution): New function.
1733 (pass_loop_distribution::execute): Refactor code finding seed
1734 stmts into above function. Support distribution for the innermost
1735 two-level loop nest. Adjust dump information.
1737 2017-10-12 Bin Cheng <bin.cheng@arm.com>
1739 * tree-loop-distribution.c: Adjust the general comment.
1740 (NUM_PARTITION_THRESHOLD): New macro.
1741 (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
1742 (classify_partition): Skip builtin pattern of loop nest's inner loop.
1743 (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
1744 in call to build_partition_graph.
1745 (finalize_partitions): New parameter. Make loop distribution more
1746 conservative by fusing more partitions.
1747 (distribute_loop): Don't do runtime alias check in case of loop nest
1749 (find_seed_stmts_for_distribution): New function.
1750 (prepare_perfect_loop_nest): New function.
1751 (pass_loop_distribution::execute): Refactor code finding seed stmts
1752 and loop nest into above functions. Support loop nest distribution.
1753 Adjust dump information accordingly.
1755 2017-10-12 Bin Cheng <bin.cheng@arm.com>
1757 * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
1758 and set PTYPE_SEQUENTIAL for merged partition.
1760 2017-10-12 Richard Biener <rguenther@suse.de>
1762 PR tree-optimization/69728
1764 2017-09-19 Richard Biener <rguenther@suse.de>
1766 PR tree-optimization/69728
1767 * graphite-sese-to-poly.c (schedule_error): New global.
1768 (add_loop_schedule): Handle empty domain by failing the
1770 (build_original_schedule): Handle schedule_error.
1772 * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
1773 domain by returning an unchanged schedule.
1775 2017-10-12 Jakub Jelinek <jakub@redhat.com>
1777 * genrecog.c (validate_pattern): For VEC_SELECT verify that
1778 CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
1780 2017-10-12 Aldy Hernandez <aldyh@redhat.com>
1782 * Makefile.in (TAGS): Merge all the *.def files into one pattern.
1785 2017-10-12 Jakub Jelinek <jakub@redhat.com>
1788 * expr.c (store_field): Don't optimize away bitsize == 0 store
1789 from CALL_EXPR with addressable return type.
1791 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org>
1793 * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
1794 * config/rs6000/rs6000.md (sel): Delete mode attribute.
1795 (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
1796 *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
1797 TARGET_ISEL instead of TARGET_ISEL<sel>.
1799 2017-10-11 David Edelsohn <dje.gcc@gmail.com>
1801 * config/rs6000/rs6000.c
1802 (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
1804 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org>
1806 * config/rs6000/predicates.md (zero_constant, all_ones_constant):
1808 (reg_or_cint_operand): Fix comment.
1809 (reg_or_zero_operand): New predicate.
1810 * config/rs6000/rs6000-protos.h (output_isel): Delete.
1811 * config/rs6000/rs6000.c (output_isel): Delete.
1812 * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
1813 instead of reg_or_cint_operand. Output instruction directly (not via
1815 (isel_unsigned_<mode>): Ditto.
1816 (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
1817 gpc_reg_operand. Add an instruction alternative for this. Output
1818 instruction directly.
1819 (*isel_reversed_unsigned_<mode>): Ditto.
1821 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
1823 * config/i386/i386.c (ix86_canonicalize_comparison): New function.
1824 (TARGET_CANONICALIZE_COMPARISON): Define.
1826 2017-10-11 Qing Zhao <qing.zhao@oracle.com>
1829 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1830 Check whether the dest is REG before adding REG_EQUIV note.
1832 2017-10-11 Vladimir Makarov <vmakarov@redhat.com>
1835 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
1837 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
1838 (make_hard_regno_born, make_hard_regno_dead): Update
1839 bb_killed_pseudos and bb_gen_pseudos.
1841 2017-10-11 Nathan Sidwell <nathan@acm.org>
1843 * incpath.h (enum incpath_kind): Name enum, prefix values.
1844 (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
1845 * incpath.c (heads, tails): Use INC_MAX.
1846 (add_env_var_paths, add_standard_paths): Use incpath_kind.
1847 (merge_include_chains, split_quote_chain,
1848 register_include_chains): Update incpath_kind names.
1849 (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
1850 * config/darwin-c.c (add_system_framework_path): Update incpath_kind
1852 (add_framework_path, darwin_register_objc_includes): Likewise.
1853 * config/vms/vms-c.c (vms_c_register_includes): Likewise.
1855 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
1857 * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
1858 Do not use float_operator operator predicate.
1859 (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
1860 * config/i386/predicates.md (float_operator): Remove predicate.
1862 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
1864 * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
1865 (*jccxf_i387): Ditto.
1866 (*jcc<mode>_i387): Ditto.
1867 (*jccu<mode>_i387): Ditto.
1868 (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
1869 (*jcc_*_i387 splitters): Remove.
1870 * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
1871 * config/i386/i386.c (ix86_split_fp_branch): Remove.
1872 * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
1875 2017-10-11 Jan Hubicka <hubicka@ucw.cz>
1877 * profile-count.h (slow_safe_scale_64bit): New function.
1878 (safe_scale_64bit): New inline.
1879 (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
1880 * profile-count.c: Include wide-int.h
1881 (slow_safe_scale_64bit): New.
1883 2017-10-11 Nathan Sidwell <nathan@acm.org>
1885 * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
1886 HAS_DECL_ASSEMBLER_NAME_P.
1887 * gimple-expr.c (gimple_decl_printable_name: Check
1888 HAS_DECL_ASSEMBLER_NAME_P too.
1889 * ipa-utils.h (type_in_anonymous_namespace_p): Check
1890 DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
1891 (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
1892 * passes.c (rest_of_decl_compilation): Check
1893 HAS_DECL_ASSEMBLER_NAME_P too.
1894 * recog.c (verify_changes): Likewise.
1895 * tree-pretty-print.c (dump_decl_name): Likewise.
1896 * tree-ssa-structalias.c (alias_get_name): Likewise. Reimplement.
1898 * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
1899 (SET_DECL_ASSEMBLER_NAME): Use it.
1900 (DECL_ASSEMBLER_NAME_SET_P): Likewise.
1901 (COPY_DECL_ASSEMBLER_NAME): Likewise.
1902 * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
1904 2017-10-11 Jan Hubicka <hubicka@ucw.cz>
1906 * config.gcc (i386, x86_64): Add extra objects.
1907 * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
1908 (ix86_min_insn_size): Declare.
1909 (ix86_issue_rate): Declare.
1910 (ix86_adjust_cost): Declare.
1911 (ia32_multipass_dfa_lookahead): Declare.
1912 (ix86_macro_fusion_p): Declare.
1913 (ix86_macro_fusion_pair_p): Declare.
1914 (ix86_bd_has_dispatch): Declare.
1915 (ix86_bd_do_dispatch): Declare.
1916 (ix86_core2i7_init_hooks): Declare.
1917 (ix86_atom_sched_reorder): Declare.
1918 * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
1919 (COSTS_N_BYTES): Move to x86-tune-costs.h.
1920 (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
1921 (rip_relative_addr_p): Rename to ...
1922 (ix86_rip_relative_addr_p): ... this one; export.
1923 (memory_address_length): Update.
1924 (ix86_issue_rate): Move to x86-tune-sched.c.
1925 (ix86_flags_dependent): Move to x86-tune-sched.c.
1926 (ix86_agi_dependent): Move to x86-tune-sched.c.
1927 (exact_dependency_1): Move to x86-tune-sched.c.
1928 (exact_store_load_dependency): Move to x86-tune-sched.c.
1929 (ix86_adjust_cost): Move to x86-tune-sched.c.
1930 (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
1931 (ix86_macro_fusion_p): Move to x86-tune-sched.c.
1932 (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
1933 (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
1934 (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
1935 (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
1936 (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
1937 (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
1938 (min_insn_size): Rename to ...
1939 (ix86_min_insn_size): ... this one; export.
1940 (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
1941 (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
1942 (core2i7_first_cycle_multipass_backtrack): Move to
1943 x86-tune-sched-core.c.
1944 (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
1945 (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
1946 (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
1947 (ix86_avoid_jump_mispredicts): Update.
1948 (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
1949 (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
1950 (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
1951 (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
1952 (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
1953 (MAX_INSN): Move to ix86-tune-sched-bd.c.
1954 (MAX_IMM): Move to ix86-tune-sched-bd.c.
1955 (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
1956 (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
1957 (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
1958 (MAX_LOAD): Move to ix86-tune-sched-bd.c.
1959 (MAX_STORE): Move to ix86-tune-sched-bd.c.
1960 (BIG): Move to ix86-tune-sched-bd.c.
1961 (enum dispatch_group): Move to ix86-tune-sched-bd.c.
1962 (enum insn_path): Move to ix86-tune-sched-bd.c.
1963 (get_mem_group): Move to ix86-tune-sched-bd.c.
1964 (is_cmp): Move to ix86-tune-sched-bd.c.
1965 (dispatch_violation): Move to ix86-tune-sched-bd.c.
1966 (is_branch): Move to ix86-tune-sched-bd.c.
1967 (is_prefetch): Move to ix86-tune-sched-bd.c.
1968 (init_window): Move to ix86-tune-sched-bd.c.
1969 (allocate_window): Move to ix86-tune-sched-bd.c.
1970 (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
1971 (is_end_basic_block): Move to ix86-tune-sched-bd.c.
1972 (process_end_window): Move to ix86-tune-sched-bd.c.
1973 (allocate_next_window): Move to ix86-tune-sched-bd.c.
1974 (find_constant): Move to ix86-tune-sched-bd.c.
1975 (get_num_immediates): Move to ix86-tune-sched-bd.c.
1976 (has_immediate): Move to ix86-tune-sched-bd.c.
1977 (get_insn_path): Move to ix86-tune-sched-bd.c.
1978 (get_insn_group): Move to ix86-tune-sched-bd.c.
1979 (count_num_restricted): Move to ix86-tune-sched-bd.c.
1980 (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
1981 (add_insn_window): Move to ix86-tune-sched-bd.c.
1982 (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
1983 (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
1984 (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
1985 (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
1986 (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
1987 (do_dispatch): Move to ix86-tune-sched-bd.c.
1988 (has_dispatch): Move to ix86-tune-sched-bd.c.
1989 * config/i386/t-i386: Add new object files.
1990 * config/i386/x86-tune-costs.h: New file.
1991 * config/i386/x86-tune-sched-atom.c: New file.
1992 * config/i386/x86-tune-sched-bd.c: New file.
1993 * config/i386/x86-tune-sched-core.c: New file.
1994 * config/i386/x86-tune-sched.c: New file.
1996 2017-10-11 Liu Hao <lh_mouse@126.com>
1998 * pretty-print.c [_WIN32] (colorize_init): Remove. Use
1999 the generic version below instead.
2000 (should_colorize): Recognize Windows consoles as terminals
2002 * pretty-print.c [__MINGW32__] (write_all): New function.
2003 [__MINGW32__] (find_esc_head): Likewise.
2004 [__MINGW32__] (find_esc_terminator): Likewise.
2005 [__MINGW32__] (eat_esc_sequence): Likewise.
2006 [__MINGW32__] (mingw_ansi_fputs): New function that handles
2008 (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
2011 2017-10-11 Richard Biener <rguenther@suse.de>
2013 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
2014 Properly call analyze_scalar_evolution with the loop of the stmt.
2016 2017-10-11 Richard Biener <rguenther@suse.de>
2018 * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
2019 * tree-core.h (tree_base): Add chrec_var union member.
2020 * tree.h (CHREC_VAR): Remove.
2021 (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
2022 * tree-chrec.h (build_polynomial_chrec): Adjust.
2023 * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
2024 * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
2026 2017-10-11 Marc Glisse <marc.glisse@inria.fr>
2028 * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
2029 * match.pd: ... here.
2030 ((T) X == (T) Y): Relax condition.
2032 2017-10-11 Bin Cheng <bin.cheng@arm.com>
2034 PR tree-optimization/82472
2035 * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
2037 (break_alias_scc_partitions): Update postorder number.
2039 2017-10-11 Martin Liska <mliska@suse.cz>
2042 * opts.c (parse_no_sanitize_attribute): Do not use error_value
2044 * opts.h (parse_no_sanitize_attribute): Remove last argument.
2046 2017-10-11 Martin Liska <mliska@suse.cz>
2048 * print-rtl.c (print_insn): Move declaration of idbuf
2049 to same scope as name.
2051 2017-10-11 Martin Liska <mliska@suse.cz>
2056 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
2059 2017-10-11 Martin Liska <mliska@suse.cz>
2062 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
2065 2017-10-11 Adhemerval Zanella <adhemerval.zanella@linaro.org>
2067 * config.gcc (default_gnu_indirect_function): Default to yes for
2068 arm*-*-linux* with glibc.
2070 2017-10-11 Richard Biener <rguenther@suse.de>
2072 * tree-scalar-evolution.c (get_scalar_evolution): Handle
2073 default-defs and types we do not want to analyze.
2074 (interpret_loop_phi): Replace unreachable code with an assert.
2075 (compute_scalar_evolution_in_loop): Remove and inline ...
2076 (analyze_scalar_evolution_1): ... here, replacing condition with
2077 what makes the intent clearer. Remove handling of cases
2078 get_scalar_evolution now handles.
2080 2017-10-10 Jim Wilson <wilson@tuliptree.org>
2082 PR rtl-optimization/81434
2083 * haifa-sched.c (prune_ready_list): Init min_cost_group to 0. Update
2084 comment for main loop. In sched_group_found if, also add checks for
2085 pass and min_cost_group.
2087 2017-10-10 Segher Boessenkool <segher@kernel.crashing.org>
2089 * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
2090 (rs6000_insn_cost): New function.
2091 * config/rs6000/rs6000.md (cost): New attribute.
2093 2017-10-10 Jakub Jelinek <jakub@redhat.com>
2094 H.J. Lu <hongjiu.lu@intel.com>
2098 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
2099 OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
2100 __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
2101 (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
2102 to OPTION_MASK_ISA_AVX512VL - builtins that have both
2103 OPTION_MASK_ISA_MMX and some other bit set require both
2104 mmx and the ISAs without the mmx bit.
2105 * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
2106 __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
2107 __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
2108 __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
2109 __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
2110 __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
2111 __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
2112 __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
2113 __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
2114 __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
2115 __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
2116 __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
2117 __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
2118 __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
2119 Add OPTION_MASK_ISA_MMX.
2121 2017-10-10 Andreas Tobler <andreast@gcc.gnu.org>
2123 * config.gcc (armv7*-*-freebsd*): New target.
2124 (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
2126 2017-10-10 Jan Hubicka <hubicka@ucw.cz>
2128 * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
2129 X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
2132 2017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
2134 * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
2135 a template parameter.
2136 (WIDE_INT_REF_FOR): Update accordingly.
2137 * tree.h (wi::int_traits <const_tree>): Delete.
2138 (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
2139 (wi::to_widest, wi::to_offset): Use them. Expand commentary.
2140 (wi::tree_to_wide_ref): New typedef.
2141 (wi::to_wide): New function.
2142 * calls.c (get_size_range): Use wi::to_wide when operating on
2144 * cgraph.c (cgraph_node::create_thunk): Likewise.
2145 * config/i386/i386.c (ix86_data_alignment): Likewise.
2146 (ix86_local_alignment): Likewise.
2147 * dbxout.c (stabstr_O): Likewise.
2148 * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
2149 * expr.c (const_vector_from_tree): Likewise.
2150 * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
2151 * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
2152 (fold_negate_expr_1, int_const_binop_1, const_binop)
2153 (fold_convert_const_int_from_real, optimize_bit_field_compare)
2154 (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
2155 (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
2156 (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
2157 (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
2158 (fold_not_const, round_up_loc): Likewise.
2159 * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
2160 * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
2161 (alloca_call_type): Likewise.
2162 * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
2163 * godump.c (go_output_typedef): Likewise.
2164 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
2165 * internal-fn.c (get_min_precision): Likewise.
2166 * ipa-cp.c (ipcp_store_vr_results): Likewise.
2167 * ipa-polymorphic-call.c
2168 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
2169 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
2170 (ipa_modify_call_arguments): Likewise.
2171 * match.pd: Likewise.
2172 * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
2173 * print-tree.c (print_node_brief, print_node): Likewise.
2174 * stmt.c (expand_case): Likewise.
2175 * stor-layout.c (layout_type): Likewise.
2176 * tree-affine.c (tree_to_aff_combination): Likewise.
2177 * tree-cfg.c (group_case_labels_stmt): Likewise.
2178 * tree-data-ref.c (dr_analyze_indices): Likewise.
2179 (prune_runtime_alias_test_list): Likewise.
2180 * tree-dump.c (dequeue_and_dump): Likewise.
2181 * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
2182 * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
2183 * tree-pretty-print.c (dump_generic_node): Likewise.
2184 * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
2185 (simple_iv_with_niters): Likewise.
2186 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
2187 * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
2188 * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
2189 * tree-ssa-loop-niter.c (split_to_var_and_offset)
2190 (refine_value_range_using_guard, number_of_iterations_ne_max)
2191 (number_of_iterations_lt_to_ne, number_of_iterations_lt)
2192 (get_cst_init_from_scev, record_nonwrapping_iv)
2193 (scev_var_range_cant_overflow): Likewise.
2194 * tree-ssa-phiopt.c (minmax_replacement): Likewise.
2195 * tree-ssa-pre.c (compute_avail): Likewise.
2196 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
2197 (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
2198 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
2199 * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
2200 * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
2201 * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
2202 (dump_case_nodes, try_switch_expansion): Likewise.
2203 * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
2204 (vect_do_peeling): Likewise.
2205 * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
2206 * tree-vect-stmts.c (vectorizable_load): Likewise.
2207 * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
2208 (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
2209 (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
2210 (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
2211 (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
2212 (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
2213 (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
2214 (evrp_dom_walker::before_dom_children): Likewise.
2215 * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
2216 (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
2217 (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
2218 (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
2219 (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
2220 (get_range_pos_neg): Likewise.
2221 * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
2222 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
2223 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
2224 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
2225 * config/avr/avr.c (avr_fold_builtin): Likewise.
2226 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
2227 * config/msp430/msp430.c (msp430_attr): Likewise.
2228 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
2229 * config/powerpcspe/powerpcspe-c.c
2230 (altivec_resolve_overloaded_builtin): Likewise.
2231 * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
2232 (rs6000_expand_ternop_builtin): Likewise.
2233 * config/rs6000/rs6000-c.c
2234 (altivec_resolve_overloaded_builtin): Likewise.
2235 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
2236 (rs6000_expand_ternop_builtin): Likewise.
2237 * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
2239 2017-10-10 Bin Cheng <bin.cheng@arm.com>
2241 * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
2242 when copying loop nest with only one inner loop.
2244 2017-10-10 Richard Biener <rguenther@suse.de>
2246 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
2247 blocks if SCEV is active.
2248 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
2250 (analyze_scalar_evolution): Handle cached evolutions the obvious way.
2251 (scev_initialize): Assert we are not yet initialized.
2253 2017-10-10 Bin Cheng <bin.cheng@arm.com>
2255 * tree-loop-distribution.c (generate_loops_for_partition): Remove
2256 inner loop's exit stmt by making it always exit the loop, otherwise
2257 we would generate an infinite empty loop.
2259 2017-10-10 Bin Cheng <bin.cheng@arm.com>
2261 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
2262 renaming variables in new preheader if it's deleted.
2264 2017-10-10 Bin Cheng <bin.cheng@arm.com>
2266 * tree-loop-distribution.c (struct partition): Remove unused field
2267 loops of the structure.
2268 (partition_alloc, partition_free): Ditto.
2269 (build_rdg_partition_for_vertex): Ditto.
2271 2017-10-09 Jeff Law <law@redhat.com>
2273 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
2274 return type to match prototype and documentation.
2276 2010-10-09 Segher Boessenkool <segher@kernel.crashing.org>
2278 * config/rs6000/rs6000.c (processor_costs): Move to ...
2279 * config/rs6000/rs6000.h: ... here.
2280 (rs6000_cost): Declare.
2282 2017-10-09 Eric Botcazou <ebotcazou@adacore.com>
2284 * except.c (setjmp_fn): New global variable.
2285 (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
2286 (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
2287 if DONT_USE_BUILTIN_SETJMP is defined.
2289 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
2291 * target.def (insn_cost): New hook.
2292 * doc/tm.texi.in (TARGET_INSN_COST): New hook.
2293 * doc/tm.texi: Regenerate.
2294 * rtlanal.c (insn_cost): Use the new hook.
2296 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
2298 * combine.c (combine_validate_cost): Compute the new insn_cost,
2299 not just pattern_cost.
2300 (try_combine): Adjust comment.
2302 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
2304 * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
2306 * combine.c (uid_insn_cost): Adjust comment.
2307 (combine_validate_cost): Adjust comment. Use pattern_cost instead
2309 (combine_instructions): Use insn_cost instead of insn_rtx_cost.
2310 * dse.c (find_shift_sequence): Ditto.
2311 * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
2312 (bb_valid_for_noce_process_p): Use pattern_cost.
2313 * rtl.h (insn_rtx_cost): Delete.
2314 (pattern_cost): New prototype.
2315 (insn_cost): New prototype.
2316 * rtlanal.c (insn_rtx_cost): Rename to...
2317 (pattern_cost): ... this.
2320 2017-10-09 Uros Bizjak <ubizjak@gmail.com>
2322 * config/i386/i386.md (*jcc_2): Remove insn pattern.
2323 (*jcc<mode>_0_r_i387): Ditto.
2324 (*jccxf_r_i387): Ditto.
2325 (*jcc<mode>_r_i387): Ditto.
2326 (*jccu<mode>_r_i387): Ditto.
2327 (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
2328 (*jcc): Rename from *jcc_1.
2330 2017-10-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2332 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
2333 deferred rescans after the lvx/stvx recombination pre-pass.
2335 2017-10-09 Michael Meissner <meissner@linux.vnet.ibm.com>
2337 * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
2338 memory operation instruction support.
2339 * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
2340 (rs6000-ibm-aix[789]*): Likewise.
2341 * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
2342 Document new functions.
2344 2017-10-09 Richard Biener <rguenther@suse.de>
2346 PR tree-optimization/82397
2347 * tree-data-ref.c (data_ref_compare_tree): Make sure to return
2348 equality only for semantically equal trees.
2350 2017-10-09 Richard Biener <rguenther@suse.de>
2352 PR tree-optimization/82449
2353 * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
2354 * tree-chrec.h (evolution_function_is_constant_p): Adjust to
2355 allow constant addresses.
2356 * tree-chrec.c (scev_is_linear_expression): Constant evolutions
2359 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2361 * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
2364 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2367 * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
2370 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2373 * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
2375 2017-10-09 Jakub Jelinek <jakub@redhat.com>
2378 * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
2379 s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
2381 2017-10-09 Richard Sandiford <richard.sandiford@linaro.org>
2383 * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
2384 (WI_BINARY_PREDICATE_RESULT): Likewise.
2385 (wi::binary_traits::operator_result): New type.
2386 (wi::binary_traits::predicate_result): Likewise.
2387 (generic_wide_int::operator~, unary generic_wide_int::operator-)
2388 (generic_wide_int::operator==, generic_wide_int::operator!=)
2389 (generic_wide_int::operator&, generic_wide_int::and_not)
2390 (generic_wide_int::operator|, generic_wide_int::or_not)
2391 (generic_wide_int::operator^, generic_wide_int::operator+
2392 (binary generic_wide_int::operator-, generic_wide_int::operator*):
2394 (operator~, unary operator-, operator==, operator!=, operator&)
2395 (operator|, operator^, operator+, binary operator-, operator*): New
2397 * expr.c (get_inner_reference): Use wi::bit_and_not.
2398 * fold-const.c (fold_binary_loc): Likewise.
2399 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
2400 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
2401 (bit_value_binop): Likewise.
2402 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
2403 * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
2404 (extract_range_from_binary_expr_1): Likewise.
2405 (masked_increment): Likewise.
2406 (simplify_bit_ops_using_ranges): Likewise.
2408 2017-10-09 Martin Jambor <mjambor@suse.cz>
2411 * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
2412 * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
2413 (hsa_type_for_scalar_tree_type): Use it. Always force min32int for
2415 (hsa_fixup_mov_insn_type): New function.
2416 (hsa_op_with_type::get_in_type): Use it.
2417 (hsa_build_append_simple_mov): Likewise. Allow sub-32bit
2418 immediates in an assert.
2419 (hsa_op_with_type::extend_int_to_32bit): New method.
2420 (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
2421 types. Convert to dest type if necessary.
2422 (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
2423 (reg_for_gimple_ssa): Pass false as min32int to
2424 hsa_type_for_scalar_tree_type.
2425 (gen_hsa_addr): Fixup type when creating addresable temporary.
2426 (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
2427 (gen_hsa_unary_operation): Extend operands and convert to dest type if
2428 necessary. Call hsa_fixup_mov_insn_type.
2429 (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
2430 extend operands and convert to dest type if necessary.
2431 (gen_hsa_insns_for_operation_assignment): Extend operands and convert
2432 to dest type if necessary.
2433 (set_output_in_type): Call hsa_fixup_mov_insn_type. Just ude dest
2434 if conversion nt necessary and size matches.
2435 (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
2436 to dest type if necessary.
2437 (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
2438 (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
2440 (gen_hsa_clrsb): Likewise.
2441 (gen_hsa_ffs): Likewise.
2442 (gen_hsa_divmod): Extend operands and convert to dest type if
2444 (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
2446 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org>
2448 * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
2449 Remove empty default arguments. Use a brace block as output
2451 (conditional return): Ditto.
2453 (indirect_jump): Ditto. Use b%T0 instead of bctr/blr.
2454 (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
2456 (group_ending_nop): Ditto.
2457 (doloop_end): Ditto.
2458 (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
2459 (splitters for those): Ditto.
2461 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org>
2463 * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
2464 a conditional jump (and the compare for it) so that pc_rtx is the
2466 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
2467 for the deleted and renamed ctr<mode>_internal[234] patterns.
2468 * config/rs6000/rs6000.md: Delete second conditional branch pattern.
2469 Delete second conditional return pattern.
2470 (ctr<mode>_internal2): Delete this second bdnz pattern.
2471 (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
2472 (ctr<mode>_internal4): Delete this second bdz pattern.
2474 2017-10-08 Eric Botcazou <ebotcazou@adacore.com>
2476 * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
2477 (always_initialized_rtx_for_ssa_name_p): New predicate.
2478 * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
2479 (finish_out_of_ssa): Free new field of SA.
2480 * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
2481 * tree-ssa-coalesce.c: Include tree-ssa.h.
2482 (get_parm_default_def_partitions): Remove extern keyword.
2483 (get_undefined_value_partitions): New function.
2484 * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
2485 not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
2487 * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
2489 2017-10-08 Eric Botcazou <ebotcazou@adacore.com>
2491 * builtins.def (BUILT_IN_SETJMP): Revert latest change.
2493 2017-10-08 Jan Hubicka <hubicka@ucw.cz>
2495 * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
2496 for targets that preffer 128bit.
2498 2017-10-08 Jan Hubicka <hubicka@ucw.cz>
2500 * config/i386/i386.c (has_dispatch): Disable for Ryzen.
2502 2017-10-08 Olivier Hainque <hainque@adacore.com>
2504 * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
2505 on the target mem instead of RTX_FRAME_RELATED_P on the insn to
2507 (thumb_set_return_address): Likewise.
2509 2017-10-08 Olivier Hainque <hainque@adacore.com>
2511 * common/config/arm/arm-common.c (arm_except_unwind_info):
2512 Handle DWARF2_UNWIND_INFO.
2514 2017-10-07 Michael Collison <michael.collison@arm.com>
2516 * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
2519 2017-10-07 Eric Botcazou <ebotcazou@adacore.com>
2521 * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
2522 of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
2523 * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
2524 defined, force the creation of a new block for a dispatch label.
2526 2017-10-07 Jan Hubicka <hubicka@ucw.cz>
2528 * invoke.texi (Wsuggest-attribute=cold): Document.
2529 * common.opt (Wsuggest-attribute=cold): New
2530 * ipa-pure-const.c (warn_function_cold): New function.
2531 * predict.c (compute_function_frequency): Use it.
2532 * predict.h (warn_function_cold): Declare.
2534 2017-10-06 Jan Hubicka <hubicka@ucw.cz>
2536 * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
2539 2017-10-06 Martin Liska <mliska@suse.cz>
2541 * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
2542 keyword for member functions.
2543 (struct sanopt_tree_couple): New struct.
2544 (struct sanopt_tree_couple_hash): New function.
2545 (struct sanopt_ctx): Add new hash_map.
2546 (has_dominating_ubsan_ptr_check): New function.
2547 (record_ubsan_ptr_check_stmt): Likewise.
2548 (maybe_optimize_ubsan_ptr_ifn): Likewise.
2549 (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
2550 (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
2552 2017-10-06 Sudakshina Das <sudi.das@arm.com>
2555 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
2556 aarch64_simd_valid_immediate on CONST_VECTORs.
2557 (aarch64_reg_or_bic_imm): Likewise.
2559 2017-10-06 Wilco Dijkstra <wdijkstr@arm.com>
2561 PR rtl-optimization/82396
2562 * haifa-sched.c (ready_sort_real): Disable qsort checking.
2564 2017-10-06 Sebastian Pop <sebpop@gmail.com>
2566 * graphite-dependences.c (scop_get_reads): Move code to...
2567 (scop_get_must_writes): Move code to...
2568 (scop_get_may_writes): Move code to...
2569 (scop_get_reads_and_writes): ... here.
2570 (scop_get_dependences): Call scop_get_reads_and_writes.
2572 2017-10-06 Jakub Jelinek <jakub@redhat.com>
2574 PR tree-optimization/82434
2575 * fold-const.h (can_native_encode_type_p,
2576 can_native_encode_string_p): Remove.
2577 * fold-const.c (native_encode_int): Formatting fixes. If ptr is NULL,
2578 don't encode anything, just return what would be otherwise returned.
2579 (native_encode_fixed, native_encode_complex, native_encode_vector):
2581 (native_encode_string): Likewise. Inline by hand
2582 can_native_encode_string_p.
2583 (can_native_encode_type_p): Remove.
2584 (can_native_encode_string_p): Remove.
2585 * tree-vect-stmts.c (vectorizable_store): Instead of testing just
2586 STRING_CSTs using can_native_encode_string_p, test all
2587 CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
2588 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
2589 argument from native_encode_expr.
2590 (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
2591 (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
2594 2017-10-06 Richard Biener <rguenther@suse.de>
2596 PR tree-optimization/82397
2597 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
2598 operand_equal_p but rely on data_ref_compare_tree for detecting
2600 (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
2601 to match up with dr_group_sort_cmp.
2603 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2606 * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
2608 * config/s390/s390-builtin-types.def: Regenerate.
2610 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2613 * config/s390/s390-builtin-types.def: Regenerate.
2614 * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
2615 Change flag from B_VXE to B_VX.
2616 (s390_vec_min_dbl): Remove B_VXE flag.
2618 2017-10-06 Richard Biener <rguenther@suse.de>
2620 * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
2621 (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
2622 translate_isl_ast_to_gimple::is_valid_rename,
2623 translate_isl_ast_to_gimple::get_rename,
2624 translate_isl_ast_to_gimple::get_def_bb_for_const,
2625 translate_isl_ast_to_gimple::get_new_name,
2626 translate_isl_ast_to_gimple::collect_all_ssa_names,
2627 translate_isl_ast_to_gimple::copy_loop_phi_args,
2628 translate_isl_ast_to_gimple::collect_all_ssa_names,
2629 translate_isl_ast_to_gimple::copy_loop_phi_args,
2630 translate_isl_ast_to_gimple::copy_loop_phi_nodes,
2631 translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
2632 translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
2633 translate_isl_ast_to_gimple::copy_loop_close_phi_args,
2634 translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
2635 translate_isl_ast_to_gimple::copy_cond_phi_args,
2636 translate_isl_ast_to_gimple::copy_cond_phi_nodes,
2637 translate_isl_ast_to_gimple::edge_for_new_close_phis,
2638 translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
2639 translate_isl_ast_to_gimple::rename_uses,
2640 translate_isl_ast_to_gimple::rename_all_uses): Remove.
2641 (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
2642 (set_rename_for_each_def): Likewise.
2643 (graphite_copy_stmts_from_block): Handle debug stmt resetting
2644 here. Handle rewriting SCEV analyzable uses here.
2645 (copy_bb_and_scalar_dependences): Generate code for PHI
2647 (graphite_regenerate_ast_isl): Adjust.
2648 * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
2649 (add_write, add_read): New functions.
2650 (build_cross_bb_scalars_def): Use it and simplify.
2651 (build_cross_bb_scalars_use): Likewise.
2652 (graphite_find_cross_bb_scalar_vars): Inline into...
2653 (try_generate_gimple_bb): ...here. Add dependences for PHIs,
2654 simulating out-of-SSA. Compute liveout and add dependencies.
2655 (build_scops): Force an empty entry block.
2656 * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
2658 (sese_build_liveouts): Declare.
2659 (sese_trivially_empty_bb_p): Likewise.
2660 * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
2661 compute liveout and debug_liveout.
2662 (sese_bad_liveouts_use): Remove.
2663 (sese_reset_debug_liveouts_bb): Likewise.
2664 (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
2665 (sese_build_liveouts): Build liveout and debug_liveout and store
2667 (new_sese_info): Adjust.
2668 (free_sese_info): Likewise.
2669 (sese_insert_phis_for_liveouts): Reset debug stmts from here,
2670 do not build liveout here.
2671 (move_sese_in_condition): Adjust region entry.
2672 (scev_analyzable_p): Match up with chrec_apply requirements.
2673 (sese_trivially_empty_bb_p): New.
2674 * tree-into-ssa.c (get_reaching_def): Properly support generating
2675 default-defs for incremental rewrite of anonymous names.
2677 2017-10-06 Richard Biener <rguenther@suse.de>
2679 * graphite-sese-to-poly.c (extract_affine): For casts increasing
2680 precision do not perform modulo reduction.
2682 2017-10-06 Richard Biener <rguenther@suse.de>
2684 PR tree-optimization/82436
2685 * tree-vect-slp.c (vect_supported_load_permutation_p): More
2686 conservatively choose the vectorization factor when checking
2687 whether we can perform the required load permutation.
2688 (vect_transform_slp_perm_load): Assert when we may not fail.
2690 2017-10-05 Segher Boessenkool <segher@kernel.crashing.org>
2692 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
2693 message for incompatible -msdata=* and -mcall-* options.
2695 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
2697 * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
2698 rate for post-reload scheduling.
2700 2017-10-05 Tamar Christina <tamar.christina@arm.com>
2702 * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
2704 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
2706 * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
2707 to improve monte carlo in scimark.
2709 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
2711 * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
2712 pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
2713 athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
2714 pentium4_cost, nocona_cost): Set reassociation width to 1.
2715 (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
2716 width to 2 for fp operations and 1 otherwise.
2717 (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
2719 (atom_cost): Set reassociation width to 2.
2720 (slm_cost, generic_cost): Set fp reassociation width
2721 to 2 and 1 otherwise.
2722 (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
2723 (core_cost): Set fp reassociation width to 4 and vector to 2.
2724 (ix86_reassociation_width): Rewrite using cost table; special case
2725 plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
2726 and TARGET_AVX128_OPTIMAL.
2727 * config/i386/i386.h (processor_costs): Add
2728 reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
2729 (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
2730 TARGET_REASSOC_FP_TO_PARALLEL): Remove.
2731 * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
2732 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
2733 (X86_TUNE_VECTOR_PARALLEL_EXECUTION): Remove.
2735 2017-10-05 Nathan Sidwell <nathan@acm.org>
2737 * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
2739 2017-10-05 Tamar Christina <tamar.christina@arm.com>
2741 * config/arm/arm.c (arm_test_fpu_data): New.
2742 (arm_run_selftests): Call arm_test_fpu_data.
2744 2017-10-04 Nathan Sidwell <nathan@acm.org>
2746 * toplev.c (toplev::main): Remove excess parens on pretty_printer
2748 * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
2750 2017-10-04 Sudakshina Das <sudi.das@arm.com>
2752 * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
2753 check type for aarch64_simd_valid_immediate.
2754 (aarch64_output_simd_mov_immediate): Update prototype.
2755 (aarch64_simd_valid_immediate): Update prototype.
2756 * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
2757 support for ORR-immediate.
2758 (and<mode>3): modified pattern to add support for BIC-immediate.
2759 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
2760 now checks for valid immediate for BIC and ORR based on new enum
2762 (aarch64_output_simd_mov_immediate): Function now used to output
2763 BIC/ORR imm as well based on new enum argument.
2764 * config/aarch64/constraints.md (Do): New vector immediate constraint.
2766 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
2767 (aarch64_reg_or_bic_imm): Likewise.
2769 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2771 * config/s390/vx-builtins.md ("vec_mergeh<mode>")
2772 ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
2774 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com>
2778 PR rtl-optimization/82396
2779 * haifa-sched.c (autopref_multipass_init): Simplify
2781 (autopref_rank_data): Simplify sort order.
2782 * sched-int.h (autopref_multipass_data_): Remove
2783 multi_mem_insn_p, min_offset and max_offset.
2785 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2787 * doc/sourcebuild.texi: Document vect_peeling_profitable.
2789 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2791 * doc/sourcebuild.texi: Document vect_intdouble_cvt and
2794 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2796 * doc/sourcebuild.texi: Document vect_long_mult.
2798 2017-10-04 Richard Sandiford <richard.sandiford@linaro.org>
2800 PR tree-optimization/82413
2801 * fold-const.c (build_range_check): Use widest_int when comparing
2802 the maximum ETYPE value with HIGH.
2804 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com>
2806 PR rtl-optimization/82396
2807 * haifa-sched.c (autopref_multipass_init): Simplify
2809 (autopref_rank_data): Simplify sort order.
2810 * sched-int.h (autopref_multipass_data_): Remove
2811 multi_mem_insn_p, min_offset and max_offset.
2813 2017-10-04 Jakub Jelinek <jakub@redhat.com>
2815 PR tree-optimization/82381
2816 * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
2817 oeN->rank first. Return 1 or -1 if one op is SSA_NAME and the other
2820 PR tree-optimization/82374
2821 * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
2822 DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
2823 DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
2824 current_function_decl to the new decl.
2826 2017-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2828 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
2829 helper macro for IEEE float128 hardware built-in functions.
2830 (SQRTF128_ODD): Add built-in functions with the round-to-odd
2832 (TRUNCF128_ODD): Likewise.
2833 (ADDF128_ODD): Likewise.
2834 (SUBF128_ODD): Likewise.
2835 (MULF128_ODD): Likewise.
2836 (DIVF128_ODD): Likewise.
2837 (FMAF128_ODD): Likewise.
2838 * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
2839 UNSPEC_TRUNC_ROUND_TO_ODD.
2840 (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
2841 (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
2842 floating point round to odd instructions.
2843 (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
2844 (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
2845 (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
2846 (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
2847 (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
2848 (trunc<mode>sf2_hw): Change the truncate with round to odd
2849 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
2850 (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
2851 to odd hardware instructions.
2852 (sub<mode>3_odd): Likewise.
2853 (mul<mode>3_odd): Likewise.
2854 (div<mode>3_odd): Likewise.
2855 (sqrt<mode>2_odd): Likewise.
2856 (fma<mode>4_odd): Likewise.
2857 (fms<mode>4_odd): Likewise.
2858 (nfma<mode>4_odd): Likewise.
2859 (nfms<mode>4_odd): Likewise.
2860 (trunc<mode>df2_odd): Change the truncate with round to odd
2861 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. Add a generator
2863 * doc/extend.texi (PowerPC built-in functions): Update documentation
2864 for existing IEEE float128-bit built-in functions. Add built-in
2865 functions that generate the IEEE 128-bit floating point round to
2868 2017-10-03 Segher Boessenkool <segher@kernel.crashing.org>
2870 PR rtl-optimization/77729
2871 * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
2872 to (X&(C1&~C2))|C2 transformations.
2874 2017-10-03 Martin Jambor <mjambor@suse.cz>
2876 PR tree-optimization/82363
2877 * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
2878 mismatch, mark lacc written regardless of racc.
2880 2017-10-03 Jakub Jelinek <jakub@redhat.com>
2882 PR tree-optimization/82381
2883 * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
2884 stmt_to_insert nor wheather SSA_NAMEs are default defs.
2885 Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
2886 fallthrough into reassoc_stmt_dominates_stmt_p.
2889 * combine.c (combine_instructions): Don't combine in unreachable
2892 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
2895 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
2896 function to not use the have_cpu variable. Do not set cpu_index,
2897 rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
2899 (rs6000_valid_attribute_p): Remove duplicate initializations of
2900 old_optimize and func_optimize.
2901 (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
2902 (rs6000_activate_target_options): Make global.
2903 * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
2906 2017-10-02 Jakub Jelinek <jakub@redhat.com>
2908 * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
2909 if *poffset + *pmax_size overflows in HOST_WIDE_INT.
2910 Set *poffset to 0 and *psize and *pmax_size to -1 if
2911 *poffset + *psize overflows in HOST_WIDE_INT.
2913 PR tree-optimization/82387
2914 PR tree-optimization/82388
2915 PR tree-optimization/82389
2916 * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
2917 instead of live_bytes non-NULL.
2919 2017-10-02 Georg-Johann Lay <avr@gjlay.de>
2922 * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
2925 2017-10-02 Richard Biener <rguenther@suse.de>
2927 * graphite-isl-ast-to-gimple.c (set_codegen_error): With
2928 -fchecking and --param graphite-allow-codegen-errors=0 ICE.
2929 * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
2931 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org>
2933 * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
2934 requested precision matches the type's.
2935 * calls.c (alloc_max_size): Calculate the new candidate size as
2936 a widest_int and use wi::to_widest when comparing it with the
2937 current candidate size.
2938 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
2939 zero rather than integer_zero_node.
2940 * match.pd: Check for a no-op conversion before using wi::add
2941 rather than after. Use tree_to_uhwi when summing small shift
2942 counts into an unsigned int.
2944 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org>
2945 Alan Hayward <alan.hayward@arm.com>
2946 David Sherwood <david.sherwood@arm.com>
2949 * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
2950 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
2951 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
2952 POINTER_AND_FP_REGS.
2954 2017-10-02 Richard Biener <rguenther@suse.de>
2956 PR tree-optimization/82355
2957 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
2958 a mapping for the enclosing loop but avoid generating one for
2960 (copy_bb_and_scalar_dependences): Remove premature codegen
2961 error on PHIs in blocks duplicated into multiple places.
2962 * graphite-scop-detection.c
2963 (scop_detection::stmt_has_simple_data_refs_p): For a loop not
2964 in the region use it as loop and nest to analyze the DR in.
2965 (try_generate_gimple_bb): Likewise.
2966 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
2967 (add_loop_constraints): For blocks in a loop not in the region
2968 create a dimension with a single iteration.
2969 * sese.h (gbb_loop_at_index): Remove assert.
2971 2017-10-01 Kevin Buettner <kevinb@redhat.com>
2973 * omp-expand.c (adjust_context_scope): New function.
2974 (expand_parallel_call): Call adjust_context_scope.
2976 2017-10-01 Jeff Law <law@redhat.com>
2978 * tree-ssa-dom.c (optimize_stmt): Make this a method within the
2979 dom_opt_dom_walker class with direct access to private members.
2980 Add comments. Call test_for_singularity.
2981 (dom_opt_dom_walker::before_dom_children): Corresponding changes.
2982 (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
2983 m_dummy_cond anymore.
2984 (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
2986 (pass_dominator:execute): Build the dummy_cond here and pass it
2987 to the dom_opt_dom_walker ctor.
2988 (test_for_singularity): New function.
2990 2017-09-30 Krister Walfridsson <krister.walfridsson@gmail.com>
2991 Maya Rashish <coypu@sdf.org>
2993 * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
2994 netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
2995 (alpha*-*-netbsd*) Use nbsd_tm_file.
2996 (arm*-*-netbsdelf*) Likewise.
2997 (i[34567]86-*-netbsdelf*) Likewise.
2998 (x86_64-*-netbsd*) Likewise.
2999 (mips*-*-netbsd*) Likewise.
3000 (powerpc-*-netbsd*) Likewise.
3001 (sh*-*-netbsd*) Likewise.
3002 (sparc-*-netbsdelf*) Likewise.
3003 (sparc64-*-netbsd*) Likewise.
3004 (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
3006 (vax-*-netbsdelf*) Likewise.
3007 * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
3008 (UINT_FAST8_TYPE) Likewise.
3009 (INT_FAST16_TYPE) Check CHAR_FAST16.
3010 (UINT_FAST16_TYPE) Likewise.
3012 2017-09-30 Jakub Jelinek <jakub@redhat.com>
3015 * config/i386/i386.md
3016 (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
3017 (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
3018 *divmodsi4_zext_2): New define_insn_and_split.
3019 (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
3020 (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
3021 (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
3022 *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
3023 New define_insn_and_split.
3024 (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
3025 * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
3026 operands[1] having DImode when mode is SImode.
3028 * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
3029 always SImode for DIV and MOD in REG_EQUAL notes.
3031 2017-09-29 Yury Gribov <tetra2005@gmail.com>
3034 * match.pd: Fix handling of NaNs in pattern.
3036 2017-09-29 Jeff Law <law@redhat.com>
3038 * sbitmap.c (bitmap_bit_in_range_p): New function.
3039 * sbitmap.h (bitmap_bit_in_range_p): Prototype.
3040 * tree-ssa-dse.c (live_bytes_read): New function.
3041 (dse_classify_store): Ignore reads of dead bytes.
3043 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
3044 typos and whitespace errors.
3045 * config/i386/predicates.md (address_no_seg_operand): Likewise.
3046 * config/s390/s390.c (s390_emit_prologue): Likewise.
3048 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
3051 * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
3052 with a symbol for LRA.
3054 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
3056 PR rtl-optimization/82338
3057 * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
3059 2017-09-29 Alexander Monakov <amonakov@ispras.ru>
3061 * genmodes.c (calc_wider_mode): Suppress qsort macro.
3062 * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
3063 (qsort_chk): Declare.
3064 * vec.c [CHECKING_P] (qsort_chk_error): New static function.
3065 (qsort_chk): New function.
3067 2017-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3069 PR tree-optimization/82337
3070 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
3071 phi definition if the PHI result appears in an abnormal PHI.
3072 (find_basis_for_base_expr): Don't record a basis if the LHS of the
3073 basis appears in an abnormal PHI.
3075 2017-09-29 Richard Biener <rguenther@suse.de>
3077 * graphite-isl-ast-to-gimple.c
3078 (translate_isl_ast_to_gimple::set_codegen_error): New function.
3079 (binary_op_to_tree): Use it.
3080 (get_rename_from_scev): Likewise.
3081 (copy_loop_phi_nodes): Likewise.
3082 (copy_bb_and_scalar_dependences): Likewise.
3083 (translate_pending_phi_nodes): Likewise.
3085 2017-09-29 Jakub Jelinek <jakub@redhat.com>
3088 * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
3089 for movabsq $(i32 << shift), r64.
3091 2017-09-28 Uros Bizjak <ubizjak@gmail.com>
3093 * config/i386/i386.c (ix86_print_operand_address_as): Do not check
3094 index when encoding %esp as %rsp to avoid 0x67 prefix.
3096 2017-09-28 Sergey Shalnov <Sergey.Shalnov@intel.com>
3098 * config/i386/i386.md (*movsf_internal, *movdf_internal):
3099 Return 256-bit AVX modes for TARGET_PREFER_AVX256.
3101 2017-09-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
3103 * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
3104 Extensions with more than 16 double VFP registers.
3105 (cmse_nonsecure_entry_clear_before_return): Remove second entry of
3106 to_clear_mask and all code related to it. Replace the remaining
3107 entry by a sbitmap and adapt code accordingly.
3109 2017-09-28 Henry Linjamäki <henry.linjamaki@parmance.com>
3111 * brig-builtins.def: Change pure attributes to const.
3113 2017-09-28 Joseph Myers <joseph@codesourcery.com>
3115 * config.gcc (default_gnu_indirect_function): Default to yes for
3116 sparc*-*-linux* with glibc.
3118 2017-09-28 Joseph Myers <joseph@codesourcery.com>
3120 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
3121 (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
3122 when creating .init_array and .fini_array sections with priority
3125 2017-09-27 Christophe Lyon <christophe.lyon@linaro.org>
3128 * config/aarch64/aarch64.c
3129 (aarch64_builtin_support_vector_misalignment): Always return false
3130 when misalignment is unknown.
3132 2017-09-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
3134 * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
3135 this function to return false if the definition used by the swap
3136 instruction is artificial, or if the memory address from which the
3137 constant value is loaded is not represented by a base address held
3138 in a register or if the base address register is a frame or stack
3139 pointer. Additionally, return false if the base address of the
3140 loaded constant is a SYMBOL_REF but is not considered to be a
3142 (replace_swapped_load_constant): New function.
3143 (rs6000_analyze_swaps): Add a new pass to replace a swap of a
3144 loaded constant vector with a load of a swapped constant vector.
3146 2017-09-27 Carl Love <cel@us.ibm.com>
3148 * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
3149 (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
3150 * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
3153 2017-09-27 Alexander Monakov <amonakov@ispras.ru>
3155 * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
3156 first, always call autopref_rank_data otherwise.
3158 2017-09-27 Richard Biener <rguenther@suse.de>
3160 * graphite-scop-detection.c (find_scop_parameters): Move
3161 loop bound handling ...
3162 (gather_bbs::before_dom_children): ... here, avoiding the need
3163 to build scop_info->loop_nest.
3164 (record_loop_in_sese): Remove.
3165 * sese.h (sese_info_t::loop_nest): Remove.
3166 * sese.c (new_sese_info): Do not allocate loop_nest.
3167 (free_sese_info): Do not free loop_nest.
3169 2017-09-27 Jakub Jelinek <jakub@redhat.com>
3172 * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
3173 lhs from calls if the lhs has addressable type.
3175 2017-09-27 Richard Biener <rguenther@suse.de>
3177 * graphite.h (scop::max_alias_set): New member.
3178 * graphite-scop-detection.c: Remove references to non-existing
3179 --param in comments.
3180 (build_alias_sets): Record the maximum alias set used for drs.
3181 (build_scops): Support zero as unlimited for
3182 --param graphite-max-arrays-per-scop.
3183 * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
3185 (build_poly_sr_1): ... here. Compute alias set based on the
3186 maximum alias set used for drs rather than
3187 PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
3189 2017-09-27 Richard Biener <rguenther@suse.de>
3191 * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
3192 --param loop-block-tile-size=0 to disable tiling.
3194 2017-09-27 Richard Biener <rguenther@suse.de>
3196 * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
3197 (graphite-max-nb-scop-params): Document special value zero.
3198 * domwalk.h (dom_walker::STOP): New symbolical constant.
3199 (dom_walker::dom_walker): Add optional parameter for bb to
3201 (dom_walker::~dom_walker): Declare.
3202 (dom_walker::before_dom_children): Document STOP return value.
3203 (dom_walker::m_user_bb_to_rpo): New member.
3204 (dom_walker::m_bb_to_rpo): Likewise.
3205 * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
3206 mapping here if not provided by the user.
3207 (dom_walker::~dom_walker): Free bb to RPO mapping if not
3208 provided by the user.
3209 (dom_walker::STOP): Define.
3210 (dom_walker::walk): Do not compute bb to RPO mapping here.
3211 Support STOP return value from before_dom_children to stop
3213 * graphite-optimize-isl.c (optimize_isl): If the schedule
3214 is the same still generate code if -fgraphite-identity
3215 or -floop-parallelize-all are given.
3216 * graphite-scop-detection.c: Include cfganal.h.
3217 (gather_bbs::gather_bbs): Get and pass through bb to RPO
3219 (gather_bbs::before_dom_children): Return STOP for BBs
3221 (build_scops): Compute bb to RPO mapping and pass it to
3222 the domwalk. Treat --param graphite-max-nb-scop-params=0
3223 as not limiting the number of params.
3224 * graphite.c (graphite_initialize): Remove limit on the
3225 number of basic-blocks in a function.
3226 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
3227 (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
3228 default value of 10.
3230 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3232 * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
3233 Adjust code to eliminate needing to do the shift right 32-bits
3234 operation after XSCVDPSPN.
3236 2017-09-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3238 * match.pd ((X / Y) == 0 -> X < Y): New pattern.
3239 ((X / Y) != 0 -> X >= Y): Likewise.
3241 2017-09-26 Carl Love <cel@us.ibm.com>
3243 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
3244 P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
3245 vector unsigned char vec_xl_len_r (unsigned char *, size_t);
3246 void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
3247 * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
3248 * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
3249 definitions and overloading.
3250 * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
3251 statement for P9V_BUILTIN_XST_LEN_R.
3252 (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
3253 * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
3254 define_expand and define_insn for the instructions and builtins.
3255 * doc/extend.texi: Update the built-in documentation file for the new
3257 * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
3258 define_insn for the instructions
3260 2017-09-26 Krister Walfridsson <krister.walfridsson@gmail.com>
3263 * gcc/config/netbsd-protos.h: New file.
3264 * gcc/config/netbsd.c: New file.
3265 * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
3266 * gcc/config/t-netbsd: New file.
3267 * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
3268 (tmake_file) Add t-netbsd.
3269 (extra_objs) Add netbsd.o.
3271 2017-09-26 Janus Weil <janus@gcc.gnu.org>
3275 * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
3277 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3279 * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
3280 sign extension from a vector register to a GPR by doing a 32-bit
3281 direct move and then an EXTSW.
3282 (extendsi<mode>2 splitter): Likewise.
3283 (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
3284 right or vector extract after doing XSCVDPSPN. Use
3285 zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
3287 (movdi_from_sf_zero_ext): Likewise.
3288 (reload_gpr_from_vsxsf): Likewise.
3289 (p8_mfvsrd_4_disf): Delete, no longer used.
3290 (movsi_from_df): Optimize converting a DFmode to a SFmode, and
3291 then needing to move the SFmode to a GPR to use the XSCVDPSP
3292 instruction instead of FRSP and XSCVDPSPN.
3293 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
3294 it is adjacent to the other XSCVSPDP insns.
3295 (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
3296 SFmode to be in traditional Altivec registers.
3297 (vsx_xscvdpspn): Eliminate useless alternative constraint.
3298 (vsx_xscvspdpn): Likewise.
3299 (vsx_xscvspdpn_scalar): Likewise.
3301 2017-09-26 Martin Jambor <mjambor@suse.cz>
3303 * tree-sra.c (compare_access_positions): Put integral types first,
3304 stabilize sorting of integral types, remove conditions putting
3305 non-full-precision integers last.
3306 (sort_and_splice_var_accesses): Disable scalarization if a
3307 non-integert would be represented by a non-full-precision integer.
3309 2017-09-26 Joseph Myers <joseph@codesourcery.com>
3311 * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
3312 * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
3313 * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
3314 * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
3315 Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
3316 conditionals inside the function instead of around it. Call
3317 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
3318 (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
3320 2017-09-26 Richard Biener <rguenther@suse.de>
3322 * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
3324 (scop_detection::build_scop_breadth): ... this. Removed.
3325 (scop_detection::loop_is_valid_in_scop): Fold into single caller.
3326 (scop_detection::harmful_stmt_in_bb): Likewise.
3327 (scop_detection::graphite_can_represent_stmt): Likewise.
3328 (scop_detection::loop_body_is_valid_scop): Likewise. Remove recursion.
3329 (scop_detection::can_represent_loop): Remove recursion, fold in ...
3330 (scop_detection::can_represent_loop_1): ... this. Removed.
3331 (scop_detection::harmful_loop_in_region): Simplify after inlining
3332 the above and remove more quadraticness.
3333 (build_scops): Adjust.
3334 * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
3337 2017-09-26 Jakub Jelinek <jakub@redhat.com>
3340 * config/i386/i386.c (ix86_print_operand_address_as): Only test
3341 REGNO (base) == SP_REG if base is a REG.
3344 * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
3345 if it is different SSA_NAME.
3346 (optimize_range_tests_cmp_bitwise): New function.
3347 (optimize_range_tests): Call it.
3349 2017-09-26 Richard Biener <rguenther@suse.de>
3351 PR tree-optimization/82321
3352 * graphite.c (canonicalize_loop_closed_ssa): Properly check
3353 for the def being inside the loop.
3355 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3357 * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
3359 * config/s390/s390-builtins.def: Fix constraint on op4.
3361 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3363 * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
3364 independent expanders.
3365 * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
3366 ("vec_ordered", "vec_unordered"): New expanders.
3368 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3370 * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
3373 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3375 * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
3376 vec_unpacks_lo_v16qi.
3377 ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
3379 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3381 * config/s390/vector.md ("vec_unpacks_lo_v4sf")
3382 ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
3383 ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
3385 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3387 * config/s390/predicates.md ("const_shift_by_byte_operand"): New
3389 * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
3391 ("*vec_slb<mode>"): New insn pattern.
3392 ("vec_shr_<mode>"): New expander.
3393 * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
3394 and force the shift count operand to V16QImode.
3395 ("vec_srb<mode>"): Set shift count mode to V16QI.
3397 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3399 * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
3400 ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
3401 ("vec_widen_smult_hi_<mode>"): New expander definitions.
3403 2017-09-26 Richard Earnshaw <rearnsha@arm.com>
3406 * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
3408 2017-09-26 Richard Biener <rguenther@suse.de>
3410 PR tree-optimization/82320
3411 * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
3414 2017-09-25 Jeff Law <law@redhat.com>
3416 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
3417 prototype for new argument.
3418 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
3419 mostly extracted from rs6000_emit_allocate_stack.
3420 (rs6000_emit_probe_stack_range_stack_clash): New function.
3421 (rs6000_emit_allocate_stack): Call
3422 rs6000_emit_probe_stack_range_stack_clash as needed.
3423 (rs6000_emit_probe_stack_range): Add additional argument
3424 to call to gen_probe_stack_range{si,di}.
3425 (output_probe_stack_range): New.
3426 (output_probe_stack_range_1): Renamed from output_probe_stack_range.
3427 (output_probe_stack_range_stack_clash): New.
3428 (rs6000_emit_prologue): Emit notes into dump file as requested.
3429 * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
3430 (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
3431 Add additional operand and pass it to output_probe_stack_range.
3433 2017-09-25 Bin Cheng <bin.cheng@arm.com>
3435 PR tree-optimization/82163
3436 * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
3437 (checking_verify_loop_closed_ssa): New parameter.
3438 * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
3439 (check_loop_closed_ssa_stmt): Delete.
3440 (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
3441 (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
3442 (tree_transform_and_unroll_loop): Check loop closed ssa form only for
3445 2017-09-25 Pekka Jaaskelainen <pekka@parmance.com>
3447 * brig-builtins.def: Treat HSAIL barrier builtins as
3448 setjmp/longjump style functions.
3450 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org>
3452 * target.def (constant_alignment): New hook.
3453 * defaults.h (CONSTANT_ALIGNMENT): Delete.
3454 * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
3455 (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
3456 * doc/tm.texi: Regenerate.
3457 * targhooks.h (default_constant_alignment): Declare.
3458 (constant_alignment_word_strings): Likewise.
3459 * targhooks.c (default_constant_alignment): New function.
3460 (constant_alignment_word_strings): Likewise.
3461 * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
3462 instead of CONSTANT_ALIGNMENT.
3463 * varasm.c (align_variable, get_variable_align, build_constant_desc)
3464 (force_const_mem): Likewise.
3465 * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
3466 * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
3467 (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
3468 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3469 * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
3471 * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
3472 * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3473 constant_alignment_word_strings.
3474 * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
3475 (CONSTANT_ALIGNMENT): Likewise.
3476 * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3477 (arm_constant_alignment): New function.
3478 * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
3479 * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3480 constant_alignment_word_strings.
3481 * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
3482 * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3483 constant_alignment_word_strings.
3484 * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
3485 * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3486 (cris_constant_alignment): New function.
3487 * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
3488 * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3489 (epiphany_constant_alignment): New function.
3490 * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
3491 * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3492 constant_alignment_word_strings.
3493 * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
3494 * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3495 constant_alignment_word_strings.
3496 * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
3497 * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3498 constant_alignment_word_strings.
3499 * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
3500 * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
3501 * config/i386/i386.c (ix86_constant_alignment): Make static.
3502 Use the same interface as the target hook.
3503 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3504 * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
3505 * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3506 constant_alignment_word_strings.
3507 * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
3508 * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
3509 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3510 * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
3511 * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3512 constant_alignment_word_strings.
3513 * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
3514 * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3515 constant_alignment_word_strings.
3516 * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
3517 * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3518 constant_alignment_word_strings.
3519 * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
3520 * config/microblaze/microblaze.c (microblaze_constant_alignment):
3522 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3523 * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
3524 * config/mips/mips.c (mips_constant_alignment): New function.
3525 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3526 * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
3527 * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
3528 * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3529 (mmix_constant_alignment): Make static. Use the same interface
3531 * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
3532 * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3533 constant_alignment_word_strings.
3534 * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
3535 * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3536 constant_alignment_word_strings.
3537 * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
3538 * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3539 constant_alignment_word_strings.
3540 * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
3541 * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3542 (rs6000_constant_alignment): New function.
3543 * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
3544 * config/riscv/riscv.c (riscv_constant_alignment): New function.
3545 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3546 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
3547 * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3548 (rs6000_constant_alignment): New function.
3549 * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
3550 * config/s390/s390.c (s390_constant_alignment): New function.
3551 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3552 * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
3553 * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3554 constant_alignment_word_strings.
3555 * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
3556 * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3557 (sparc_constant_alignment): New function.
3558 * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
3559 * config/spu/spu.c (spu_constant_alignment): New function.
3560 (TARGET_CONSTANT_ALIGNMENT): Redefine.
3561 * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
3562 * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3563 constant_alignment_word_strings.
3564 * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
3565 * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3566 constant_alignment_word_strings.
3567 * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
3568 * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3569 constant_alignment_word_strings.
3570 * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
3571 * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3572 (visium_constant_alignment): New function.
3573 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
3574 * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3575 (xtensa_constant_alignment): New function.
3576 * system.h (CONSTANT_ALIGNMENT): Poison.
3578 2017-09-25 Will Schmidt <will_schmidt@vnet.ibm.com>
3580 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
3581 for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
3582 (rs6000_builtin_valid_without_lhs): New helper function.
3583 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3584 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
3586 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org>
3588 * target.h (vec_perm_indices): Use unsigned short rather than
3590 (auto_vec_perm_indices): Likewise.
3591 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
3592 Use unsigned int rather than unsigned char.
3593 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
3595 2017-09-25 Richard Biener <rguenther@suse.de>
3597 * cfgloop.h (sort_sibling_loops): Declare.
3598 * cfgloop.c (sort_sibling_loops_cmp): New helper.
3599 (sort_sibling_loops): New function sorting the sibling loop list
3601 * graphite.c (graphite_transform_loops): Sort sibling loops.
3603 2017-09-25 Richard Sandiford <richard.sandifird@linaro.org>
3605 * target.def (vec_perm_const_ok): Change sel parameter to
3607 * optabs-query.c (can_vec_perm_p): Update accordingly.
3608 * doc/tm.texi: Regenerate.
3609 * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
3610 auto_vec_perm_indices and remove separate nelt field.
3611 (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
3612 (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
3613 (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
3614 (aarch64_expand_vec_perm_const): Update accordingly.
3615 (aarch64_vectorize_vec_perm_const_ok): Likewise. Change sel
3616 to vec_perm_indices.
3617 * config/arm/arm.c (expand_vec_perm_d): Change perm to
3618 auto_vec_perm_indices and remove separate nelt field.
3619 (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
3620 (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
3621 (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
3623 (arm_vectorize_vec_perm_const_ok): Likewise. Change sel
3624 to vec_perm_indices.
3625 * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
3626 sel to vec_perm_indices.
3627 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
3628 * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
3629 * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
3631 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
3634 2017-09-25 Pierre-Marie de Rodat <derodat@adacore.com>
3637 * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
3638 on the FUNCTION_DECL function context if it has a DIE that is a
3641 2017-09-25 Richard Biener <rguenther@suse.de>
3643 PR tree-optimization/82285
3644 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
3647 2017-09-25 Tom de Vries <tom@codesourcery.com>
3651 * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
3654 2017-09-25 Richard Biener <rguenther@suse.de>
3656 * graphite-optimize-isl.c (optimize_isl): Fail and dump if
3657 ISL errors other than isl_error_quota happen. Dump if the
3658 schedule is the same.
3659 * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
3660 errors instead of aborting inside ISL.
3662 2017-09-25 Iain Sandoe <iain@codesourcery.com>
3665 * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
3666 of libgcc_eh for m64.
3667 * config/i386/darwin64.h: Likewise.
3669 2017-09-25 Richard Biener <rguenther@suse.de>
3672 * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
3673 attribute for incomplete types nor twice for complete ones.
3675 2017-09-24 Uros Bizjak <ubizjak@gmail.com>
3678 * config/i386/i386.c (ix86_print_operand_address_as): Encode
3679 %esp as %rsp to avoid 0x67 prefix if there is no index or base
3682 2017-09-23 Uros Bizjak <ubizjak@gmail.com>
3685 * config/i386/i386.opt (mprefer-avx256): Use
3686 ix86_target_flags variable.
3687 * config/i386/i386.c (ix86_target_string): Move
3688 -mprefer-avx256 to flag2_opts.
3690 2017-09-22 Jakub Jelinek <jakub@redhat.com>
3693 * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
3694 and x != -1 | y != -1 into (x & y) != -1.
3696 2017-09-22 Steve Ellcey <sellcey@cavium.com>
3698 * config.gcc: Add new case statement to set
3699 default_gnu_indirect_function. Remove it from x86_64-*-linux*,
3700 i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
3701 s390x-*-linux* case statements. Added aarch64 to the list of
3702 supported architectures.
3704 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
3706 PR tree-optimization/82289
3707 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
3708 STMT_VINFO_RELEVANT_P.
3710 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
3711 Alan Hayward <alan.hayward@arm.com>
3712 David Sherwood <david.sherwood@arm.com>
3714 * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
3715 for VR_RANGE only; don't allow VR_ANTI_RANGE.
3716 (extract_range_from_binary_expr_1): Don't call
3717 extract_range_from_multiplicative_op_1 if !range_int_cst_p.
3719 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
3720 Alan Hayward <alan.hayward@arm.com>
3721 David Sherwood <david.sherwood@arm.com>
3723 * target.def (preferred_vector_alignment): New hook.
3724 * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
3726 * doc/tm.texi: Regenerate.
3727 * targhooks.h (default_preferred_vector_alignment): Declare.
3728 * targhooks.c (default_preferred_vector_alignment): New function.
3729 * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
3731 (DR_TARGET_ALIGNMENT): New macro.
3732 (aligned_access_p): Update commentary.
3733 (vect_known_alignment_in_bytes): New function.
3734 * tree-vect-data-refs.c (vect_calculate_required_alignment): New
3736 (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
3737 Calculate the misalignment based on the target alignment rather than
3739 (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
3740 rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
3741 (vect_enhance_data_refs_alignment): Mask the byte misalignment with
3742 the target alignment, rather than masking the element misalignment
3743 with the number of elements in a vector. Also use the target
3744 alignment when calculating the maximum number of peels.
3745 (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
3746 instead of TYPE_ALIGN_UNIT.
3747 (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
3748 Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
3749 (vect_create_addr_base_for_vector_ref): Update call accordingly.
3750 (vect_create_data_ref_ptr): Likewise.
3751 (vect_setup_realignment): Realign by ANDing with
3752 -DR_TARGET_MISALIGNMENT.
3753 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
3754 the number of peels based on DR_TARGET_ALIGNMENT.
3755 * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
3756 with the guaranteed alignment boundary when deciding whether
3758 (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
3759 relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
3760 (ensure_base_align): Remove stmt_info parameter. Get the
3761 target base alignment from DR_TARGET_ALIGNMENT.
3762 (vectorizable_store): Update call accordingly. Interpret
3763 DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
3765 (vectorizable_load): Likewise.
3767 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
3768 Alan Hayward <alan.hayward@arm.com>
3769 David Sherwood <david.sherwood@arm.com>
3771 * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
3772 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
3773 (vect_enhance_data_refs_alignment): Likewise.
3775 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com>
3777 * config/arm/parsecpu.awk (fatal): Note that we've encountered an
3778 error. Only quit immediately if parsing is complete.
3779 (BEGIN): Initialize fatal_err and parse_done.
3780 (begin fpu, end fpu): Check number of arguments.
3781 (begin arch, end arch): Likewise.
3782 (begin cpu, end cpu): Likewise.
3783 (cname, tune for, tune flags, architecture, fpu, option): Likewise.
3784 (optalias): Likewise.
3786 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com>
3788 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
3789 * config/arm/arm-isa.h: Delete. Move definitions to ...
3790 * arm-cpus.in: ... here. Use new feature and fgroup values.
3791 * config/arm/arm.c (arm_option_override): Use lower case for feature
3793 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
3794 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
3795 * config/arm/parsecpu.awk (END): Add new command 'isa'.
3797 (print_isa_bits_for): New function.
3798 (gen_isa): New function.
3799 (gen_comm_data): Use print_isa_bits_for.
3800 (define feature): New keyword.
3801 (define fgroup): New keyword.
3802 * config/arm/t-arm (TM_H): Remove.
3803 (GTM_H): Add arm-isa.h.
3804 (arm-isa.h): Add rule to generate file.
3805 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
3806 case for feature bit names.
3808 2017-09-22 Richard Biener <rguenther@suse.de>
3810 * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
3812 (graphite_regenerate_ast_isl): Do not reset SCEV. Move debug
3813 print of no dependency loops ...
3814 * graphite.c (graphite_transform_loops): ... here.
3815 (canonicalize_loop_closed_ssa_form): Work from inner to outer
3817 (same_close_phi_node, remove_duplicate_close_phi,
3818 make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
3819 (canonicalize_loop_closed_ssa): ... here and simplify.
3820 * graphite-optimize-isl.c: Include tree-vectorizer.h.
3821 (optimize_isl): Use dump_printf_loc to tell when we stopped
3822 optimizing because of an ISL timeout.
3824 2017-09-22 Richard Biener <rguenther@suse.de>
3826 PR tree-optimization/82291
3827 * tree-if-conv.c (predicate_mem_writes): Make sure to
3828 remove writes in blocks predicated with false.
3830 2017-09-22 Richard Biener <rguenther@suse.de>
3832 * sese.c: Include cfganal.h.
3833 (if_region_set_false_region): Remove.
3834 (create_if_region_on_edge): Likewise.
3835 (move_sese_in_condition): Re-implement without destroying
3838 2017-09-22 Richard Biener <rguenther@suse.de>
3840 * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
3841 Verify both BBs contain loop PHI nodes before dispatching to
3843 (graphite_regenerate_ast_isl): Do not recompute dominators,
3844 do not verify three times. Restructure for clarity.
3845 * graphite-scop-detection.c (same_close_phi_node,
3846 remove_duplicate_close_phi, make_close_phi_nodes_unique,
3847 defined_in_loop_p, canonicalize_loop_closed_ssa,
3848 canonicalize_loop_closed_ssa_form): Simplify, remove excess
3849 checking and SSA rewrite, move to ...
3850 * graphite.c: ... here. Include ssa.h and tree-ssa-loop-manip.h.
3851 (graphite_initialize): Do not pass in ctx, do not reset the
3852 SCEV cache, compute only dominators.
3853 (graphite_transform_loops): Allocate ISL ctx after
3854 graphite_initialize. Call canonicalize_loop_closed_ssa_form.
3855 Maintain post-dominators only around build_scops.
3856 * sese.c (if_region_set_false_region): Make static. Free
3857 and recompute dominators.
3858 (move_sese_in_condition): Assert we don't get called with
3859 post-dominators computed.
3860 * sese.h (if_region_set_false_region): Remove.
3862 2017-09-22 Sergey Shalnov <sergey.shalnov@intel.com>
3864 * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
3865 mode attribute for TARGET_AVX512VL.
3867 2017-09-21 Sergey Shalnov <sergey.shalnov@intel.com>
3869 * config/i386/i386.opt (mprefer-avx256): New option.
3870 * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
3872 (ix86_preferred_simd_mode): Return 256-bit AVX modes
3873 for TARGET_PREFER_AVX256.
3874 * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
3876 2017-09-21 Jeff Law <law@redhat.com>
3878 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
3879 Fix dump output if the only stack space is for pushed registers.
3881 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
3883 * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
3886 2017-09-21 Martin Sebor <msebor@redhat.com>
3889 * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
3890 code (in C++) or code that triggers warnings.
3892 2017-09-21 Eric Botcazou <ebotcazou@adacore.com>
3894 * stor-layout.c (bit_from_pos): Do not distribute the conversion.
3896 2017-09-21 Segher Boessenkool <segher@kernel.crashing.org>
3898 * haifa-sched.c: Rename insn_cost to insn_sched_cost.
3899 * sched-rgn.c: Ditto.
3900 * sel-sched-ir.c: Ditto.
3902 2017-09-21 Alexander Monakov <amonakov@ispras.ru>
3904 * toplev.h (set_random_seed): Adjust return type.
3905 * toplev.c (init_local_tick): Move eager initialization of random_seed
3906 to get_random_seed. Adjust comment.
3907 (init_random_seed): Inline to get_random_seed, delete.
3908 (get_random_seed): Initialize random_seed lazily.
3909 (set_random_seed): Do not return previous value.
3910 (print_switch_value): Do not call get_random_seed.
3912 2017-09-21 Evgeny Kudryashov <kudryashov@ispras.ru>
3914 * cgraph.c (delete_function_version): New, broken out from...
3915 (cgraph_node::delete_function_version): ...here. Rename to
3916 cgraph_node::delete_function_version_by_decl. Update all uses.
3917 (cgraph_node::remove): Call delete_function_version.
3919 2017-09-21 Jakub Jelinek <jakub@redhat.com>
3922 * tree-inline.c (expand_call_inline): Emit clobber stmts for
3923 VAR_DECLs to which addressable non-volatile parameters are mapped
3924 and for id->retvar after the return value assignment. Clear
3925 id->retval and id->retbnd after inlining.
3927 2017-09-21 Richard Biener <rguenther@suse.de>
3929 PR tree-optimization/82276
3930 PR tree-optimization/82244
3931 * tree-vrp.c (build_assert_expr_for): Set
3932 SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
3934 (remove_range_assertions): Revert earlier change.
3936 2017-09-21 Wilco Dijkstra <wdijkstr@arm.com>
3939 * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
3941 2017-09-21 Richard Biener <rguenther@suse.de>
3943 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
3944 Restore valid IL after code generation errors.
3945 * graphite.c (graphite_transform_loops): Diagnose code
3946 generation issues as MSG_MISSED_OPTIMIZATION and continue
3947 with processing SCOPs.
3949 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
3950 Alan Hayward <alan.hayward@arm.com>
3951 David Sherwood <david.sherwood@arm.com>
3953 * calls.c (compute_argument_addresses): Use simplify_gen_binary
3954 rather than choosing between plus_constant and gen_rtx_<CODE>.
3955 * expr.c (emit_push_insn): Likewise.
3956 (expand_expr_real_2): Likewise.
3958 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
3959 Alan Hayward <alan.hayward@arm.com>
3960 David Sherwood <david.sherwood@arm.com>
3962 * loop-unroll.c (split_iv): Call copy_rtx on the step.
3964 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
3965 Alan Hayward <alan.hayward@arm.com>
3966 David Sherwood <david.sherwood@arm.com>
3968 * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
3969 calling tree_to_uhwi.
3971 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
3972 Alan Hayward <alan.hayward@arm.com>
3973 David Sherwood <david.sherwood@arm.com>
3975 * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
3976 INTEGER_CST rather than a negative test for ADDR_EXPR.
3978 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
3979 Alan Hayward <alan.hayward@arm.com>
3980 David Sherwood <david.sherwood@arm.com>
3982 * tree-vrp.c (extract_range_from_binary_expr_1): Check
3983 int_cst_rangeN before calling value_range_constant_singleton (&vrN).
3985 2017-09-21 Richard Biener <rguenther@suse.de>
3987 PR tree-optimization/71351
3988 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
3989 graphite_create_new_loop_guard): Remove, fold remaining parts
3991 (translate_isl_ast_node_for): ... here and simplify.
3993 2017-09-21 Jakub Jelinek <jakub@redhat.com>
3996 * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
3997 with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
3998 latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
3999 alternative always use QI mode, for -Os imov (=R,R) alternative
4000 always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
4003 2017-09-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4004 Jeff Law <law@redhat.com>
4006 * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
4007 (allocate_stack_space): New function, partially extracted from
4009 (s390_emit_prologue): Track offset to most recent stack probe.
4010 Code to allocate space moved into allocate_stack_space.
4011 Dump actions when no stack is allocated.
4012 (s390_prologue_plus_offset): New function.
4013 (s390_emit_stack_probe): Likewise.
4015 2017-09-20 Alexandre Oliva <aoliva@redhat.com>
4017 * common.opt (Wa, Wl, Wp, g, gz=): Add
4019 (gno-column-info): Remove.
4020 (gcolumn-info): Drop RejectNegative.
4022 (gno-record-gcc-switches): Remove.
4023 (grecord-gcc-switches): Drop RejectNegative.
4024 (gno-split-dwarf): Remove.
4025 (gsplit-dwarf): Drop RejectNegative.
4026 (gno-strict-dwarf): Remove.
4027 (gstrict-dwarf): Drop RejectNegative.
4028 * config/darwin.opt (gfull, gused): Add RejectNegative.
4029 * dwarf2out.c (gen_producer_string): Drop
4030 gno-record-gcc-switches handler.
4031 * optc-gen.awk: Add g to prefixes with negative forms.
4032 * opts-common.c (remapping_prefix_p): New.
4033 (find_opt): Check it.
4034 (generate_canonical_option): Test g prefix.
4035 (option_map): Add -gno- mapping.
4036 (add_misspelling_candidates): Check remapping_prefix_p.
4038 2017-09-20 Jeff Law <law@redhat.com>
4040 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
4041 thinko in stack clash protection support.
4043 * explow.c (compute_stack_clash_protection_loop_data): Use
4044 CONST_INT_P instead of explicit test. Verify object is a
4045 CONST_INT_P before looking at INTVAL.
4046 (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
4047 instead of explicit test.
4049 2017-09-20 Segher Boessenkool <segher@kernel.crashing.org>
4052 * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
4053 address instead of to r1 and r11.
4055 2017-09-20 Sebastian Peryt <sebastian.peryt@intel.com>
4057 * config.gcc: Support "knm".
4058 * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
4059 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4061 * config/i386/i386.c (m_KNM): Define.
4062 (processor_target_table): Add "knm".
4064 (ix86_option_override_internal): Add "knm".
4065 (ix86_issue_rate): Add PROCESSOR_KNM.
4066 (ix86_adjust_cost): Ditto.
4067 (ia32_multipass_dfa_lookahead): Ditto.
4068 (get_builtin_code_for_version): Handle PROCESSOR_KNM.
4069 (fold_builtin_cpu): Add M_INTEL_KNM.
4070 * config/i386/i386.h (processor_costs): Define TARGET_KNM.
4071 (processor_type): Add PROCESSOR_KNM.
4072 * config/i386/x86-tune.def: Add m_KNM.
4073 * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
4075 2017-09-20 Richard Biener <rguenther@suse.de>
4077 PR tree-optimization/80213
4078 * graphite-scop-detection.c (trivially_empty_bb_p): Labels
4079 are allowed in empty BBs as well.
4080 (canonicalize_loop_closed_ssa): Also look for other complex
4082 (scop_detection::get_sese): Include the loop-closed PHI block
4084 (scop_detection::merge_sese): Remove code adding extra blocks.
4085 (scop_detection::region_has_one_loop): Adjust for get_sese changes.
4086 (build_scops): Assert the final returned scop is invalid.
4088 2017-09-20 Richard Biener <rguenther@suse.de>
4090 PR tree-optimization/82264
4091 * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
4093 (vn_phi_lookup): Likewise.
4094 (vn_phi_insert): Likewise.
4096 2017-09-20 Jakub Jelinek <jakub@redhat.com>
4098 * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
4099 that fits into uhwi or shwi, add DW_AT_const_value regardless
4100 of early_dwarf without going through RTL, using add_AT_unsigned
4103 * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
4104 (DEBUG_LTO_ABBREV_SECTION): Likewise.
4105 (DEBUG_LTO_MACINFO_SECTION): Likewise.
4106 (DEBUG_MACRO_SECTION): Likewise.
4107 (DEBUG_LTO_MACRO_SECTION): Likewise.
4108 (DEBUG_STR_DWO_SECTION): Likewise.
4109 (DEBUG_LTO_STR_DWO_SECTION): Likewise.
4110 (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
4111 (DEBUG_LTO_DWO_LINE_SECTION): Define.
4112 (DEBUG_LTO_LINE_STR_SECTION): Define.
4113 (init_sections_and_labels): Initialize debug_line_str_section
4114 variable. Initialize debug_loc_section for -gdwarf-5 to
4115 DEBUG_LOCLISTS_SECTION. Formatting fixes.
4117 2017-09-20 Richard Biener <rguenther@suse.de>
4119 * graphite-sese-to-poly.c (extract_affine): Properly handle
4120 POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
4122 2017-09-20 Richard Biener <rguenther@suse.de>
4124 PR tree-optimization/81373
4125 * graphite-scop-detection.c (build_cross_bb_scalars_def):
4126 Force SESE live-out defs to be handled even if they are
4129 2017-09-19 Jeff Law <law@redhat.com>
4131 * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
4132 nothing for stack adjustments with REG_STACK_CHECK.
4133 * sched-deps.c (parse_add_or_inc): Reject insns with
4134 REG_STACK_CHECK from dependency breaking.
4135 * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
4136 (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
4137 * reg-notes.def (STACK_CHECK): New note.
4139 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
4140 (ix86_expand_prologue): Dump stack clash info as needed.
4141 Call ix86_adjust_stack_and_probe_stack_clash as needed.
4143 * function.c (dump_stack_clash_frame_info): New function.
4144 * function.h (dump_stack_clash_frame_info): Prototype.
4145 (enum stack_clash_probes): New enum.
4147 * config/alpha/alpha.c (alpha_expand_prologue): Also check
4148 flag_stack_clash_protection.
4149 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
4150 (arm_expand_prologue, thumb1_expand_prologue): Likewise.
4151 (arm_frame_pointer_required): Likewise.
4152 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
4153 (ia64_expand_prologue): Likewise.
4154 * config/mips/mips.c (mips_expand_prologue): Likewise.
4155 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
4156 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4157 (sparc_flat_expand_prologue): Likewise.
4158 * config/spu/spu.c (spu_expand_prologue): Likewise.
4160 * explow.c: Include "params.h".
4161 (anti_adjust_stack_and_probe_stack_clash): New function.
4162 (get_stack_check_protect): Likewise.
4163 (compute_stack_clash_protection_loop_data): Likewise.
4164 (emit_stack_clash_protection_loop_start): Likewise.
4165 (emit_stack_clash_protection_loop_end): Likewise.
4166 (allocate_dynamic_stack_space): Use get_stack_check_protect.
4167 Use anti_adjust_stack_and_probe_stack_clash.
4168 * explow.h (compute_stack_clash_protection_loop_data): Prototype.
4169 (emit_stack_clash_protection_loop_start): Likewise.
4170 (emit_stack_clash_protection_loop_end): Likewise.
4171 * rtl.h (get_stack_check_protect): Prototype.
4172 * target.def (stack_clash_protection_final_dynamic_probe): New hook.
4173 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
4174 * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
4176 * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
4178 * doc/tm.texi: Rebuilt.
4179 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
4180 get_stack_check_protect.
4181 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
4182 * config/arm/arm.c (arm_expand_prologue): Likewise.
4183 (arm_frame_pointer_required): Likewise.
4184 * config/i386/i386.c (ix86_expand_prologue): Likewise.
4185 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
4186 * config/mips/mips.c (mips_expand_prologue): Likewise.
4187 * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
4188 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
4189 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4190 (sparc_flat_expand_prologue): Likewise.
4192 * common.opt (-fstack-clash-protection): New option.
4193 * flag-types.h (enum stack_check_type): Note difference between
4194 -fstack-check= and -fstack-clash-protection.
4195 * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
4196 (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
4197 * toplev.c (process_options): Issue warnings/errors for cases
4198 not handled with -fstack-clash-protection.
4199 * doc/invoke.texi (-fstack-clash-protection): Document new option.
4200 (-fstack-check): Note additional problem with -fstack-check=generic.
4201 Note that -fstack-check is primarily for Ada and refer users
4202 to -fstack-clash-protection for stack-clash-protection.
4203 Document new params for stack clash protection.
4205 2017-09-19 Uros Bizjak <ubizjak@gmail.com>
4207 * config/i386/i386.c (ix86_split_long_move): Do not handle
4208 address used for LEA in a special way.
4210 2017-09-19 Segher Boessenkool <segher@kernel.crashing.org>
4212 * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
4214 2017-09-19 Martin Sebor <msebor@redhat.com>
4217 * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
4218 of incompatible types.
4220 2017-09-19 Will Schmidt <will_schmidt@vnet.ibm.com>
4222 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
4223 for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
4224 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4225 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
4227 2017-09-19 Richard Biener <rguenther@suse.de>
4229 PR tree-optimization/82244
4230 * tree-vrp.c (remove_range_assertions): Do not propagate
4231 a constant to abnormals but replace the assert with a copy.
4233 2017-09-19 Alexander Monakov <amonakov@ispras.ru>
4235 PR rtl-optimization/57878
4236 PR rtl-optimization/68988
4237 * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
4238 avoidance test involving non_reload_pseudos. Move frequency test
4239 below the general fragmentation avoidance test.
4241 2017-09-19 Richard Biener <rguenther@suse.de>
4243 PR tree-optimization/69728
4244 * graphite-sese-to-poly.c (schedule_error): New global.
4245 (add_loop_schedule): Handle empty domain by failing the
4247 (build_original_schedule): Handle schedule_error.
4249 2017-09-19 Richard Biener <rguenther@suse.de>
4251 * graphite-scop-detection.c (scop_detection::can_represent_loop):
4252 Do not iterate to sibling loops but only to siblings of inner
4255 2017-09-18 Andreas Schwab <schwab@linux-m68k.org>
4258 * config/m68k/m68k.md (moveq feeding equality comparison): Check
4259 that the registers are different.
4261 2017-09-18 Uros Bizjak <ubizjak@gmail.com>
4263 * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
4264 to processor_model and "amdfam17h" to arch_names_table.
4265 * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
4267 2017-09-18 Jakub Jelinek <jakub@redhat.com>
4270 * doc/extend.texi: Add @findex entry for __builtin_shuffle.
4272 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4273 Alan Hayward <alan.hayward@arm.com>
4274 David Sherwood <david.sherwood@arm.com>
4276 * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
4278 * tree-vect-loop.c (vect_analyze_loop_operations): Update call
4280 * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
4281 parameter. Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
4282 vect_schedule_slp_instance.
4283 (vect_slp_analyze_operations): Replace parameters with a vec_info *.
4284 Update call to vect_slp_analyze_node_operations. Simplify return
4286 (vect_slp_analyze_bb_1): Update call accordingly.
4287 (vect_schedule_slp_instance): Remove vectorization_factor parameter.
4288 Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
4289 (vect_schedule_slp): Update call accordingly.
4291 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4292 Alan Hayward <alan.hayward@arm.com>
4293 David Sherwood <david.sherwood@arm.com>
4295 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
4296 with types that aren't in fact scalar.
4298 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4300 * tree-vect-slp.c (vect_record_max_nunits): New function,
4302 (vect_build_slp_tree_1): ...here.
4303 (vect_build_slp_tree_2): Call it for phis too.
4305 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4307 * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
4308 to vect_get_vec_def_for_operand when getting the mask operand.
4310 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4311 Alan Hayward <alan.hayward@arm.com>
4312 David Sherwood <david.sherwood@arm.com>
4314 * tree-vect-loop.c (vectorizable_live_operation): Fix type of
4317 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4318 Alan Hayward <alan.hayward@arm.com>
4319 David Sherwood <david.sherwood@arm.com>
4321 * tree-vect-loop.c (vectorizable_live_operation): Fix element size
4322 calculation for vector booleans.
4324 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
4325 Alan Hayward <alan.hayward@arm.com>
4326 David Sherwood <david.sherwood@arm.com>
4328 * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
4330 (vect_transform_stmt): ...here.
4331 (vect_analyze_stmt): Use it instead of calling
4332 vectorizable_live_operation directly.
4334 2017-09-18 Cesar Philippidis <cesar@codesourcery.com>
4336 * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
4337 non-SIMT targets in acc vector loops.
4339 2017-09-18 Claudiu Zissulescu <claziss@synopsys.com>
4341 * configure.ac: Add arc and check if assembler supports gdwarf2.
4342 * configure: Regenerate.
4344 2017-09-18 Richard Biener <rguenther@suse.de>
4346 PR tree-optimization/82220
4347 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
4348 epilogue niters from the min_profitable_iters compute.
4350 2017-09-18 Jakub Jelinek <jakub@redhat.com>
4353 * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
4354 changes. Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
4355 (ix86_init_pic_reg): Revert 2017-09-01 changes.
4357 2017-09-18 Eric Botcazou <ebotcazou@adacore.com>
4360 * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
4361 switching to a new text section.
4363 2017-09-18 Richard Biener <rguenther@suse.de>
4365 * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
4367 (build_alias_set): Reject aliases with no access function.
4369 2017-09-18 Richard Biener <rguenther@suse.de>
4371 PR tree-optimization/79622
4372 * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
4374 (build_cross_bb_scalars_use): Likewise.
4376 2017-09-18 Pierre-Marie de Rodat <derodat@adacore.com>
4378 * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
4380 2017-09-18 Alan Modra <amodra@gmail.com>
4383 * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
4384 stack_pointer_rtx for count 0. Update comments. Break up
4385 large rtl expression.
4387 2017-09-17 Daniel Santos <daniel.santos@pobox.com>
4389 * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
4390 Increase to 20 bytes.
4391 (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
4392 (xlogue_layout::get_stub_name): Modify to select the appropairate sse
4393 or avx version of the stub.
4395 2017-09-17 H.J. Lu <hongjiu.lu@intel.com>
4398 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
4399 compute the minimum stack alignment. Also update preferred stack
4400 boundary for leaf functions.
4402 2017-09-16 Richard Sandiford <richard.sandiford@linaro.org>
4404 PR tree-optimization/82228
4405 * tree-vect-loop.c (vectorizable_live_operation): Move initialization
4408 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com>
4410 * common/config/nds32/nds32-common.c
4411 (nds32_option_optimization_table): Refine formatting.
4412 (nds32_option_optimization_table): Use -fsched-pressure and
4413 -fomit-frame-pointer for specific optimization level.
4415 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com>
4417 * config/nds32/nds32.c: Refine formatting and comments.
4418 * config/nds32/nds32.h: Likewise.
4419 * config/nds32/nds32.md: Likewise.
4420 * config/nds32/nds32-cost.c: Likewise.
4421 * config/nds32/nds32-isr.c: Likewise.
4422 * config/nds32/nds32-md-auxiliary.c: Likewise.
4423 * config/nds32/nds32-multiple.md: Likewise.
4424 * config/nds32/nds32-predicates.c: Likewise.
4426 2017-09-15 Andrew Sutton <andrew.n.sutton@gmail.com>
4427 Jakub Jelinek <jakub@redhat.com>
4429 Add support for -std=c++2a.
4430 * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
4432 * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
4434 2017-09-15 Steve Ellcey <sellcey@cavium.com>
4437 * doc/extend.texi (Common Function Attributes): Add
4438 references to ARM, AArch64, and S/390 specific attributes.
4439 (Function Specific Option Pragmas): Add AArch64 and S/390
4440 to list of back ends that support the target pragma.
4442 2017-09-15 Nathan Sidwell <nathan@acm.org>
4444 * doc/standards.texi: Fix C++17 description. Update URLs for
4447 2017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
4449 * common.opt (Wcast-align=strict): New warning option.
4450 * doc/invoke.texi: Document -Wcast-align=strict.
4452 2017-09-15 Pierre-Marie de Rodat <derodat@adacore.com>
4454 * cgraph.h (cgraph_thunk_info): Add comments.
4455 * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
4456 assert for VIRTUAL_* arguments stricter.
4458 2017-09-15 Jackson Woodruff <jackson.woodruff@arm.com>
4460 PR tree-optimization/71026
4461 * match.pd: Move RDIV patterns from fold-const.c
4462 * fold-const.c (distribute_real_division): Removed.
4463 (fold_binary_loc): Remove calls to distribute_real_divison.
4465 2017-09-15 Jakub Jelinek <jakub@redhat.com>
4467 * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
4468 c++1z and gnu++1z as deprecated. Change other references to
4469 -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
4470 Change -Wc++1z-compat to -Wc++17-compat.
4471 * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
4472 * dwarf2out.c (highest_c_language): Handle C++17.
4473 (gen_compile_unit_die): Likewise.
4475 2017-09-15 Jakub Jelinek <jakub@redhat.com>
4477 PR rtl-optimization/82192
4478 * combine.c (make_extraction): Don't look through non-paradoxical
4479 SUBREGs or TRUNCATE if pos + len is or might be bigger than
4482 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
4483 Alan Hayward <alan.hayward@arm.com>
4484 David Sherwood <david.sherwood@arm.com>
4486 * target.def (function_arg_offset): New hook.
4487 * targhooks.h (default_function_arg_offset): Declare.
4488 * targhooks.c (default_function_arg_offset): New function.
4489 * function.c (locate_and_pad_parm): Use
4490 targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
4491 * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
4492 (TARGET_FUNCTION_ARG_OFFSET): ...this.
4493 * doc/tm.texi: Regenerate.
4494 * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
4495 * config/spu/spu.c (spu_function_arg_offset): New function.
4496 (TARGET_FUNCTION_ARG_OFFSET): Redefine.
4497 * system.h (FUNCTION_ARG_OFFSET): Poison.
4499 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
4500 Alan Hayard <alan.hayward@arm.com>
4501 David Sherwood <david.sherwood@arm.com>
4503 * target.def (truly_noop_truncation): New hook.
4504 (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
4505 than TRULY_NOOP_TRUNCATION.
4506 * hooks.h (hook_bool_uint_uint_true): Declare.
4507 * hooks.c (hook_bool_uint_uint_true): New function.
4508 * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
4509 (TARGET_TRULY_NOOP_TRUNCATION): ...this.
4510 * doc/tm.texi: Regenerate.
4511 * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
4512 rather than TRULY_NOOP_TRUNCATION in comments.
4513 (simplify_comparison): Likewise.
4514 (record_truncated_value): Likewise.
4515 * expmed.c (extract_bit_field_1): Likewise.
4516 (extract_split_bit_field): Likewise.
4517 * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
4518 instead of TRULY_NOOP_TRUNCATION.
4519 * function.c (assign_parm_setup_block): Likewise.
4520 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
4521 * rtlhooks.c: Include target.h.
4522 * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
4523 * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
4524 * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
4525 * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
4526 * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
4527 * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
4528 * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
4529 * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
4530 * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
4531 * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
4532 * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
4533 * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
4534 * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
4535 * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
4536 * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
4537 * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
4538 * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
4539 * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
4540 * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
4541 * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
4542 * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
4543 * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
4544 * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
4545 * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
4546 * config/mips/mips.c (mips_truly_noop_truncation): New function.
4547 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
4548 * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
4549 rather than TRULY_NOOP_TRUNCATION in comments.
4550 * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
4551 * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
4552 * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
4553 * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
4554 * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
4555 * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
4556 * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
4557 * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
4558 * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
4559 * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
4560 * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
4561 * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
4562 rather than TRULY_NOOP_TRUNCATION in comments.
4563 * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
4564 * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
4565 * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
4566 * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
4567 * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
4568 TRULY_NOOP_TRUNCATION condition.
4569 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4570 (TRULY_NOOP_TRUNCATION): Delete.
4571 * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
4572 * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
4573 * config/spu/spu.c (spu_truly_noop_truncation): New function.
4574 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
4575 * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
4576 * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
4577 * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
4578 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
4579 * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
4580 rather than TRULY_NOOP_TRUNCATION in comments.
4581 * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
4582 * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
4583 * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
4584 * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
4585 * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
4586 * system.h (TRULY_NOOP_TRUNCATION): Poison.
4588 2017-09-15 Christophe Lyon <christophe.lyon@linaro.org>
4591 * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
4592 (*cmp_ior): Likewise.
4593 (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
4594 (*ior_scc_scc_cmp): Likewise.
4595 (*and_scc_scc): Likewise.
4596 (*and_scc_scc_cmp): Likewise.
4598 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
4599 Alan Hayard <alan.hayward@arm.com>
4600 David Sherwood <david.sherwood@arm.com>
4602 * target.def (can_change_mode_class): New hook.
4603 (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
4604 (hard_regno_nregs): Likewise.
4605 * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
4606 * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
4607 * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
4608 (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
4609 (LOAD_EXTEND_OP): Update accordingly.
4610 * doc/tm.texi: Regenerate.
4611 * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
4612 CANNOT_CHANGE_MODE_CLASS.
4613 * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
4614 (REG_CAN_CHANGE_MODE_P): ...this new macro.
4615 * combine.c (simplify_set): Update accordingly.
4616 * emit-rtl.c (validate_subreg): Likewise.
4617 * recog.c (general_operand): Likewise.
4618 * regcprop.c (mode_change_ok): Likewise.
4619 * reload1.c (choose_reload_regs): Likewise.
4620 (inherit_piecemeal_p): Likewise.
4621 * rtlanal.c (simplify_subreg_regno): Likewise.
4622 * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
4623 instead of CANNOT_CHANGE_MODE_CLASS.
4624 (reload_cse_simplify_operands): Likewise.
4625 * reload.c (push_reload): Use targetm.can_change_mode_class
4626 instead of CANNOT_CHANGE_MODE_CLASS.
4627 (push_reload): Likewise. Also use REG_CAN_CHANGE_MODE_P instead of
4628 REG_CANNOT_CHANGE_MODE_P.
4629 * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4630 * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
4631 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4632 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4633 * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4634 (arm_can_change_mode_class): New function.
4635 * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
4636 than CANNOT_CHANGE_MODE_CLASS in comments.
4637 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4638 * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
4639 * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
4640 (ix86_can_change_mode_class): ...this new function, inverting the
4641 sense of the return value.
4642 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4643 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4644 * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4645 (ia64_can_change_mode_class): New function.
4646 * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4647 * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
4648 * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
4649 (m32c_can_change_mode_class): ...this new function, inverting the
4650 sense of the return value.
4651 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4652 * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4653 * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
4654 * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
4655 (mips_can_change_mode_class): ...this new function, inverting the
4656 sense of the return value.
4657 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4658 * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4659 * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4660 (msp430_can_change_mode_class): New function.
4661 * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4662 * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
4663 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4664 * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4665 * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4666 * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
4667 * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4668 (pa_cannot_change_mode_class): Replace with...
4669 (pa_can_change_mode_class): ...this new function, inverting the
4670 sense of the return value.
4671 (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
4672 than CANNOT_CHANGE_MODE_CLASS in comments.
4673 * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4674 * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
4675 * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4676 (pdp11_cannot_change_mode_class): Replace with...
4677 (pdp11_can_change_mode_class): ...this new function, inverting the
4678 sense of the return value.
4679 * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4680 * config/powerpcspe/powerpcspe-protos.h
4681 (rs6000_cannot_change_mode_class_ptr): Delete.
4682 * config/powerpcspe/powerpcspe.c
4683 (rs6000_cannot_change_mode_class_ptr): Delete.
4684 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4685 (rs6000_option_override_internal): Assign to
4686 targetm.can_change_mode_class instead of
4687 rs6000_cannot_change_mode_class_ptr.
4688 (rs6000_cannot_change_mode_class): Replace with...
4689 (rs6000_can_change_mode_class): ...this new function, inverting the
4690 sense of the return value.
4691 (rs6000_debug_cannot_change_mode_class): Replace with...
4692 (rs6000_debug_can_change_mode_class): ...this new function.
4693 * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4694 * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
4695 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4696 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4697 * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
4699 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
4700 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4701 (rs6000_option_override_internal): Assign to
4702 targetm.can_change_mode_class instead of
4703 rs6000_cannot_change_mode_class_ptr.
4704 (rs6000_cannot_change_mode_class): Replace with...
4705 (rs6000_can_change_mode_class): ...this new function, inverting the
4706 sense of the return value.
4707 (rs6000_debug_cannot_change_mode_class): Replace with...
4708 (rs6000_debug_can_change_mode_class): ...this new function.
4709 * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4710 * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
4711 * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
4712 (s390_can_change_mode_class): ...this new function, inverting the
4713 sense of the return value.
4714 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4715 * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4716 * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
4717 * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4718 (sh_cannot_change_mode_class): Replace with...
4719 (sh_can_change_mode_class): ...this new function, inverting the
4720 sense of the return value.
4721 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4722 * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4723 (sparc_can_change_mode_class): New function.
4724 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4725 * config/spu/spu.c (spu_can_change_mode_class): New function.
4726 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4727 * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4728 * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4729 (visium_can_change_mode_class): New function.
4730 * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
4732 2017-09-15 Richard Biener <rguenther@suse.de>
4734 PR tree-optimization/82217
4735 * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
4736 but not undefined case.
4738 2017-09-15 Jakub Jelinek <jakub@redhat.com>
4741 * postreload.c (reload_cse_simplify_operands): Skip
4742 NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
4744 2017-09-15 Richard Biener <rguenther@suse.de>
4746 PR tree-optimization/68823
4747 * graphite-scop-detection.c (build_alias_set): If we have a
4748 possible dependence check whether we can handle them by just
4749 looking at the DRs DR_ACCESS_FNs.
4750 (build_scops): If build_alias_set fails, fail the SCOP.
4752 2017-09-14 Michael Meissner <meissner@linux.vnet.ibm.com>
4754 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
4755 to support float128 built-in functions that require the ISA 3.0
4757 (BU_FLOAT128_3_HW): Likewise.
4758 (SQRTF128): Add support for the IEEE 128-bit square root and fma
4760 (FMAF128): Likewise.
4762 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
4763 support for built-in functions that need the ISA 3.0 IEEE 128-bit
4764 floating point instructions.
4765 (rs6000_invalid_builtin): Likewise.
4766 (rs6000_builtin_mask_names): Likewise.
4767 * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
4768 (RS6000_BTM_FLOAT128_HW): Likewise.
4769 (RS6000_BTM_COMMON): Likewise.
4770 * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
4772 * doc/extend.texi (RS/6000 built-in functions): Document the
4773 IEEE 128-bit floating point square root and fused multiply-add
4776 2017-09-14 Pat Haugen <pthaugen@us.ibm.com>
4778 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
4779 reg (r2) isn't in the set of registers defined in the prologue.
4781 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4782 Alan Hayward <alan.hayward@arm.com>
4783 David Sherwood <david.sherwood@arm.com>
4785 * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
4786 (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
4787 (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
4788 (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
4789 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
4791 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
4792 max_vectorization_factor.
4793 (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
4795 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4796 Alan Hayward <alan.hayward@arm.com>
4797 David Sherwood <david.sherwood@arm.com>
4799 * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
4800 (vect_worthwhile_without_simd_p): Declare.
4801 * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
4802 (vectorizable_reduction): Use it.
4803 * tree-vect-stmts.c (vectorizable_shift): Likewise.
4804 (vectorizable_operation): Likewise.
4806 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4807 Alan Hayward <alan.hayward@arm.com>
4808 David Sherwood <david.sherwood@arm.com>
4810 * tree-vectorizer.h (vect_get_num_copies): New function.
4811 * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
4812 * tree-vect-loop.c (vectorizable_reduction): Likewise.
4813 (vectorizable_induction): Likewise.
4814 (vectorizable_live_operation): Likewise.
4815 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
4816 (vectorizable_bswap): Likewise.
4817 (vectorizable_call): Likewise.
4818 (vectorizable_conversion): Likewise.
4819 (vectorizable_assignment): Likewise.
4820 (vectorizable_shift): Likewise.
4821 (vectorizable_operation): Likewise.
4822 (vectorizable_store): Likewise.
4823 (vectorizable_load): Likewise.
4824 (vectorizable_condition): Likewise.
4825 (vectorizable_comparison): Likewise.
4826 (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
4828 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4829 Alan Hayward <alan.hayward@arm.com>
4830 David Sherwood <david.sherwood@arm.com>
4832 * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
4833 of vect_init_vector.
4835 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4836 Alan Hayward <alan.hayward@arm.com>
4837 David Sherwood <david.sherwood@arm.com>
4839 * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
4840 an inline wrapper that provides a location.
4841 (gimple_build_vector): Likewise.
4842 * gimple-fold.c (gimple_build_vector_from_val): New function.
4843 (gimple_build_vector): Likewise.
4844 * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
4845 functions to build the initial value. Always return a gimple value.
4846 (get_initial_defs_for_reduction): Likewise. Only compute
4848 (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
4849 vect_init_vector on the results from get_initial_def(s)_for_reduction.
4850 (vectorizable_induction): Use gimple_build_vector rather than
4853 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4854 Alan Hayward <alan.hayward@arm.com>
4855 David Sherwood <david.sherwood@arm.com>
4857 * target.h (vec_perm_indices): New typedef.
4858 (auto_vec_perm_indices): Likewise.
4859 * optabs-query.h: Include target.h
4860 (can_vec_perm_p): Take a vec_perm_indices *.
4861 * optabs-query.c (can_vec_perm_p): Likewise.
4862 (can_mult_highpart_p): Update accordingly. Use auto_vec_perm_indices.
4863 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
4864 * tree-vect-generic.c (lower_vec_perm): Likewise.
4865 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
4866 (vect_grouped_load_supported): Likewise.
4867 (vect_shift_permute_load_chain): Likewise.
4868 (vect_permute_store_chain): Use auto_vec_perm_indices.
4869 (vect_permute_load_chain): Likewise.
4870 * fold-const.c (fold_vec_perm): Take vec_perm_indices.
4871 (fold_ternary_loc): Update accordingly. Use auto_vec_perm_indices.
4872 Update uses of can_vec_perm_p.
4873 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
4874 mode with a number of elements. Take a vec_perm_indices *.
4875 (vect_create_epilog_for_reduction): Update accordingly.
4876 Use auto_vec_perm_indices.
4877 (have_whole_vector_shift): Likewise. Update call to can_vec_perm_p.
4878 * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
4879 (vect_transform_slp_perm_load): Likewise.
4880 (vect_schedule_slp_instance): Use auto_vec_perm_indices.
4881 * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
4882 (vect_gen_perm_mask_checked): Likewise.
4883 * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
4884 (vect_gen_perm_mask_checked): Likewise.
4885 (vectorizable_mask_load_store): Use auto_vec_perm_indices.
4886 (vectorizable_store): Likewise.
4887 (vectorizable_load): Likewise.
4888 (perm_mask_for_reverse): Likewise. Update call to can_vec_perm_p.
4889 (vectorizable_bswap): Likewise.
4891 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4892 Alan Hayward <alan.hayward@arm.com>
4893 David Sherwood <david.sherwood@arm.com>
4895 * tree.h (build_vector): Take a vec<tree> instead of a tree *.
4896 * tree.c (build_vector): Likewise.
4897 (build_vector_from_ctor): Update accordingly.
4898 (build_vector_from_val): Likewise.
4899 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
4900 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
4901 * tree-vect-generic.c (add_rshift): Likewise.
4902 (expand_vector_divmod): Likewise.
4903 (optimize_vector_constructor): Likewise.
4904 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4905 (vect_transform_slp_perm_load): Likewise.
4906 (vect_schedule_slp_instance): Likewise.
4907 * tree-vect-stmts.c (vectorizable_bswap): Likewise.
4908 (vectorizable_call): Likewise.
4909 (vect_gen_perm_mask_any): Likewise. Add elements in order.
4910 * expmed.c (make_tree): Likewise.
4911 * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
4912 a vector passed to build_vector.
4913 (fold_convert_const): Likewise.
4914 (exact_inverse): Likewise.
4915 (fold_ternary_loc): Likewise.
4916 (fold_relational_const): Likewise.
4917 (const_binop): Likewise. Use VECTOR_CST_ELT directly when operating
4918 on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
4919 (const_unop): Likewise. Store the reduction accumulator in a
4920 variable rather than an array.
4921 (vec_cst_ctor_to_array): Take the number of elements as a parameter.
4922 (fold_vec_perm): Update calls accordingly. Use auto_vec<tree> for
4923 the new vector, rather than constructing it after the input arrays.
4924 (native_interpret_vector): Use auto_vec<tree> when building
4925 a vector passed to build_vector. Add elements in order.
4926 * tree-vect-loop.c (get_initial_defs_for_reduction): Use
4927 auto_vec<tree> when building a vector passed to build_vector.
4928 (vect_create_epilog_for_reduction): Likewise.
4929 (vectorizable_induction): Likewise.
4930 (get_initial_def_for_reduction): Likewise. Fix indentation of
4932 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
4934 (sparc_fold_builtin): Use auto_vec<tree> when building a vector
4935 passed to build_vector.
4937 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
4938 Alan Hayward <alan.hayward@arm.com>
4939 David Sherwood <david.sherwood@arm.com>
4941 * tree-core.h (tree_base::u): Add an "nelts" field.
4942 (tree_vector): Use VECTOR_CST_NELTS as the length.
4943 * tree.c (tree_size): Likewise.
4944 (make_vector): Initialize VECTOR_CST_NELTS.
4945 * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
4946 * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
4947 TYPE_VECTOR_SUBPARTS.
4948 * expr.c (const_vector_mask_from_tree): Consistently use "units"
4949 as the number of units, setting it from VECTOR_CST_NELTS.
4950 (const_vector_from_tree): Likewise.
4951 * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
4952 TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
4953 (fold_negate_expr_1): Likewise.
4954 (fold_convert_const): Likewise.
4955 (const_binop): Likewise. Differentiate the number of output and
4957 (const_unop): Likewise.
4958 (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
4959 in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
4960 in cases that did the opposite.
4962 2017-09-14 Richard Biener <rguenther@suse.de>
4964 * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
4967 2017-09-14 Eric Botcazou <ebotcazou@adacore.com>
4969 * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
4971 2017-09-14 Jakub Jelinek <jakub@redhat.com>
4974 * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
4975 if and where to split a bb, except for splitting before debug insn
4976 sequences followed by non-label real insn. Delete debug insns
4977 in between basic blocks.
4979 * combine.c (make_compound_operation_int): Formatting fixes.
4981 * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
4982 * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4983 * config/netbsd.h (LINK_EH_SPEC): Likewise.
4984 * config/sol2.h (LINK_EH_SPEC): Likewise.
4985 * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4986 * config/s390/linux.h (LINK_SPEC): Likewise.
4987 * config/freebsd.h (LINK_EH_SPEC): Likewise.
4988 * config/openbsd.h (LINK_EH_SPEC): Likewise.
4989 * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4990 * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
4991 * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
4992 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4993 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
4994 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
4996 2017-09-13 Jakub Jelinek <jakub@redhat.com>
4998 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
5000 (ENDFILE_LINUX_SPEC): Likewise.
5001 (LINK_EH_SPEC): Likewise.
5002 * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
5003 (LINK_OS_LINUX_SPEC32): Likewise.
5004 (LINK_OS_LINUX_SPEC64): Likewise.
5005 * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
5006 (LINK_OS_LINUX_SPEC): Likewise.
5008 2017-09-13 Martin Liska <mliska@suse.cz>
5011 * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
5012 CASE_HIGH is NULL_TREE.
5014 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
5015 Alan Hayward <alan.hayward@arm.com>
5016 David Sherwood <david.sherwood@arm.com>
5018 * target.def (secondary_memory_needed): New hook.
5019 (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
5020 instead of SECONDARY_MEMORY_NEEDED.
5021 (secondary_memory_needed_mode): Likewise.
5022 * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
5023 * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
5024 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
5025 (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
5026 (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
5027 * doc/tm.texi: Regenerate.
5028 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
5029 * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
5030 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5031 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
5032 * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
5033 * config/i386/i386.c (inline_secondary_memory_needed): Put the
5034 mode argument first and change the reg_class arguments to reg_class_t.
5035 (ix86_secondary_memory_needed): Likewise. Remove the strict parameter.
5036 Make static. Update the call to inline_secondary_memory_needed.
5037 (ix86_register_move_cost): Update the call to
5038 inline_secondary_memory_needed.
5039 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5040 * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
5042 * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
5043 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
5045 * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
5046 * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
5047 * config/mips/mips.c (mips_secondary_memory_needed): Make static
5048 and match hook interface. Add comment from mips.h.
5049 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5050 * config/mmix/mmix.md (truncdfsf2): Refer to
5051 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
5053 * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
5054 (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
5055 * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5056 (pa_secondary_memory_needed): New function.
5057 * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
5058 * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
5059 * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5060 (pdp11_secondary_memory_needed): Make static and match hook interface.
5061 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
5062 * config/powerpcspe/powerpcspe-protos.h
5063 (rs6000_secondary_memory_needed_ptr): Delete.
5064 * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
5066 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5067 (rs6000_option_override_internal): Assign to
5068 targetm.secondary_memory_needed rather than
5069 rs6000_secondary_memory_needed_ptr.
5070 (rs6000_secondary_memory_needed): Match hook interface.
5071 (rs6000_debug_secondary_memory_needed): Likewise.
5072 * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
5073 * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
5074 (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
5075 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5076 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
5077 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
5079 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
5080 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5081 (rs6000_option_override_internal): Assign to
5082 targetm.secondary_memory_needed rather than
5083 rs6000_secondary_memory_needed_ptr.
5084 (rs6000_secondary_memory_needed): Match hook interface.
5085 (rs6000_debug_secondary_memory_needed): Likewise.
5086 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
5087 * config/s390/s390.c (s390_secondary_memory_needed): New function.
5088 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5089 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
5090 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5091 (sparc_secondary_memory_needed): New function.
5092 * lra-constraints.c (check_and_process_move): Refer to
5093 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
5095 (curr_insn_transform): Likewise.
5096 (process_alt_operands): Use targetm.secondary_memory_needed
5097 instead of TARGET_SECONDARY_MEMORY_NEEDED.
5098 (check_secondary_memory_needed_p): Likewise.
5099 (choose_split_class): Likewise.
5100 * reload.c: Unconditionally include code that was previously
5101 conditional on SECONDARY_MEMORY_NEEDED.
5102 (push_secondary_reload): Use targetm.secondary_memory_needed
5103 instead of TARGET_SECONDARY_MEMORY_NEEDED.
5104 (push_reload): Likewise.
5105 * reload1.c: Unconditionally include code that was previously
5106 conditional on SECONDARY_MEMORY_NEEDED.
5107 (choose_reload_regs): Use targetm.secondary_memory_needed
5108 instead of TARGET_SECONDARY_MEMORY_NEEDED.
5109 (gen_reload): Likewise.
5110 * system.h (SECONDARY_MEMORY_NEEDED): Poison.
5112 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
5113 Alan Hayward <alan.hayward@arm.com>
5114 David Sherwood <david.sherwood@arm.com>
5116 * target.def (secondary_memory_needed_mode): New hook:
5117 * targhooks.c (default_secondary_memory_needed_mode): Declare.
5118 * targhooks.h (default_secondary_memory_needed_mode): New function.
5119 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
5120 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
5121 * doc/tm.texi: Regenerate.
5122 * lra-constraints.c (check_and_process_move): Use
5123 targetm.secondary_memory_needed_mode instead of
5124 TARGET_SECONDARY_MEMORY_NEEDED_MODE.
5125 (curr_insn_transform): Likewise.
5126 * reload.c (get_secondary_mem): Likewise.
5127 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5128 * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
5130 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5131 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5132 * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
5133 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5134 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
5136 * config/powerpcspe/powerpcspe-protos.h
5137 (rs6000_secondary_memory_needed_mode): Delete.
5138 * config/powerpcspe/powerpcspe.c
5139 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5140 (rs6000_secondary_memory_needed_mode): Make static.
5141 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5142 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
5144 * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
5146 (rs6000_secondary_memory_needed_mode): Make static.
5147 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5148 * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
5149 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5150 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5151 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
5153 (sparc_secondary_memory_needed_mode): New function.
5154 * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
5156 2017-09-13 Jackson Woodruff <jackson.woodruff@arm.com>
5158 * config/aarch64/constraints.md (Umq): New constraint.
5159 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
5161 (mov<mode>): Update condition.
5163 2017-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5165 * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
5166 when bitposition is the same.
5168 2017-09-13 Richard Biener <rguenther@suse.de>
5170 * dwarf2out.c (output_die_symbol): Remove.
5171 (output_die): Do not output a DIEs symbol.
5173 2017-09-13 Richard Biener <rguenther@suse.de>
5176 * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
5177 default-def to avoid breaking iterator update with the weird
5178 interaction with cgraph_update_edges_for_call_stmt_node.
5180 2017-09-13 Richard Biener <rguenther@suse.de>
5182 * tree-cfg.c (verify_gimple_assign_binary): Add verification
5183 for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
5184 VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
5185 (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
5187 2017-09-13 Kugan Vivekanandarajah <kuganv@linaro.org>
5189 * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
5190 Disable pc relative literal load irrespective of
5191 TARGET_FIX_ERR_A53_84341 for default.
5193 2017-09-12 Eric Botcazou <ebotcazou@adacore.com>
5195 * config/sparc/sparc.c (output_return): Output the source location of
5196 the insn in the delay slot, if any.
5197 (output_sibcall): Likewise.
5199 2017-09-12 H.J. Lu <hongjiu.lu@intel.com>
5202 * common.opt (-static-pie): New alias.
5203 (shared): Negate static-pie.
5204 (-no-pie): Update help text.
5206 (static-pie): New option.
5207 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
5208 -static-pie support.
5209 (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
5210 (LINK_EH_SPEC): Likewise.
5211 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
5212 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
5213 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
5214 * gcc.c (LINK_COMMAND_SPEC): Likewise.
5215 (init_gcc_specs): Likewise.
5216 (init_spec): Likewise.
5217 (display_help): Update help message for -pie.
5218 * doc/invoke.texi: Update -pie, -no-pie and -static. Document
5221 2017-09-12 Wilco Dijkstra <wdijkstr@arm.com>
5223 * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
5224 (movdi_aarch64): Likewise.
5225 (movti_aarch64): Likewise.
5227 2017-09-12 Simon Wright <simon@pushface.org>
5230 * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
5231 calculation of the minor version, always output as 0.
5233 2017-09-12 Jakub Jelinek <jakub@redhat.com>
5236 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
5237 ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
5238 on it early, rather than manual conversion late. For
5239 ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
5240 instead of performing manual conversion.
5242 2017-09-12 Carl Love <cel@us.ibm.com>
5244 * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
5245 vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
5247 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
5248 VMULOSW): Add definitions.
5249 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5250 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
5251 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
5252 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
5253 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
5255 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
5257 * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
5259 (movti_aarch64): Likewise.
5260 (movdf_aarch64): Likewise.
5261 (movtf_aarch64): Likewise.
5262 (load_pairdi): Likewise.
5263 (store_pairdi): Likewise.
5264 (load_pairdf): Likewise.
5265 (store_pairdf): Likewise.
5266 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
5267 (storewb_pair<GPI:mode>_<P:mode>): Likewise.
5268 (ldr_got_small_<mode>): Likewise.
5269 (ldr_got_small_28k_<mode>): Likewise.
5270 (ldr_got_tiny): Likewise.
5271 * config/aarch64/iterators.md (ldst_sz): New.
5272 (ldpstp_sz): Likewise.
5273 * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
5275 (thunderx_load): Split load_8 to load_16.
5276 * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
5278 (thunderx2t99_storepair_basic): Split store_8 to store_16.
5279 * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
5280 (xgene1_store_pair): Split store_8 to store_16.
5281 * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
5282 (falkor_st_0_st_sd): Split store_8 to store_16.
5284 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
5286 * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
5287 and store1/2/3/4 to store_4/8/12/16.
5288 * config/aarch64/aarch64.md: Update for rename.
5289 * config/arm/arm.md: Likewise.: Likewise.
5290 * config/arm/arm.c: Likewise.
5291 * config/arm/thumb1.md: Likewise.
5292 * config/arm/thumb2.md: Likewise.
5293 * config/arm/vfp.md: Likewise.
5294 * config/arm/arm-generic.md: Likewise.
5295 * config/arm/arm1020e.md: Likewise.
5296 * config/arm/arm1026ejs.md: Likewise.
5297 * config/arm/arm1136jfs.md: Likewise.
5298 * config/arm/arm926ejs.md: Likewise.
5299 * config/arm/cortex-a15.md: Likewise.
5300 * config/arm/cortex-a17.md: Likewise.
5301 * config/arm/cortex-a5.md: Likewise.
5302 * config/arm/cortex-a53.md: Likewise.
5303 * config/arm/cortex-a57.md: Likewise.
5304 * config/arm/cortex-a7.md: Likewise.
5305 * config/arm/cortex-a8.md: Likewise.
5306 * config/arm/cortex-a9.md: Likewise.
5307 * config/arm/cortex-m4.md: Likewise.
5308 * config/arm/cortex-m7.md: Likewise.
5309 * config/arm/cortex-r4.md: Likewise.
5310 * config/arm/exynos-m1.md: Likewise.
5311 * config/arm/fa526.md: Likewise.
5312 * config/arm/fa606te.md: Likewise.
5313 * config/arm/fa626te.md: Likewise.
5314 * config/arm/fa726te.md: Likewise.
5315 * config/arm/fmp626.md: Likewise.
5316 * config/arm/iwmmxt.md: Likewise.
5317 * config/arm/ldmstm.md: Likewise.
5318 * config/arm/marvell-pj4.md: Likewise.
5319 * config/arm/xgene1.md: Likewise.
5320 * config/aarch64/thunderx.md: Likewise.
5321 * config/aarch64/thunderx2t99.md: Likewise.
5322 * config/aarch64/falkor.md: Likewise.
5324 2017-09-12 Martin Liska <mliska@suse.cz>
5326 * attribs.c (private_lookup_attribute): New function.
5327 * attribs.h (private_lookup_attribute): Declared here.
5328 (lookup_attribute): Called from this place.
5330 2017-09-12 Richard Biener <rguenther@suse.de>
5332 PR tree-optimization/82157
5333 * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
5334 stmts with side-effects.
5336 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5337 Alan Hayward <alan.hayward@arm.com>
5338 David Sherwood <david.sherwood@arm.com>
5340 * target.def (hard_regno_nregs): New hook.
5341 (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
5342 * targhooks.h (default_hard_regno_nregs): Declare.
5343 * targhooks.c (default_hard_regno_nregs): New function.
5344 * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
5345 (TARGET_HARD_REGNO_NREGS): ...this hook.
5346 (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
5347 (CLASS_MAX_NREGS): Likewise.
5348 * doc/tm.texi: Regenerate.
5349 * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
5350 instead of HARD_REGNO_NREGS.
5351 * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
5352 HARD_REGNO_NREGS in the comment.
5353 * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
5354 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
5355 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
5356 Return an unsigned int.
5357 (TARGET_HARD_REGNO_NREGS): Redefine.
5358 * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
5359 * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
5360 * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
5361 (arc_hard_regno_nregs): New function.
5362 * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
5363 * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
5364 (arm_hard_regno_nregs): New function.
5365 * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
5366 * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
5367 * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
5368 (TARGET_HARD_REGNO_NREGS): Redefine.
5369 * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
5370 * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
5371 (HARD_REGNO_NREGS): Delete.
5372 * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
5373 (cr16_hard_regno_nregs): New function.
5374 (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
5375 * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
5376 * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
5377 (cris_hard_regno_nregs): New function.
5378 * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
5379 * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
5380 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
5381 * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
5382 (CLASS_MAX_NREGS): Remove outdated copy of documentation.
5383 * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
5384 * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
5385 (frv_hard_regno_nregs): Make static. Take and return an
5387 (frv_class_max_nregs): Remove outdated copy of documentation.
5388 * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
5389 * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
5390 * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
5391 * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
5392 * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
5393 * config/i386/i386.c (ix86_hard_regno_nregs): New function.
5394 (TARGET_HARD_REGNO_NREGS): Redefine.
5395 * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
5396 (CLASS_MAX_NREGS): Update comment.
5397 * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
5398 (ia64_hard_regno_nregs): New function.
5399 * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
5400 * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
5401 * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
5402 * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
5403 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
5405 (m32c_hard_regno_nregs): Likewise. Make static.
5406 (TARGET_HARD_REGNO_NREGS): Redefine.
5407 * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
5408 * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
5409 * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
5410 (m68k_hard_regno_nregs): New function.
5411 * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
5412 * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
5413 * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
5414 * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
5415 * config/mips/mips.c (mips_hard_regno_nregs): Make static.
5416 Take and return an unsigned int.
5417 (TARGET_HARD_REGNO_NREGS): Redefine.
5418 * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
5419 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
5420 * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
5421 * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
5422 * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
5423 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
5424 * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
5425 (msp430_hard_regno_nregs): Make static. Take and return an
5427 * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
5428 * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
5429 * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
5430 (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
5431 * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
5432 * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
5433 * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
5434 (TARGET_HARD_REGNO_NREGS): Redefine.
5435 * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
5436 (PA_HARD_REGNO_NREGS): ...this.
5437 * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
5438 (PA_HARD_REGNO_NREGS): ...this.
5439 * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
5440 (pa_hard_regno_nregs): New function.
5441 * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
5442 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
5443 (pdp11_hard_regno_nregs): New function.
5444 * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
5445 * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
5446 (rs6000_hard_regno_nregs_hook): New function.
5447 * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
5448 * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
5449 * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
5450 Take and return an unsigned int. Move earlier in file.
5451 (TARGET_HARD_REGNO_NREGS): Redefine.
5452 * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
5453 * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
5454 * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
5455 (rl78_hard_regno_nregs): Make static. Take and return an
5457 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
5458 * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
5459 (rs6000_hard_regno_nregs_hook): New function.
5460 * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
5461 * config/rx/rx.c (rx_hard_regno_nregs): New function.
5462 (TARGET_HARD_REGNO_NREGS): Redefine.
5463 * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
5464 * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
5465 instead of HARD_REGNO_NREGS.
5466 (s390_hard_regno_nregs): New function.
5467 (s390_hard_regno_mode_ok): Add comment from s390.h.
5468 (TARGET_HARD_REGNO_NREGS): Redefine.
5469 * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
5470 * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
5471 (sh_hard_regno_nregs): New function.
5472 (sh_pass_in_reg_p): Use it.
5473 * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
5474 * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
5475 (sparc_hard_regno_nregs): New function.
5476 * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
5477 * config/spu/spu.c (spu_hard_regno_nregs): New function.
5478 (spu_function_arg_advance): Use it, supplying a valid register number.
5479 (TARGET_HARD_REGNO_NREGS): Redefine.
5480 * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
5481 * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
5482 * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
5483 * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
5484 * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
5485 * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
5486 (CLASS_MAX_NREGS): Remove copy of old documentation.
5487 * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
5488 (visium_hard_regno_nregs): New function.
5489 (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
5490 * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
5491 * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
5492 xtensa_hard_regno_nregs): New function.
5493 * system.h (HARD_REGNO_NREGS): Poison.
5495 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5497 * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
5498 hard_regno_nregs instead of HARD_REGNO_NREGS.
5499 (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
5500 * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
5501 (c6x_expand_epilogue): Likewise.
5502 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
5503 (frv_read_iacc_argument): Likewise.
5504 * config/sh/sh.c: Include regs.h.
5505 (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
5506 (regs_used): Likewise.
5507 (output_stack_adjust): Likewise.
5508 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
5509 * expmed.c: Include regs.h.
5510 (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
5511 * ree.c: Include regs.h.
5512 (combine_reaching_defs): Use hard_regno_nregs instead of
5514 (add_removable_extension): Likewise.
5516 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5518 * regs.h (hard_regno_nregs): Turn into a function.
5519 (end_hard_regno): Update accordingly.
5520 * caller-save.c (setup_save_areas): Likewise.
5521 (save_call_clobbered_regs): Likewise.
5522 (replace_reg_with_saved_mem): Likewise.
5523 (insert_restore): Likewise.
5524 (insert_save): Likewise.
5525 * combine.c (can_change_dest_mode): Likewise.
5526 (move_deaths): Likewise.
5527 (distribute_notes): Likewise.
5528 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
5529 * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
5530 (rs6000_split_multireg_move): Likewise.
5531 (rs6000_register_move_cost): Likewise.
5532 (rs6000_memory_move_cost): Likewise.
5533 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
5534 (rs6000_split_multireg_move): Likewise.
5535 (rs6000_register_move_cost): Likewise.
5536 (rs6000_memory_move_cost): Likewise.
5537 * cselib.c (cselib_reset_table): Likewise.
5538 (cselib_lookup_1): Likewise.
5539 * emit-rtl.c (set_mode_and_regno): Likewise.
5540 * function.c (aggregate_value_p): Likewise.
5541 * ira-color.c (setup_profitable_hard_regs): Likewise.
5542 (check_hard_reg_p): Likewise.
5543 (calculate_saved_nregs): Likewise.
5544 (assign_hard_reg): Likewise.
5545 (improve_allocation): Likewise.
5546 (calculate_spill_cost): Likewise.
5547 * ira-emit.c (modify_move_list): Likewise.
5548 * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
5549 (ira_hard_reg_in_set_p): Likewise.
5550 * ira.c (setup_reg_mode_hard_regset): Likewise.
5551 (clarify_prohibited_class_mode_regs): Likewise.
5552 (check_allocation): Likewise.
5553 * lra-assigns.c (find_hard_regno_for_1): Likewise.
5554 (lra_setup_reg_renumber): Likewise.
5555 (setup_try_hard_regno_pseudos): Likewise.
5556 (spill_for): Likewise.
5557 (assign_hard_regno): Likewise.
5558 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
5559 * lra-constraints.c (in_class_p): Likewise.
5560 (lra_constraint_offset): Likewise.
5561 (simplify_operand_subreg): Likewise.
5562 (lra_constraints): Likewise.
5563 (split_reg): Likewise.
5564 (split_if_necessary): Likewise.
5565 (invariant_p): Likewise.
5566 (inherit_in_ebb): Likewise.
5567 * lra-lives.c (process_bb_lives): Likewise.
5568 * lra-remat.c (reg_overlap_for_remat_p): Likewise.
5569 (get_hard_regs): Likewise.
5570 (do_remat): Likewise.
5571 * lra-spills.c (assign_spill_hard_regs): Likewise.
5572 * mode-switching.c (create_pre_exit): Likewise.
5573 * postreload.c (reload_combine_recognize_pattern): Likewise.
5574 * recog.c (peep2_find_free_register): Likewise.
5575 * regcprop.c (kill_value_regno): Likewise.
5576 (set_value_regno): Likewise.
5577 (copy_value): Likewise.
5578 (maybe_mode_change): Likewise.
5579 (find_oldest_value_reg): Likewise.
5580 (copyprop_hardreg_forward_1): Likewise.
5581 * regrename.c (check_new_reg_p): Likewise.
5582 (regrename_do_replace): Likewise.
5583 * reload.c (push_reload): Likewise.
5584 (combine_reloads): Likewise.
5585 (find_dummy_reload): Likewise.
5586 (operands_match_p): Likewise.
5587 (find_reloads): Likewise.
5588 (find_equiv_reg): Likewise.
5589 (reload_adjust_reg_for_mode): Likewise.
5590 * reload1.c (count_pseudo): Likewise.
5591 (count_spilled_pseudo): Likewise.
5592 (find_reg): Likewise.
5593 (clear_reload_reg_in_use): Likewise.
5594 (free_for_value_p): Likewise.
5595 (allocate_reload_reg): Likewise.
5596 (choose_reload_regs): Likewise.
5597 (reload_adjust_reg_for_temp): Likewise.
5598 (emit_reload_insns): Likewise.
5599 (delete_output_reload): Likewise.
5600 * rtlanal.c (subreg_get_info): Likewise.
5601 * sched-deps.c (sched_analyze_reg): Likewise.
5602 * sel-sched.c (init_regs_for_mode): Likewise.
5603 (mark_unavailable_hard_regs): Likewise.
5604 (choose_best_reg_1): Likewise.
5605 (verify_target_availability): Likewise.
5606 * valtrack.c (dead_debug_insert_temp): Likewise.
5607 * var-tracking.c (track_loc_p): Likewise.
5608 (emit_note_insn_var_location): Likewise.
5609 * varasm.c (make_decl_rtl): Likewise.
5610 * reginfo.c (choose_hard_reg_mode): Likewise.
5611 (init_reg_modes_target): Refer directly to
5612 this_target_regs->x_hard_regno_nregs.
5614 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5616 * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
5617 instead of hard_regno_nregs.
5619 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5621 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
5622 end_hard_regno instead of hard_regno_nregs.
5623 * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
5624 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
5625 * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
5626 * ira-color.c (improve_allocation): Likewise.
5627 * lra-assigns.c (find_hard_regno_for_1): Likewise.
5628 * lra-lives.c (mark_regno_live): Likewise.
5629 (mark_regno_dead): Likewise.
5630 * lra-remat.c (operand_to_remat): Likewise.
5631 * lra.c (collect_non_operand_hard_regs): Likewise.
5632 * postreload.c (reload_combine_note_store): Likewise.
5633 (move2add_valid_value_p): Likewise.
5634 * reload.c (regno_clobbered_p): Likewise.
5636 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5638 * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
5640 * config/v850/v850.c (v850_reorg): Likewise.
5641 * reload.c (refers_to_regno_for_reload_p): Likewise.
5642 (find_equiv_reg): Likewise.
5643 * reload1.c (reload_reg_reaches_end_p): Likewise.
5645 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5647 * caller-save.c (add_used_regs): Use REG_NREGS instead of
5649 * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
5650 * config/arm/arm.c (output_move_neon): Likewise.
5651 (arm_attr_length_move_neon): Likewise.
5652 (neon_split_vcombine): Likewise.
5653 * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
5654 (c6x_mark_reg_written): Likewise.
5655 (c6x_dwarf_register_span): Likewise.
5656 * config/i386/i386.c (ix86_save_reg): Likewise.
5657 * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
5658 (rws_access_reg): Likewise.
5659 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
5660 * mode-switching.c (create_pre_exit): Likewise.
5661 * ree.c (combine_reaching_defs): Likewise.
5662 (add_removable_extension): Likewise.
5663 * regcprop.c (find_oldest_value_reg): Likewise.
5664 (copyprop_hardreg_forward_1): Likewise.
5665 * reload.c (reload_inner_reg_of_subreg): Likewise.
5666 (push_reload): Likewise.
5667 (combine_reloads): Likewise.
5668 (find_dummy_reload): Likewise.
5669 (reload_adjust_reg_for_mode): Likewise.
5670 * reload1.c (find_reload_regs): Likewise.
5671 (forget_old_reloads_1): Likewise.
5672 (reload_reg_free_for_value_p): Likewise.
5673 (reload_adjust_reg_for_temp): Likewise.
5674 (emit_reload_insns): Likewise.
5675 (delete_output_reload): Likewise.
5676 * sel-sched.c (choose_best_reg_1): Likewise.
5677 (choose_best_pseudo_reg): Likewise.
5679 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5680 Alan Hayward <alan.hayward@arm.com>
5681 David Sherwood <david.sherwood@arm.com>
5683 * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
5684 * target.def (slow_unaligned_access): New hook.
5685 * targhooks.h (default_slow_unaligned_access): Declare.
5686 * targhooks.c (default_slow_unaligned_access): New function.
5687 * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
5688 (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
5689 * doc/tm.texi: Regenerate.
5690 * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
5691 * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
5692 * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
5694 * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
5695 * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
5697 (rs6000_slow_unaligned_access): New function.
5698 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
5699 (expand_block_compare): Likewise.
5700 (expand_strn_compare): Likewise.
5701 (rs6000_rtx_costs): Likewise.
5702 * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
5703 (riscv_slow_unaligned_access): Likewise.
5704 * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
5705 (riscv_slow_unaligned_access_p): ...this and make static.
5706 (riscv_option_override): Update accordingly.
5707 (riscv_slow_unaligned_access): New function.
5708 (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
5709 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
5710 * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
5711 (rs6000_slow_unaligned_access): New function.
5712 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
5713 (rs6000_rtx_costs): Likewise.
5714 * config/rs6000/rs6000-string.c (expand_block_compare)
5715 (expand_strn_compare): Use targetm.slow_unaligned_access instead
5716 of SLOW_UNALIGNED_ACCESS.
5717 * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
5718 * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
5719 * calls.c (expand_call): Use targetm.slow_unaligned_access instead
5720 of SLOW_UNALIGNED_ACCESS.
5721 * expmed.c (simple_mem_bitfield_p): Likewise.
5722 * expr.c (alignment_for_piecewise_move): Likewise.
5723 (emit_group_load_1): Likewise.
5724 (emit_group_store): Likewise.
5725 (copy_blkmode_from_reg): Likewise.
5726 (emit_push_insn): Likewise.
5727 (expand_assignment): Likewise.
5728 (store_field): Likewise.
5729 (expand_expr_real_1): Likewise.
5730 * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
5731 * lra-constraints.c (simplify_operand_subreg): Likewise.
5732 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
5733 * gimple-ssa-store-merging.c: Likewise in block comment at start
5735 * tree-ssa-strlen.c: Include target.h.
5736 (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
5737 of SLOW_UNALIGNED_ACCESS.
5738 * system.h (SLOW_UNALIGNED_ACCESS): Poison.
5740 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
5742 PR rtl-optimization/82185
5743 * expmed.c (emit_store_flag_int): Only test tem if it has been
5746 2017-09-12 Richard Biener <rguenther@suse.de>
5749 * match.pd ((FTYPE) N CMP CST): Fix typo.
5751 2017-09-12 Simon Atanasyan <simon.atanasyan@imgtec.com>
5753 * config/mips/mips.c (mips_attribute_table): Add 'short_call'
5755 (mips_near_type_p): Add 'short_call' attribute as a synonym
5757 * doc/extend.texi (short_call): Document new function attribute.
5759 2017-09-12 Jakub Jelinek <jakub@redhat.com>
5762 * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
5763 assertion check that in the condition.
5764 (get_atomic_generic_size): Likewise. Before testing if parameter
5765 has pointer type, if it has array type, call for C++
5766 default_conversion to perform array-to-pointer conversion.
5768 2017-09-12 Richard Biener <rguenther@suse.de>
5770 * tree-vect-generic.c (expand_vector_operations_1): Do nothing
5771 for operations we cannot scalarize.
5773 2017-09-12 Aldy Hernandez <aldyh@redhat.com>
5775 * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
5776 vectors heap vectors. Clean up comments.
5777 Make visited_bbs a reference.
5778 (profitable_jump_thread_path): Make GC
5779 vectors heap vectors. Clean up comments.
5781 (convert_and_register_jump_thread_path): Make GC vectors heap
5783 (check_subpath_and_update_thread_path): Same. Clean up comments.
5784 Make visited_bbs a reference.
5785 (handle_phi): Abstract common code to to
5786 register_jump_thread_path_if_profitable.
5787 Rename VAR_BB to DEF_BB.
5789 Make GC vectors heap vectors.
5790 Make visited_bbs a reference.
5791 (handle_assignment): Same.
5792 (register_jump_thread_path_if_profitable): New.
5793 (fsm_find_control_statement_thread_paths): Rename VAR_BB to
5795 Make GC vectors heap vectors. Clean up comments.
5796 Make visited_bbs a reference.
5797 (find_jump_threads_backwards): Make visited_bbs live in the stack.
5798 * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
5801 2017-09-11 Max Filippov <jcmvbkbc@gmail.com>
5804 * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
5805 words of E_DImode object are reachable by xtensa_uimm8x4 access.
5807 2017-09-11 Vidya Praveen <vidyapraveen@arm.com>
5809 Revert r251800 and r251799.
5811 2017-09-11 Martin Jambor <mjambor@suse.cz>
5814 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
5815 arguments in advance.
5816 * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
5817 use it to find predecessor edges.
5818 (naive_outof_ssa): Collect vector of predecessors.
5820 2017-09-08 Jason Merrill <jason@redhat.com>
5822 PR c++/70029 - ICE with ref-qualifier and -flto
5823 * langhooks.h (struct lang_hooks_for_types): Add
5824 copy_lang_qualifiers.
5825 * attribs.c (build_type_attribute_qual_variant): Use it.
5826 * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
5828 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
5829 * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
5831 2017-09-08 Eric Botcazou <ebotcazou@adacore.com>
5834 * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
5835 (*mulsi3_sp64): New instruction.
5836 (mulsi3): New expander.
5838 2017-09-08 Uros Bizjak <ubizjak@gmail.com>
5840 * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
5842 2017-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5844 * sancov.c: Include memmodel.h.
5846 2017-09-07 Eric Botcazou <ebotcazou@adacore.com>
5849 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
5852 2017-09-07 Carl Love <cel@us.ibm.com>
5854 * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
5855 the sldi instruction.
5857 2017-09-07 David Edelsohn <dje.gcc@gmail.com>
5859 * sancov.c: Include tm_p.h.
5861 2017-09-07 Jakub Jelinek <jakub@redhat.com>
5864 * output.h (switch_to_other_text_partition): New declaration.
5865 * varasm.c (switch_to_other_text_partition): New function.
5866 * config/rs6000/rs6000.c (uses_TOC): Return 2 if
5867 NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
5868 (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
5869 to the other text partition before emitting LCL label and switch back
5870 after emitting the word after it.
5872 2017-09-07 Richard Biener <rguenther@suse.de>
5874 * passes.def (pass_split_crit_edges): Remove instance before PRE.
5875 * tree-ssa-pre.c (pass_pre::execute): Instead manually split
5876 critical edges here, after loop init.
5877 (pass_data_pre): Remove PROP_no_crit_edges flags.
5878 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
5879 for valueization of call args to avoid leaking VN_TOP.
5880 (visit_use): Assert we do not visit default defs.
5881 (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
5882 Use error_mark_node to more easily detect leaking VN_TOP.
5883 All default-defs are varying, not VN_TOP. Mark them visited.
5884 (run_scc_vn): Make code match comment.
5886 2017-09-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5888 * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
5889 OPTION_MASK_FLOAT128_KEYWORD.
5890 (POWERPC_MASKS): Likewise.
5891 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
5892 support for the -mfloat128-type option, and make -mfloat128
5893 default on PowerPC Linux systems. Define or undefine
5894 __FLOAT128__ and __FLOAT128_HARDWARE__ for the current options.
5895 Define __float128 to be __ieee128 if IEEE 128-bit support is
5896 enabled, or undefine it.
5897 (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
5898 Delete defining __FLOAT128_TYPE__.
5899 * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
5900 -mfloat128-type option and make -mfloat128 default on PowerPC
5902 (TARGET_FLOAT128_TYPE): Likewise.
5903 (-mfloat128-type): Likewise.
5904 * config/rs6000/rs6000.c (rs6000_option_override_internal):
5905 Delete the -mfloat128-type option and make -mfloat128 default on
5906 PowerPC Linux systems. Always use __ieee128 to be the keyword for
5907 the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
5908 128-bit floating point is enabled. Change tests from using
5909 -mfloat128-type to -mfloat128.
5910 (rs6000_mangle_type): Use the correct mangling for the __float128
5911 type even if normal long double is restricted to 64-bits.
5912 (floatn_mode): Enable the _Float128 type by default on VSX Linux
5914 * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
5915 (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
5916 (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
5918 * doc/invoke.texi (RS/6000 and PowerPC Options): Update
5919 documentation for -mfloat128.
5921 2017-09-06 Olivier Hainque <hainque@adacore.com>
5923 * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
5925 2017-09-06 Wish Wu <wishwu007@gmail.com>
5926 Jakub Jelinek <jakub@redhat.com>
5928 * asan.c (initialize_sanitizer_builtins): Add
5929 BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
5930 BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
5931 BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
5932 BT_FN_VOID_UINT64_PTR variables.
5933 * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
5934 (BT_FN_VOID_UINT16_UINT16): Likewise.
5935 (BT_FN_VOID_UINT32_UINT32): Likewise.
5936 (BT_FN_VOID_FLOAT_FLOAT): Likewise.
5937 (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
5938 (BT_FN_VOID_UINT64_PTR): Likewise.
5939 * common.opt (flag_sanitize_coverage): New variable.
5940 (fsanitize-coverage=trace-pc): Remove.
5941 (fsanitize-coverage=): Add.
5942 * flag-types.h (enum sanitize_coverage_code): New enum.
5943 * fold-const.c (fold_range_test): Disable non-short-circuit
5944 optimization if flag_sanitize_coverage.
5945 (fold_truth_andor): Likewise.
5946 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
5947 * opts.c (COVERAGE_SANITIZER_OPT): Define.
5948 (coverage_sanitizer_opts): New array.
5949 (get_closest_sanitizer_option): Add OPTS argument, handle also
5950 OPT_fsanitize_coverage_.
5951 (parse_sanitizer_options): Adjusted to also handle
5952 OPT_fsanitize_coverage_.
5953 (common_handle_option): Add OPT_fsanitize_coverage_.
5954 * sancov.c (instrument_comparison, instrument_switch): New function.
5955 (sancov_pass): Add trace-cmp support.
5956 * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
5957 BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
5958 BUILT_IN_SANITIZER_COV_TRACE_CMP8,
5959 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
5960 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
5961 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
5962 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
5963 BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
5964 BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
5965 * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
5967 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
5969 * config/arm/parsecpu.awk (fatal): Note that we've encountered an
5970 error. Only quit immediately if parsing is complete.
5971 (BEGIN): Initialize fatal_err and parse_done.
5972 (begin fpu, end fpu): Check number of arguments.
5973 (begin arch, end arch): Likewise.
5974 (begin cpu, end cpu): Likewise.
5975 (cname, tune for, tune flags, architecture, fpu, option): Likewise.
5976 (optalias): Likewise.
5978 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
5980 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
5981 * config/arm/arm-isa.h: Delete. Move definitions to ...
5982 * arm-cpus.in: ... here. Use new feature and fgroup values.
5983 * config/arm/arm.c (arm_option_override): Use lower case for feature
5985 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
5986 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
5987 * config/arm/parsecpu.awk (END): Add new command 'isa'.
5989 (print_isa_bits_for): New function.
5990 (gen_isa): New function.
5991 (gen_comm_data): Use print_isa_bits_for.
5992 (define feature): New keyword.
5993 (define fgroup): New keyword.
5994 * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
5995 (arm-isa.h): Add rule to generate file.
5996 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
5997 case for feature bit names.
5999 2017-09-06 Richard Biener <rguenther@suse.de>
6001 * tree-ssa-pre.c (NECESSARY): Remove.
6002 (create_expression_by_pieces): Do not touch pass-local flags.
6003 (insert_into_preds_of_block): Likewise.
6004 (do_pre_regular_insertion): Likewise.
6005 (eliminate_insert): Likewise.
6006 (eliminate_dom_walker::before_dom_children): Likewise.
6007 (fini_eliminate): Do not look at inserted_exprs.
6008 (mark_operand_necessary): Remove.
6009 (remove_dead_inserted_code): Replace with simple work-list
6010 algorithm based on inserted_exprs and SSA uses.
6011 (pass_pre::execute): Re-order fini_eliminate and
6012 remove_dead_inserted_code.
6014 2017-09-06 Olivier Hainque <hainque@adacore.com>
6016 * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
6017 for VxWorks 7. Adjust surrounding comments.
6019 2017-09-06 Richard Biener <rguenther@suse.de>
6021 * gimple-ssa-strength-reduction.c
6022 (find_candidates_dom_walker::before_dom_children): Also allow
6025 2017-09-06 Richard Biener <rguenther@suse.de>
6027 PR tree-optimization/82108
6028 * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
6029 for gap in the non-permutation SLP case.
6031 2017-09-06 Martin Jambor <mjambor@suse.cz>
6033 PR tree-optimization/82078
6034 * tree-sra.c (sort_and_splice_var_accesses): Move call to
6035 add_access_to_work_queue...
6036 (build_accesses_from_assign): ...here.
6037 (propagate_all_subaccesses): Make sure racc is the group
6038 representative, if there is one.
6040 2017-09-06 Jakub Jelinek <jakub@redhat.com>
6043 * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
6046 2017-09-06 Richard Biener <rguenther@suse.de>
6048 * gimple-ssa-strength-reduction.c
6049 (find_candidates_dom_walker::before_doom_children): Use a
6050 type and not a mode check.
6052 2017-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
6055 * config/arm/predicates.md (arm_general_adddi_operand): Create new
6057 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
6059 2017-09-05 Jeff Law <law@redhat.com>
6061 PR tree-optimization/64910
6062 * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
6063 cases where we have 3 or more operands.
6065 2017-09-05 Jakub Jelinek <jakub@redhat.com>
6068 * omp-low.c (lower_omp_for): Recompute tree invariant if
6069 gimple_omp_for_initial/final is ADDR_EXPR.
6072 * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
6073 into gimple val before gimplification fo the COND_EXPR.
6075 2017-09-05 Aldy Hernandez <aldyh@redhat.com>
6077 * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
6078 REGION_COPY argument.
6079 (thread_through_all_blocks): Remove unused argument to
6080 duplicate_thread_path.
6082 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6083 Alan Hayward <alan.hayward@arm.com>
6084 David Sherwood <david.sherwood@arm.com>
6086 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
6087 Take a scalar_mode rather than a machine_mode.
6088 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
6089 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
6090 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
6091 (aarch64_gen_adjusted_ldpstp): Likewise.
6092 (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
6094 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6095 Alan Hayward <alan.hayward@arm.com>
6096 David Sherwood <david.sherwood@arm.com>
6098 * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
6099 Take a scalar_int_mode instead of a machine_mode.
6100 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
6101 (aarch64_output_scalar_simd_mov_immediate): Likewise.
6102 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
6103 (aarch64_simd_attr_length_rglist): Delete.
6104 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
6105 a scalar_int_mode instead of a machine_mode.
6106 (aarch64_add_offset): Likewise.
6107 (aarch64_internal_mov_immediate): Likewise
6108 (aarch64_add_constant_internal): Likewise.
6109 (aarch64_add_constant): Likewise.
6110 (aarch64_movw_imm): Likewise.
6111 (aarch64_rtx_arith_op_extract_p): Likewise.
6112 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
6113 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
6114 Remove assert that the mode isn't a vector.
6115 (aarch64_output_scalar_simd_mov_immediate): Likewise.
6116 (aarch64_expand_mov_immediate): Update calls after above changes.
6117 (aarch64_output_casesi): Use as_a <scalar_int_mode>.
6118 (aarch64_and_bitmask_imm): Check for scalar integer modes.
6119 (aarch64_move_imm): Likewise.
6120 (aarch64_can_const_movi_rtx_p): Likewise.
6121 (aarch64_strip_extend): Likewise.
6122 (aarch64_extr_rtx_p): Likewise.
6123 (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
6124 a CONST_INT when the mode parameter is VOIDmode.
6125 (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
6127 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6129 * machmode.h (bitwise_mode_for_mode): Return opt_mode.
6130 * stor-layout.c (bitwise_mode_for_mode): Likewise.
6131 (bitwise_type_for_mode): Update accordingly.
6133 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6135 * stor-layout.h (mode_for_size_tree): Return an opt_mode.
6136 * stor-layout.c (mode_for_size_tree): Likewise.
6137 (mode_for_array): Update accordingly.
6138 (layout_decl): Likewise.
6139 (compute_record_mode): Likewise. Only set the mode once.
6141 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6143 * target.def (get_mask_mode): Change return type to opt_mode.
6145 * doc/tm.texi: Regenerate.
6146 * targhooks.h (default_get_mask_mode): Return an opt_mode.
6147 * targhooks.c (default_get_mask_mode): Likewise.
6148 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
6149 * optabs-query.c (can_vec_mask_load_store_p): Update use of
6150 targetm.get_mask_mode.
6151 * tree.c (build_truth_vector_type): Likewise.
6153 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6155 * machmode.h (mode_for_vector): Return an opt_mode.
6156 * stor-layout.c (mode_for_vector): Likewise.
6157 (mode_for_int_vector): Update accordingly.
6158 (layout_type): Likewise.
6159 * config/i386/i386.c (emit_memmov): Likewise.
6160 (ix86_expand_set_or_movmem): Likewise.
6161 (ix86_expand_vector_init): Likewise.
6162 (ix86_get_mask_mode): Likewise.
6163 * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
6165 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
6166 * expmed.c (extract_bit_field_1): Likewise.
6167 * expr.c (expand_expr_real_2): Likewise.
6168 * optabs-query.c (can_vec_perm_p): Likewise.
6169 (can_vec_mask_load_store_p): Likewise.
6170 * optabs.c (expand_vec_perm): Likewise.
6171 * targhooks.c (default_get_mask_mode): Likewise.
6172 * tree-vect-stmts.c (vectorizable_store): Likewise.
6173 (vectorizable_load): Likewise.
6174 (get_vectype_for_scalar_type_and_size): Likewise.
6176 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6178 * machmode.h (mode_for_int_vector): New function.
6179 * stor-layout.c (mode_for_int_vector): Likewise.
6180 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
6181 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
6182 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
6183 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
6184 (s390_expand_vcond): Likewise.
6186 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6188 * machmode.h (opt_machine_mode): New type.
6189 (opt_mode<T>): Allow construction from anything that can be
6191 (is_a, as_a, dyn_cast): Add overloads for opt_mode.
6192 (mode_for_size): Return an opt_machine_mode.
6193 * stor-layout.c (mode_for_size): Likewise.
6194 (mode_for_size_tree): Update call accordingly.
6195 (bitwise_mode_for_mode): Likewise.
6196 (make_fract_type): Likewise.
6197 (make_accum_type): Likewise.
6198 * caller-save.c (replace_reg_with_saved_mem): Update call
6200 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
6201 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
6202 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
6203 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
6204 * expmed.c (extract_bit_field_1): Likewise.
6205 * reload.c (get_secondary_mem): Likewise.
6206 * varasm.c (assemble_integer): Likewise.
6207 * lower-subreg.c (simplify_subreg_concatn): Likewise. Move
6210 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6212 * machmode.h (decimal_float_mode_for_size): New function.
6213 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
6214 (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
6215 (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
6216 (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
6217 (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
6218 (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
6220 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6222 * builtins.c (expand_builtin_powi): Use int_mode_for_size.
6223 (get_builtin_sync_mode): Likewise.
6224 (expand_ifn_atomic_compare_exchange): Likewise.
6225 (expand_builtin_atomic_clear): Likewise.
6226 (expand_builtin_atomic_test_and_set): Likewise.
6227 (fold_builtin_atomic_always_lock_free): Likewise.
6228 * calls.c (compute_argument_addresses): Likewise.
6229 (emit_library_call_value_1): Likewise.
6230 (store_one_arg): Likewise.
6231 * combine.c (combine_instructions): Likewise.
6232 * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
6233 * config/arm/arm.c (arm_function_value): Likewise.
6234 (aapcs_allocate_return_reg): Likewise.
6235 * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
6236 * config/i386/i386.c (construct_container): Likewise.
6237 (ix86_gimplify_va_arg): Likewise.
6238 (ix86_expand_sse_cmp): Likewise.
6239 (emit_memmov): Likewise.
6240 (emit_memset): Likewise.
6241 (expand_small_movmem_or_setmem): Likewise.
6242 (ix86_expand_pextr): Likewise.
6243 (ix86_expand_pinsr): Likewise.
6244 * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
6245 * config/microblaze/microblaze.c (microblaze_block_move_straight):
6247 * config/mips/mips.c (mips_function_value_1) Likewise.
6248 (mips_block_move_straight): Likewise.
6249 (mips_expand_ins_as_unaligned_store): Likewise.
6250 * config/powerpcspe/powerpcspe.c
6251 (rs6000_darwin64_record_arg_advance_flush): Likewise.
6252 (rs6000_darwin64_record_arg_flush): Likewise.
6253 * config/rs6000/rs6000.c
6254 (rs6000_darwin64_record_arg_advance_flush): Likewise.
6255 (rs6000_darwin64_record_arg_flush): Likewise.
6256 * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
6257 (sparc_function_value_1): Likewise.
6258 * config/spu/spu.c (adjust_operand): Likewise.
6259 (spu_emit_branch_or_set): Likewise.
6260 (arith_immediate_p): Likewise.
6261 * emit-rtl.c (gen_lowpart_common): Likewise.
6262 * expr.c (expand_expr_real_1): Likewise.
6263 * function.c (assign_parm_setup_block): Likewise.
6264 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
6265 * reload1.c (alter_reg): Likewise.
6266 * stor-layout.c (mode_for_vector): Likewise.
6267 (layout_type): Likewise.
6269 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6271 * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
6272 (spu_convert_move): Likewise.
6273 * lower-subreg.c (resolve_simple_move): Likewise.
6275 2017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6278 * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
6279 define_insn to a define_expand.
6280 (altivec_vsum2sws_direct): New define_insn.
6281 (altivec_vsumsws): Convert from a define_insn to a define_expand.
6283 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
6285 * config/arm/arm.c (arm_option_params_internal): Improve setting of
6288 2017-09-05 H.J. Lu <hongjiu.lu@intel.com>
6293 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
6294 realign stack if stack alignment needed is less than incoming
6297 2017-09-05 Marek Polacek <polacek@redhat.com>
6300 * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
6303 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
6305 * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
6307 2017-09-05 Richard Biener <rguenther@suse.de>
6309 PR tree-optimization/82084
6310 * fold-const.c (can_native_encode_string_p): Handle wide characters.
6312 2017-09-05 Richard Biener <rguenther@suse.de>
6314 PR tree-optimization/82102
6315 * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
6317 2017-09-05 Martin Liska <mliska@suse.cz>
6319 PR tree-optimization/82032
6320 * tree-cfg.c (generate_range_test): New function.
6321 * tree-cfg.h (generate_range_test): Declared here.
6322 * tree-cfgcleanup.c (convert_single_case_switch): New function.
6323 (cleanup_control_expr_graph): Use it.
6324 * tree-switch-conversion.c (try_switch_expansion): Remove
6326 (emit_case_nodes): Use generate_range_test.
6328 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
6331 * config/i386/i386.md (*<btsc><mode>_mask): Add
6332 TARGET_USE_BT to insn constraint.
6333 (*btr<mode>_mask): Ditto.
6335 2017-09-04 Wilco Dijkstra <wdijkstr@arm.com>
6337 * config/arm/arm.c (arm_legitimate_index_p): Add comment.
6338 (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
6340 2017-09-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6343 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
6344 TARGET_NEON and TARGET_IWMMXT.
6345 (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
6346 TARGET_NEON and TARGET_IWMMXT.
6347 (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
6349 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
6351 * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
6352 (ix86_rewrite_tls_address): Ditto.
6353 * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
6354 (ix86_rewrite_tls_address_1): Ditto.
6355 (ix86_rewrite_tls_address): Ditto.
6356 * config/i386/predicates.md (tls_address_pattern): New predicate.
6357 * config/i386/i386.md (TLS address splitter): New splitter.
6359 2017-09-04 Richard Biener <rguenther@suse.de>
6361 PR tree-optimization/82084
6362 * fold-const.h (can_native_encode_string_p): Declare.
6363 * fold-const.c (can_native_encode_string_p): Factor out from ...
6364 (native_encode_string): ... here.
6365 * tree-vect-stmts.c (vectorizable_store): Call it to avoid
6366 vectorizing stores from constants we later cannot handle.
6368 2017-09-04 Marek Polacek <polacek@redhat.com>
6371 * doc/invoke.texi: Update -Wtautological-compare documentation.
6373 2017-09-04 Jeff Law <law@redhat.com>
6375 PR tree-optimization/64910
6376 * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
6377 swap the first and last operand if the last is a constant.
6379 2017-09-04 Marek Polacek <polacek@redhat.com>
6382 * convert.c (do_narrow): When sanitizing signed integer overflows,
6383 bail out for signed types.
6384 (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
6386 2017-09-04 Richard Biener <rguenther@suse.de>
6388 PR tree-optimization/82060
6389 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6390 Move devirtualization after stmt folding and before EH/AB/noreturn
6391 cleanup to get the stmt refs canonicalized. Use a bool instead
6392 of gimple_modified_p since that doesn't work for NOPs. Schedule
6393 NOPs generated by folding for removal.
6395 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
6396 Alan Hayward <alan.hayward@arm.com>
6397 David Sherwood <david.sherwood@arm.com>
6399 * coretypes.h (pad_direction): New enum.
6400 * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
6401 (FUNCTION_ARG_PADDING): Likewise.
6402 * target.def (function_arg_padding): New hook.
6403 * targhooks.h (default_function_arg_padding): Declare.
6404 * targhooks.c (default_function_arg_padding): New function.
6405 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
6406 (TARGET_FUNCTION_ARG_PADDING): ...this.
6407 * doc/tm.texi: Regenerate.
6408 * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
6409 instead of direction.
6410 (compute_argument_addresses): Likewise.
6411 (load_register_parameters): Likewise.
6412 (emit_library_call_value_1): Likewise.
6413 (store_one_arg): Use targetm.calls.function_arg_padding instead
6414 of FUNCTION_ARG_PADDING.
6415 (must_pass_in_stack_var_size_or_pad): Likewise.
6416 * expr.c (emit_group_load_1): Use pad_direction instead of direction.
6417 (emit_group_store): Likewise.
6418 (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
6419 instead of FUNCTION_ARG_PADDING.
6420 (emit_push_insn): Likewise, and propagate enum change throughout
6422 * function.h (direction): Delete.
6423 (locate_and_pad_arg_data::where_pad): Use pad_direction instead
6425 * function.c (assign_parm_find_stack_rtl): Likewise.
6426 (assign_parm_setup_block_p): Likewise.
6427 (assign_parm_setup_block): Likewise.
6428 (gimplify_parameters): Likewise.
6429 (locate_and_pad_parm): Use targetm.calls.function_arg_padding
6430 instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
6432 * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
6433 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
6434 * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
6435 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
6436 (aarch64_function_arg_padding): ...this new function.
6437 (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
6438 (TARGET_FUNCTION_ARG_PADDING): Redefine.
6439 * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
6440 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
6441 * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
6442 * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6443 (arm_pad_arg_upward): Replace with...
6444 (arm_function_arg_padding): ...this new function.
6445 * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
6447 * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
6448 * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
6449 * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6450 (ia64_hpux_function_arg_padding): Replace with...
6451 (ia64_function_arg_padding): ...this new function. Use pad_direction
6452 instead of direction. Check for TARGET_HPUX.
6453 * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
6454 * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6455 (iq2000_function_arg_padding): New function.
6456 * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
6457 * config/mips/mips.c (mips_pad_arg_upward): Replace with...
6458 (mips_function_arg_padding): ...this new function.
6459 (mips_pad_reg_upward): Update accordingly.
6460 (TARGET_FUNCTION_ARG_PADDING): Redefine.
6461 * config/mips/mips.h (PAD_VARARGS_DOWN): Use
6462 targetm.calls.function_arg_padding.
6463 (FUNCTION_ARG_PADDING): Delete.
6464 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
6465 * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
6466 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
6467 * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
6468 (nios2_block_reg_padding): Return pad_direction instead of direction.
6469 * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
6470 instead of direction.
6471 (nios2_function_arg_padding): Likewise. Make static.
6472 (TARGET_FUNCTION_ARG_PADDING): Redefine.
6473 * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
6474 (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
6475 * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
6476 * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6477 (pa_function_arg_padding): Make static. Return pad_direction instead
6479 * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
6480 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
6481 * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
6482 instead of direction. Use targetm.calls.function_arg_padding.
6483 * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
6484 * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
6485 * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
6486 * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
6487 * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
6489 (function_arg_padding): Rename to...
6490 (rs6000_function_arg_padding): ...this. Make static. Return
6491 pad_direction instead of direction.
6492 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
6493 * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
6494 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
6495 * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
6496 instead of direction. Use targetm.calls.function_arg_padding.
6497 * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
6498 * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
6499 * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
6500 * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
6501 * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6502 (function_arg_padding): Rename to...
6503 (rs6000_function_arg_padding): ...this. Make static. Return
6504 pad_direction instead of direction.
6505 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
6506 * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
6507 * config/s390/s390.c (s390_function_arg_padding): New function.
6508 (TARGET_FUNCTION_ARG_PADDING): Redefine.
6509 * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
6510 * config/sparc/sparc-protos.h (function_arg_padding): Delete.
6511 * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6512 (function_arg_padding): Rename to...
6513 (sparc_function_arg_padding): ...this. Make static. Return
6514 pad_direction instead of direction.
6515 * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
6516 * config/spu/spu.c (spu_function_arg_padding): New function.
6517 (TARGET_FUNCTION_ARG_PADDING): Redefine.
6518 * system.h (FUNCTION_ARG_PADDING): Poison.
6520 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
6521 Alan Hayward <alan.hayward@arm.com>
6522 David Sherwood <david.sherwood@arm.com>
6524 * target.def (modes_tieable_p): New hook.
6525 * doc/tm.texi (MODES_TIEABLE_P): Replace with...
6526 (TARGET_MODES_TIEABLE_P): ...this.
6527 * doc/tm.texi.in: Regenerate.
6528 * hooks.h (hook_bool_mode_mode_true): Declare.
6529 * hooks.c (hook_bool_mode_mode_true): New function.
6530 * combine.c (subst): Use targetm.modes_tieable_p instead of
6532 * dse.c (find_shift_sequence): Likewise.
6533 * expmed.c (extract_low_bits): Likewise.
6534 * lower-subreg.c: Include target.h.
6535 (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
6537 * rtlanal.c (rtx_cost): Likewise.
6538 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
6539 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
6540 * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
6541 (TARGET_MODES_TIEABLE_P): Redefine.
6542 * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
6543 * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
6544 (TARGET_MODES_TIEABLE_P): Redefine.
6545 * config/arc/arc.h (MODES_TIEABLE_P): Delete.
6546 * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
6547 (arc_modes_tieable_p): New function.
6548 * config/arm/arm.h (MODES_TIEABLE_P): Delete.
6549 * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
6550 * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
6551 (arm_modes_tieable_p): Make static.
6552 * config/avr/avr.h (MODES_TIEABLE_P): Delete.
6553 * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
6554 * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
6555 (TARGET_MODES_TIEABLE_P): Redefine.
6556 * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
6557 * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
6558 (TARGET_MODES_TIEABLE_P): Redefine.
6559 * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
6560 * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
6561 (cr16_modes_tieable_p): New function.
6562 * config/cris/cris.h (MODES_TIEABLE_P): Delete.
6563 * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
6564 * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
6565 (TRULY_NOOP_TRUNCATION): Update comment.
6566 * config/frv/frv.h (MODES_TIEABLE_P): Delete.
6567 (TRULY_NOOP_TRUNCATION): Update comment.
6568 * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
6569 (frv_modes_tieable_p): New function.
6570 * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
6571 * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
6572 * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
6573 (TARGET_MODES_TIEABLE_P): Redefine.
6574 * config/i386/i386.h (MODES_TIEABLE_P): Delete.
6575 * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
6576 * config/i386/i386.c (ix86_modes_tieable_p): Make static.
6577 (TARGET_MODES_TIEABLE_P): Redefine.
6578 * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
6579 * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
6580 (ia64_modes_tieable_p): New function.
6581 * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
6582 * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
6583 (iq2000_modes_tieable_p): New function.
6584 * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
6585 * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
6586 (lm32_modes_tieable_p): New function.
6587 * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
6588 * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
6589 * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
6590 (TARGET_MODES_TIEABLE_P): Redefine.
6591 * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
6592 * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
6593 (m32r_modes_tieable_p): New function.
6594 * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
6595 * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
6596 (m68k_modes_tieable_p): New function.
6597 * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
6598 * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
6599 (mcore_modes_tieable_p): New function.
6600 * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
6601 * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
6603 (TARGET_MODES_TIEABLE_P): Redefine.
6604 * config/mips/mips.h (MODES_TIEABLE_P): Delete.
6605 * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
6606 * config/mips/mips.c (mips_modes_tieable_p): Make static.
6607 (TARGET_MODES_TIEABLE_P): Redefine.
6608 * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
6609 * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
6610 * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
6611 * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
6612 (mn10300_modes_tieable_p): ...this and make static.
6613 (TARGET_MODES_TIEABLE_P): Redefine.
6614 * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
6615 * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
6616 * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
6617 * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
6618 (msp430_modes_tieable_p): Make static.
6619 * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
6620 * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
6621 (TARGET_MODES_TIEABLE_P): Redefine.
6622 * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
6623 * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
6624 * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
6625 (TARGET_MODES_TIEABLE_P): Redefine.
6626 * config/pa/pa.h (MODES_TIEABLE_P): Delete.
6627 * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
6628 * config/pa/pa.c (pa_modes_tieable_p): Make static.
6629 (TARGET_MODES_TIEABLE_P): Redefine.
6630 * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
6631 * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
6632 (pdp11_modes_tieable_p): New function.
6633 * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
6634 * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
6635 (rs6000_modes_tieable_p): New function.
6636 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
6637 * config/powerpcspe/powerpcspe.md: Update comment.
6638 * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
6639 * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
6640 (TARGET_MODES_TIEABLE_P): Redefine.
6641 * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
6642 * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
6643 (rl78_modes_tieable_p): New function.
6644 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
6645 * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
6646 (rs6000_modes_tieable_p): New function.
6647 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
6648 * config/rs6000/rs6000.md: Update comment.
6649 * config/rx/rx.h (MODES_TIEABLE_P): Delete.
6650 * config/rx/rx.c (rx_modes_tieable_p): New function.
6651 (TARGET_MODES_TIEABLE_P): Redefine.
6652 * config/s390/s390.h (MODES_TIEABLE_P): Delete.
6653 * config/s390/s390.c (s390_modes_tieable_p): New function.
6654 (TARGET_MODES_TIEABLE_P): Redefine.
6655 * config/sh/sh.h (MODES_TIEABLE_P): Delete.
6656 * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
6657 (sh_modes_tieable_p): New function.
6658 * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
6659 * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
6660 * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
6661 (sparc_modes_tieable_p): Make static.
6662 * config/spu/spu.h (MODES_TIEABLE_P): Delete.
6663 * config/spu/spu.c (spu_modes_tieable_p): New function.
6664 (TARGET_MODES_TIEABLE_P): Redefine.
6665 * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
6666 * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
6667 (TARGET_MODES_TIEABLE_P): Redefine.
6668 * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
6669 * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
6670 * config/v850/v850.h (MODES_TIEABLE_P): Delete.
6671 * config/v850/v850.c (v850_modes_tieable_p): New function.
6672 (TARGET_MODES_TIEABLE_P): Redefine.
6673 * config/vax/vax.h (MODES_TIEABLE_P): Delete.
6674 * config/visium/visium.h (MODES_TIEABLE_P): Delete.
6675 * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
6676 (visium_modes_tieable_p): New function.
6677 * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
6678 * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
6679 (xtensa_modes_tieable_p): New function.
6680 * system.h (MODES_TIEABLE_P): Poison.
6682 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
6683 Alan Hayward <alan.hayward@arm.com>
6684 David Sherwood <david.sherwood@arm.com>
6686 * target.def (hard_regno_mode_ok): New hook.
6687 * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
6688 (TARGET_HARD_REGNO_MODE_OK): ...this.
6689 * doc/tm.texi.in: Regenerate.
6690 * hooks.h (hook_bool_uint_mode_true): Declare.
6691 * hooks.c (hook_bool_uint_mode_true): New function.
6692 * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
6694 * genpreds.c (write_insn_preds_c): Add an include of target.h.
6695 * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
6696 instead of HARD_REGNO_MODE_OK.
6697 * caller-save.c: Include target.h.
6698 (reg_save_code): Use targetm.hard_regno_mode_ok instead of
6700 * combine.c (can_combine_p): Likewise.
6701 (combinable_i3pat): Likewise.
6702 (can_change_dest_mode): Likewise.
6703 * expr.c (init_expr_target): Likewise.
6704 (convert_move): Likewise.
6705 (convert_modes): Likewise.
6706 * ira.c (setup_prohibited_class_mode_regs): Likewise.
6707 (setup_prohibited_mode_move_regs): Likewise.
6708 * ira.h (target_ira): Likewise.
6709 * lra-assigns.c (find_hard_regno_for_1): Likewise.
6710 * lra-constraints.c (process_alt_operands): Likewise.
6711 (split_reg): Likewise.
6712 * recog.c (peep2_find_free_register): Likewise.
6713 * ree.c (combine_reaching_defs): Likewise.
6714 * regcprop.c (maybe_mode_change): Likewise.
6715 * reginfo.c (init_reg_sets_1): Likewise.
6716 (choose_hard_reg_mode): Likewise.
6717 (simplifiable_subregs): Likewise.
6718 * regrename.c (check_new_reg_p): Likewise.
6719 * reload.c (find_valid_class): Likewise.
6720 (find_valid_class_1): Likewise.
6721 (reload_inner_reg_of_subreg): Likewise.
6722 (push_reload): Likewise.
6723 (combine_reloads): Likewise.
6724 (find_dummy_reload): Likewise.
6725 (find_reloads): Likewise.
6726 * reload1.c (find_reg): Likewise.
6727 (set_reload_reg): Likewise.
6728 (allocate_reload_reg): Likewise.
6729 (choose_reload_regs): Likewise.
6730 (reload_adjust_reg_for_temp): Likewise.
6731 * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
6732 (simplify_subreg_regno): Likewise.
6733 * sel-sched.c (init_regs_for_mode): Likewise.
6734 * varasm.c (make_decl_rtl): Likewise.
6735 * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
6736 (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
6738 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
6739 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
6740 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6741 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
6742 * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
6743 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6744 * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
6745 (arc_mode_class): Delete.
6746 (HARD_REGNO_MODE_OK): Delete.
6747 * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6748 (arc_hard_regno_mode_ok): Rename old array to...
6749 (arc_hard_regno_mode_ok_modes): ...this.
6750 (arc_conditional_register_usage): Update accordingly.
6751 (arc_mode_class): Make static.
6752 (arc_hard_regno_mode_ok): New function.
6753 * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
6754 * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
6755 * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6756 (arm_hard_regno_mode_ok): Make static.
6757 * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
6759 * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
6760 * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
6761 * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
6763 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6764 * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
6765 * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
6766 * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
6767 (bfin_hard_regno_mode_ok): ...this. Make static and return a bool.
6768 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6769 * config/bfin/predicates.md (valid_reg_operand): Use
6770 targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
6771 * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
6772 * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
6773 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6774 * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
6775 * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
6776 * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6777 (cr16_hard_regno_mode_ok): Make static and return a bool.
6778 * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
6779 * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6780 (cris_hard_regno_mode_ok): New function.
6781 * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
6782 (epiphany_mode_class): Delete.
6783 (HARD_REGNO_MODE_OK): Delete.
6784 * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
6785 * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6786 (hard_regno_mode_ok): Rename to...
6787 (epiphany_hard_regno_mode_ok): ...this. Make static and return a bool.
6788 * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
6789 * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
6791 * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
6792 * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
6793 * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6794 (frv_hard_regno_mode_ok): Make static and return a bool.
6795 * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
6797 * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
6798 * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
6799 * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
6800 * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
6802 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6803 * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
6804 * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
6805 * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
6807 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6808 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
6809 * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6810 (ia64_hard_regno_mode_ok): New function.
6811 * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
6812 * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6813 (iq2000_hard_regno_mode_ok): New function.
6814 * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
6815 * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6816 (lm32_hard_regno_mode_ok): New function.
6817 * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
6818 * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
6819 * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
6820 instead of HARD_REGNO_MODE_OK.
6821 (m32c_hard_regno_ok): Rename to...
6822 (m32c_hard_regno_mode_ok): ...this. Make static and return a bool.
6823 (m32c_cannot_change_mode_class): Update accordingly.
6824 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6825 * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
6826 (m32r_mode_class): Delete.
6827 (HARD_REGNO_MODE_OK): Delete.
6828 * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6829 (m32r_hard_regno_mode_ok): Rename to...
6830 (m32r_hard_regno_modes): ...this.
6831 (m32r_mode_class): Make static.
6832 (m32r_hard_regno_mode_ok): New function.
6833 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
6834 * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
6835 * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6836 (m68k_hard_regno_mode_ok): Make static.
6837 * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
6838 * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6839 (mcore_hard_regno_mode_ok): New function.
6840 * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
6841 (HARD_REGNO_MODE_OK): Delete.
6842 * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
6844 (microblaze_hard_regno_mode_ok_p): ...this and make static.
6845 (microblaze_hard_regno_mode_ok): New function.
6846 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6847 * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
6848 (mips_hard_regno_mode_ok): Delete.
6849 * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
6850 (mips_hard_regno_mode_ok_p): ...this and make static.
6851 (mips_hard_regno_mode_ok_p): Rename to...
6852 (mips_hard_regno_mode_ok_uncached): ...this.
6853 (mips_hard_regno_mode_ok): New function.
6854 (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
6855 of HARD_REGNO_MODE_OK.
6856 (mips_option_override): Update after above name changes.
6857 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6858 * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
6859 * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
6860 * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
6861 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
6862 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6863 * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
6864 * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
6865 * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
6866 * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6867 (msp430_hard_regno_mode_ok): Make static and return a bool.
6868 * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
6869 * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
6870 * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
6872 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6873 * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
6874 * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
6875 * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
6876 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
6877 (PA_HARD_REGNO_MODE_OK): ...this
6878 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
6879 (PA_HARD_REGNO_MODE_OK): ...this.
6880 * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6881 (pa_hard_regno_mode_ok): New function.
6882 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
6883 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6884 (pdp11_hard_regno_mode_ok): New function.
6885 * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
6886 * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
6888 * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
6890 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6891 (rs6000_hard_regno_mode_ok): Rename to...
6892 (rs6000_hard_regno_mode_ok_uncached): ...this.
6893 (rs6000_init_hard_regno_mode_ok): Update accordingly.
6894 (rs6000_hard_regno_mode_ok): New function.
6895 * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
6896 * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
6897 * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
6898 (riscv_hard_regno_mode_ok): ...this and make static.
6899 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6900 * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
6901 * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
6902 * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6903 (rl78_hard_regno_mode_ok): Make static and return bool.
6904 * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
6905 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
6907 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
6908 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6909 (rs6000_hard_regno_mode_ok): Rename to...
6910 (rs6000_hard_regno_mode_ok_uncached): ...this.
6911 (rs6000_init_hard_regno_mode_ok): Update accordingly.
6912 (rs6000_hard_regno_mode_ok): New function.
6913 * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
6914 * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
6915 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6916 * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
6917 * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
6918 * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
6919 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6920 * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
6921 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
6922 * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6923 (sh_hard_regno_mode_ok): Make static.
6924 * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
6925 instead of HARD_REGNO_MODE_OK.
6926 * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
6927 (sparc_mode_class): Delete.
6928 (HARD_REGNO_MODE_OK): Delete.
6929 * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6930 (hard_regno_mode_classes): Make static.
6931 (sparc_mode_class): Likewise.
6932 (sparc_hard_regno_mode_ok): New function.
6933 * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
6934 * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
6935 * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
6937 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6938 * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
6939 * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
6940 * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
6941 * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
6942 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6943 * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
6944 * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
6945 * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6946 (visium_hard_regno_mode_ok): New function.
6947 * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
6948 instead of HARD_REGNO_MODE_OK.
6949 * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
6950 (HARD_REGNO_MODE_OK): Delete.
6951 * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
6952 (xtensa_hard_regno_mode_ok_p): ...this and make static.
6953 (xtensa_option_override): Update accordingly.
6954 (TARGET_HARD_REGNO_MODE_OK): Redefine.
6955 (xtensa_hard_regno_mode_ok): New function.
6956 * system.h (HARD_REGNO_MODE_OK): Poison.
6958 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
6959 Alan Hayward <alan.hayward@arm.com>
6960 David Sherwood <david.sherwood@arm.com>
6962 * target.def (hard_regno_call_part_clobbered): New hook.
6963 * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
6964 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
6965 * doc/tm.texi: Regenerate.
6966 * hooks.h (hook_bool_uint_mode_false): Declare.
6967 * hooks.c (hook_bool_uint_mode_false): New function.
6968 * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6969 * cselib.c (cselib_process_insn): Use
6970 targetm.hard_regno_call_part_clobbered instead of
6971 HARD_REGNO_CALL_PART_CLOBBERED.
6972 * ira-conflicts.c (ira_build_conflicts): Likewise.
6973 * ira-costs.c (ira_tune_allocno_costs): Likewise.
6974 * lra-constraints.c (need_for_call_save_p): Likewise.
6975 * lra-lives.c: Include target.h.
6976 (check_pseudos_live_through_calls): Use
6977 targetm.hard_regno_call_part_clobbered instead of
6978 HARD_REGNO_CALL_PART_CLOBBERED.
6979 * regcprop.c: Include target.h.
6980 (copyprop_hardreg_forward_1): Use
6981 targetm.hard_regno_call_part_clobbered instead of
6982 HARD_REGNO_CALL_PART_CLOBBERED.
6983 * reginfo.c (choose_hard_reg_mode): Likewise.
6984 * regrename.c (check_new_reg_p): Likewise.
6985 * reload.c (find_equiv_reg): Likewise.
6986 * reload1.c (emit_reload_insns): Likewise.
6987 * sched-deps.c (deps_analyze_insn): Likewise.
6988 * sel-sched.c (init_regs_for_mode): Likewise.
6989 (mark_unavailable_hard_regs): Likewise.
6990 * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
6991 * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6992 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
6994 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6995 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6996 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
6998 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
7000 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7001 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7002 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
7004 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7005 * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7006 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
7008 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7009 * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
7011 * config/powerpcspe/powerpcspe.c
7012 (rs6000_hard_regno_call_part_clobbered): New function.
7013 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7014 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7015 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
7017 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7018 * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7019 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
7021 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7022 * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7023 * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
7025 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
7026 Alan Hayward <alan.hayward@arm.com>
7027 David Sherwood <david.sherwood@arm.com>
7029 * rtl.h (subreg_memory_offset): Declare.
7030 * emit-rtl.c (subreg_memory_offset): New function.
7031 * expmed.c (store_bit_field_1): Use it.
7032 * expr.c (undefined_operand_subword_p): Likewise.
7033 * simplify-rtx.c (simplify_subreg): Likewise.
7035 2017-09-04 Alexander Monakov <amonakov@ispras.ru>
7037 PR rtl-optimization/57448
7040 * optabs.c (expand_atomic_load): Place compiler memory barriers if
7041 using atomic_load pattern.
7042 (expand_atomic_store): Likewise.
7044 2017-09-04 Jakub Jelinek <jakub@redhat.com>
7047 * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
7048 and UBSAN_BOUNDS internal calls. Clean up IFN_UBSAN_OBJECT_SIZE
7049 handling. Use replace_call_with_value with NULL instead of
7050 gsi_replace, unlink_stmt_vdef and release_defs.
7052 * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
7055 * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
7057 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
7060 * rtl.h (emit_library_call_value_1): Declare.
7061 (emit_library_call): Replace declaration with a series of overloads.
7062 Remove the parameter count argument.
7063 (emit_library_call_value): Likewise.
7064 * calls.c (emit_library_call_value_1): Make global. Replace varargs
7065 with an "rtx_mode_t *".
7066 (emit_library_call_value): Delete.
7067 (emit_library_call): Likewise.
7068 * asan.c (asan_emit_stack_protection): Update calls accordingly.
7069 (asan_emit_allocas_unpoison): Likewise.
7070 * builtins.c (expand_builtin_powi): Likewise.
7071 (expand_asan_emit_allocas_unpoison): Likewise.
7072 * cfgexpand.c (expand_main_function): Likewise.
7073 * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
7074 * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
7075 * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
7076 * config/arm/arm.c (arm_trampoline_init): Likewise.
7077 (arm_call_tls_get_addr): Likewise.
7078 (arm_expand_divmod_libfunc): Likewise.
7079 * config/bfin/bfin.md (umulsi3_highpart): Likewise.
7080 (smulsi3_highpart): Likewise.
7081 * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
7082 (c6x_expand_compare): Likewise.
7083 (c6x_expand_movmem): Likewise.
7084 * config/frv/frv.c (frv_trampoline_init): Likewise.
7085 * config/i386/i386.c (ix86_trampoline_init): Likewise.
7086 (ix86_expand_divmod_libfunc): Likewise.
7087 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
7088 (ia64_expand_compare): Likewise.
7089 (ia64_profile_hook): Likewise.
7090 * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
7091 (nonlocal_goto): Likewise.
7092 (restore_stack_nonlocal): Likewise.
7093 * config/m32r/m32r.c (block_move_call): Likewise.
7094 (m32r_trampoline_init): Likewise.
7095 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
7096 * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
7097 (m68k_call_m68k_read_tp): Likewise.
7098 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
7099 (microblaze_expand_divide): Likewise.
7100 * config/mips/mips.h (mips_args): Likewise.
7101 * config/mips/sdemtk.h (mips_sync_icache): Likewise.
7102 (MIPS_ICACHE_SYNC): Likewise.
7103 * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
7104 (nios2_trampoline_init): Likewise.
7105 * config/pa/pa.c (hppa_tls_call): Likewise.
7106 (pa_trampoline_init): Likewise.
7107 * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
7108 * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
7109 (expand_strn_compare): Likewise.
7110 (rs6000_generate_compare): Likewise.
7111 (rs6000_expand_float128_convert): Likewise.
7112 (output_profile_hook): Likewise.
7113 (rs6000_trampoline_init): Likewise.
7114 * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
7115 * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
7116 * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
7117 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
7118 (rs6000_generate_compare): Likewise.
7119 (rs6000_expand_float128_convert): Likewise.
7120 (output_profile_hook): Likewise.
7121 (rs6000_trampoline_init): Likewise.
7122 * config/rs6000/rs6000.md (neg<mode>2): Likewise.
7123 * config/sh/sh.c (sh_trampoline_init): Likewise.
7124 * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
7125 (sparc_emit_float_lib_cmp): Likewise.
7126 (sparc32_initialize_trampoline): Likewise.
7127 (sparc64_initialize_trampoline): Likewise.
7128 (sparc_profile_hook): Likewise.
7129 * config/spu/spu.c (ea_load_store): Likewise.
7130 * config/spu/spu.md (floatunssidf2): Likewise.
7131 * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
7132 * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
7133 * config/visium/visium.c (expand_block_move_4): Likewise.
7134 (expand_block_move_2): Likewise.
7135 (expand_block_move_1): Likewise.
7136 (expand_block_set_4): Likewise.
7137 (expand_block_set_2): Likewise.
7138 (expand_block_set_1): Likewise.
7139 (visium_trampoline_init): Likewise.
7140 (visium_profile_hook): Likewise.
7141 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
7142 (xtensa_setup_frame_addresses): Likewise.
7143 (xtensa_trampoline_init): Likewise.
7144 * except.c (sjlj_emit_function_enter): Likewise.
7145 (sjlj_emit_function_exit): Likewise.
7146 * explow.c (allocate_dynamic_stack_space): Likewise.
7147 (probe_stack_range): Likewise.
7148 * expr.c (convert_mode_scalar): Likewise.
7149 * optabs.c (expand_binop): Likewise.
7150 (expand_twoval_binop_libfunc): Likewise.
7151 (expand_unop): Likewise.
7152 (prepare_cmp_insn): Likewise.
7153 (prepare_float_lib_cmp): Likewise.
7154 (expand_float): Likewise.
7155 (expand_fix): Likewise.
7156 (expand_fixed_convert): Likewise.
7157 (maybe_emit_sync_lock_test_and_set): Likewise.
7158 (expand_atomic_compare_and_swap): Likewise.
7159 (expand_mem_thread_fence): Likewise.
7160 (expand_atomic_fetch_op): Likewise.
7162 2017-09-03 Gerald Pfeifer <gerald@pfeifer.com>
7164 * doc/generic.texi (OpenACC): Adjust URL.
7165 * doc/invoke.texi (C Dialect Options): Ditto.
7167 2017-09-03 Uros Bizjak <ubizjak@gmail.com>
7169 * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
7170 predicate for operand 1. Add (m,<S>) constraint.
7171 (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
7172 Prevent memory operand 1 with register operand 2.
7174 2017-09-01 Segher Boessenkool <segher@kernel.crashing.org>
7176 PR rtl-optimization/82024
7177 * combine.c (try_combine): If the combination result is a PARALLEL,
7178 and we only need to retain the SET in there that would be placed
7179 at I2, check that we can place that at I3 instead, before doing so.
7181 2017-09-01 Jakub Jelinek <jakub@redhat.com>
7184 * config/i386/i386.c (ix86_init_large_pic_reg): Return label
7186 (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
7187 if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
7190 2017-09-01 Joerg Sonnenberger <joerg@bec.de>
7191 Jeff Law <law@redhat.com>
7193 * varasm.c (bss_initializer_p): Do not put constants into .bss
7194 (categorize_decl_for_section): Handle bss_initializer_p returning
7195 false when DECL_INITIAL is NULL.
7197 2017-09-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7200 * config/s390/s390.c (s390_can_inline_p): New function.
7202 2017-09-01 Jeff Law <law@redhat.com>
7204 PR tree-optimization/82052
7205 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
7206 Always initialize the returned slot after a hash table miss
7207 when INSERT is true.
7209 2017-09-01 Alexander Monakov <amonakov@ispras.ru>
7211 * config/s390/s390.md (mem_signal_fence): Remove.
7212 * doc/md.texi (mem_signal_fence): Remove.
7213 * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
7215 * target-insns.def (mem_signal_fence): Remove.
7217 2017-09-01 Jakub Jelinek <jakub@redhat.com>
7220 * doc/invoke.texi: Document -fsanitize=pointer-overflow.
7223 * asan.c (create_odr_indicator): Strip name encoding from assembler
7224 name before appending it after __odr_asan_.
7226 2017-09-01 Martin Liska <mliska@suse.cz>
7228 PR tree-optimization/82059
7229 * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
7230 frequency only when an edge is redirected.
7232 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
7234 * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
7235 * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
7236 (arc_conditional_register_usage): Remove ARC600 lp_count
7238 (arc_file_start): Emit Tag_ARC_CPU_variation.
7239 (arc_can_use_doloop_p): New conditions to use ZOLs.
7240 (hwloop_fail): New function.
7241 (hwloop_optimize): Likewise.
7242 (hwloop_pattern_reg): Likewise.
7243 (arc_doloop_hooks): New struct, to be used with reorg_loops.
7244 (arc_reorg_loops): New function, calls reorg_loops.
7245 (arc_reorg): Call arc_reorg_loops. Remove old ZOL handling.
7246 (arc600_corereg_hazard): Remove ZOL checking, case handled by
7248 (arc_loop_hazard): Remove function, functionality moved into
7250 (arc_hazard): Remove arc_loop_hazard call.
7251 (arc_adjust_insn_length): Remove ZOL handling, functionality moved
7252 into hwloop_optimize.
7253 (arc_label_align): Remove ZOL handling.
7254 * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
7255 * config/arc/arc.md (doloop_begin): Remove pattern.
7256 (doloop_begin_i): Likewise.
7257 (doloop_end_i): Likewise.
7258 (doloop_fallback): Likewise.
7259 (doloop_fallback_m): Likewise.
7260 (doloop_end): Reimplement expand.
7261 (arc_lp): New pattern for LP instruction.
7262 (loop_end): New pattern.
7263 (loop_fail): Likewise.
7264 (decrement_and_branch_until_zero): Likewise.
7265 * config/arc/arc.opt (mlpc-width): New option.
7266 * doc/invoke.texi (mlpc-width): Document option.
7268 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
7270 * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
7271 (arc_ccfsm_advance): Fix checking for delay slots.
7272 (arc_reorg): Add rtl dump after each call to arc_ifcvt.
7274 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
7276 * config/arc/arc.md (movqi_insn): Add stores to save constant long
7278 (movhi_insn): Update store instruction constraint which are saving
7279 6-bit short immediates.
7280 (movsi_insn): Consider also short scaled load operations.
7281 (zero_extendhisi2_i): Use Usd constraint instead of T.
7282 (extendhisi2_i): Add q constraint.
7283 (arc_clzsi2): Add type and length attributes.
7284 (arc_ctzsi2): Likewise.
7285 * config/arc/constraints.md (Usc): Update constraint, the
7286 assembler can parse two relocations for a single instruction.
7288 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
7290 * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
7291 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
7293 2017-08-31 Olivier Hainque <hainque@adacore.com>
7295 * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
7296 match as powerpc-wrs-vxworks*.
7298 2017-08-31 James Greenhalgh <james.greenhalgh@arm.com>
7300 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
7301 register constraint for by-element operand.
7302 (aarch64_mls_elt_merge<mode>): Likewise.
7304 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
7306 * config/arc/arc.c (arc_can_follow_jump): Check for short
7309 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
7311 * config.gcc: Use g.opt for arc.
7312 * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
7313 functionality moved to ...
7314 (legitimate_scaled_address_p): New function, ...here.
7315 (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
7316 (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
7317 (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
7319 (arc_override_options): Handle G option.
7320 (arc_output_pic_addr_const): Correct function definition.
7321 (arc_legitimate_address_p): Use legitimate_scaled_address_p.
7322 (arc_decl_anon_ns_mem_p): Delete.
7323 (arc_in_small_data_p): Overhaul this function to take into
7324 consideration the value given via G option.
7325 (arc_rewrite_small_data_1): Renamed and corrected old
7326 arc_rewrite_small_data function.
7327 (arc_rewrite_small_data): New function.
7328 (small_data_pattern): Don't use pic_offset_table_rtx.
7329 * config/arc/arc.h (CC1_SPEC): Recognize G option.
7330 * config/arc/simdext.md (movmisalignv2hi): Use
7331 prepare_move_operands function.
7333 (movmisalign*): Likewise.
7334 * doc/invoke.texi (ARC options): Document -G option.
7336 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
7338 * config/arc/arc-protos.h (compact_sda_memory_operand): Update
7340 * config/arc/arc.c (arc_print_operand): Output scalled address for
7341 sdata whenever is possible.
7342 (arc_in_small_data_p): Allow sdata for 64bit datum when double
7343 load/stores are available.
7344 (compact_sda_memory_operand): Check for the alignment required by
7345 code density instructions.
7346 * config/arc/arc.md (movsi_insn): Use newly introduced Us0
7348 * config/arc/constraints.md (Usd): Update constraint.
7349 (Us0): New constraint.
7350 (Usc): Update constraint.
7352 2017-08-31 Richard Biener <rguenther@suse.de>
7355 * dwarf2out.c (dwarf2out_early_global_decl): Process each
7358 2017-08-31 Tamar Christina <tamar.christina@arm.com>
7360 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
7361 Resize type_signature.
7363 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
7364 Alan Hayward <alan.hayward@arm.com>
7365 David Sherwood <david.sherwood@arm.com>
7367 * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
7368 subregs whose inner modes can be stored in GPRs.
7369 (aarch64_classify_index): Likewise.
7371 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
7372 Alan Hayward <alan.hayward@arm.com>
7373 David Sherwood <david.sherwood@arm.com>
7375 * config/aarch64/iterators.md (V_cmp_result): Rename to...
7376 (V_INT_EQUIV): ...this.
7377 (v_cmp_result): Rename to...
7378 (v_int_equiv): ...this.
7379 * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
7380 * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
7381 (copysign<mode>3): Likewise.
7382 (aarch64_simd_bsl<mode>_internal): Likewise.
7383 (aarch64_simd_bsl<mode>): Likewise.
7384 (vec_cmp<mode><mode>): Likewise.
7385 (vcond<mode><mode>): Likewise.
7386 (vcond<v_cmp_mixed><mode>): Likewise.
7387 (vcondu<mode><v_cmp_mixed>): Likewise.
7388 (aarch64_cm<optab><mode>): Likewise.
7389 (aarch64_cmtst<mode>): Likewise.
7390 (aarch64_fac<optab><mode>): Likewise.
7391 (vec_perm_const<mode>): Likewise.
7392 (vcond_mask_<mode><v_cmp_result>): Rename to...
7393 (vcond_mask_<mode><v_int_equiv>): ...this.
7394 (vec_cmp<mode><v_cmp_result>): Rename to...
7395 (vec_cmp<mode><v_int_equiv>): ...this.
7397 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
7398 Alan Hayward <alan.hayward@arm.com>
7399 David Sherwood <david.sherwood@arm.com>
7401 * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
7403 * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
7404 * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
7405 (UNSPEC_LD4_DREG): New unspecs.
7406 * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
7407 (aarch64_ld2<mode>_dreg_be): Replace with...
7408 (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
7410 (aarch64_ld3<mode>_dreg_le)
7411 (aarch64_ld3<mode>_dreg_be): Replace with...
7412 (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
7414 (aarch64_ld4<mode>_dreg_le)
7415 (aarch64_ld4<mode>_dreg_be): Replace with...
7416 (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
7419 2017-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7421 PR tree-optimization/81987
7422 * gimple-ssa-strength-reduction.c (insert_initializers): Don't
7423 insert an initializer in a location not dominated by the stride
7426 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
7428 * tree-eh.c (lower_try_finally_switch): Set the location of the finally
7429 on the entire header of the finally block in the fallthru case.
7431 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
7433 * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
7435 2017-08-30 Pat Haugen <pthaugen@us.ibm.com>
7437 * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
7438 rs6000_emit_move_from_cr and call renamed function.
7439 (rs6000_emit_prologue): Call renamed functions.
7440 * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
7441 movesi_from_cr, remove volatile CRs.
7443 2017-08-30 Jon Beniston <jon@beniston.com>
7444 Richard Biener <rguenther@suse.de>
7446 * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
7447 of VECTOR_MODE_P check.
7448 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
7449 element vector types.
7451 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7453 * df.h (df_read_modify_subreg_p): Remove in favor of...
7454 * rtl.h (read_modify_subreg_p): ...this new function. Take a
7455 const_rtx instead of an rtx.
7456 * cprop.c (local_cprop_find_used_regs): Update accordingly.
7457 * df-problems.c (df_word_lr_mark_ref): Likewise.
7458 * ira-lives.c (mark_pseudo_reg_live): Likewise.
7459 (mark_pseudo_reg_dead): Likewise.
7460 (mark_ref_dead): Likewise.
7461 * reginfo.c (init_subregs_of_mode): Likewise.
7462 * sched-deps.c (sched_analyze_1): Likewise.
7463 * df-scan.c (df_def_record_1): Likewise.
7464 (df_uses_record): Likewise.
7465 (df_read_modify_subreg_p): Remove in favor of...
7466 * rtlanal.c (read_modify_subreg_p): ...this new function. Take a
7467 const_rtx instead of an rtx.
7469 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7470 Alan Hayward <alan.hayward@arm.com>
7471 David Sherwood <david.sherwood@arm.com>
7473 * rtl.h (partial_subreg_p): New function.
7474 * caller-save.c (save_call_clobbered_regs): Use it.
7475 * calls.c (expand_call): Likewise.
7476 * combine.c (combinable_i3pat): Likewise.
7477 (simplify_set): Likewise.
7478 (make_extraction): Likewise.
7479 (make_compound_operation_int): Likewise.
7480 (gen_lowpart_or_truncate): Likewise.
7481 (force_to_mode): Likewise.
7482 (make_field_assignment): Likewise.
7483 (reg_truncated_to_mode): Likewise.
7484 (record_truncated_value): Likewise.
7485 (move_deaths): Likewise.
7486 * cse.c (record_jump_cond): Likewise.
7487 (cse_insn): Likewise.
7488 * cselib.c (cselib_lookup_1): Likewise.
7489 * expmed.c (extract_bit_field_using_extv): Likewise.
7490 * function.c (assign_parm_setup_reg): Likewise.
7491 * ifcvt.c (noce_convert_multiple_sets): Likewise.
7492 * ira-build.c (create_insn_allocnos): Likewise.
7493 * lra-coalesce.c (merge_pseudos): Likewise.
7494 * lra-constraints.c (match_reload): Likewise.
7495 (simplify_operand_subreg): Likewise.
7496 (curr_insn_transform): Likewise.
7497 * lra-lives.c (process_bb_lives): Likewise.
7498 * lra.c (new_insn_reg): Likewise.
7499 (lra_substitute_pseudo): Likewise.
7500 * regcprop.c (mode_change_ok): Likewise.
7501 (maybe_mode_change): Likewise.
7502 (copyprop_hardreg_forward_1): Likewise.
7503 * reload.c (push_reload): Likewise.
7504 (find_reloads): Likewise.
7505 (find_reloads_subreg_address): Likewise.
7506 * reload1.c (alter_reg): Likewise.
7507 (eliminate_regs_1): Likewise.
7508 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7510 2017-08-30 David Edelsohn <dje.gcc@gmail.com>
7512 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
7513 back to if statements, including unpack.
7515 2017-08-30 Martin Liska <mliska@suse.cz>
7518 * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
7520 (func_checker::compare_asm_inputs_outputs): ... this function.
7521 (func_checker::compare_gimple_asm): Use the function to compare
7522 also ASM constrains.
7523 * ipa-icf-gimple.h: Rename the function.
7525 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7526 Alan Hayward <alan.hayward@arm.com>
7527 David Sherwood <david.sherwood@arm.com>
7529 * coretypes.h (complex_mode): New type.
7530 * gdbhooks.py (build_pretty_printer): Handle it.
7531 * machmode.h (complex_mode): New class.
7532 (complex_mode::includes_p): New function.
7533 (is_complex_int_mode): Likewise.
7534 (is_complex_float_mode): Likewise.
7535 * genmodes.c (get_mode_class): Handle complex mode classes.
7536 * function.c (expand_function_end): Use is_complex_int_mode.
7538 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7539 Alan Hayward <alan.hayward@arm.com>
7540 David Sherwood <david.sherwood@arm.com>
7542 * coretypes.h (scalar_mode_pod): New typedef.
7543 * gdbhooks.py (build_pretty_printer): Handle it.
7544 * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
7545 * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
7546 * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
7547 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
7550 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7551 Alan Hayward <alan.hayward@arm.com>
7552 David Sherwood <david.sherwood@arm.com>
7554 * machmode.h (mode_for_vector): Take a scalar_mode instead
7556 * stor-layout.c (mode_for_vector): Likewise.
7557 * explow.c (promote_mode): Use as_a <scalar_mode>.
7558 * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
7560 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7561 Alan Hayward <alan.hayward@arm.com>
7562 David Sherwood <david.sherwood@arm.com>
7564 * target.def (preferred_simd_mode): Take a scalar_mode
7565 instead of a machine_mode.
7566 * targhooks.h (default_preferred_simd_mode): Likewise.
7567 * targhooks.c (default_preferred_simd_mode): Likewise.
7568 * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
7569 * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
7570 * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
7571 * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
7572 * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
7573 * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
7574 * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
7575 * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
7577 * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
7578 * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
7579 * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
7580 * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
7581 (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
7582 * doc/tm.texi: Regenerate.
7583 * optabs-query.c (can_vec_mask_load_store_p): Return false for
7586 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7587 Alan Hayward <alan.hayward@arm.com>
7588 David Sherwood <david.sherwood@arm.com>
7590 * target.def (scalar_mode_supported_p): Take a scalar_mode
7591 instead of a machine_mode.
7592 * targhooks.h (default_scalar_mode_supported_p): Likewise.
7593 * targhooks.c (default_scalar_mode_supported_p): Likewise.
7594 * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
7595 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
7596 * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
7597 * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
7598 * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
7599 * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
7600 * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
7601 * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
7602 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
7603 * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
7604 * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
7605 * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
7607 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
7608 * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
7609 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
7610 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
7611 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
7613 * doc/tm.texi: Regenerate.
7615 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7616 Alan Hayward <alan.hayward@arm.com>
7617 David Sherwood <david.sherwood@arm.com>
7619 * coretypes.h (opt_scalar_mode): New typedef.
7620 * gdbhooks.py (build_pretty_printers): Handle it.
7621 * machmode.h (mode_iterator::get_2xwider): Add overload for
7623 * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
7625 * expr.c (convert_mode_scalar): Likewise.
7626 * omp-low.c (omp_clause_aligned_alignment): Likewise.
7627 * optabs.c (expand_float): Likewise.
7628 (expand_fix): Likewise.
7629 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7631 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7632 Alan Hayward <alan.hayward@arm.com>
7633 David Sherwood <david.sherwood@arm.com>
7635 * optabs.c (expand_float): Explicitly check for scalars before
7636 using a branching expansion.
7637 (expand_fix): Likewise.
7639 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7640 Alan Hayward <alan.hayward@arm.com>
7641 David Sherwood <david.sherwood@arm.com>
7643 * expr.c (convert_mode): Split scalar handling out into...
7644 (convert_mode_scalar): ...this new function. Treat the modes
7647 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7648 Alan Hayward <alan.hayward@arm.com>
7649 David Sherwood <david.sherwood@arm.com>
7651 * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
7653 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
7655 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7656 Alan Hayward <alan.hayward@arm.com>
7657 David Sherwood <david.sherwood@arm.com>
7659 * fixed-value.h (fixed_from_double_int): Take a scalar_mode
7660 rather than a machine_mode.
7661 (fixed_from_string): Likewise.
7662 (fixed_convert): Likewise.
7663 (fixed_convert_from_int): Likewise.
7664 (fixed_convert_from_real): Likewise.
7665 (real_convert_from_fixed): Likewise.
7666 * fixed-value.c (fixed_from_double_int): Likewise.
7667 (fixed_from_string): Likewise.
7668 (fixed_convert): Likewise.
7669 (fixed_convert_from_int): Likewise.
7670 (fixed_convert_from_real): Likewise.
7671 (real_convert_from_fixed): Likewise.
7672 * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
7674 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7675 Alan Hayward <alan.hayward@arm.com>
7676 David Sherwood <david.sherwood@arm.com>
7678 * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
7679 of separate mode class checks. Do not allow vector modes here.
7680 (immed_wide_int_const): Use as_a <scalar_mode>.
7681 * explow.c (trunc_int_for_mode): Likewise.
7682 * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
7683 (wi::shwi): Likewise.
7684 (wi::min_value): Likewise.
7685 (wi::max_value): Likewise.
7686 * dwarf2out.c (loc_descriptor): Likewise.
7687 * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
7690 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7691 Alan Hayward <alan.hayward@arm.com>
7692 David Sherwood <david.sherwood@arm.com>
7694 * tree.h (SCALAR_TYPE_MODE): New macro.
7695 * expr.c (expand_expr_addr_expr_1): Use it.
7696 (expand_expr_real_2): Likewise.
7697 * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
7698 (fold_convert_const_fixed_from_int): Likewise.
7699 (fold_convert_const_fixed_from_real): Likewise.
7700 (native_encode_fixed): Likewise
7701 (native_encode_complex): Likewise
7702 (native_encode_vector): Likewise.
7703 (native_interpret_fixed): Likewise.
7704 (native_interpret_real): Likewise.
7705 (native_interpret_complex): Likewise.
7706 (native_interpret_vector): Likewise.
7707 * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
7708 (simd_clone_adjust_argument_types): Likewise.
7709 (simd_clone_init_simd_arrays): Likewise.
7710 (simd_clone_adjust): Likewise.
7711 * stor-layout.c (layout_type): Likewise.
7712 * tree.c (build_minus_one_cst): Likewise.
7713 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
7714 * tree-inline.c (estimate_move_cost): Likewise.
7715 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
7716 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
7717 (vectorizable_reduction): Likewise.
7718 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
7719 (vect_recog_mixed_size_cond_pattern): Likewise.
7720 (check_bool_pattern): Likewise.
7721 (adjust_bool_pattern): Likewise.
7722 (search_type_for_mask_1): Likewise.
7723 * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
7724 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7725 (vectorizable_load): Likewise.
7726 (vectorizable_store): Likewise.
7727 * ubsan.c (ubsan_encode_value): Likewise.
7728 * varasm.c (output_constant): Likewise.
7730 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7731 Alan Hayward <alan.hayward@arm.com>
7732 David Sherwood <david.sherwood@arm.com>
7734 * coretypes.h (scalar_mode): New class.
7735 * machmode.h (scalar_mode): Likewise.
7736 (scalar_mode::includes_p): New function.
7737 (mode_to_inner): Return a scalar_mode rather than a machine_mode.
7738 * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
7739 * genmodes.c (get_mode_class): Handle remaining scalar modes.
7740 * cfgexpand.c (expand_debug_expr): Use scalar_mode.
7741 * expmed.c (store_bit_field_1): Likewise.
7742 (extract_bit_field_1): Likewise.
7743 * expr.c (write_complex_part): Likewise.
7744 (read_complex_part): Likewise.
7745 (emit_move_complex_push): Likewise.
7746 (expand_expr_real_2): Likewise.
7747 * function.c (assign_parm_setup_reg): Likewise.
7748 (assign_parms_unsplit_complex): Likewise.
7749 * optabs.c (expand_binop): Likewise.
7750 * rtlanal.c (subreg_get_info): Likewise.
7751 * simplify-rtx.c (simplify_immed_subreg): Likewise.
7752 * varasm.c (output_constant_pool_2): Likewise.
7754 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7755 Alan Hayward <alan.hayward@arm.com>
7756 David Sherwood <david.sherwood@arm.com>
7758 * expmed.c (extract_high_half): Use scalar_int_mode and remove
7760 (expmed_mult_highpart_optab): Likewise.
7761 (expmed_mult_highpart): Likewise.
7763 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7764 Alan Hayward <alan.hayward@arm.com>
7765 David Sherwood <david.sherwood@arm.com>
7767 * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
7768 instead of a machine_mode.
7769 (builtin_memset_read_str): Likewise.
7770 * builtins.c (c_readstr): Likewise.
7771 (builtin_memcpy_read_str): Likewise.
7772 (builtin_strncpy_read_str): Likewise.
7773 (builtin_memset_read_str): Likewise.
7774 (builtin_memset_gen_str): Likewise.
7775 (expand_builtin_signbit): Use scalar_int_mode for local variables.
7776 * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
7777 instead of a machine_mode.
7778 * combine.c (simplify_if_then_else): Use scalar_int_mode for local
7780 (make_extraction): Likewise.
7781 (try_widen_shift_mode): Take and return scalar_int_modes instead
7783 * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
7784 a scalar_int_mode instead of a machine_mode.
7785 * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
7786 (avr_addr_space_pointer_mode): Likewise.
7787 * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
7788 * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
7789 (msp430_unwind_word_mode): Likewise.
7790 * config/spu/spu.c (spu_unwind_word_mode): Likewise.
7791 (spu_addr_space_pointer_mode): Likewise.
7792 (spu_addr_space_address_mode): Likewise.
7793 (spu_libgcc_cmp_return_mode): Likewise.
7794 (spu_libgcc_shift_count_mode): Likewise.
7795 * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
7796 (rl78_addr_space_pointer_mode): Likewise.
7797 (fl78_unwind_word_mode): Likewise.
7798 (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
7800 * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
7801 * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
7802 * config/mips/mips.c (mips_mode_rep_extended): Likewise.
7803 (mips_valid_pointer_mode): Likewise.
7804 * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
7805 * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
7806 (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
7808 (ft32_addr_space_address_mode): Likewise.
7809 * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
7810 scalar_int_mode instead of a machine_mode.
7811 (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
7813 (m32c_addr_space_address_mode): Likewise.
7814 * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
7815 (rs6000_eh_return_filter_mode): Likewise.
7816 * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
7817 (rs6000_eh_return_filter_mode): Likewise.
7818 * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
7819 (s390_libgcc_shift_count_mode): Likewise.
7820 (s390_unwind_word_mode): Likewise.
7821 (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
7823 * target.def (mode_rep_extended): Likewise.
7824 (valid_pointer_mode): Likewise.
7825 (addr_space.valid_pointer_mode): Likewise.
7826 (eh_return_filter_mode): Return a scalar_int_mode rather than
7828 (libgcc_cmp_return_mode): Likewise.
7829 (libgcc_shift_count_mode): Likewise.
7830 (unwind_word_mode): Likewise.
7831 (addr_space.pointer_mode): Likewise.
7832 (addr_space.address_mode): Likewise.
7833 * doc/tm.texi: Regenerate.
7834 * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
7836 (do_jump): Use scalar_int_mode for local variables.
7837 * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
7838 rather than a machine_mode.
7839 * dwarf2out.c (convert_descriptor_to_mode): Likewise.
7840 (scompare_loc_descriptor_wide): Likewise.
7841 (scompare_loc_descriptor_narrow): Likewise.
7842 * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
7844 * except.c (sjlj_emit_dispatch_table): Likewise.
7845 (expand_builtin_eh_copy_values): Likewise.
7846 * explow.c (convert_memory_address_addr_space_1): Likewise.
7847 Take a scalar_int_mode rather than a machine_mode.
7848 (convert_memory_address_addr_space): Take a scalar_int_mode rather
7849 than a machine_mode.
7850 (memory_address_addr_space): Use scalar_int_mode for local variables.
7851 * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
7852 rather than a machine_mode.
7853 * expmed.c (mask_rtx): Likewise.
7854 (init_expmed_one_conv): Likewise.
7855 (expand_mult_highpart_adjust): Likewise.
7856 (extract_high_half): Likewise.
7857 (expmed_mult_highpart_optab): Likewise.
7858 (expmed_mult_highpart): Likewise.
7859 (expand_smod_pow2): Likewise.
7860 (expand_sdiv_pow2): Likewise.
7861 (emit_store_flag_int): Likewise.
7862 (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
7864 (extract_low_bits): Likewise.
7865 * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
7867 * expr.c (pieces_addr::adjust): Likewise.
7868 (can_store_by_pieces): Likewise.
7869 (store_by_pieces): Likewise.
7870 (clear_by_pieces_1): Likewise.
7871 (expand_expr_addr_expr_1): Likewise.
7872 (expand_expr_addr_expr): Use scalar_int_mode for local variables.
7873 (expand_expr_real_1): Likewise.
7874 (try_casesi): Likewise.
7875 * final.c (shorten_branches): Likewise.
7876 * fold-const.c (fold_convert_const_int_from_fixed): Change the
7877 type of "mode" to machine_mode.
7878 * internal-fn.c (expand_arith_overflow_result_store): Take a
7879 scalar_int_mode rather than a machine_mode.
7880 (expand_mul_overflow): Use scalar_int_mode for local variables.
7881 * loop-doloop.c (doloop_modify): Likewise.
7882 (doloop_optimize): Likewise.
7883 * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
7884 than a machine_mode.
7885 (expand_doubleword_shift_condmove): Likewise.
7886 (expand_doubleword_shift): Likewise.
7887 (expand_doubleword_clz): Likewise.
7888 (expand_doubleword_popcount): Likewise.
7889 (expand_doubleword_parity): Likewise.
7890 (expand_absneg_bit): Use scalar_int_mode for local variables.
7891 (prepare_float_lib_cmp): Likewise.
7892 * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
7893 rather than a machine_mode.
7894 (convert_memory_address_addr_space): Likewise.
7895 (get_mode_bounds): Likewise.
7896 (get_address_mode): Return a scalar_int_mode rather than a
7898 * rtlanal.c (get_address_mode): Likewise.
7899 * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
7900 than a machine_mode.
7901 * targhooks.c (default_mode_rep_extended): Likewise.
7902 (default_valid_pointer_mode): Likewise.
7903 (default_addr_space_valid_pointer_mode): Likewise.
7904 (default_eh_return_filter_mode): Return a scalar_int_mode rather
7905 than a machine_mode.
7906 (default_libgcc_cmp_return_mode): Likewise.
7907 (default_libgcc_shift_count_mode): Likewise.
7908 (default_unwind_word_mode): Likewise.
7909 (default_addr_space_pointer_mode): Likewise.
7910 (default_addr_space_address_mode): Likewise.
7911 * targhooks.h (default_eh_return_filter_mode): Likewise.
7912 (default_libgcc_cmp_return_mode): Likewise.
7913 (default_libgcc_shift_count_mode): Likewise.
7914 (default_unwind_word_mode): Likewise.
7915 (default_addr_space_pointer_mode): Likewise.
7916 (default_addr_space_address_mode): Likewise.
7917 (default_mode_rep_extended): Take a scalar_int_mode rather than
7919 (default_valid_pointer_mode): Likewise.
7920 (default_addr_space_valid_pointer_mode): Likewise.
7921 * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
7923 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
7924 rather than a machine_mode.
7925 * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
7926 for local variables.
7927 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
7928 * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
7929 than a machine_mode.
7931 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7932 Alan Hayward <alan.hayward@arm.com>
7933 David Sherwood <david.sherwood@arm.com>
7935 * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
7936 the mode argument to scalar_int_mode.
7937 (do_jump_by_parts_zero_rtx): Likewise.
7938 (do_jump_by_parts_equality_rtx): Likewise.
7939 (do_jump_by_parts_greater): Take a mode argument.
7940 (do_jump_by_parts_equality): Likewise.
7941 (do_jump_1): Update calls accordingly.
7943 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7944 Alan Hayward <alan.hayward@arm.com>
7945 David Sherwood <david.sherwood@arm.com>
7947 * is-a.h (safe_dyn_cast): New function.
7948 * rtl.h (rtx_jump_table_data::get_data_mode): New function.
7949 (jump_table_for_label): Likewise.
7950 * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
7951 instead of an rtx_insn *.
7952 (shorten_branches): Use dyn_cast instead of LABEL_P and
7953 JUMP_TABLE_DATA_P. Use jump_table_for_label and
7954 rtx_jump_table_data::get_data_mode.
7955 (final_scan_insn): Likewise.
7957 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7958 Alan Hayward <alan.hayward@arm.com>
7959 David Sherwood <david.sherwood@arm.com>
7961 * combine.c (try_combine): Use is_a <scalar_int_mode> when
7962 trying to combine a full-register integer set with a subreg
7965 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7966 Alan Hayward <alan.hayward@arm.com>
7967 David Sherwood <david.sherwood@arm.com>
7969 * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
7970 that is always either address_mode or pointer_mode.
7972 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7973 Alan Hayward <alan.hayward@arm.com>
7974 David Sherwood <david.sherwood@arm.com>
7976 * expr.c (expand_expr_real_2): Use word_mode instead of innermode
7977 when the two are known to be equal.
7979 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7980 Alan Hayward <alan.hayward@arm.com>
7981 David Sherwood <david.sherwood@arm.com>
7983 * simplify-rtx.c (simplify_const_unary_operation): Use
7984 is_a <scalar_int_mode> instead of checking for a nonzero
7985 precision. Forcibly convert op_mode to a scalar_int_mode
7986 in that case. More clearly differentiate the operand and
7987 result modes and use the former when deciding what the value
7988 of a count-bits operation should be. Use is_int_mode instead
7989 of checking for a MODE_INT. Remove redundant check for whether
7990 this mode has a zero precision.
7992 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
7993 Alan Hayward <alan.hayward@arm.com>
7994 David Sherwood <david.sherwood@arm.com>
7996 * optabs.c (widen_leading): Change the type of the mode argument
7997 to scalar_int_mode. Use opt_scalar_int_mode for the mode iterator.
7998 (widen_bswap): Likewise.
7999 (expand_parity): Likewise.
8000 (expand_ctz): Change the type of the mode argument to scalar_int_mode.
8001 (expand_ffs): Likewise.
8002 (epand_unop): Check for scalar integer modes before calling the
8005 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8006 Alan Hayward <alan.hayward@arm.com>
8007 David Sherwood <david.sherwood@arm.com>
8009 * expr.c (const_scalar_mask_from_tree): Add a mode argument.
8011 (expand_expr_real_1): Update call accordingly.
8013 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8014 Alan Hayward <alan.hayward@arm.com>
8015 David Sherwood <david.sherwood@arm.com>
8017 * expmed.c (store_bit_field_using_insv): Add op0_mode and
8018 value_mode arguments. Use scalar_int_mode internally.
8019 (store_bit_field_1): Rename the new integer mode from imode
8020 to op0_mode and use it instead of GET_MODE (op0). Update calls
8021 to store_split_bit_field, store_bit_field_using_insv and
8022 store_fixed_bit_field.
8023 (store_fixed_bit_field): Add op0_mode and value_mode arguments.
8024 Use scalar_int_mode internally. Use a bit count rather than a mode
8025 when calculating the largest bit size for get_best_mode.
8026 Update calls to store_split_bit_field and store_fixed_bit_field_1.
8027 (store_fixed_bit_field_1): Add mode and value_mode arguments.
8028 Remove assertion that OP0 has a scalar integer mode.
8029 (store_split_bit_field): Add op0_mode and value_mode arguments.
8030 Update calls to extract_fixed_bit_field.
8031 (extract_bit_field_using_extv): Add an op0_mode argument.
8032 Use scalar_int_mode internally.
8033 (extract_bit_field_1): Rename the new integer mode from imode to
8034 op0_mode and use it instead of GET_MODE (op0). Update calls to
8035 extract_split_bit_field, extract_bit_field_using_extv and
8036 extract_fixed_bit_field.
8037 (extract_fixed_bit_field): Add an op0_mode argument. Update calls
8038 to extract_split_bit_field and extract_fixed_bit_field_1.
8039 (extract_fixed_bit_field_1): Add a mode argument. Remove assertion
8040 that OP0 has a scalar integer mode. Use as_a <scalar_int_mode>
8042 (extract_split_bit_field): Add an op0_mode argument. Update call
8043 to extract_fixed_bit_field.
8045 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8046 Alan Hayward <alan.hayward@arm.com>
8047 David Sherwood <david.sherwood@arm.com>
8049 * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
8050 * explow.c (hard_function_value): Likewise.
8051 * expmed.c (extract_fixed_bit_field_1): Likewise. Move the
8052 convert_to_mode call outside the loop.
8053 * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
8054 for the mode iterator. Require the mode specified by max_pieces
8056 (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
8058 (copy_blkmode_to_reg): Likewise.
8059 (set_storage_via_setmem): Likewise.
8060 * optabs.c (prepare_cmp_insn): Likewise.
8061 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
8062 * stor-layout.c (finish_bitfield_representative): Likewise.
8064 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8065 Alan Hayward <alan.hayward@arm.com>
8066 David Sherwood <david.sherwood@arm.com>
8068 * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
8069 * expr.c (convert_move): Use them.
8070 (convert_modes): Likewise.
8071 (store_expr_with_bounds): Likewise.
8073 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8074 Alan Hayward <alan.hayward@arm.com>
8075 David Sherwood <david.sherwood@arm.com>
8077 * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
8078 parameter for the mode of "x". Remove the "known_x", "known_mode"
8079 and "known_ret" arguments. Change the type of the mode argument
8081 (rtl_hooks:reg_num_sign_bit_copies): Likewise.
8082 * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
8083 (reg_num_sign_bit_copies_for_combine): Likewise.
8084 * rtlanal.c (nonzero_bits1): Likewise.
8085 (num_sign_bit_copies1): Likewise.
8086 * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
8087 (reg_num_sign_bit_copies_general): Likewise.
8088 * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
8089 (reg_nonzero_bits_general): Likewise.
8091 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8092 Alan Hayward <alan.hayward@arm.com>
8093 David Sherwood <david.sherwood@arm.com>
8095 * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
8096 than in subroutines. Return 1 for non-integer modes.
8097 (cached_num_sign_bit_copies): Change the type of the mode parameter
8099 (num_sign_bit_copies1): Likewise. Remove early exit for other mode
8100 classes. Handle CONST_INT_P first and then check whether X also
8101 has a scalar integer mode. Check the same thing for inner registers
8102 of a SUBREG and for values that are being extended or truncated.
8104 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8105 Alan Hayward <alan.hayward@arm.com>
8106 David Sherwood <david.sherwood@arm.com>
8108 * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
8109 in subroutines. Return the mode mask for non-integer modes.
8110 (cached_nonzero_bits): Change the type of the mode parameter
8112 (nonzero_bits1): Likewise. Remove early exit for other mode
8113 classes. Handle CONST_INT_P first and then check whether X
8114 also has a scalar integer mode.
8116 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8117 Alan Hayward <alan.hayward@arm.com>
8118 David Sherwood <david.sherwood@arm.com>
8120 * expr.c (widest_int_mode_for_size): Make the comment match the code.
8121 Return a scalar_int_mode and assert that the size is greater than
8123 (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
8124 (op_by_pieces_d::op_by_pieces_d): Likewise.
8125 (op_by_pieces_d::run): Likewise.
8126 (can_store_by_pieces): Likewise.
8128 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8129 Alan Hayward <alan.hayward@arm.com>
8130 David Sherwood <david.sherwood@arm.com>
8132 * combine.c (extract_left_shift): Add a mode argument and update
8134 (make_compound_operation_int): Change the type of the mode parameter
8135 to scalar_int_mode and update the call to extract_left_shift.
8137 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8138 Alan Hayward <alan.hayward@arm.com>
8139 David Sherwood <david.sherwood@arm.com>
8141 * combine.c (simplify_and_const_int): Change the type of the mode
8142 parameter to scalar_int_mode.
8143 (simplify_and_const_int_1): Likewise. Update recursive call.
8145 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8146 Alan Hayward <alan.hayward@arm.com>
8147 David Sherwood <david.sherwood@arm.com>
8149 * combine.c (simplify_compare_const): Check that the mode is a
8150 scalar_int_mode (rather than VOIDmode) before testing its
8152 (simplify_comparison): Move COMPARISON_P handling out of the
8153 loop and restrict the latter part of the loop to scalar_int_modes.
8154 Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
8155 and when considering SUBREG_REGs. Use is_int_mode instead of
8156 checking GET_MODE_CLASS against MODE_INT.
8158 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8159 Alan Hayward <alan.hayward@arm.com>
8160 David Sherwood <david.sherwood@arm.com>
8162 * combine.c (try_widen_shift_mode): Move check for equal modes to...
8163 (simplify_shift_const_1): ...here. Use scalar_int_mode for
8164 shift_unit_mode and for modes involved in scalar shifts.
8166 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8167 Alan Hayward <alan.hayward@arm.com>
8168 David Sherwood <david.sherwood@arm.com>
8170 * combine.c (force_int_to_mode): New function, split out from...
8171 (force_to_mode): ...here. Keep xmode up-to-date and use it
8172 instead of GET_MODE (x).
8174 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8175 Alan Hayward <alan.hayward@arm.com>
8176 David Sherwood <david.sherwood@arm.com>
8178 * optabs-query.h (extraction_insn::struct_mode): Change type to
8179 opt_scalar_int_mode and update comment.
8180 (extraction_insn::field_mode): Change type to scalar_int_mode.
8181 (extraction_insn::pos_mode): Likewise.
8182 * combine.c (make_extraction): Update accordingly.
8183 * optabs-query.c (get_traditional_extraction_insn): Likewise.
8184 (get_optab_extraction_insn): Likewise.
8185 * recog.c (simplify_while_replacing): Likewise.
8186 * expmed.c (narrow_bit_field_mem): Change the type of the mode
8187 parameter to opt_scalar_int_mode.
8189 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8190 Alan Hayward <alan.hayward@arm.com>
8191 David Sherwood <david.sherwood@arm.com>
8193 * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
8194 to a scalar_int_mode instead of a machine_mode.
8195 (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
8196 (get_best_mode): Return a boolean and use a pointer argument to store
8197 the selected mode. Replace the limit mode parameter with a bit limit.
8198 * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
8199 for the values returned by bit_field_mode_iterator::next_mode.
8200 (store_bit_field): Update call to get_best_mode.
8201 (store_fixed_bit_field): Likewise.
8202 (extract_fixed_bit_field): Likewise.
8203 * expr.c (optimize_bitfield_assignment_op): Likewise.
8204 * fold-const.c (optimize_bit_field_compare): Likewise.
8205 (fold_truth_andor_1): Likewise.
8206 * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
8207 Update for new type of m_mode.
8208 (get_best_mode): As above.
8210 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8211 Alan Hayward <alan.hayward@arm.com>
8212 David Sherwood <david.sherwood@arm.com>
8214 * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
8215 to scalar_int_mode. Remove check for SCALAR_INT_MODE_P.
8216 (store_bit_field): Check is_a <scalar_int_mode> before calling
8217 strict_volatile_bitfield_p.
8218 (extract_bit_field): Likewise.
8220 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8221 Alan Hayward <alan.hayward@arm.com>
8222 David Sherwood <david.sherwood@arm.com>
8224 * target.def (cstore_mode): Return a scalar_int_mode.
8225 * doc/tm.texi: Regenerate.
8226 * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
8227 * targhooks.h (default_cstore_mode): Likewise.
8228 * targhooks.c (default_cstore_mode): Likewise, using a forced
8230 * expmed.c (emit_cstore): Expect the target of the cstore to be
8233 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8234 Alan Hayward <alan.hayward@arm.com>
8235 David Sherwood <david.sherwood@arm.com>
8237 * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
8239 (niter_desc): Likewise mode.
8240 (iv_analyze): Add a mode parameter.
8242 (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
8243 and change its type to scalar_int_mode.
8244 * loop-iv.c: Update commentary at head of file.
8245 (iv_constant): Pass the mode paraeter before the rtx it describes
8246 and change its type to scalar_int_mode. Remove VOIDmode handling.
8247 (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
8248 (iv_extend): Likewise.
8249 (shorten_into_mode): Likewise.
8250 (iv_add): Use scalar_int_mode.
8251 (iv_mult): Likewise.
8252 (iv_shift): Likewise.
8253 (canonicalize_iv_subregs): Likewise.
8254 (get_biv_step_1): Pass the outer_mode parameter before the rtx
8255 it describes and change its mode to scalar_int_mode. Also change
8256 the type of the returned inner_mode to scalar_int_mode.
8257 (get_biv_step): Likewise, turning outer_mode from a pointer
8258 into a direct parameter. Update call to get_biv_step_1.
8259 (iv_analyze_biv): Add an outer_mode parameter. Update calls to
8260 iv_constant and get_biv_step.
8261 (iv_analyze_expr): Pass the mode parameter before the rtx it describes
8262 and change its type to scalar_int_mode. Don't initialise iv->mode
8263 to VOIDmode and remove later checks for its still being VOIDmode.
8264 Update calls to iv_analyze_op and iv_analyze_expr. Check
8265 is_a <scalar_int_mode> when changing the mode under consideration.
8266 (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
8267 Update call to iv_analyze_expr.
8268 (iv_analyze_op): Add a mode parameter. Reject subregs whose
8269 inner register is not also a scalar_int_mode. Update call to
8271 (iv_analyze): Add a mode parameter. Update call to iv_analyze_op.
8272 (biv_p): Add a mode parameter. Update call to iv_analyze_biv.
8273 (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
8274 separate mode class checks. Update calls to iv_analyze. Remove
8275 fix-up of VOIDmodes after iv_analyze_biv.
8276 * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
8277 don't have a scalar_int_mode. Update call to biv_p.
8279 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8280 Alan Hayward <alan.hayward@arm.com>
8281 David Sherwood <david.sherwood@arm.com>
8283 * cfgexpand.c (convert_debug_memory_address): Use
8284 as_a <scalar_int_mode>.
8285 * combine.c (expand_compound_operation): Likewise.
8286 (make_extraction): Likewise.
8287 (change_zero_ext): Likewise.
8288 (simplify_comparison): Likewise.
8289 * cse.c (cse_insn): Likewise.
8290 * dwarf2out.c (minmax_loc_descriptor): Likewise.
8291 (mem_loc_descriptor): Likewise.
8292 (loc_descriptor): Likewise.
8293 * expmed.c (init_expmed_one_mode): Likewise.
8294 (synth_mult): Likewise.
8295 (emit_store_flag_1): Likewise.
8296 (expand_divmod): Likewise. Use HWI_COMPUTABLE_MODE_P instead
8297 of a comparison with size.
8298 * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
8299 (reduce_to_bit_field_precision): Likewise.
8300 * function.c (expand_function_end): Likewise.
8301 * internal-fn.c (expand_arith_overflow_result_store): Likewise.
8302 * loop-doloop.c (doloop_modify): Likewise.
8303 * optabs.c (expand_binop): Likewise.
8304 (expand_unop): Likewise.
8305 (expand_copysign_absneg): Likewise.
8306 (prepare_cmp_insn): Likewise.
8307 (maybe_legitimize_operand): Likewise.
8308 * recog.c (const_scalar_int_operand): Likewise.
8309 * rtlanal.c (get_address_mode): Likewise.
8310 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8311 (simplify_cond_clz_ctz): Likewise.
8312 * tree-nested.c (get_nl_goto_field): Likewise.
8313 * tree.c (build_vector_type_for_mode): Likewise.
8314 * var-tracking.c (use_narrower_mode): Likewise.
8316 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8317 Alan Hayward <alan.hayward@arm.com>
8318 David Sherwood <david.sherwood@arm.com>
8320 * tree.h (SCALAR_INT_TYPE_MODE): New macro.
8321 * builtins.c (expand_builtin_signbit): Use it.
8322 * cfgexpand.c (expand_debug_expr): Likewise.
8323 * dojump.c (do_jump): Likewise.
8324 (do_compare_and_jump): Likewise.
8325 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
8326 * expmed.c (make_tree): Likewise.
8327 * expr.c (expand_expr_real_2): Likewise.
8328 (expand_expr_real_1): Likewise.
8329 (try_casesi): Likewise.
8330 * fold-const-call.c (fold_const_call_ss): Likewise.
8331 * fold-const.c (unextend): Likewise.
8332 (extract_muldiv_1): Likewise.
8333 (fold_single_bit_test): Likewise.
8334 (native_encode_int): Likewise.
8335 (native_encode_string): Likewise.
8336 (native_interpret_int): Likewise.
8337 * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
8338 * internal-fn.c (expand_addsub_overflow): Likewise.
8339 (expand_neg_overflow): Likewise.
8340 (expand_mul_overflow): Likewise.
8341 (expand_arith_overflow): Likewise.
8342 * match.pd: Likewise.
8343 * stor-layout.c (layout_type): Likewise.
8344 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
8345 * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
8346 * tree-ssanames.c (get_range_info): Likewise.
8347 * tree-switch-conversion.c (array_value_type) Likewise.
8348 * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
8349 (vect_recog_divmod_pattern): Likewise.
8350 (vect_recog_mixed_size_cond_pattern): Likewise.
8351 * tree-vrp.c (extract_range_basic): Likewise.
8352 (simplify_float_conversion_using_ranges): Likewise.
8353 * tree.c (int_fits_type_p): Likewise.
8354 * ubsan.c (instrument_bool_enum_load): Likewise.
8355 * varasm.c (mergeable_string_section): Likewise.
8356 (narrowing_initializer_constant_valid_p): Likewise.
8357 (output_constant): Likewise.
8359 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8360 Alan Hayward <alan.hayward@arm.com>
8361 David Sherwood <david.sherwood@arm.com>
8363 * machmode.h (NARROWEST_INT_MODE): New macro.
8364 * expr.c (alignment_for_piecewise_move): Use it instead of
8365 GET_CLASS_NARROWEST_MODE (MODE_INT).
8366 (push_block): Likewise.
8367 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
8369 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
8371 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8372 Alan Hayward <alan.hayward@arm.com>
8373 David Sherwood <david.sherwood@arm.com>
8375 * postreload.c (move2add_valid_value_p): Change the type of the
8376 mode parameter to scalar_int_mode.
8377 (move2add_use_add2_insn): Add a mode parameter and use it instead
8379 (move2add_use_add3_insn): Likewise.
8380 (reload_cse_move2add): Update accordingly.
8382 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8383 Alan Hayward <alan.hayward@arm.com>
8384 David Sherwood <david.sherwood@arm.com>
8386 * expr.c (expand_expr_real_2): Use scalar_int_mode for the
8388 * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
8389 * optabs.c (expand_unop): Likewise.
8391 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8392 Alan Hayward <alan.hayward@arm.com>
8393 David Sherwood <david.sherwood@arm.com>
8395 * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
8396 (clz_loc_descriptor): Likewise. Remove SCALAR_INT_MODE_P check.
8397 (popcount_loc_descriptor): Likewise.
8398 (bswap_loc_descriptor): Likewise.
8399 (rotate_loc_descriptor): Likewise.
8400 (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
8401 calling the functions above.
8403 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8404 Alan Hayward <alan.hayward@arm.com>
8405 David Sherwood <david.sherwood@arm.com>
8407 * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
8409 (try_combine): Likewise.
8410 (simplify_if_then_else): Likewise.
8411 * cse.c (cse_insn): Likewise.
8412 * dwarf2out.c (mem_loc_descriptor): Likewise.
8413 * emit-rtl.c (gen_lowpart_common): Likewise.
8414 * simplify-rtx.c (simplify_truncation): Likewise.
8415 (simplify_binary_operation_1): Likewise.
8416 (simplify_const_relational_operation): Likewise.
8417 (simplify_ternary_operation): Likewise.
8418 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
8420 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8421 Alan Hayward <alan.hayward@arm.com>
8422 David Sherwood <david.sherwood@arm.com>
8424 * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
8425 * reload.c (push_reload): Likewise.
8426 (find_reloads): Likewise.
8428 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8429 Alan Hayward <alan.hayward@arm.com>
8430 David Sherwood <david.sherwood@arm.com>
8432 * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
8433 (make_compound_operation_int): Likewise.
8434 (change_zero_ext): Likewise.
8435 * expr.c (convert_move): Likewise.
8436 (convert_modes): Likewise.
8437 * fwprop.c (forward_propagate_subreg): Likewise.
8438 * loop-iv.c (get_biv_step_1): Likewise.
8439 * optabs.c (widen_operand): Likewise.
8440 * postreload.c (move2add_valid_value_p): Likewise.
8441 * recog.c (simplify_while_replacing): Likewise.
8442 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8443 (simplify_binary_operation_1): Likewise. Remove redundant
8444 mode equality check.
8446 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8447 Alan Hayward <alan.hayward@arm.com>
8448 David Sherwood <david.sherwood@arm.com>
8450 * combine.c (combine_simplify_rtx): Add checks for
8451 is_a <scalar_int_mode>.
8452 (simplify_if_then_else): Likewise.
8453 (make_field_assignment): Likewise.
8454 (simplify_comparison): Likewise.
8455 * ifcvt.c (noce_try_bitop): Likewise.
8456 * loop-invariant.c (canonicalize_address_mult): Likewise.
8457 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8459 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8460 Alan Hayward <alan.hayward@arm.com>
8461 David Sherwood <david.sherwood@arm.com>
8463 * gimple-fold.c (gimple_fold_builtin_memory_op): Use
8464 is_a <scalar_int_mode> instead of != BLKmode.
8466 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8467 Alan Hayward <alan.hayward@arm.com>
8468 David Sherwood <david.sherwood@arm.com>
8470 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
8471 instead of != VOIDmode.
8472 * combine.c (if_then_else_cond): Likewise.
8473 (change_zero_ext): Likewise.
8474 * dwarf2out.c (mem_loc_descriptor): Likewise.
8475 (loc_descriptor): Likewise.
8476 * rtlanal.c (canonicalize_condition): Likewise.
8477 * simplify-rtx.c (simplify_relational_operation_1): Likewise.
8479 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8480 Alan Hayward <alan.hayward@arm.com>
8481 David Sherwood <david.sherwood@arm.com>
8483 * simplify-rtx.c (simplify_binary_operation_1): Use
8484 is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
8486 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8487 Alan Hayward <alan.hayward@arm.com>
8488 David Sherwood <david.sherwood@arm.com>
8490 * wide-int.h (int_traits<unsigned char>) New class.
8491 (int_traits<unsigned short>) Likewise.
8492 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
8493 Use GET_MODE_UNIT_PRECISION and remove redundant test for
8495 * combine.c (set_nonzero_bits_and_sign_copies): Use
8496 is_a <scalar_int_mode>.
8497 (find_split_point): Likewise.
8498 (combine_simplify_rtx): Likewise.
8499 (simplify_logical): Likewise.
8500 (expand_compound_operation): Likewise.
8501 (expand_field_assignment): Likewise.
8502 (make_compound_operation): Likewise.
8503 (extended_count): Likewise.
8504 (change_zero_ext): Likewise.
8505 (simplify_comparison): Likewise.
8506 * dwarf2out.c (scompare_loc_descriptor): Likewise.
8507 (ucompare_loc_descriptor): Likewise.
8508 (minmax_loc_descriptor): Likewise.
8509 (mem_loc_descriptor): Likewise.
8510 (loc_descriptor): Likewise.
8511 * expmed.c (init_expmed_one_mode): Likewise.
8512 * lra-constraints.c (lra_constraint_offset): Likewise.
8513 * optabs.c (prepare_libcall_arg): Likewise.
8514 * postreload.c (move2add_note_store): Likewise.
8515 * reload.c (operands_match_p): Likewise.
8516 * rtl.h (load_extend_op): Likewise.
8517 * rtlhooks.c (gen_lowpart_general): Likewise.
8518 * simplify-rtx.c (simplify_truncation): Likewise.
8519 (simplify_unary_operation_1): Likewise.
8520 (simplify_binary_operation_1): Likewise.
8521 (simplify_const_binary_operation): Likewise.
8522 (simplify_const_relational_operation): Likewise.
8523 (simplify_subreg): Likewise.
8524 * stor-layout.c (bitwise_mode_for_mode): Likewise.
8525 * var-tracking.c (adjust_mems): Likewise.
8526 (prepare_call_arguments): Likewise.
8528 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8529 Alan Hayward <alan.hayward@arm.com>
8530 David Sherwood <david.sherwood@arm.com>
8532 * machmode.h (is_int_mode): New fuction.
8533 * combine.c (find_split_point): Use it.
8534 (combine_simplify_rtx): Likewise.
8535 (simplify_if_then_else): Likewise.
8536 (simplify_set): Likewise.
8537 (simplify_shift_const_1): Likewise.
8538 (simplify_comparison): Likewise.
8539 * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
8540 * cse.c (notreg_cost): Likewise.
8541 (cse_insn): Likewise.
8542 * cselib.c (cselib_lookup_1): Likewise.
8543 * dojump.c (do_jump_1): Likewise.
8544 (do_compare_rtx_and_jump): Likewise.
8545 * dse.c (get_call_args): Likewise.
8546 * dwarf2out.c (rtl_for_decl_init): Likewise.
8547 (native_encode_initializer): Likewise.
8548 * expmed.c (emit_store_flag_1): Likewise.
8549 (emit_store_flag): Likewise.
8550 * expr.c (convert_modes): Likewise.
8551 (store_field): Likewise.
8552 (expand_expr_real_1): Likewise.
8553 * fold-const.c (fold_read_from_constant_string): Likewise.
8554 * gimple-ssa-sprintf.c (get_format_string): Likewise.
8555 * optabs-libfuncs.c (gen_int_libfunc): Likewise.
8556 * optabs.c (expand_binop): Likewise.
8557 (expand_unop): Likewise.
8558 (expand_abs_nojump): Likewise.
8559 (expand_one_cmpl_abs_nojump): Likewise.
8560 * simplify-rtx.c (mode_signbit_p): Likewise.
8561 (val_signbit_p): Likewise.
8562 (val_signbit_known_set_p): Likewise.
8563 (val_signbit_known_clear_p): Likewise.
8564 (simplify_relational_operation_1): Likewise.
8565 * tree.c (vector_type_mode): Likewise.
8567 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8568 Alan Hayward <alan.hayward@arm.com>
8569 David Sherwood <david.sherwood@arm.com>
8571 * machmode.h (smallest_mode_for_size): Fix formatting.
8572 (smallest_int_mode_for_size): New function.
8573 * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
8574 instead of smallest_mode_for_size.
8575 * combine.c (make_extraction): Likewise.
8576 * config/arc/arc.c (arc_expand_movmem): Likewise.
8577 * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
8578 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
8579 * config/s390/s390.c (s390_expand_insv): Likewise.
8580 * config/sparc/sparc.c (assign_int_registers): Likewise.
8581 * config/spu/spu.c (spu_function_value): Likewise.
8582 (spu_function_arg): Likewise.
8583 * coverage.c (get_gcov_type): Likewise.
8584 (get_gcov_unsigned_t): Likewise.
8585 * dse.c (find_shift_sequence): Likewise.
8586 * expmed.c (store_bit_field_1): Likewise.
8587 * expr.c (convert_move): Likewise.
8588 (store_field): Likewise.
8589 * internal-fn.c (expand_arith_overflow): Likewise.
8590 * optabs-query.c (get_best_extraction_insn): Likewise.
8591 * optabs.c (expand_twoval_binop_libfunc): Likewise.
8592 * stor-layout.c (layout_type): Likewise.
8593 (initialize_sizetypes): Likewise.
8594 * targhooks.c (default_get_mask_mode): Likewise.
8595 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
8597 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8598 Alan Hayward <alan.hayward@arm.com>
8599 David Sherwood <david.sherwood@arm.com>
8601 * machmode.h (opt_mode::else_blk): New function.
8602 (int_mode_for_mode): Declare.
8603 * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
8604 * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
8606 * cfgexpand.c (expand_debug_expr): Likewise.
8607 * combine.c (gen_lowpart_or_truncate): Likewise.
8608 (gen_lowpart_for_combine): Likewise.
8609 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
8610 * config/avr/avr.c (avr_to_int_mode): Likewise.
8611 (avr_out_plus_1): Likewise.
8612 (avr_out_plus): Likewise.
8613 (avr_out_round): Likewise.
8614 * config/i386/i386.c (ix86_split_to_parts): Likewise.
8615 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
8616 (s390_expand_vcond): Likewise.
8617 * config/spu/spu.c (spu_split_immediate): Likewise.
8618 (spu_expand_mov): Likewise.
8619 * dse.c (get_stored_val): Likewise.
8620 * expmed.c (store_bit_field_1): Likewise.
8621 (convert_extracted_bit_field): Use int_mode_for_mode instead of
8623 (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
8624 (extract_low_bits): Likewise.
8625 * expr.c (emit_group_load_1): Likewise. Separate out the BLKmode
8626 handling rather than repeating the check.
8627 (emit_group_store): Likewise.
8628 (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
8629 * optabs.c (expand_absneg_bit): Likewise.
8630 (expand_copysign_absneg): Likewise.
8631 (expand_copysign_bit): Likewise.
8632 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
8633 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
8634 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
8635 * var-tracking.c (prepare_call_arguments): Likewise.
8636 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
8637 int_mode_for_mode instead of mode_for_size.
8638 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
8640 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8641 Alan Hayward <alan.hayward@arm.com>
8642 David Sherwood <david.sherwood@arm.com>
8644 * machmode.h (int_mode_for_size): New function.
8645 * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
8646 instead of mode_for_size.
8647 * calls.c (save_fixed_argument_area): Likewise. Make use of BLKmode
8649 * combine.c (expand_field_assignment): Use int_mode_for_size
8650 instead of mode_for_size.
8651 (make_extraction): Likewise.
8652 (simplify_shift_const_1): Likewise.
8653 (simplify_comparison): Likewise.
8654 * dojump.c (do_jump): Likewise.
8655 * dwarf2out.c (mem_loc_descriptor): Likewise.
8656 * emit-rtl.c (init_derived_machine_modes): Likewise.
8657 * expmed.c (flip_storage_order): Likewise.
8658 (convert_extracted_bit_field): Likewise.
8659 * expr.c (copy_blkmode_from_reg): Likewise.
8660 * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
8661 * internal-fn.c (expand_mul_overflow): Likewise.
8662 * lower-subreg.c (simple_move): Likewise.
8663 * optabs-libfuncs.c (init_optabs): Likewise.
8664 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8665 * tree.c (vector_type_mode): Likewise.
8666 * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
8667 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
8668 * tree-vect-generic.c (expand_vector_parallel): Likewise.
8669 * tree-vect-stmts.c (vectorizable_load): Likewise.
8670 (vectorizable_store): Likewise.
8672 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8673 Alan Hayward <alan.hayward@arm.com>
8674 David Sherwood <david.sherwood@arm.com>
8676 * coretypes.h (pod_mode): New type.
8677 (scalar_int_mode_pod): New typedef.
8678 * machmode.h (pod_mode): New class.
8679 (int_n_data_t::m): Change type to scalar_int_mode_pod.
8680 * genmodes.c (emit_mode_int_n): Update accordingly.
8681 * lower-subreg.h (target_lower_subreg): Change type to
8682 scalar_int_mode_pod.
8683 * gdbhooks.py (build_pretty_printer): Handle pod_mode and
8684 scalar_int_mode_pod.
8686 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8687 Alan Hayward <alan.hayward@arm.com>
8688 David Sherwood <david.sherwood@arm.com>
8690 * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
8691 machine_mode to scalar_int_mode.
8692 * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
8693 (rs6000_option_override_internal): Remove cast to int.
8694 * config/rs6000/rs6000.h (rs6000_pmode): Change type from
8695 machine_mode to scalar_int_mode.
8696 * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
8697 (rs6000_option_override_internal): Remove cast to int.
8698 * config/s390/s390.h (Pmode): Remove cast to machine_mode.
8699 * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
8701 * config/s390/s390.c (s390_expand_builtin): Likewise.
8702 * coretypes.h (scalar_int_mode): New type.
8703 (opt_scalar_int_mode): New typedef.
8704 * machmode.h (scalar_int_mode): New class.
8705 (scalar_int_mode::includes_p): New function.
8706 (byte_mode): Change type to scalar_int_mode.
8707 (word_mode): Likewise.
8708 (ptr_mode): Likewise.
8709 * emit-rtl.c (byte_mode): Likewise.
8710 (word_mode): Likewise.
8711 (ptr_mode): Likewise.
8712 (init_derived_machine_modes): Update accordingly.
8713 * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
8714 and MODE_PARTIAL_INT.
8715 * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
8716 opt_scalar_int_mode.
8718 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8719 Alan Hayward <alan.hayward@arm.com>
8720 David Sherwood <david.sherwood@arm.com>
8722 * target.def (libgcc_floating_mode_supported_p): Take a
8724 * doc/tm.texi: Regenerate.
8725 * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
8727 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
8728 * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
8731 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8732 Alan Hayward <alan.hayward@arm.com>
8733 David Sherwood <david.sherwood@arm.com>
8735 * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
8736 * doc/tm.texi: Regenerate.
8737 * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
8738 * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
8739 * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
8740 * targhooks.h (default_floatn_mode): Likewise.
8741 * targhooks.c (default_floatn_mode): Likewise.
8742 * tree.c (build_common_tree_nodes): Update accordingly.
8744 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8745 Alan Hayward <alan.hayward@arm.com>
8746 David Sherwood <david.sherwood@arm.com>
8748 * machmode.h (mode_iterator::start): Provide overload for opt_modes.
8749 (mode_iterator::iterate_p): Likewise.
8750 (mode_iterator::get_wider): Likewise.
8751 * expr.c (init_expr_target): Use opt_scalar_float_mode.
8753 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8754 Alan Hayward <alan.hayward@arm.com>
8755 David Sherwood <david.sherwood@arm.com>
8757 * coretypes.h (opt_scalar_float_mode): New typedef.
8758 * machmode.h (float_mode_for_size): New function.
8759 * emit-rtl.c (double_mode): Delete.
8760 (init_emit_once): Use float_mode_for_size.
8761 * stor-layout.c (layout_type): Likewise.
8762 * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
8764 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8765 Alan Hayward <alan.hayward@arm.com>
8766 David Sherwood <david.sherwood@arm.com>
8768 * output.h (assemble_real): Take a scalar_float_mode.
8769 * config/arm/arm.c (arm_assemble_integer): Update accordingly.
8770 * config/arm/arm.md (consttable_4): Likewise.
8771 (consttable_8): Likewise.
8772 (consttable_16): Likewise.
8773 * config/mips/mips.md (consttable_float): Likewise.
8774 * config/s390/s390.c (s390_output_pool_entry): Likewise.
8775 * varasm.c (assemble_real): Take a scalar_float_mode.
8776 (output_constant_pool_2): Update accordingly.
8777 (output_constant): Likewise.
8779 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8780 Alan Hayward <alan.hayward@arm.com>
8781 David Sherwood <david.sherwood@arm.com>
8783 * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
8784 * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
8785 * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
8786 (native_encode_real): Likewise.
8787 (native_interpret_real): Likewise.
8788 * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
8789 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
8791 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8792 Alan Hayward <alan.hayward@arm.com>
8793 David Sherwood <david.sherwood@arm.com>
8795 * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
8796 <scalar_float_mode>. Simplify.
8797 (gen_extend_conv_libfunc): Likewise.
8799 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8800 Alan Hayward <alan.hayward@arm.com>
8801 David Sherwood <david.sherwood@arm.com>
8803 * coretypes.h (scalar_float_mode): New type.
8804 * machmode.h (mode_traits::from_int): Use machine_mode if
8805 USE_ENUM_MODES is defined.
8806 (is_a): New function.
8808 (dyn_cast): Likewise.
8809 (scalar_float_mode): New class.
8810 (scalar_float_mode::includes_p): New function.
8811 (is_float_mode): Likewise.
8812 * gdbhooks.py (MachineModePrinter): New class.
8813 (build_pretty_printer): Use it for scalar_float_mode.
8814 * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
8815 (format_helper::format_helper): Turn into a template.
8816 * genmodes.c (get_mode_class): New function.
8817 (emit_insn_modes_h): Give modes the class returned by get_mode_class,
8818 or machine_mode if none.
8819 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
8820 as_a <scalar_float_mode>.
8821 * dwarf2out.c (mem_loc_descriptor): Likewise.
8822 (insert_float): Likewise.
8823 (add_const_value_attribute): Likewise.
8824 * simplify-rtx.c (simplify_immed_subreg): Likewise.
8825 * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
8826 (expand_unop): Update accordingly.
8827 (expand_abs_nojump): Likewise.
8828 (expand_copysign_absneg): Take a scalar_float_mode.
8829 (expand_copysign_bit): Likewise.
8830 (expand_copysign): Update accordingly.
8832 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8833 Alan Hayward <alan.hayward@arm.com>
8834 David Sherwood <david.sherwood@arm.com>
8836 * coretypes.h (opt_mode): New class.
8837 * machmode.h (opt_mode): Likewise.
8838 (opt_mode::else_void): New function.
8839 (opt_mode::require): Likewise.
8840 (opt_mode::exists): Likewise.
8841 (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
8842 (GET_MODE_2XWIDER_MODE): Likewise.
8843 (mode_iterator::get_wider): Update accordingly.
8844 (mode_iterator::get_2xwider): Likewise.
8845 (mode_iterator::get_known_wider): Likewise, turning into a template.
8846 * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
8847 forcing a wider mode to exist.
8848 * config/cr16/cr16.h (LONG_REG_P): Likewise.
8849 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
8850 * config/c6x/c6x.c (c6x_rtx_costs): Update use of
8851 GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
8852 * lower-subreg.c (init_lower_subreg): Likewise.
8853 * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
8854 on the final iteration.
8855 * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
8856 a wider mode exists before asking for a move pattern.
8857 (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
8858 forcing a wider mode to exist.
8859 (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
8860 returning false if no such mode exists.
8861 * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
8862 * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
8863 * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
8864 Avoid checking for a MODE_INT if we already know the mode is not a
8866 (extract_high_half): Update use of GET_MODE_WIDER_MODE,
8867 forcing a wider mode to exist.
8868 (expmed_mult_highpart_optab): Likewise.
8869 (expmed_mult_highpart): Likewise.
8870 * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
8872 * lto-streamer-in.c (lto_input_mode_table): Likewise.
8873 * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
8874 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
8875 * internal-fn.c (expand_mul_overflow): Update use of
8876 GET_MODE_2XWIDER_MODE.
8877 * omp-low.c (omp_clause_aligned_alignment): Likewise.
8878 * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
8879 GET_MODE_WIDER_MODE.
8880 (convert_plusminus_to_widen): Likewise.
8881 * tree-switch-conversion.c (array_value_type): Likewise.
8882 * var-tracking.c (emit_note_insn_var_location): Likewise.
8883 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
8884 Return false inside rather than outside the loop if no wider mode
8886 * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
8887 and GET_MODE_2XWIDER_MODE
8888 (can_compare_p): Use else_void.
8889 * gdbhooks.py (OptMachineModePrinter): New class.
8890 (build_pretty_printer): Use it for opt_mode.
8892 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8893 Alan Hayward <alan.hayward@arm.com>
8894 David Sherwood <david.sherwood@arm.com>
8896 * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
8897 once. Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
8899 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8900 Alan Hayward <alan.hayward@arm.com>
8901 David Sherwood <david.sherwood@arm.com>
8903 * machmode.h (mode_traits): New structure.
8904 (get_narrowest_mode): New function.
8905 (mode_iterator::start): Likewise.
8906 (mode_iterator::iterate_p): Likewise.
8907 (mode_iterator::get_wider): Likewise.
8908 (mode_iterator::get_known_wider): Likewise.
8909 (mode_iterator::get_2xwider): Likewise.
8910 (FOR_EACH_MODE_IN_CLASS): New mode iterator.
8911 (FOR_EACH_MODE): Likewise.
8912 (FOR_EACH_MODE_FROM): Likewise.
8913 (FOR_EACH_MODE_UNTIL): Likewise.
8914 (FOR_EACH_WIDER_MODE): Likewise.
8915 (FOR_EACH_2XWIDER_MODE): Likewise.
8916 * builtins.c (expand_builtin_strlen): Use new mode iterators.
8917 * combine.c (simplify_comparison): Likewise
8918 * config/i386/i386.c (type_natural_mode): Likewise.
8919 * cse.c (cse_insn): Likewise.
8920 * dse.c (find_shift_sequence): Likewise.
8921 * emit-rtl.c (init_derived_machine_modes): Likewise.
8922 (init_emit_once): Likewise.
8923 * explow.c (hard_function_value): Likewise.
8924 * expmed.c (extract_fixed_bit_field_1): Likewise.
8925 (extract_bit_field_1): Likewise.
8926 (expand_divmod): Likewise.
8927 (emit_store_flag_1): Likewise.
8928 * expr.c (init_expr_target): Likewise.
8929 (convert_move): Likewise.
8930 (alignment_for_piecewise_move): Likewise.
8931 (widest_int_mode_for_size): Likewise.
8932 (emit_block_move_via_movmem): Likewise.
8933 (copy_blkmode_to_reg): Likewise.
8934 (set_storage_via_setmem): Likewise.
8935 (compress_float_constant): Likewise.
8936 * omp-low.c (omp_clause_aligned_alignment): Likewise.
8937 * optabs-query.c (get_best_extraction_insn): Likewise.
8938 * optabs.c (expand_binop): Likewise.
8939 (expand_twoval_unop): Likewise.
8940 (expand_twoval_binop): Likewise.
8941 (widen_leading): Likewise.
8942 (widen_bswap): Likewise.
8943 (expand_parity): Likewise.
8944 (expand_unop): Likewise.
8945 (prepare_cmp_insn): Likewise.
8946 (prepare_float_lib_cmp): Likewise.
8947 (expand_float): Likewise.
8948 (expand_fix): Likewise.
8949 (expand_sfix_optab): Likewise.
8950 * postreload.c (move2add_use_add2_insn): Likewise.
8951 * reg-stack.c (reg_to_stack): Likewise.
8952 * reginfo.c (choose_hard_reg_mode): Likewise.
8953 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
8954 * stor-layout.c (mode_for_size): Likewise.
8955 (smallest_mode_for_size): Likewise.
8956 (mode_for_vector): Likewise.
8957 (finish_bitfield_representative): Likewise.
8958 * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
8959 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
8960 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8961 * var-tracking.c (prepare_call_arguments): Likewise.
8963 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8964 Alan Hayward <alan.hayward@arm.com>
8965 David Sherwood <david.sherwood@arm.com>
8967 * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
8968 * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
8969 USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
8970 * machmode.h (mode_size): Move earlier in file.
8971 (mode_precision): Likewise.
8972 (mode_inner): Likewise.
8973 (mode_nunits): Likewise.
8974 (mode_unit_size): Likewise.
8975 (unit_unit_precision): Likewise.
8976 (mode_wider): Likewise.
8977 (mode_2xwider): Likewise.
8978 (machine_mode): New class.
8979 (mode_to_bytes): New function.
8980 (mode_to_bits): Likewise.
8981 (mode_to_precision): Likewise.
8982 (mode_to_inner): Likewise.
8983 (mode_to_unit_size): Likewise.
8984 (mode_to_unit_precision): Likewise.
8985 (mode_to_nunits): Likewise.
8986 (GET_MODE_SIZE): Use mode_to_bytes.
8987 (GET_MODE_BITSIZE): Use mode_to_bits.
8988 (GET_MODE_PRECISION): Use mode_to_precision.
8989 (GET_MODE_INNER): Use mode_to_inner.
8990 (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
8991 (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
8992 (GET_MODE_NUNITS): Use mode_to_nunits.
8993 * system.h (ALWAYS_INLINE): New macro.
8994 * config/powerpcspe/powerpcspe-c.c
8995 (altivec_resolve_overloaded_builtin): Use machine_mode instead of
8996 int for arg1_mode and arg2_mode.
8998 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8999 Alan Hayward <alan.hayward@arm.com>
9000 David Sherwood <david.sherwood@arm.com>
9002 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
9003 Prefix mode names with E_ in case statements.
9004 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9005 * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
9006 (aarch64_split_simd_move): Likewise.
9007 (aarch64_gen_storewb_pair): Likewise.
9008 (aarch64_gen_loadwb_pair): Likewise.
9009 (aarch64_gen_store_pair): Likewise.
9010 (aarch64_gen_load_pair): Likewise.
9011 (aarch64_get_condition_code_1): Likewise.
9012 (aarch64_constant_pool_reload_icode): Likewise.
9013 (get_rsqrte_type): Likewise.
9014 (get_rsqrts_type): Likewise.
9015 (get_recpe_type): Likewise.
9016 (get_recps_type): Likewise.
9017 (aarch64_gimplify_va_arg_expr): Likewise.
9018 (aarch64_simd_container_mode): Likewise.
9019 (aarch64_emit_load_exclusive): Likewise.
9020 (aarch64_emit_store_exclusive): Likewise.
9021 (aarch64_expand_compare_and_swap): Likewise.
9022 (aarch64_gen_atomic_cas): Likewise.
9023 (aarch64_emit_bic): Likewise.
9024 (aarch64_emit_atomic_swap): Likewise.
9025 (aarch64_emit_atomic_load_op): Likewise.
9026 (aarch64_evpc_trn): Likewise.
9027 (aarch64_evpc_uzp): Likewise.
9028 (aarch64_evpc_zip): Likewise.
9029 (aarch64_evpc_ext): Likewise.
9030 (aarch64_evpc_rev): Likewise.
9031 (aarch64_evpc_dup): Likewise.
9032 (aarch64_gen_ccmp_first): Likewise.
9033 (aarch64_gen_ccmp_next): Likewise.
9034 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
9035 (alpha_emit_xfloating_libcall): Likewise.
9036 (emit_insxl): Likewise.
9037 (alpha_arg_type): Likewise.
9038 * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
9039 (arc_preferred_simd_mode): Likewise.
9040 (arc_secondary_reload): Likewise.
9041 (get_arc_condition_code): Likewise.
9042 (arc_print_operand): Likewise.
9043 (arc_legitimate_constant_p): Likewise.
9044 * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9045 * config/arc/arc.md (casesi_load): Likewise.
9046 (casesi_compact_jump): Likewise.
9047 * config/arc/predicates.md (proper_comparison_operator): Likewise.
9048 (cc_use_register): Likewise.
9049 * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9050 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
9051 (arm_init_iwmmxt_builtins): Likewise.
9052 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
9053 (neon_expand_vector_init): Likewise.
9054 (arm_attr_length_move_neon): Likewise.
9055 (maybe_get_arm_condition_code): Likewise.
9056 (arm_emit_vector_const): Likewise.
9057 (arm_preferred_simd_mode): Likewise.
9058 (arm_output_iwmmxt_tinsr): Likewise.
9059 (thumb1_output_casesi): Likewise.
9060 (thumb2_output_casesi): Likewise.
9061 (arm_emit_load_exclusive): Likewise.
9062 (arm_emit_store_exclusive): Likewise.
9063 (arm_expand_compare_and_swap): Likewise.
9064 (arm_evpc_neon_vuzp): Likewise.
9065 (arm_evpc_neon_vzip): Likewise.
9066 (arm_evpc_neon_vrev): Likewise.
9067 (arm_evpc_neon_vtrn): Likewise.
9068 (arm_evpc_neon_vext): Likewise.
9069 (arm_validize_comparison): Likewise.
9070 * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
9071 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
9072 * config/avr/avr.c (avr_rtx_costs_1): Likewise.
9073 * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
9074 (c6x_preferred_simd_mode): Likewise.
9075 * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
9076 (epiphany_rtx_costs): Likewise.
9077 * config/epiphany/predicates.md (proper_comparison_operator):
9079 * config/frv/frv.c (condexec_memory_operand): Likewise.
9080 (frv_emit_move): Likewise.
9081 (output_move_single): Likewise.
9082 (output_condmove_single): Likewise.
9083 (frv_hard_regno_mode_ok): Likewise.
9084 (frv_matching_accg_mode): Likewise.
9085 * config/h8300/h8300.c (split_adds_subs): Likewise.
9086 (h8300_rtx_costs): Likewise.
9087 (h8300_print_operand): Likewise.
9088 (compute_mov_length): Likewise.
9089 (output_logical_op): Likewise.
9090 (compute_logical_op_length): Likewise.
9091 (compute_logical_op_cc): Likewise.
9092 (h8300_shift_needs_scratch_p): Likewise.
9093 (output_a_shift): Likewise.
9094 (compute_a_shift_length): Likewise.
9095 (compute_a_shift_cc): Likewise.
9096 (expand_a_rotate): Likewise.
9097 (output_a_rotate): Likewise.
9098 * config/i386/i386.c (classify_argument): Likewise.
9099 (function_arg_advance_32): Likewise.
9100 (function_arg_32): Likewise.
9101 (function_arg_64): Likewise.
9102 (function_value_64): Likewise.
9103 (ix86_gimplify_va_arg): Likewise.
9104 (ix86_legitimate_constant_p): Likewise.
9105 (put_condition_code): Likewise.
9106 (split_double_mode): Likewise.
9107 (ix86_avx256_split_vector_move_misalign): Likewise.
9108 (ix86_expand_vector_logical_operator): Likewise.
9109 (ix86_split_idivmod): Likewise.
9110 (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
9111 (ix86_build_const_vector): Likewise.
9112 (ix86_build_signbit_mask): Likewise.
9113 (ix86_match_ccmode): Likewise.
9114 (ix86_cc_modes_compatible): Likewise.
9115 (ix86_expand_branch): Likewise.
9116 (ix86_expand_sse_cmp): Likewise.
9117 (ix86_expand_sse_movcc): Likewise.
9118 (ix86_expand_int_sse_cmp): Likewise.
9119 (ix86_expand_vec_perm_vpermi2): Likewise.
9120 (ix86_expand_vec_perm): Likewise.
9121 (ix86_expand_sse_unpack): Likewise.
9122 (ix86_expand_int_addcc): Likewise.
9123 (ix86_split_to_parts): Likewise.
9124 (ix86_vectorize_builtin_gather): Likewise.
9125 (ix86_vectorize_builtin_scatter): Likewise.
9126 (avx_vpermilp_parallel): Likewise.
9127 (inline_memory_move_cost): Likewise.
9128 (ix86_tieable_integer_mode_p): Likewise.
9129 (x86_maybe_negate_const_int): Likewise.
9130 (ix86_expand_vector_init_duplicate): Likewise.
9131 (ix86_expand_vector_init_one_nonzero): Likewise.
9132 (ix86_expand_vector_init_one_var): Likewise.
9133 (ix86_expand_vector_init_concat): Likewise.
9134 (ix86_expand_vector_init_interleave): Likewise.
9135 (ix86_expand_vector_init_general): Likewise.
9136 (ix86_expand_vector_set): Likewise.
9137 (ix86_expand_vector_extract): Likewise.
9138 (emit_reduc_half): Likewise.
9139 (ix86_emit_i387_round): Likewise.
9140 (ix86_mangle_type): Likewise.
9141 (ix86_expand_round_sse4): Likewise.
9142 (expand_vec_perm_blend): Likewise.
9143 (canonicalize_vector_int_perm): Likewise.
9144 (ix86_expand_vec_one_operand_perm_avx512): Likewise.
9145 (expand_vec_perm_1): Likewise.
9146 (expand_vec_perm_interleave3): Likewise.
9147 (expand_vec_perm_even_odd_pack): Likewise.
9148 (expand_vec_perm_even_odd_1): Likewise.
9149 (expand_vec_perm_broadcast_1): Likewise.
9150 (ix86_vectorize_vec_perm_const_ok): Likewise.
9151 (ix86_expand_vecop_qihi): Likewise.
9152 (ix86_expand_mul_widen_hilo): Likewise.
9153 (ix86_expand_sse2_abs): Likewise.
9154 (ix86_expand_pextr): Likewise.
9155 (ix86_expand_pinsr): Likewise.
9156 (ix86_preferred_simd_mode): Likewise.
9157 (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
9158 * config/i386/sse.md (*andnot<mode>3): Likewise.
9159 (<mask_codefor><code><mode>3<mask_name>): Likewise.
9160 (*<code><mode>3): Likewise.
9161 * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
9162 (ia64_expand_atomic_op): Likewise.
9163 (ia64_arg_type): Likewise.
9164 (ia64_mode_to_int): Likewise.
9165 (ia64_scalar_mode_supported_p): Likewise.
9166 (ia64_vector_mode_supported_p): Likewise.
9167 (expand_vec_perm_broadcast): Likewise.
9168 * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
9169 (iq2000_function_arg_advance): Likewise.
9170 (iq2000_function_arg): Likewise.
9171 * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
9172 * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
9173 (m68k_libcall_value): Likewise.
9174 (m68k_function_value): Likewise.
9175 (sched_attr_op_type): Likewise.
9176 * config/mcore/mcore.c (mcore_output_move): Likewise.
9177 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
9179 (microblaze_function_arg): Likewise.
9180 * config/mips/mips.c (mips16_build_call_stub): Likewise.
9181 (mips_print_operand): Likewise.
9182 (mips_mode_ok_for_mov_fmt_p): Likewise.
9183 (mips_vector_mode_supported_p): Likewise.
9184 (mips_preferred_simd_mode): Likewise.
9185 (mips_expand_vpc_loongson_even_odd): Likewise.
9186 (mips_expand_vec_unpack): Likewise.
9187 (mips_expand_vi_broadcast): Likewise.
9188 (mips_expand_vector_init): Likewise.
9189 (mips_expand_vec_reduc): Likewise.
9190 (mips_expand_msa_cmp): Likewise.
9191 * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
9192 * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
9193 (cc_flags_for_mode): Likewise.
9194 * config/msp430/msp430.c (msp430_print_operand): Likewise.
9195 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
9196 (nds32_output_casesi_pc_relative): Likewise.
9197 * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9198 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
9199 (nvptx_gen_unpack): Likewise.
9200 (nvptx_gen_pack): Likewise.
9201 (nvptx_gen_shuffle): Likewise.
9202 (nvptx_gen_wcast): Likewise.
9203 (nvptx_preferred_simd_mode): Likewise.
9204 * config/pa/pa.c (pa_secondary_reload): Likewise.
9205 * config/pa/predicates.md (base14_operand): Likewise.
9206 * config/powerpcspe/powerpcspe-c.c
9207 (altivec_resolve_overloaded_builtin): Likewise.
9208 * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
9210 (rs6000_preferred_simd_mode): Likewise.
9211 (output_vec_const_move): Likewise.
9212 (rs6000_expand_vector_extract): Likewise.
9213 (rs6000_split_vec_extract_var): Likewise.
9214 (reg_offset_addressing_ok_p): Likewise.
9215 (rs6000_legitimate_offset_address_p): Likewise.
9216 (rs6000_legitimize_address): Likewise.
9217 (rs6000_emit_set_const): Likewise.
9218 (rs6000_const_vec): Likewise.
9219 (rs6000_emit_move): Likewise.
9220 (spe_build_register_parallel): Likewise.
9221 (rs6000_darwin64_record_arg_recurse): Likewise.
9222 (swap_selector_for_mode): Likewise.
9223 (spe_init_builtins): Likewise.
9224 (paired_init_builtins): Likewise.
9225 (altivec_init_builtins): Likewise.
9226 (do_load_for_compare): Likewise.
9227 (rs6000_generate_compare): Likewise.
9228 (rs6000_expand_float128_convert): Likewise.
9229 (emit_load_locked): Likewise.
9230 (emit_store_conditional): Likewise.
9231 (rs6000_output_function_epilogue): Likewise.
9232 (rs6000_handle_altivec_attribute): Likewise.
9233 (rs6000_function_value): Likewise.
9234 (emit_fusion_gpr_load): Likewise.
9235 (emit_fusion_p9_load): Likewise.
9236 (emit_fusion_p9_store): Likewise.
9237 * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
9238 (fusion_gpr_mem_load): Likewise.
9239 (fusion_addis_mem_combo_load): Likewise.
9240 (fusion_addis_mem_combo_store): Likewise.
9241 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
9242 (fusion_gpr_mem_load): Likewise.
9243 (fusion_addis_mem_combo_load): Likewise.
9244 (fusion_addis_mem_combo_store): Likewise.
9245 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9247 * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
9248 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
9249 (rs6000_preferred_simd_mode): Likewise.
9250 (output_vec_const_move): Likewise.
9251 (rs6000_expand_vector_extract): Likewise.
9252 (rs6000_split_vec_extract_var): Likewise.
9253 (reg_offset_addressing_ok_p): Likewise.
9254 (rs6000_legitimate_offset_address_p): Likewise.
9255 (rs6000_legitimize_address): Likewise.
9256 (rs6000_emit_set_const): Likewise.
9257 (rs6000_const_vec): Likewise.
9258 (rs6000_emit_move): Likewise.
9259 (rs6000_darwin64_record_arg_recurse): Likewise.
9260 (swap_selector_for_mode): Likewise.
9261 (paired_init_builtins): Likewise.
9262 (altivec_init_builtins): Likewise.
9263 (rs6000_expand_float128_convert): Likewise.
9264 (emit_load_locked): Likewise.
9265 (emit_store_conditional): Likewise.
9266 (rs6000_output_function_epilogue): Likewise.
9267 (rs6000_handle_altivec_attribute): Likewise.
9268 (rs6000_function_value): Likewise.
9269 (emit_fusion_gpr_load): Likewise.
9270 (emit_fusion_p9_load): Likewise.
9271 (emit_fusion_p9_store): Likewise.
9272 * config/rx/rx.c (rx_gen_move_template): Likewise.
9273 (flags_from_mode): Likewise.
9274 * config/s390/predicates.md (s390_alc_comparison): Likewise.
9275 (s390_slb_comparison): Likewise.
9276 * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
9277 (s390_vector_mode_supported_p): Likewise.
9278 (s390_cc_modes_compatible): Likewise.
9279 (s390_match_ccmode_set): Likewise.
9280 (s390_canonicalize_comparison): Likewise.
9281 (s390_emit_compare_and_swap): Likewise.
9282 (s390_branch_condition_mask): Likewise.
9283 (s390_rtx_costs): Likewise.
9284 (s390_secondary_reload): Likewise.
9285 (__SECONDARY_RELOAD_CASE): Likewise.
9286 (s390_expand_cs): Likewise.
9287 (s390_preferred_simd_mode): Likewise.
9288 * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
9289 * config/sh/sh.c (sh_print_operand): Likewise.
9290 (dump_table): Likewise.
9291 (sh_secondary_reload): Likewise.
9292 * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9293 * config/sh/sh.md (casesi_worker_1): Likewise.
9294 (casesi_worker_2): Likewise.
9295 * config/sparc/predicates.md (icc_comparison_operator): Likewise.
9296 (fcc_comparison_operator): Likewise.
9297 * config/sparc/sparc.c (sparc_expand_move): Likewise.
9298 (emit_soft_tfmode_cvt): Likewise.
9299 (sparc_preferred_simd_mode): Likewise.
9300 (output_cbranch): Likewise.
9301 (sparc_print_operand): Likewise.
9302 (sparc_expand_vec_perm_bmask): Likewise.
9303 (vector_init_bshuffle): Likewise.
9304 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
9305 (spu_vector_mode_supported_p): Likewise.
9306 (spu_expand_insv): Likewise.
9307 (spu_emit_branch_or_set): Likewise.
9308 (spu_handle_vector_attribute): Likewise.
9309 (spu_builtin_splats): Likewise.
9310 (spu_builtin_extract): Likewise.
9311 (spu_builtin_promote): Likewise.
9312 (spu_expand_sign_extend): Likewise.
9313 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
9314 (tilegx_simd_int): Likewise.
9315 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
9316 (tilepro_simd_int): Likewise.
9317 * config/v850/v850.c (const_double_split): Likewise.
9318 (v850_print_operand): Likewise.
9319 (ep_memory_offset): Likewise.
9320 * config/vax/vax.c (vax_rtx_costs): Likewise.
9321 (vax_output_int_move): Likewise.
9322 (vax_output_int_add): Likewise.
9323 (vax_output_int_subtract): Likewise.
9324 * config/visium/predicates.md (visium_branch_operator): Likewise.
9325 * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
9326 (visium_print_operand_address): Likewise.
9327 * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9328 * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
9329 (xtensa_expand_conditional_branch): Likewise.
9330 (xtensa_copy_incoming_a7): Likewise.
9331 (xtensa_output_literal): Likewise.
9332 * dfp.c (decimal_real_maxval): Likewise.
9333 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
9335 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9336 Alan Hayward <alan.hayward@arm.com>
9337 David Sherwood <david.sherwood@arm.com>
9339 * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
9340 (mode_nunits_inline): Likewise.
9341 (mode_inner_inline): Likewise.
9342 (mode_unit_size_inline): Likewise.
9343 (mode_unit_precision_inline): Likewise.
9344 (emit_insn_modes_h): Likewise. Also emit a #define of the
9346 (emit_mode_wider): Add an E_ prefix to mode names.
9347 (emit_mode_complex): Likewise.
9348 (emit_mode_inner): Likewise.
9349 (emit_mode_adjustments): Likewise.
9350 (emit_mode_int_n): Likewise.
9351 * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
9352 (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
9353 (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
9354 (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
9355 (CRC32_BUILTIN, ENTRY): Likewise.
9356 * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
9357 (aarch64_pop_regs): Likewise.
9358 (aarch64_process_components): Likewise.
9359 * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
9360 * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
9361 (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
9362 (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
9363 * config/arm/arm.c (arm_init_libfuncs): Likewise.
9364 * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
9366 * config/i386/i386-builtin.def (pcmpestr): Likewise.
9367 (pcmpistr): Likewise.
9368 * config/microblaze/microblaze.c (double_memory_operand): Likewise.
9369 * config/mmix/mmix.c (mmix_output_condition): Likewise.
9370 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
9372 * config/rl78/rl78.c (mduc_regs): Likewise.
9373 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
9374 (htm_expand_builtin): Likewise.
9375 * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
9376 * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
9377 * config/xtensa/xtensa.c (print_operand): Likewise.
9378 * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
9379 (NUM_MODE_VECTOR_INT): Likewise.
9380 * genoutput.c (null_operand): Likewise.
9381 (output_operand_data): Likewise.
9382 * genrecog.c (print_parameter_value): Likewise.
9383 * lra.c (debug_operand_data): Likewise.
9385 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9387 * dwarf2out.c (scompare_loc_descriptor_wide)
9388 (scompare_loc_descriptor_narrow): New functions, split out from...
9389 (scompare_loc_descriptor): ...here.
9390 * expmed.c (emit_store_flag_int): New function, split out from...
9391 (emit_store_flag): ...here.
9393 2017-08-30 Richard Biener <rguenther@suse.de>
9395 * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
9396 (dwarf2out_early_finish): Move setting of AT_pubnames from
9397 early debug output to early finish.
9399 2017-08-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
9401 * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
9402 and -mdata-region to the assembler.
9404 2017-08-30 Richard Biener <rguenther@suse.de>
9406 * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
9408 (gen_subprogram_die): Add DW_AT_object_pointer only early.
9409 (dwarf2out_early_global_decl): Only generate a DIE for the
9410 abstract origin if it doesn't already exist or is a declaration DIE.
9411 (resolve_addr): Do not add the linkage name twice when
9412 generating a stub DIE for the DW_TAG_GNU_call_site target.
9414 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9416 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9417 Use machine_mode rather than int for arg1_mode.
9419 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
9422 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
9423 that the second argument of the built-in functions to unpack
9424 128-bit scalar types to 64-bit values is 0 or 1. Change to use a
9425 switch statement instead a lot of if statements.
9426 * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
9427 Allow 64-bit values to be in Altivec registers as well as
9428 traditional floating point registers.
9429 (pack<mode>, FMOVE128_VSX iterator): Likewise.
9431 2017-08-29 Alexander Monakov <amonakov@ispras.ru>
9433 * ira-costs.c (record_address_regs): Handle both operands of PLUS for
9434 MAX_REGS_PER_ADDRESS == 1.
9436 2017-08-29 Uros Bizjak <ubizjak@gmail.com>
9438 * config/i386/i386.opt (flag_fentry): Do not init to -1.
9439 * config/i386/i386.c (ix86_option_override_internal): Simplify
9440 setting of opts->x_flag_entry.
9442 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9443 Jakub Jelinek <jakub@redhat.com>
9444 Richard Biener <rguenther@suse.de>
9446 PR tree-optimization/81503
9447 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
9448 folded constant fits in the target type; reorder tests for clarity.
9450 2017-08-29 Martin Liska <mliska@suse.cz>
9452 * passes.def: Include pass_lower_switch.
9453 * stmt.c (dump_case_nodes): Remove and move to
9454 tree-switch-conversion.
9455 (case_values_threshold): Likewise.
9456 (expand_switch_as_decision_tree_p): Likewise.
9457 (emit_case_decision_tree): Likewise.
9458 (expand_case): Likewise.
9459 (balance_case_nodes): Likewise.
9460 (node_has_low_bound): Likewise.
9461 (node_has_high_bound): Likewise.
9462 (node_is_bounded): Likewise.
9463 (emit_case_nodes): Likewise.
9464 (struct simple_case_node): New struct.
9465 (add_case_node): Remove.
9466 (emit_case_dispatch_table): Use vector instead of case_list.
9467 (reset_out_edges_aux): Remove.
9468 (compute_cases_per_edge): Likewise.
9469 (expand_case): Build list of simple_case_node.
9470 (expand_sjlj_dispatch_table): Use it.
9471 * tree-switch-conversion.c (struct case_node): Moved from
9472 stmt.c and adjusted.
9473 (emit_case_nodes): Likewise.
9474 (node_has_low_bound): Likewise.
9475 (node_has_high_bound): Likewise.
9476 (node_is_bounded): Likewise.
9477 (case_values_threshold): Likewise.
9478 (reset_out_edges_aux): Likewise.
9479 (compute_cases_per_edge): Likewise.
9480 (add_case_node): Likewise.
9481 (dump_case_nodes): Likewise.
9482 (balance_case_nodes): Likewise.
9483 (expand_switch_as_decision_tree_p): Likewise.
9484 (emit_jump): Likewise.
9485 (emit_case_decision_tree): Likewise.
9486 (try_switch_expansion): Likewise.
9487 (do_jump_if_equal): Likewise.
9488 (emit_cmp_and_jump_insns): Likewise.
9489 (fix_phi_operands_for_edge): New function.
9490 (record_phi_operand_mapping): Likewise.
9491 (class pass_lower_switch): New pass.
9492 (pass_lower_switch::execute): New function.
9493 (make_pass_lower_switch): Likewise.
9494 (conditional_probability):
9495 * timevar.def: Add TV_TREE_SWITCH_LOWERING.
9496 * tree-pass.h: Add make_pass_lower_switch.
9498 2017-08-29 Jozef Lawrynowicz <jozef.l@somniumtech.com>
9501 * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
9504 2017-08-29 Richard Biener <rguenther@suse.de>
9506 * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
9507 we do not add a DW_AT_inline attribute twice.
9508 (gen_subprogram_die): Remove code setting DW_AT_inline on
9509 DECL_ABSTRACT_P nodes.
9511 2017-08-29 Richard Sandiford <richard.sandiford@linaro.org>
9513 * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
9514 calls to internal functions.
9515 (gimplify_modify_expr): Likewise.
9516 * tree-call-cdce.c (use_internal_fn): Likewise.
9517 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
9518 (convert_to_divmod): Set the nothrow flag.
9519 * tree-if-conv.c (predicate_mem_writes): Likewise.
9520 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
9521 (vectorizable_call): Likewise.
9522 (vectorizable_store): Likewise.
9523 (vectorizable_load): Likewise.
9524 * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
9525 (vect_recog_mask_conversion_pattern): Likewise.
9527 2017-08-29 Martin Liska <mliska@suse.cz>
9530 * gcc.c (driver_handle_option): Add new argument.
9531 * opts-common.c (handle_option): Pass
9532 target_option_override_hook.
9533 * opts-global.c (lang_handle_option): Add new option.
9534 (set_default_handlers): Add new argument.
9535 (decode_options): Likewise.
9536 * opts.c (target_handle_option): Likewise.
9537 (common_handle_option): Call target_option_override_hook.
9538 * opts.h (struct cl_option_handler_func): Add hook for
9539 target option override.
9540 (struct cl_option_handlers): Likewise.
9541 (set_default_handlers): Add new argument.
9542 (decode_options): Likewise.
9543 (common_handle_option): Likewise.
9544 (target_handle_option): Likewise.
9545 * toplev.c (toplev::main): Pass targetm.target_option.override
9548 2017-08-29 Richard Biener <rguenther@suse.de>
9549 Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
9551 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
9552 life to the active subtree.
9554 2017-08-28 Jeff Law <law@redhat.com>
9556 * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
9557 derive_equivalences.
9558 (derive_equivalences_from_bit_ior, record_temporary_equivalences):
9560 (edge_info::derive_equivalences): New private member function
9562 * tree-ssa-dom.c (class edge_info): Changed from a struct
9563 to a class. Add ctor/dtor, methods and data members.
9564 (edge_info::edge_info): Renamed from allocate_edge_info.
9565 Initialize additional members.
9566 (edge_info::~edge_info): New.
9567 (free_dom_edge_info): Delete the edge info.
9568 (record_edge_info): Use new class & associated member functions.
9569 Tighten forms for testing for edge equivalences.
9570 (record_temporary_equivalences): Iterate over the simple
9571 equivalences rather than assuming there's only one per edge.
9572 (cprop_into_successor_phis): Iterate over the simple
9573 equivalences rather than assuming there's only one per edge.
9574 (optimize_stmt): Use operand_equal_p rather than pointer
9575 equality for mini-DSE code.
9577 2017-08-28 Nathan Sidwell <nathan@acm.org>
9579 * gcc.c (execute): Fold SIGPIPE handling into switch
9580 statement. Adjust internal error message.
9582 2017-08-28 Richard Biener <rguenther@suse.de>
9585 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
9586 Do nothing for removed DIEs.
9588 2017-08-28 Richard Biener <rguenther@suse.de>
9590 PR tree-optimization/81977
9591 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
9594 2017-08-28 Alexander Monakov <amonakov@ispras.ru>
9597 * doc/md.texi (mem_thread_fence): Remove mention of mode. Rewrite.
9598 * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
9599 using targetm.gen_mem_thread_fence.
9601 2017-08-27 Uros Bizjak <ubizjak@gmail.com>
9604 * config/i386/i386.md (*<btsc><mode>): Change operand 2
9605 predicate to register_operand. Reorder operands.
9606 (*btr<mode>): Ditto.
9607 (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
9608 (*btr<mode>_mask): Ditto.
9610 2017-08-25 Steven Munroe <munroesj@gcc.gnu.org>
9612 * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
9613 * config/rs6000/xmmintrin.h: New file.
9614 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
9616 2017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9619 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
9620 parameter and_insn and return it.
9621 (recombine_lvx_pattern): Insert a copy to ensure availability of
9622 the base register of the copied masking operation at the point of
9623 the instruction replacement.
9624 (recombine_stvx_pattern): Likewise.
9626 2017-08-25 Michael Meissner <meissner@linux.vnet.ibm.com>
9628 * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
9629 undocumented switches.
9630 (-mpower9-dform-vector): Likewise.
9631 (-mpower9-dform): Likewise.
9632 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
9633 comments to delete references to -mpower9-dform* switches.
9634 * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
9635 Delete reference to -mpower9-dform* switches, test for
9636 -mpower9-vector instead.
9637 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
9638 (OTHER_P9_VECTOR_MASKS): Likewise.
9639 (POWERPC_MASKS): Likewise.
9640 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
9641 tests against -mpower9-dform* to -mpower9-vector. Delete code
9642 that checked for -mpower9-dform* consistancy with other options.
9643 Add test for -mpower9-misc to enable other power9 switches.
9644 (rs6000_init_hard_regno_mode_ok): Likewise.
9645 (rs6000_option_override_internal): Likewise.
9646 (rs6000_emit_prologue): Likewise.
9647 (rs6000_emit_epilogue): Likewise.
9648 (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
9649 (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
9650 (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
9652 (emit_fusion_p9_store): Likewise.
9653 * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
9654 resetting these macros if the assembler does not support ISA 3.0
9656 (TARGET_P9_DFORM_VECTOR): Likewise.
9657 * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
9658 Change to use -mpower9-vector instead of -mpower9-dform-scalar.
9660 2017-08-25 Alan Modra <amodra@gmail.com>
9662 PR rtl-optimization/81747
9663 * cse.c (cse_extended_basic_block): Don't attempt to record
9664 equivalences for degenerate conditional branches that branch
9665 to their fall-through.
9667 2017-08-24 Martin Sebor <msebor@redhat.com>
9670 * gimple-fold.c (size_must_be_zero_p): New function.
9671 (gimple_fold_builtin_memory_op): Call it.
9673 2017-08-24 Steven Munroe <munroesj@gcc.gnu.org>
9675 * config/rs6000/mm_malloc.h: New file.
9677 2017-08-24 Bin Cheng <bin.cheng@arm.com>
9679 PR tree-optimization/81913
9680 * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
9681 analysis when either IVs in condition can wrap.
9683 2017-08-24 Uros Bizjak <ubizjak@gmail.com>
9685 * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
9686 * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
9688 2017-08-24 Richard Biener <rguenther@suse.de>
9691 * targhooks.c (default_target_can_inline_p): Properly
9692 use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
9693 is present and always compare.
9694 * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
9695 infer -mfpmath=sse from TARGET_SSE_P.
9696 (ix86_can_inline_p): Properly use target_option_default_node when
9697 no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
9699 2017-08-24 Richard Biener <rguenther@suse.de>
9702 * dwarf2out.c (output_die): Handle flag_generate_offload like
9704 (output_comp_unit): Likewise.
9705 (gen_array_type_die): Likewise.
9706 (dwarf2out_early_finish): Likewise.
9707 (note_variable_value_in_expr): Likewise.
9708 (dwarf2out_finish): Likewise. Adjust assert.
9709 * cgraphunit.c (symbol_table::compile): Move setting of
9710 flag_generate_offload earlier ...
9711 (symbol_table::finalize_compilation_unit): ... here, before
9712 early debug finalization.
9714 2017-08-24 Richard Biener <rguenther@suse.de>
9716 * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
9717 and ipa-fnsummary.h.
9718 (ix86_can_inline_p): When ix86_fpmath flags do not match
9719 check whether the callee uses FP math at all.
9721 2017-08-24 Aldy Hernandez <aldyh@redhat.com>
9724 * tree-ssanames.c (get_nonzero_bits): Use element_precision
9725 instead of TYPE_PRECISION.
9727 2017-08-24 Richard Sandiford <richard.sandiford@linaro.org>
9728 Alan Hayward <alan.hayward@arm.com>
9729 David Sherwood <david.sherwood@arm.com>
9731 * combine.c (make_extraction): Use subreg_offset_from_lsb.
9733 2017-08-23 Daniel Santos <daniel.santos@pobox.com>
9735 * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
9737 (ix86_frame::stack_realign_allocate): New field.
9738 (struct machine_frame_state): Modify comments.
9739 (machine_frame_state::sp_realigned_fp_end): New field.
9740 * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
9742 (sp_valid_at): Add assertion to assure no attempt to access invalid
9743 offset of a realigned stack.
9744 (fp_valid_at): Likewise.
9745 (choose_baseaddr): Modify comments.
9746 (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
9747 ix86_expand_prologue.
9748 (ix86_expand_prologue): Modify stack realignment and allocation.
9749 (ix86_expand_epilogue): Modify comments.
9750 * doc/sourcebuild.texi: Add documentation for target selectors avx2,
9751 avx2_runtime, avx512f, and avx512f_runtime.
9753 2017-08-23 Uros Bizjak <ubizjak@gmail.com>
9755 * config/i386/i386.opt: Remove unneeded Init(0) initializations.
9756 (mstackrealign): Do not init to -1.
9757 * config/i386/i386.c (ix86_option_override_internal):
9758 Check opts_set, not opts when setting default value of
9759 opts->x_ix86_force_align_arg_pointer.
9761 2017-08-23 Richard Biener <rguenther@suse.de>
9763 * function.c (fndecl_name): Use verbosity 1 (no arguments) for
9764 lang_hooks.decl_printable_name.
9765 * print-rtl-function.c (print_rtx_function): Likewise.
9766 * tree-pretty-print.c (dump_function_header): Likewise.
9768 2017-08-23 Richard Biener <rguenther@suse.de>
9771 * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
9772 -g0 at compile-time.
9774 2017-08-23 Tamar Christina <tamar.christina@arm.com>
9777 * doc/sourcebuild.texi (Other hardware attributes):
9780 2017-08-23 Tamar Christina <tamar.christina@arm.com>
9783 * tree-ssa-math-opts.c (convert_expand_mult_copysign):
9784 Fix single-use check.
9786 2017-08-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
9788 * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
9790 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
9792 * doc/install.texi: Modify to add more details on running selected
9795 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
9797 * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
9798 is combined with -mabi=ms.
9799 (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
9802 2017-08-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9804 PR tree-optimization/81488
9805 * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
9806 and cached_basis fields.
9807 (MAX_SPREAD): New constant.
9808 (alloc_cand_and_find_basis): Initialize new fields.
9809 (clear_visited): New function.
9810 (create_phi_basis_1): Rename from create_phi_basis, set visited
9811 and cached_basis fields.
9812 (create_phi_basis): New wrapper function.
9813 (phi_add_costs_1): Rename from phi_add_costs, add spread
9814 parameter, set visited field, short-circuit when limits reached.
9815 (phi_add_costs): New wrapper function.
9816 (record_phi_increments_1): Rename from record_phi_increments, set
9818 (record_phi_increments): New wrapper function.
9819 (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
9820 (phi_incr_cost): New wrapper function.
9821 (all_phi_incrs_profitable_1): Rename from
9822 all_phi_incrs_profitable, set visited field.
9823 (all_phi_incrs_profitable): New wrapper function.
9825 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
9826 Alan Hayward <alan.hayward@arm.com>
9827 David Sherwood <david.sherwood@arm.com>
9829 * rtl.h (paradoxical_subreg_p): Define inline, and add a version
9830 that takes the outer and inner modes.
9831 * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
9832 comparison as the canonical test for a paradoxical subreg.
9833 * combine.c (simplify_set): Use paradoxical_subreg_p.
9834 (make_extraction): Likewise.
9835 (force_to_mode): Likewise.
9836 (rtx_equal_for_field_assignment_p): Likewise.
9837 (gen_lowpart_for_combine): Likewise.
9838 (simplify_comparison): Likewise.
9839 * cse.c (equiv_constant): Likewise.
9840 * expmed.c (store_bit_field_1): Likewise.
9841 * final.c (alter_subreg): Likewise.
9842 * fwprop.c (propagate_rtx): Likewise.
9843 (forward_propagate_subreg): Likewise.
9844 * ira-conflicts.c (ira_build_conflicts): Likewise.
9845 * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
9846 * lra-constraints.c (curr_insn_transform): Likewise.
9847 (split_reg): Likewise.
9848 * lra-eliminations.c (move_plus_up): Likewise.
9849 (lra_eliminate_regs_1): Likewise.
9850 * recog.c (general_operand): Likewise.
9851 * ree.c (combine_reaching_defs): Likewise.
9852 * reload.c (push_reload): Likewise.
9853 (find_reloads): Likewise.
9854 * reload1.c (elimination_effects): Likewise.
9855 (compute_reload_subreg_offset): Likewise.
9856 (choose_reload_regs): Likewise.
9857 * rtlanal.c (subreg_lsb_1): Likewise.
9858 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9859 (simplify_subreg): Likewise.
9860 * var-tracking.c (track_loc_p): Likewise.
9861 * emit-rtl.c (byte_lowpart_offset): Likewise.
9862 (paradoxical_subreg_p): Delete out-of-line definition.
9864 2017-08-22 Jeff Law <law@redhat.com>
9866 PR tree-optimization/81741
9867 PR tree-optimization/71947
9868 * tree-ssa-dom.c: Include tree-inline.h.
9869 (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
9870 equivalences if one is more expensive to compute than the other.
9871 * tree-ssa-scopedtables.h (class const_or_copies): Make
9872 record_const_or_copy_raw method private.
9873 (class avail_exprs_stack): New method simplify_binary_operation.
9874 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
9875 avail_exprs_stack::simplify_binary_operation as needed.
9876 (avail_exprs_stack::simplify_binary_operation): New function.
9878 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
9880 * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
9881 * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
9882 (DOT_SYMBOLS): Likewise.
9883 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
9884 (RELOCATABLE_NEEDS_FIXUP): Likewise.
9885 (RS6000_ABI_NAME): Likewise.
9886 (TARGET_CMODEL): Likewise.
9887 (TOC_SECTION_ASM_OP): Likewise.
9888 (SET_CMODEL): New macro.
9889 (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
9891 2017-08-22 Richard Biener <rguenther@suse.de>
9893 * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
9894 to allow for free-lang-data replacements similar to verify_type_variant.
9896 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
9897 Alan Hayward <alan.hayward@arm.com>
9898 David Sherwood <david.sherwood@arm.com>
9900 * config/aarch64/aarch64.md (casesi): Use DImode rather than
9901 VOIDmode for the LABEL_REF.
9903 2017-08-22 Richard Biener <rguenther@suse.de>
9905 * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
9907 2017-08-22 Richard Biener <rguenther@suse.de>
9909 * common.opt (feliminate-dwarf2-dups): Ignore.
9910 * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
9911 * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
9912 same_die_p_wrap, compute_section_prefix,
9913 is_symbol_die, assign_symbol_names, break_out_includes): Remove.
9914 (comdat_symbol_id, comdat_symbol_number): Likewise.
9915 (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
9917 (check_duplicate_cu, record_comdat_symbol_number): Likewise.
9918 (output_die): Mark unreachable path unreachable.
9919 (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
9920 (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
9921 (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
9922 (dwarf2out_early_finish): Likewise.
9924 2017-08-22 Aldy Hernandez <aldyh@redhat.com>
9926 * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
9928 2017-08-22 Georg-Johann Lay <avr@gjlay.de>
9931 * config/avr/avr.c (avr_handle_addr_attribute): Early return if
9932 not VAR_P. Filter attribute warnings with OPT_Wattributes.
9933 (avr_attribute_table) <io, io_low, address>: Initialize
9934 .decl_required with true.
9936 2017-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9938 * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
9939 undocumented debugging options.
9940 (-mvsx-scalar-double): Likewise.
9941 (-mallow-df-permute): Likewise.
9942 (-mvectorize-builtins): Likewise.
9943 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
9944 (rs6000_builtin_vectorized_function): Likewise.
9945 (rs6000_builtin_md_vectorized_function): Likewise.
9946 (rs6000_opt_vars): Likewise.
9948 2017-08-21 Uros Bizjak <ubizjak@gmail.com>
9951 * config/i386/i386.md (*btsq_imm): Rename from *btsq.
9952 (*btrq_imm): Rename from *btrq.
9953 (*btcq_imm): Rename from *btcq.
9954 (btsc): New code attribute.
9955 (*<btsc><mode>): New insn pattern.
9956 (*btr<mode>): Ditto.
9957 (*<btsc><mode>_mask): New insn_and_split pattern.
9958 (*btr<mode>_mask): Ditto.
9960 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
9961 Alan Hayward <alan.hayward@arm.com>
9962 David Sherwood <david.sherwood@arm.com>
9964 * function.c (pad_below): Simplify padding calculation.
9966 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
9967 Alan Hayward <alan.hayward@arm.com>
9968 David Sherwood <david.sherwood@arm.com>
9970 * target.def (function_prologue): Remove frame size argument.
9971 (function_epilogue): Likewise.
9972 * doc/tm.texi: Regenerate.
9973 * final.c (final_start_function): Update call to function_prologue.
9974 (final_end_function): Update call to function_epilogue.
9975 (default_function_pro_epilogue): Remove frame size argument.
9976 * output.h (default_function_pro_epilogue): Likewise.
9977 * config/arm/arm.c (arm_output_function_epilogue): Likewise.
9978 (arm_output_function_prologue): Likewise.
9979 * config/frv/frv.c (frv_function_prologue): Likewise.
9980 (frv_function_epilogue): Likewise.
9981 * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
9982 * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
9983 (ia64_output_function_epilogue): Likewise.
9984 * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
9985 (m32r_output_function_epilogue): Likewise.
9986 * config/microblaze/microblaze.c (microblaze_function_prologue)
9987 (microblaze_function_epilogue): Likewise.
9988 * config/mips/mips.c (mips_output_function_prologue): Likewise.
9989 (mips_output_function_epilogue): Likewise.
9990 * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
9991 (mmix_target_asm_function_epilogue): Likewise.
9992 * config/msp430/msp430.c (msp430_start_function): Likewise.
9993 * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
9994 (nds32_asm_function_epilogue): Likewise.
9995 * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
9996 * config/pa/pa.c (pa_output_function_prologue): Likewise.
9997 (pa_output_function_epilogue): Likewise.
9998 * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
9999 (rs6000_output_function_epilogue): Likewise.
10000 * config/rl78/rl78.c (rl78_start_function): Likewise.
10001 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
10002 (rs6000_output_function_epilogue): Likewise.
10003 * config/rx/rx.c (rx_output_function_prologue): Likewise.
10004 * config/sh/sh.c (sh_output_function_epilogue): Likewise.
10005 * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
10006 (sparc_asm_function_epilogue): Likewise.
10008 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
10010 * tree.h (type_has_mode_precision_p): New function.
10011 * convert.c (convert_to_integer_1): Use it.
10012 * expr.c (expand_expr_real_2): Likewise.
10013 (expand_expr_real_1): Likewise.
10014 * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
10015 * match.pd: Likewise.
10016 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
10017 * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
10018 * tree-tailcall.c (process_assignment): Likewise.
10019 * tree-vect-loop.c (vectorizable_reduction): Likewise.
10020 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
10021 (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
10022 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
10023 (vectorizable_assignment): Likewise.
10024 (vectorizable_shift): Likewise.
10025 (vectorizable_operation): Likewise.
10026 * tree-vrp.c (register_edge_assert_for_2): Likewise.
10028 2017-08-21 Wilco Dijkstra <wdijkstr@arm.com>
10030 * match.pd: Add pow (C, x) simplification.
10032 2017-08-21 Richard Biener <rguenther@suse.de>
10034 PR tree-optimization/81900
10035 * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
10036 for blocks with abnormal predecessors.
10037 (compute_antic): Do not set visited flag prematurely.
10039 2017-08-21 Georg-Johann Lay <avr@gjlay.de>
10042 * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
10044 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
10046 * stor-layout.h (vector_type_mode): Move to...
10047 * tree.h (vector_type_mode): ...here.
10048 * stor-layout.c (vector_type_mode): Move to...
10049 * tree.c (vector_type_mode): ...here. Include rtl.h and regs.h.
10051 2017-08-21 Richard Biener <rguenther@suse.de>
10053 * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
10054 register_external_die hooks.
10055 (debug_false_tree_charstarstar_uhwistar): Declare.
10056 (debug_nothing_tree_charstar_uhwi): Likewise.
10057 * debug.c (do_nothing_debug_hooks): Adjust.
10058 (debug_false_tree_charstarstar_uhwistar): New do nothing.
10059 (debug_nothing_tree_charstar_uhwi): Likewise.
10060 * dbxout.c (dbx_debug_hooks): Adjust.
10061 (xcoff_debug_hooks): Likewise.
10062 * sdbout.c (sdb_debug_hooks): Likewise.
10063 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10064 * dwarf2out.c (macinfo_label_base): New global.
10065 (dwarf2out_register_external_die): New function for the
10066 register_external_die hook.
10067 (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
10068 (dwarf2_debug_hooks): Use them.
10069 (dwarf2_lineno_debug_hooks): Adjust.
10070 (struct die_struct): Add with_offset flag.
10071 (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
10072 DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
10073 DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
10074 DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
10075 DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
10076 DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
10077 defining section names for the early LTO debug variants.
10078 (reset_indirect_string): New helper.
10079 (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
10080 (print_dw_val): Add support for offsetted symbol references.
10081 (get_ultimate_context): Split out from is_cxx.
10082 (is_cxx): Use get_ultimate_context.
10083 (is_fortran): Add decl overload.
10084 (compute_comp_unit_symbol): Split out worker from
10085 compute_section_prefix.
10086 (compute_section_prefix): Call compute_comp_unit_symbol and
10087 set comdat_type_p here.
10088 (output_die): Skip DIE symbol output for the LTO added one.
10089 Handle DIE symbol references with offset.
10090 (output_comp_unit): Guard section name mangling properly.
10091 For LTO debug sections emit a symbol at the section beginning
10092 which we use to refer to its DIEs.
10093 (add_abstract_origin_attribute): For DIEs registered via
10094 dwarf2out_register_external_die directly refer to the early
10095 DIE rather than indirectly through the shadow one we created.
10096 Remove obsolete call to dwarf2out_abstract_function for
10097 non-function/block origins.
10098 (gen_array_type_die): When generating early LTO debug do
10099 not emit DW_AT_string_length.
10100 (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
10101 late when in LTO. As suggested place a gcc_unreachable for
10102 the DECL_ABSTRACT_P case.
10103 (gen_subprogram_die): Avoid another specification DIE
10104 for early built declarations/definitions for the late LTO case.
10105 (gen_variable_die): Add type references for late duplicated VLA dies
10107 (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
10108 we have the abstract instance already.
10109 (process_scope_var): Adjust decl DIE contexts in LTO which
10110 first puts them in limbo.
10111 (gen_decl_die): Do not generate type DIEs late apart from
10112 types for VLAs or for decls we do not yet have a DIE. Do not
10113 call dwarf2out_abstract_function late.
10114 (dwarf2out_early_global_decl): Make sure to create DIEs
10115 for abstract instances of a decl first.
10116 (dwarf2out_late_global_decl): Adjust comment.
10117 (output_macinfo_op): With multiple macro sections use
10118 macinfo_label_base to distinguish labels.
10119 (output_macinfo): Likewise. Update macinfo_label_base.
10120 Pass in the line info label.
10121 (note_variable_value_in_expr): When generating LTO resolve
10122 all variable values here by generating DIEs as needed.
10123 (init_sections_and_labels): Add early LTO debug flag parameter
10124 and generate different sections and names if set. Add generation
10125 counter for the labels so we can have multiple of them.
10126 (reset_dies): Helper to allow DIEs to be output multiple times.
10127 (dwarf2out_finish): When outputting DIEs to the fat part of an
10128 LTO object first reset DIEs.
10129 (dwarf2out_early_finish): Output early DIEs when generating LTO.
10130 (modified_type_die): Check for decl_ultimate_origin being self
10132 (gen_type_die_with_usage): Likewise.
10133 (gen_typedef_die): Allow decl_ultimate_origin being self.
10134 (set_decl_abstract_flags): Remove.
10135 (set_block_abstract_flags): Likewise.
10136 (dwarf2out_abstract_function): Treat the early generated DIEs
10137 as the abstract copy and only add DW_AT_inline and
10138 DW_AT_artificial here and call set_decl_origin_self.
10139 If the DIE has an abstract origin don't do anything.
10140 * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
10141 if we have none yet (Go fails to build one, PR78628).
10142 (variably_modified_type_p): Prevent endless recursion for Ada
10143 cyclic pointer types.
10144 * lto-streamer-in.c: Include debug.h.
10145 (dref_queue): New global.
10146 (lto_read_tree_1): Stream in DIE references.
10147 (lto_input_tree): Register DIE references.
10148 (input_function): Stream DECL_DEBUG_ARGS.
10149 * lto-streamer-out.c: Include debug.h.
10150 (lto_write_tree_1): Output DIE references.
10151 (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
10152 Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
10153 (output_function): Stream DECL_DEBUG_ARGS.
10154 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10155 Stream DECL_ABSTRACT_ORIGIN.
10156 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
10157 (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
10158 DECL_CONTEXT for file-scope decls.
10159 * lto-streamer.h (struct dref_entry): Declare.
10160 (dref_queue): Likewise.
10161 * cfgexpand.c (pass_expand::execute): Do not call the
10162 outlining_inline_function hook here.
10163 * lto-wrapper.c (debug_obj): New global.
10164 (tool_cleanup): Unlink it if required.
10165 (debug_objcopy): New function.
10166 (run_gcc): Handle early debug sections in the IL files by
10167 extracting them to separate files, partially linkin them and
10168 feeding the result back as result to the linker.
10169 * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
10170 DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
10171 DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
10172 sections into a separate segment.
10173 * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
10175 (darwin_asm_dwarf_section): Likewise.
10176 (darwin_asm_output_dwarf_offset): Likewise.
10177 * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
10179 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
10180 Alan Hayward <alan.hayward@arm.com>
10181 David Sherwood <david.sherwood@arm.com>
10183 * read-md.h (md_reader::record_potential_iterator_use): Replace
10184 pointer argument with an rtx and an index.
10185 * read-rtl.c (iterator_group::apply_iterator): Likewise.
10186 (apply_mode_iterator): Likewise.
10187 (apply_code_iterator): Likewise.
10188 (apply_int_iterator): Likewise.
10189 (apply_subst_iterator): Likewise.
10190 (record_iterator_use): Likewise.
10191 (record_attribute_use): Likewise.
10192 (md_reader::record_potential_iterator_use): Likewise. Update calls
10193 to record_iterator_use and apply_iterator.
10194 (iterator_use): Replace ptr with x and index.
10195 (attribute_use): Likewise.
10196 (apply_attribute_uses): Update calls to apply_iterator.
10197 (apply_iterators): Likewise. Update initialization of iterator_use.
10198 (rtx_reader::read_rtx_code): Update calls to record_iterator_use
10199 and record_potential_iterator_use.
10200 (rtx_reader::read_rtx_operand): Likewise.
10202 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
10203 Alan Hayward <alan.hayward@arm.com>
10204 David Sherwood <david.sherwood@arm.com>
10206 * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
10209 2017-08-21 Richard Biener <rguenther@suse.de>
10211 PR middle-end/81884
10212 * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
10213 at struct end conservatively when comparing common bases.
10215 2017-08-21 Richard Biener <rguenther@suse.de>
10217 * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
10218 (mem_ref_in_stmt): Remove.
10219 (determine_max_movement): Use ref index to get at the reference.
10220 (invariantness_dom_walker::before_dom_children): Deal with
10221 lim data already initialized.
10222 (gather_mem_refs_stmt): Initialize lim data and record ref index.
10224 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
10226 * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
10227 (TARGET_ISA_ROUND): Ditto.
10228 (TARGET_ROUND): Ditto.
10229 * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
10230 * config/i386/i386.md: Ditto.
10231 * config/i386/sse.md: Ditto.
10232 * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
10233 with OPTION_MASK_ISA_SSE4_1.
10235 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
10238 * doc/extend.texi (x86 Built-in Functions): Correct the name of
10239 __builtin_ia32_lzcnt_u16.
10241 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
10244 * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
10245 (rs6000_set_current_function): Rewrite function to use it.
10247 2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
10250 * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
10251 and TYPE_WARN_IF_NOT_ALIGN.
10252 * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
10253 (handle_warn_if_not_align): New.
10254 (place_union_field): Call handle_warn_if_not_align.
10255 (place_field): Call handle_warn_if_not_align.
10256 Copy TYPE_WARN_IF_NOT_ALIGN.
10257 (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
10258 (layout_type): Likewise.
10259 * tree-core.h (tree_type_common): Add warn_if_not_align. Set
10261 (tree_decl_common): Add warn_if_not_align.
10262 * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
10263 * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
10264 (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
10265 (DECL_WARN_IF_NOT_ALIGN): Likewise.
10266 (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
10267 * doc/extend.texi: Document warn_if_not_aligned attribute.
10268 * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
10270 2017-08-17 Martin Liska <mliska@suse.cz>
10273 * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
10274 (get_data_dependence): Use it as pointer type.
10275 (distribute_loop): Likewise.
10277 2017-08-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10279 * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
10280 (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
10281 (p8_vmrgow_<mode>_direct): New define_insn.
10282 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
10283 handle endianness for vmrgew and vmrgow permute patterns.
10285 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
10287 * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
10288 * config/rs6000/rs6000-cpus.def: Remove comment.
10289 (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
10290 (POWERPC_MASKS): Likewise.
10291 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
10292 use of TARGET_VSX_TIMODE.
10293 (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
10294 (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
10295 TARGET_VSX_TIMODE. Change use of TARGET_VSX_TIMODE to TARGET_VSX.
10296 (rs6000_option_override_internal): Remove dead code.
10297 (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
10298 (rs6000_legitimize_reload_address): Likewise.
10299 (rs6000_legitimate_address_p): Likewise.
10300 (rs6000_opt_masks): Delete "vsx-timode".
10301 (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
10302 from function comment.
10303 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
10304 * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
10305 (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
10307 * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
10308 * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
10309 * config/rs6000/vsx.md (VSX_LE_128): Likewise.
10310 (VSX_TI): Likewise.
10312 (define_peephole2): Likewise.
10314 2017-08-17 Martin Sebor <msebor@redhat.com>
10317 * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
10318 past the end of an array.
10319 (test_pp_format): Add test cases.
10321 2017-08-17 Richard Sandiford <richard.sandiford@linaro.org>
10323 * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
10324 missing ECF_NOTHROW flags.
10326 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
10329 * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
10330 operands residing in integer registers.
10331 (*vsx_le_perm_load_<mode>): Likewise.
10332 (*vsx_le_perm_store_<mode>): Likewise.
10333 (define_peephole2): Add peepholes to optimize the above.
10335 2017-08-17 Marek Polacek <polacek@redhat.com>
10337 PR middle-end/81814
10338 * fold-const.c (operand_equal_for_comparison_p): Remove code that used
10339 to mimic what shorten_compare did. Change the return type to bool.
10340 (fold_cond_expr_with_comparison): Update call to
10341 operand_equal_for_comparison_p.
10342 (fold_ternary_loc): Likewise.
10344 2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com>
10346 * aarch64-simd.md (mov<mode>): No longer force zero immediate into
10348 (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
10350 2017-08-17 Richard Biener <rguenther@suse.de>
10352 * tree-ssa-structalias.c (solve_graph): When propagating
10353 to successors update the graphs succ edges and avoid duplicate work.
10355 2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com>
10358 * config/i386/i386.c (ix86_option_override_internal): Save target
10359 specific options after ix86_stack_protector_guard_reg was changed.
10361 2017-08-17 Richard Biener <rguenther@suse.de>
10363 PR tree-optimization/81827
10364 * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
10365 (new_var_info): Initialize it conservatively.
10366 (get_call_vi): Mark register vars.
10367 (new_scalar_tmp_constraint_exp): Likewise.
10368 (handle_rhs_call): Likewise.
10369 (handle_const_call): Likewise.
10370 (create_function_info_for): Likewise.
10371 (solve_constraints): Sort varinfos to separate register from
10372 non-register vars to pack points-to solution bitmaps during
10375 2017-08-17 Marek Polacek <polacek@redhat.com>
10377 * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
10379 2017-08-17 Richard Biener <rguenther@suse.de>
10381 * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
10382 to true when overflow is undefined and we saturated the result.
10384 2017-08-17 Alan Modra <amodra@gmail.com>
10387 * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
10388 Don't use store multiple if only one reg needs saving.
10389 (interesting_frame_related_regno): New function.
10390 (rs6000_frame_related): Don't emit frame info for regs that
10392 (rs6000_emit_epilogue): Likewise.
10394 2017-08-16 Nathan Sidwell <nathan@acm.org>
10396 * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
10397 * tree.h (TYPE_BINFO): Use type_non_common.maxval.
10398 (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
10399 * tree.c (free_lang_data_in_type): Use else-if chain. Always
10400 clear TYPE_LANG_1. Remove obsolete member-function stripping.
10401 (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
10402 (verify_type): Adjust for TYPE_BINFO move.
10403 * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
10404 process TYPE_BINFO directly.
10405 (hash_tree): Likewise.
10406 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
10408 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
10411 2017-08-16 David Malcolm <dmalcolm@redhat.com>
10413 * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
10415 2017-08-16 Uros Bizjak <ubizjak@gmail.com>
10418 * config/i386/i386.md (*anddi_1_btr): Change predicates of
10419 operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
10420 Add ix86_binary_operator_ok to insn constraint.
10421 (*iordi_1_bts): Ditto.
10422 (*xordi_1_btc): Ditto.
10423 (*btsq): Change predicate of operand 0 to nonimmediate_operand.
10424 Update corresponding peephole2 pattern.
10428 2017-08-16 Bin Cheng <bin.cheng@arm.com>
10430 PR tree-optimization/81832
10431 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
10432 copy loop header which has IFN_LOOP_DIST_ALIAS call.
10434 2017-08-16 Marek Polacek <polacek@redhat.com>
10437 * fold-const.c (fold_indirect_ref_1): Restore original behavior
10438 regarding size_zero_node.
10440 2017-08-16 Martin Liska <mliska@suse.cz>
10443 * config.gcc: Respect previously set extra_objs in case
10446 2017-08-16 Richard Sandiford <richard.sandiford@linaro.org>
10448 PR tree-optimization/81835
10449 * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
10450 the phi SSA_NAME. Check that the condition in a COND_EXPR does
10451 not depend on the phi.
10453 2017-08-16 Alan Modra <amodra@gmail.com>
10455 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
10458 2017-08-16 Alan Modra <amodra@gmail.com>
10460 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
10461 (save_reg_p): ..into this. Update all callers.
10462 (first_reg_to_save): Simplify.
10464 2017-08-16 Alan Modra <amodra@gmail.com>
10466 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
10469 2017-08-15 Joseph Myers <joseph@codesourcery.com>
10473 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
10474 constant count if that count is less than 32.
10476 2017-08-15 Nathan Sidwell <nathan@acm.org>
10478 * gcc.c (execute): Emit friendlier message if inferior is killed
10479 by an external cause.
10481 2017-08-15 Richard Biener <rguenther@suse.de>
10483 PR tree-optimization/81790
10484 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
10485 CONSTRUCTORs from simplifying and VN.
10487 2017-08-14 Martin Sebor <msebor@redhat.com>
10489 * builtin-attrs.def: Add comments.
10491 2017-08-14 Martin Sebor <msebor@redhat.com>
10494 * doc/extend.texi (attribute nonstring): Document new attribute.
10496 2017-08-14 Martin Sebor <msebor@redhat.com>
10499 * tree-diagnostic.c (default_tree_printer): Handle %G.
10500 * gimple-pretty-print.h (percent_G_format): Declare new function.
10501 * gimple-pretty-print.c (percent_G_format): Define.
10502 * tree-pretty-print.c (percent_K_format): Add argument.
10504 2017-08-14 Martin Sebor <msebor@redhat.com>
10506 PR translation/79998
10507 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
10508 Remove a stray space.
10510 2017-08-14 Uros Bizjak <ubizjak@gmail.com>
10513 * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
10514 (*iordi_1_bts): Ditto.
10515 (*xordi_1_btc): Ditto.
10517 2017-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10520 * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
10521 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10523 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
10524 quoted strings, and make more translator-friendly.
10525 (darwin_rs6000_override_options): Likewise.
10526 (rs6000_option_override_internal): Likewise.
10527 (rs6000_return_in_memory): Fix overlong line.
10528 (init_cmulative_args): Use quoted strings, and make more
10529 translator-friendly.
10530 (rs6000_pass_by_reference): Fix overlong line.
10531 (def_builtin): Use quoted strings.
10532 (altivec_expand_predicate_builtin): Use quoted strings, and make
10533 more translator-friendly.
10534 (htm_expand_builtin): Use quoted strings.
10535 (cpu_expand_builtin): Use quoted strings, and make more
10536 translator-friendly.
10537 (altivec_expand_builtin): Likewise.
10538 (paired_expand_predicate_builtin): Likewise.
10539 (rs6000_invalid_builtin): Likewise.
10540 (builtin_function_type): Use quoted strings.
10541 (rs6000_expand_split_stack_prologue): Use quoted strings, and make
10542 more translator-friendly.
10543 (rs6000_trampoline_init): Likewise.
10544 (rs6000_handle_altivec_attribute): Likewise.
10545 (rs6000_inner_target_options): Use quoted strings.
10546 (rs6000_disable_incompatible_switches): Likewise.
10547 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
10548 strings, and make more translator-friendly.
10549 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
10551 2017-08-14 Bin Cheng <bin.cheng@arm.com>
10553 PR tree-optimization/81799
10554 * tree-loop-distribution.c (version_loop_by_alias_check): Force
10555 cond_expr to simple gimple operand.
10557 2017-08-14 Wilco Dijkstra <wdijkstr@arm.com>
10559 PR middle-end/46932
10560 * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
10562 2017-08-14 Georg-Johann Lay <avr@gjlay.de>
10566 * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
10567 * config/avr/avr.md (gasisr, *gasisr): Use it instead of
10568 TARGET_GASISR_PROLOGUES.
10569 * config/avr/avr.c (avr_option_override): Same.
10570 (avr_pass_pre_proep::execute): Same.
10572 2017-08-13 H.J. Lu <hongjiu.lu@intel.com>
10575 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
10576 frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
10578 2017-08-13 Uros Bizjak <ubizjak@gmail.com>
10580 * config/i386/i386.md (*load_tp_<mode>): Redefine as
10581 define_insn_and_split. Split to a memory load from 0 in
10582 DEFAULT_TLS_SEG_REG address space. Merge with *load_tp_x32
10583 using PTR mode iterator.
10584 (*load_tp_x32_zext"): Redefine as define_insn_and_split.
10585 Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
10586 (*add_tp_<mode>): Redefine as define_insn_and_split.
10587 Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
10588 address space. Merge with *add_tp_x32 using PTR mode iterator.
10589 (*add_tp_x32_zext"): Redefine as define_insn_and_split.
10590 Split to an add with a memory load from 0 in
10591 DEFAULT_TLS_SEG_REG address space.
10593 2017-08-12 Andrew Pinski <apinski@cavium.com>
10595 * config/aarch64/aarch64-option-extensions.def (rdma):
10596 Fix feature string to what Linux prints out in /proc/cpuinfo.
10598 2017-08-12 Pierre-Marie de Rodat <derodat@adacore.com>
10601 * dwarf2out.c (modified_type_die): For C typedef types that have
10602 an ultimate origin, process the ultimate origin instead of the
10604 (gen_typedef_die): Assert that input DECLs have no ultimate
10606 (gen_type_die_with_usage): For typedef variants that have an
10607 ultimate origin, just call gen_decl_die on the original DECL.
10608 (process_scope_var): Avoid creating DIEs for local typedefs and
10609 concrete static variables.
10611 2017-08-12 Alan Modra <amodra@gmail.com>
10615 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
10616 match gnu-user.h startfile.
10617 (ENDFILE_LINUX_SPEC): Similarly.
10619 2017-08-11 Thomas Schwinge <thomas@codesourcery.com>
10622 * config/nvptx/nvptx.c (nvptx_override_options_after_change):
10624 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
10626 2017-08-11 Tamar Christina <tamar.christina@arm.com>
10627 * config/aarch64/aarch64.md (mov<mode>): Change.
10628 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
10629 aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
10630 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
10632 2017-08-11 Eric Botcazou <ebotcazou@adacore.com>
10634 * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
10635 for storage order barriers.
10637 2017-08-11 Martin Liska <mliska@suse.cz>
10640 * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
10641 variables of void type.
10643 2017-08-11 Martin Liska <mliska@suse.cz>
10645 * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
10646 TARGET_SUPPORTS_ALIASES.
10647 * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
10648 * ipa-visibility.c (can_replace_by_local_alias): Likewise.
10649 (optimize_weakref): Likewise.
10650 * symtab.c (symtab_node::noninterposable_alias): Likewise.
10651 * varpool.c (varpool_node::create_extra_name_alias): Likewise.
10652 * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
10654 2017-08-11 Martin Liska <mliska@suse.cz>
10657 * config/i386/i386.c (make_resolver_func): Do complete
10658 refactoring of the function.
10660 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
10663 * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
10664 * config/i386/i386.c (ix86_stack_protect_guard): Use
10665 ix86_stack_protect_guard_symbol_str to generate varible declaration.
10666 * doc/invoke.texi (x86 Options): Document
10667 -mstack-protector-guard-symbol= option.
10669 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
10671 * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
10672 * config/i386/i386.c (ix86_split_stack_guard): New function.
10673 (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
10674 (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
10675 (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
10676 (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
10677 * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
10678 (split_stack_space_check): Call ix86_split_stack_guard.
10680 2017-08-10 Martin Sebor <msebor@redhat.com>
10682 * print-tree.c (print_node): Print location using the established
10684 Replace spaces with colons.
10685 (debug_raw, debug): Ditto.
10687 2017-08-10 Martin Sebor <msebor@redhat.com>
10690 * pretty-print.c (pp_format): Correct the handling of %s precision.
10692 2017-08-10 H.J. Lu <hongjiu.lu@intel.com>
10695 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
10697 (ix86_finalize_stack_frame_flags): This. Also clear
10698 frame_pointer_needed if -fno-omit-frame-pointer is used without
10700 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
10701 with ix86_finalize_stack_frame_flags.
10702 (ix86_expand_epilogue): Likewise.
10703 (ix86_expand_split_stack_prologue): Likewise.
10704 * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
10706 2017-08-10 Martin Liska <mliska@suse.cz>
10709 * c-attribs.c (handle_target_attribute):
10710 Report warning for an empty string argument of target attribute.
10712 2017-08-09 Jakub Jelinek <jakub@redhat.com>
10715 * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
10717 * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
10718 or DECL_NONLOCAL labels.
10719 (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
10720 or DECL_NONLOCAL labels here.
10722 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com>
10724 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
10725 to indicate when early gimple folding has been disabled.
10726 (rs6000_gimple_fold_builtin): Add debug content.
10727 (rs6000_invalid_builtin): Fix whitespace.
10728 (rs6000_expand_builtin): Fix whitespace.
10729 * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
10731 2017-08-09 Segher Boessenkool <segher@kernel.crashing.org>
10734 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
10735 SAVE_MULTIPLE if not all the registers that saves, should be saved.
10737 2017-08-09 Jim Wilson <jim.wilson@linaro.org>
10739 * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
10740 (qdf24xx): Likewise.
10741 * config/aarch64/aarch64.md: Include falkor.md.
10742 * config/aarch64/falkor.md: New.
10744 2017-08-09 Marek Polacek <polacek@redhat.com>
10747 * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
10748 * diagnostic.c (emit_diagnostic): Add a comment.
10749 (emit_diagnostic_valist): New function.
10751 2017-08-09 Marek Polacek <polacek@redhat.com>
10754 * input.c (make_location): New overload.
10755 * input.h (make_location): Declare.
10757 2017-08-08 Alan Modra <amodra@gmail.com>
10758 H.J. Lu <hongjiu.lu@intel.com>
10761 * gcc.c (NO_PIE_SPEC): Delete.
10762 (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r
10764 (LINK_PIE_SPEC): ..to here.
10765 (LINK_COMMAND_SPEC): Support -no-pie.
10766 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
10767 chain of crtbegin*.o selection, update for PIE_SPEC changes and
10769 (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
10770 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
10771 (ENDFILE_CRTEND_SPEC): Similarly.
10773 2017-08-08 Uros Bizjak <ubizjak@gmail.com>
10776 * config/i386/i386.opt (mstack-protector-guard-reg=): New option
10777 (mstack-protector-guard-offset=): Ditto.
10778 * config/i386/i386.c (ix86_option_override): Handle
10779 -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
10781 (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
10782 ix86_stack_protect_guard_offset variables.
10783 (TARGET_STACK_PROTECT_GUARD): Always define.
10784 * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
10785 and -mstack-protector-guard-offset= options.
10787 2017-08-08 Bin Cheng <bin.cheng@arm.com>
10789 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
10790 boundary case for the last candidate.
10792 2017-08-08 Bin Cheng <bin.cheng@arm.com>
10794 * doc/invoke.texi: Document -ftree-loop-distribution for O3.
10795 * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
10797 2017-08-08 Tamar Christina <tamar.christina@arm.com>
10799 PR middle-end/19706
10800 * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
10801 * config/aarch64/aarch64-builtins.c
10802 (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
10803 * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
10804 * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
10806 2017-08-08 Tamar Christina <tamar.christina@arm.com>
10807 Andrew Pinski <pinskia@gmail.com>
10809 PR middle-end/19706
10810 * internal-fn.def (XORSIGN): New.
10811 * optabs.def (xorsign_optab): New.
10812 * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
10813 (convert_expand_mult_copysign): New.
10814 (pass_optimize_widening_mul::execute): Call
10815 convert_expand_mult_copysign.
10817 2017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10819 PR tree-optimization/81354
10820 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
10821 Insert on edges rather than explicitly creating landing pads.
10822 (analyze_candidates_and_replace): Commit edge inserts.
10824 2017-08-08 Richard Biener <rguenther@suse.de>
10826 PR middle-end/81719
10827 * tree-ssa-loop-niter.c: Include tree-dfa.h.
10828 (expand_simple_operations): Also look through ADDR_EXPRs with
10829 MEM_REF bases treating them as POINTER_PLUS_EXPR.
10831 2017-08-08 Richard Biener <rguenther@suse.de>
10833 PR tree-optimization/81723
10834 * tree-vect-slp.c (struct bst_traits): New hash traits.
10835 (bst_fail): New global.
10836 (vect_build_slp_tree_2): New worker, split out from ...
10837 (vect_build_slp_tree): ... this now wrapping it with using
10838 bst_fail set to cache SLP tree build fails. Properly handle
10840 (vect_analyze_slp_instance): Allocate and free bst_fail.
10842 2017-08-08 Martin Liska <mliska@suse.cz>
10845 * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
10846 LABEL_DECLs that can be from a different function.
10848 2017-08-08 Bin Cheng <bin.cheng@arm.com>
10850 PR tree-optimization/81744
10851 * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
10852 loop's number of iterations.
10854 2017-08-08 Martin Liska <mliska@suse.cz>
10856 * asan.c: Include header files.
10857 * attribs.c (build_decl_attribute_variant): New function moved
10859 (build_type_attribute_qual_variant): Likewise.
10860 (cmp_attrib_identifiers): Likewise.
10861 (simple_cst_list_equal): Likewise.
10862 (omp_declare_simd_clauses_equal): Likewise.
10863 (attribute_value_equal): Likewise.
10864 (comp_type_attributes): Likewise.
10865 (build_type_attribute_variant): Likewise.
10866 (lookup_ident_attribute): Likewise.
10867 (remove_attribute): Likewise.
10868 (merge_attributes): Likewise.
10869 (merge_type_attributes): Likewise.
10870 (merge_decl_attributes): Likewise.
10871 (merge_dllimport_decl_attributes): Likewise.
10872 (handle_dll_attribute): Likewise.
10873 (attribute_list_equal): Likewise.
10874 (attribute_list_contained): Likewise.
10875 * attribs.h (lookup_attribute): New function moved from tree.[ch].
10876 (lookup_attribute_by_prefix): Likewise.
10877 * bb-reorder.c: Include header files.
10878 * builtins.c: Likewise.
10879 * calls.c: Likewise.
10880 * cfgexpand.c: Likewise.
10881 * cgraph.c: Likewise.
10882 * cgraphunit.c: Likewise.
10883 * convert.c: Likewise.
10884 * dwarf2out.c: Likewise.
10885 * final.c: Likewise.
10886 * fold-const.c: Likewise.
10887 * function.c: Likewise.
10888 * gimple-expr.c: Likewise.
10889 * gimple-fold.c: Likewise.
10890 * gimple-pretty-print.c: Likewise.
10891 * gimple.c: Likewise.
10892 * gimplify.c: Likewise.
10893 * hsa-common.c: Likewise.
10894 * hsa-gen.c: Likewise.
10895 * internal-fn.c: Likewise.
10896 * ipa-chkp.c: Likewise.
10897 * ipa-cp.c: Likewise.
10898 * ipa-devirt.c: Likewise.
10899 * ipa-fnsummary.c: Likewise.
10900 * ipa-inline.c: Likewise.
10901 * ipa-visibility.c: Likewise.
10903 * lto-cgraph.c: Likewise.
10904 * omp-expand.c: Likewise.
10905 * omp-general.c: Likewise.
10906 * omp-low.c: Likewise.
10907 * omp-offload.c: Likewise.
10908 * omp-simd-clone.c: Likewise.
10909 * opts-global.c: Likewise.
10910 * passes.c: Likewise.
10911 * predict.c: Likewise.
10912 * sancov.c: Likewise.
10913 * sanopt.c: Likewise.
10914 * symtab.c: Likewise.
10915 * toplev.c: Likewise.
10916 * trans-mem.c: Likewise.
10917 * tree-chkp.c: Likewise.
10918 * tree-eh.c: Likewise.
10919 * tree-into-ssa.c: Likewise.
10920 * tree-object-size.c: Likewise.
10921 * tree-parloops.c: Likewise.
10922 * tree-profile.c: Likewise.
10923 * tree-ssa-ccp.c: Likewise.
10924 * tree-ssa-live.c: Likewise.
10925 * tree-ssa-loop.c: Likewise.
10926 * tree-ssa-sccvn.c: Likewise.
10927 * tree-ssa-structalias.c: Likewise.
10928 * tree-ssa.c: Likewise.
10929 * tree-streamer-in.c: Likewise.
10930 * tree-vectorizer.c: Likewise.
10931 * tree-vrp.c: Likewise.
10932 * tsan.c: Likewise.
10933 * ubsan.c: Likewise.
10934 * varasm.c: Likewise.
10935 * varpool.c: Likewise.
10936 * tree.c: Remove functions moved to attribs.[ch].
10937 * tree.h: Likewise.
10938 * config/aarch64/aarch64.c: Add attrs.h header file.
10939 * config/alpha/alpha.c: Likewise.
10940 * config/arc/arc.c: Likewise.
10941 * config/arm/arm.c: Likewise.
10942 * config/avr/avr.c: Likewise.
10943 * config/bfin/bfin.c: Likewise.
10944 * config/c6x/c6x.c: Likewise.
10945 * config/cr16/cr16.c: Likewise.
10946 * config/cris/cris.c: Likewise.
10947 * config/darwin.c: Likewise.
10948 * config/epiphany/epiphany.c: Likewise.
10949 * config/fr30/fr30.c: Likewise.
10950 * config/frv/frv.c: Likewise.
10951 * config/ft32/ft32.c: Likewise.
10952 * config/h8300/h8300.c: Likewise.
10953 * config/i386/winnt.c: Likewise.
10954 * config/ia64/ia64.c: Likewise.
10955 * config/iq2000/iq2000.c: Likewise.
10956 * config/lm32/lm32.c: Likewise.
10957 * config/m32c/m32c.c: Likewise.
10958 * config/m32r/m32r.c: Likewise.
10959 * config/m68k/m68k.c: Likewise.
10960 * config/mcore/mcore.c: Likewise.
10961 * config/microblaze/microblaze.c: Likewise.
10962 * config/mips/mips.c: Likewise.
10963 * config/mmix/mmix.c: Likewise.
10964 * config/mn10300/mn10300.c: Likewise.
10965 * config/moxie/moxie.c: Likewise.
10966 * config/msp430/msp430.c: Likewise.
10967 * config/nds32/nds32-isr.c: Likewise.
10968 * config/nds32/nds32.c: Likewise.
10969 * config/nios2/nios2.c: Likewise.
10970 * config/nvptx/nvptx.c: Likewise.
10971 * config/pa/pa.c: Likewise.
10972 * config/pdp11/pdp11.c: Likewise.
10973 * config/powerpcspe/powerpcspe.c: Likewise.
10974 * config/riscv/riscv.c: Likewise.
10975 * config/rl78/rl78.c: Likewise.
10976 * config/rx/rx.c: Likewise.
10977 * config/s390/s390.c: Likewise.
10978 * config/sh/sh.c: Likewise.
10979 * config/sol2.c: Likewise.
10980 * config/sparc/sparc.c: Likewise.
10981 * config/spu/spu.c: Likewise.
10982 * config/stormy16/stormy16.c: Likewise.
10983 * config/tilegx/tilegx.c: Likewise.
10984 * config/tilepro/tilepro.c: Likewise.
10985 * config/v850/v850.c: Likewise.
10986 * config/vax/vax.c: Likewise.
10987 * config/visium/visium.c: Likewise.
10988 * config/xtensa/xtensa.c: Likewise.
10990 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com>
10993 * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
10994 constraints since the -mupper-regs-* switches have been
10996 (vsx_concat_<mode>_1): New combiner insns to recognize inserting
10997 into a vector from a double word element that was extracted from
10998 another vector, and eliminate extra XXPERMDI instructions.
10999 (vsx_concat_<mode>_2): Likewise.
11000 (vsx_concat_<mode>_3): Likewise.
11001 (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
11002 concat to allow optimizing inserts from previous extracts.
11004 2017-08-07 Uros Bizjak <ubizjak@gmail.com>
11006 * config/i386/i386.c (ix86_stack_protect_guard): Generate
11007 memory reference to a SSP offset in TLS address space.
11008 (ix86_print_operand) <case '@'>: Remove.
11009 (ix86_print_operand_punct_valid_p): Remove '@' code.
11010 * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
11011 UNSPEC_SP_TLS_TEST.
11012 (stack_tls_protect_set_<mode>): Remove.
11013 (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
11014 (stack_tls_protect_test_<mode>): Remove.
11015 (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
11017 2017-08-07 Olivier Hainque <hainque@adacore.com>
11020 * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
11022 2017-08-07 Douglas Rupp <rupp@adacore.com>
11024 * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
11025 variable was referenced as multidir in command.
11027 2017-08-07 Jakub Jelinek <jakub@redhat.com>
11030 * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
11033 2017-08-07 Martin Liska <mliska@suse.cz>
11035 * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
11036 * config/rl78/rl78.c: Add include of attribs.h.
11037 * config/sh/sh.c: Likewise.
11038 * config/v850/v850.c: Likewise.
11040 2017-08-07 Tom de Vries <tom@codesourcery.com>
11042 PR middle-end/78266
11043 * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
11045 2017-08-07 Martin Liska <mliska@suse.cz>
11047 * config/mips/mips.c: Include attribs.h.
11049 2017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
11052 * doc/invoke.texi: Document change in behvaior for -Ofast for
11055 2017-08-07 Wilco Dijkstra <wdijkstr@arm.com>
11057 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
11059 (aarch64_pop_regs): Likewise.
11060 (aarch64_gen_load_pair): Likewise.
11061 (aarch64_save_callee_saves): Likewise.
11062 (aarch64_restore_callee_saves): Likewise.
11064 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
11066 * config/i386/i386.c: Revert the last change.
11068 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
11071 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
11073 (ix86_finalize_stack_frame_flags): This. Also clear
11074 frame_pointer_needed if -fno-omit-frame-pointer is used without
11076 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
11077 with ix86_finalize_stack_frame_flags.
11078 (ix86_expand_epilogue): Likewise.
11079 (ix86_expand_split_stack_prologue): Likewise.
11081 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
11084 * config/i386/i386.c (get_builtin_code_for_version): Set priority
11085 to P_AES for Westmere.
11087 2017-08-07 Jonathan Yong <10walls@gmail.com>
11089 * config/i386/mingw.opt (fset-stack-executable): Removed.
11090 * config/i386/cygming.opt (fset-stack-executable): Moved
11092 * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
11094 2017-08-07 Segher Boessenkool <segher@kernel.crashing.org>
11096 * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
11098 2017-08-07 Marek Polacek <polacek@redhat.com>
11100 PR middle-end/81737
11101 * fold-const.c (fold_indirect_ref_1): Check type_domain.
11103 2017-08-07 Martin Liska <mliska@suse.cz>
11105 * attribs.h (canonicalize_attr_name): New function.
11106 (cmp_attribs): Move from c-format.c and adjusted.
11107 (is_attribute_p): Moved from tree.h.
11108 * tree-inline.c: Add new includes.
11109 * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
11110 (private_is_attribute_p): Remove.
11111 (private_lookup_attribute): Likewise.
11112 (private_lookup_attribute_by_prefix): Simplify.
11113 (remove_attribute): Use is_attribute_p.
11114 * tree.h: Remove removed declarations.
11116 2017-08-07 Jakub Jelinek <jakub@redhat.com>
11118 PR middle-end/81698
11119 * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
11120 instead of computing it in the function. Formatting fix.
11121 (expand_case): Don't rely on default_edge being the first edge,
11122 clear it if removing it, pass default_edge to
11123 emit_case_dispatch_table.
11124 (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
11127 2017-08-06 Uros Bizjak <ubizjak@gmail.com>
11129 * config/alpha/alpha.c (alpha_reorg): If trap is the last active
11130 insn in the function, emit NOP after the insn.
11132 2017-08-06 Tom de Vries <tom@codesourcery.com>
11134 * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
11137 2017-08-06 Tom de Vries <tom@codesourcery.com>
11139 * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
11142 2017-08-04 Yury Gribov <tetra2005@gmail.com>
11144 PR tree-optimization/57371
11145 * match.pd: New pattern.
11147 2017-08-04 Marek Polacek <polacek@redhat.com>
11149 PR middle-end/81695
11150 * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
11151 perform the computation in offset_int.
11153 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
11155 PR tree-optimization/81136
11156 * tree-vectorizer.h: Include tree-hash-traits.h.
11157 (vec_base_alignments): New typedef.
11158 (vec_info): Add a base_alignments field.
11159 (vect_record_base_alignments): Declare.
11160 * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
11162 (DR_IS_CONDITIONAL_IN_STMT): New macro.
11163 (create_data_ref): Add an is_conditional_in_stmt argument.
11164 * tree-data-ref.c (create_data_ref): Likewise. Use it to initialize
11165 the is_conditional_in_stmt field.
11166 (data_ref_loc): Add an is_conditional_in_stmt field.
11167 (get_references_in_stmt): Set the is_conditional_in_stmt field.
11168 (find_data_references_in_stmt): Update call to create_data_ref.
11169 (graphite_find_data_references_in_stmt): Likewise.
11170 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
11171 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
11172 (vect_record_base_alignment): New function.
11173 (vect_record_base_alignments): Likewise.
11174 (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
11175 for nested statements even if we fail to compute a misalignment.
11176 Use pooled base alignments for unconditional references.
11177 (vect_find_same_alignment_drs): Compare base addresses instead
11179 (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
11180 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
11182 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
11184 * tree-vectorizer.h (vec_info): Add a constructor and destructor.
11185 Add an explicit name for the enum. Use auto_vec for slp_instances
11186 and grouped_stores.
11187 (_loop_vec_info): Add a constructor and destructor. Use auto_vec
11189 (_bb_vec_info): Add a constructor and destructor.
11190 (vinfo_for_stmt): Return NULL for uids of -1 as well.
11191 (destroy_loop_vec_info): Delete.
11192 (vect_destroy_datarefs): Likewise.
11193 * tree-vectorizer.c (vect_destroy_datarefs): Delete.
11194 (vec_info::vec_info): New function.
11195 (vec_info::~vec_info): Likewise.
11196 (vectorize_loops): Use delete instead of destroy_loop_vec_info.
11197 * tree-parloops.c (gather_scalar_reductions): Use delete instead of
11198 destroy_loop_vec_info.
11199 * tree-vect-loop.c (new_loop_vec_info): Replace with...
11200 (_loop_vec_info::_loop_vec_info): ...this.
11201 (destroy_loop_vec_info): Replace with...
11202 (_loop_vec_info::~_loop_vec_info): ...this. Unconditionally delete
11203 the stmt_vec_infos. Leave handling of vec_info information to its
11204 destructor. Remove explicit vector releases.
11205 (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
11206 (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
11207 * tree-vect-slp.c (new_bb_vec_info): Replace with...
11208 (_bb_vec_info::_bb_vec_info): ...this. Don't reserve space in
11209 BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
11210 (destroy_bb_vec_info): Replace with...
11211 (_bb_vec_info::~_bb_vec_info): ...this. Leave handling of vec_info
11212 information to its destructor.
11213 (vect_slp_analyze_bb_1): Use new and delete instead of
11214 new_bb_vec_info and destroy_bb_vec_info.
11215 (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
11218 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
11220 * tree-data-ref.h (subscript): Add access_fn field.
11221 (data_dependence_relation): Add could_be_independent_p.
11222 (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
11223 (same_access_functions): Move to tree-data-ref.c.
11224 * tree-data-ref.c (ref_contains_union_access_p): New function.
11225 (access_fn_component_p): Likewise.
11226 (access_fn_components_comparable_p): Likewise.
11227 (dr_analyze_indices): Add a reference to access_fn_component_p.
11228 (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
11230 (constant_access_functions): Likewise.
11231 (add_other_self_distances): Likewise.
11232 (same_access_functions): Likewise. (Moved from tree-data-ref.h.)
11233 (initialize_data_dependence_relation): Use XCNEW and remove
11234 explicit zeroing of DDR_REVERSED_P. Look for a subsequence
11235 of access functions that have the same type. Allow the
11236 subsequence to end with different bases in some circumstances.
11237 Record the chosen access functions in SUB_ACCESS_FN.
11238 (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
11239 a_index and b_index. Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
11240 (subscript_dependence_tester_1): Likewise dra and drb.
11241 (build_classic_dist_vector): Update calls accordingly.
11242 (subscript_dependence_tester): Likewise.
11243 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
11244 DDR_COULD_BE_INDEPENDENT_P.
11245 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
11246 comp_alias_ddrs instead of may_alias_ddrs.
11247 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
11249 (vect_analyze_data_ref_dependence): Use it if
11250 DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
11251 distance vectors if that fails.
11252 (dependence_distance_ge_vf): New function.
11253 (vect_prune_runtime_alias_test_list): Use it. Don't clear
11254 LOOP_VINFO_MAY_ALIAS_DDRS.
11256 2017-08-04 Richard Biener <rguenther@suse.de>
11258 PR middle-end/81705
11259 * fold-const.c (fold_binary_loc): Properly restrict
11260 minus_var0 && minus_var1 case when associating undefined overflow
11263 2017-08-04 Tom de Vries <tom@codesourcery.com>
11265 * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
11267 2017-08-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11269 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11270 Don't start diagnostic messages with a capital letter.
11271 * config/rs6000/rs6000.c (rs6000_option_override_internal):
11273 (rs6000_invalid_builtin): Likewise.
11274 (rs6000_trampoline_init): Likewise.
11276 2017-08-03 Jakub Jelinek <jakub@redhat.com>
11279 * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
11280 after setting changeable df flags.
11282 2017-08-03 Richard Biener <rguenther@suse.de>
11284 * tree-ssa-reassoc.c (should_break_up_subtract): Also break
11285 up if the use is in USE - X.
11287 2017-08-03 Alexander Monakov <amonakov@ispras.ru>
11289 * toplev.c (dumpfile.h): New include.
11290 (internal_error_reentered): New static function. Use it...
11291 (internal_error_function): ...here to handle reentered internal_error.
11293 2017-08-03 Richard Biener <rguenther@suse.de>
11295 PR middle-end/81148
11296 * fold-const.c (split_tree): Add minus_var and minus_con
11297 arguments, remove unused loc arg. Never generate NEGATE_EXPRs
11298 here but always use minus_*.
11299 (associate_trees): Assert we never associate with MINUS_EXPR
11300 and NULL first operand. Do not recurse for PLUS_EXPR operands
11301 when associating as MINUS_EXPR either.
11302 (fold_binary_loc): Track minus_var and minus_con.
11304 2017-08-03 Tom de Vries <tom@codesourcery.com>
11307 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
11308 ACCEL_COMPILER, apply finish_options on
11309 DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
11311 2017-08-03 Tom de Vries <tom@codesourcery.com>
11314 * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
11315 function_entry_patch_area_size > 0.
11317 2017-08-03 Jakub Jelinek <jakub@redhat.com>
11320 * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
11321 instead of 10??LU, perform unit multiplication in wide_int,
11322 don't change alloc_object_size_limit if the limit is larger
11325 PR tree-optimization/81655
11326 PR tree-optimization/81588
11327 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
11328 the case when ranges[i].low and high are 1 for unsigned type with
11331 PR middle-end/81052
11332 * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
11333 (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
11335 2017-08-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11337 * tree-vrp.h: Add include guard.
11339 2017-08-02 Uros Bizjak <ubizjak@gmail.com>
11342 * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
11343 (ud2): New insn pattern.
11344 * config/i386/i386.c (ix86_expand_epilogue):
11345 For naked functions, generate ud2 instead of trap insn.
11347 2017-08-02 Marek Polacek <polacek@redhat.com>
11350 * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
11352 2017-08-02 Tom de Vries <tom@codesourcery.com>
11353 Cesar Philippidis <cesar@codesourcery.com>
11355 * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
11356 Add missing edge probabilities.
11358 2017-08-02 Tamar Christina <tamar.christina@arm.com>
11360 * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
11361 Correct endianness.
11363 2017-08-02 Jakub Jelinek <jakub@redhat.com>
11365 PR middle-end/79499
11366 * function.c (thread_prologue_and_epilogue_insns): Determine blocks
11367 for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
11368 of first NONDEBUG_INSN_P in each of the split_prologue_seq and
11369 prologue_seq sequences - if any.
11371 2017-08-02 Richard Biener <rguenther@suse.de>
11373 * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
11374 via vectors if supported, integer extracts via punning if supported
11375 or otherwise vector extracts.
11377 2017-08-02 Richard Biener <rguenther@suse.de>
11379 * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
11381 (bitmap_insert_into_set): ... this.
11383 2017-08-02 Richard Biener <rguenther@suse.de>
11385 PR tree-optimization/81633
11387 2015-08-17 Alan Hayward <alan.hayward@arm.com>
11389 PR tree-optimization/71752
11390 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
11392 2017-08-01 Daniel Santos <daniel.santos@pobox.com>
11394 * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
11395 (machine_function::call_ms2sysv_pad_out): Remove field.
11396 * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
11397 (ix86_compute_frame_layout): Likewise.
11399 2017-08-01 H.J. Lu <hongjiu.lu@intel.com>
11402 * config/i386/i386.c (ix86_set_func_type): Disallow naked
11403 attribute with interrupt attribute.
11405 2017-08-01 Andrew Pinski <apinski@cavium.com>
11407 * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
11408 BIT_INSERT_EXPR's operand 1
11409 to see if the types precision matches.
11411 2017-08-01 Martin Liska <mliska@suse.cz>
11413 PR middle-end/70140
11414 * builtins.c (expand_builtin_memcpy_args): Remove.
11415 (expand_builtin_memcpy): Call newly added function
11416 expand_builtin_memory_copy_args.
11417 (expand_builtin_memcpy_with_bounds): Likewise.
11418 (expand_builtin_mempcpy): Remove last argument.
11419 (expand_builtin_mempcpy_with_bounds): Likewise.
11420 (expand_builtin_memory_copy_args): New function created from
11421 expand_builtin_mempcpy_args with small modifications.
11422 (expand_builtin_mempcpy_args): Remove.
11423 (expand_builtin_stpcpy): Remove unused argument.
11424 (expand_builtin): Likewise.
11425 (expand_builtin_with_bounds): Likewise.
11427 2017-08-01 Martin Liska <mliska@suse.cz>
11430 Make mempcpy more optimal (PR middle-end/70140).
11432 2017-08-01 Jakub Jelinek <jakub@redhat.com>
11435 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
11436 __builtin_vec_cmpne verify both arguments are compatible vectors
11437 before looking at TYPE_MODE on the element type. For __builtin_vec_ld
11438 verify arg1_type is a pointer or array type. For __builtin_vec_st,
11439 move computation of aligned to after checking the argument types.
11443 * config/rs6000/vsx.md (vextract_fp_from_shorth,
11444 vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
11447 2017-08-01 Jerome Lambourg <lambourg@adacore.com>
11448 Doug Rupp <rupp@adacore.com>
11449 Olivier Hainque <hainque@adacore.com>
11451 * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
11452 well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
11454 * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
11455 for TARGET_OS_CPP_BUILTIN.
11456 (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
11457 refine CPU definitions for arm_arch5 and add those for arm_arch6 and
11459 (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
11460 passing required abi options to the assembler for EABI configurations.
11461 (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
11462 of .text.hot and .text.unlikely sections for kernel modules when
11463 using ARM style exceptions.
11464 (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
11465 options. Add EXTRA_CC1_SPEC.
11466 (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
11468 (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
11470 (ARM_TARGET2_DWARF_FORMAT): Define.
11471 * config/arm/t-vxworks: Adjust multilib control to removal of the
11472 Diab command line options.
11474 2017-08-01 Martin Liska <mliska@suse.cz>
11476 PR gcov-profile/81561
11477 * gcov.c (unblock): Make unblocking safe as we need to preserve
11478 index correspondence of blocks and block_lists.
11480 2017-08-01 Richard Biener <rguenther@suse.de>
11482 PR tree-optimization/81181
11483 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
11484 (compute_antic): ... end of iteration here.
11486 2017-08-01 James Greenhalgh <james.greenhalgh@arm.com>
11488 * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
11489 (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
11490 (ftree-slp-vectorize): Likewise.
11491 * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
11492 can no longer be set independent of flag_tree_loop_vectorize.
11493 * omp-general.c (emp_max_vf): Likewise.
11494 * opts.c (enable_fdo_optimizations): Remove references to
11495 flag_tree_vectorize, these are now implicit.
11496 (common_handle_option): Remove handling for OPT_ftree_vectorize,
11497 and leave it for the options machinery.
11499 2017-08-01 Martin Liska <mliska@suse.cz>
11501 PR middle-end/70140
11502 * builtins.c (expand_builtin_memcpy_args): Remove.
11503 (expand_builtin_memcpy): Call newly added function
11504 expand_builtin_memory_copy_args.
11505 (expand_builtin_memcpy_with_bounds): Likewise.
11506 (expand_builtin_mempcpy): Remove last argument.
11507 (expand_builtin_mempcpy_with_bounds): Likewise.
11508 (expand_builtin_memory_copy_args): New function created from
11509 expand_builtin_mempcpy_args with small modifications.
11510 (expand_builtin_mempcpy_args): Remove.
11511 (expand_builtin_stpcpy): Remove unused argument.
11512 (expand_builtin): Likewise.
11513 (expand_builtin_with_bounds): Likewise.
11515 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
11518 * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
11519 print "ds:" only for immediates in generic address space.
11521 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
11524 * config/i386/i386.c (ix86_funciton_naked): New prototype.
11525 (ix86_function_ok_for_sibcall): Return false for naked functions.
11527 2017-08-01 Richard Biener <rguenther@suse.de>
11529 * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
11530 (compute_antic): Seed worklist with exit block predecessors.
11531 * cfganal.c (dfs_find_deadend): For a cycle return the source
11532 of the edge closing it.
11534 2017-08-01 Tamar Christina <tamar.christina@arm.com>
11536 * config/aarch64/aarch64.c
11537 (aarch64_can_const_movi_rtx_p): Move 0 check.
11539 2017-08-01 Bin Cheng <bin.cheng@arm.com>
11541 * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
11542 * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
11544 * match.pd: Ditto in address comparison pattern.
11546 2017-08-01 Bin Cheng <bin.cheng@arm.com>
11548 PR tree-optimization/81627
11549 * tree-predcom.c (prepare_finalizers): Always rewrite into loop
11550 closed ssa form for store-store chain.
11552 2017-08-01 Bin Cheng <bin.cheng@arm.com>
11554 PR tree-optimization/81620
11555 * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
11556 for store-store chain.
11558 2017-08-01 Jakub Jelinek <jakub@redhat.com>
11560 PR tree-optimization/81588
11561 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
11562 ranges[i].in_p, invert comparison code ccode. For >/>=,
11563 swap rhs1 and rhs2 and comparison code unconditionally,
11564 for </<= don't do that. Don't swap rhs1/rhs2 again if
11565 ranges[i].in_p, instead invert comparison code ccode if
11566 opcode or oe->rank is BIT_IOR_EXPR.
11569 * optabs.def (vec_extract_optab, vec_init_optab): Change from
11570 a direct optab to conversion optab.
11571 * optabs.c (expand_vector_broadcast): Use convert_optab_handler
11572 with GET_MODE_INNER as last argument instead of optab_handler.
11573 * expmed.c (extract_bit_field_1): Likewise. Use vector from
11574 vector extraction if possible and optab is available.
11575 * expr.c (store_constructor): Use convert_optab_handler instead
11576 of optab_handler. Use vector initialization from smaller
11577 vectors if possible and optab is available.
11578 * tree-vect-stmts.c (vectorizable_load): Likewise.
11579 * doc/md.texi (vec_extract, vec_init): Document that the optabs
11580 now have two modes.
11581 * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
11582 of vec_init from half-sized vectors with the same element mode.
11583 * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
11584 (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
11585 (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
11586 reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
11587 reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
11588 after mode in gen_vec_extract* calls.
11589 (vec_extract<mode>): Renamed to ...
11590 (vec_extract<mode><ssescalarmodelower>): ... this.
11591 (vec_extract<mode><ssehalfvecmodelower>): New expander.
11592 (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
11593 element mode after mode in gen_vec_init* calls.
11594 (VEC_INIT_HALF_MODE): New mode iterator.
11595 (vec_init<mode>): Renamed to ...
11596 (vec_init<mode><ssescalarmodelower>): ... this.
11597 (vec_init<mode><ssehalfvecmodelower>): New expander.
11598 * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
11599 (vec_extractv2sfsf): ... this.
11600 (vec_initv2sf): Renamed to ...
11601 (vec_initv2sfsf): ... this.
11602 (vec_extractv2si): Renamed to ...
11603 (vec_extractv2sisi): ... this.
11604 (vec_initv2si): Renamed to ...
11605 (vec_initv2sisi): ... this.
11606 (vec_extractv4hi): Renamed to ...
11607 (vec_extractv4hihi): ... this.
11608 (vec_initv4hi): Renamed to ...
11609 (vec_initv4hihi): ... this.
11610 (vec_extractv8qi): Renamed to ...
11611 (vec_extractv8qiqi): ... this.
11612 (vec_initv8qi): Renamed to ...
11613 (vec_initv8qiqi): ... this.
11614 * config/rs6000/vector.md (VEC_base_l): New mode attribute.
11615 (vec_init<mode>): Renamed to ...
11616 (vec_init<mode><VEC_base_l>): ... this.
11617 (vec_extract<mode>): Renamed to ...
11618 (vec_extract<mode><VEC_base_l>): ... this.
11619 * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
11620 (vec_initv2sfsf): ... this.
11621 * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
11622 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
11623 vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
11624 element mode after mode in gen_vec_init* calls.
11625 * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
11626 (vec_init<mode><Vel>): ... this.
11627 (vec_extract<mode>): Renamed to ...
11628 (vec_extract<mode><Vel>): ... this.
11629 * config/aarch64/iterators.md (Vel): New mode attribute.
11630 * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
11631 Add element mode after mode in gen_vec_extract* calls.
11632 * config/s390/vector.md (non_vec_l): New mode attribute.
11633 (vec_extract<mode>): Renamed to ...
11634 (vec_extract<mode><non_vec_l>): ... this.
11635 (vec_init<mode>): Renamed to ...
11636 (vec_init<mode><non_vec_l>): ... this.
11637 * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
11638 s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
11640 * config/arm/iterators.md (V_elem_l): New mode attribute.
11641 * config/arm/neon.md (vec_extract<mode>): Renamed to ...
11642 (vec_extract<mode><V_elem_l>): ... this.
11643 (vec_extractv2di): Renamed to ...
11644 (vec_extractv2didi): ... this.
11645 (vec_init<mode>): Renamed to ...
11646 (vec_init<mode><V_elem_l>): ... this.
11647 (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
11648 reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
11649 reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
11650 Add element mode after gen_vec_extract* calls.
11651 * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
11652 (vec_init<mode><unitmode>): ... this.
11653 (vec_extract<mode>): Renamed to ...
11654 (vec_extract<mode><unitmode>): ... this.
11655 * config/mips/loongson.md (vec_init<mode>): Renamed to ...
11656 (vec_init<mode><unitmode>): ... this.
11657 * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
11658 (vec_initv2sfsf): ... this.
11659 (vec_extractv2sf): Renamed to ...
11660 (vec_extractv2sfsf): ... this.
11661 (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
11662 Add element mode after gen_vec_extract* calls.
11663 * config/mips/mips.md (unitmode): New mode iterator.
11664 * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
11665 spu_builtin_extract): Add element mode after gen_vec_extract* calls.
11666 * config/spu/spu.md (inner_l): New mode attribute.
11667 (vec_init<mode>): Renamed to ...
11668 (vec_init<mode><inner_l>): ... this.
11669 (vec_extract<mode>): Renamed to ...
11670 (vec_extract<mode><inner_l>): ... this.
11671 * config/sparc/sparc.md (veltmode): New mode iterator.
11672 (vec_init<VMALL:mode>): Renamed to ...
11673 (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
11674 * config/ia64/vect.md (vec_initv2si): Renamed to ...
11675 (vec_initv2sisi): ... this.
11676 (vec_initv2sf): Renamed to ...
11677 (vec_initv2sfsf): ... this.
11678 (vec_extractv2sf): Renamed to ...
11679 (vec_extractv2sfsf): ... this.
11680 * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
11681 (vec_init<mode>): Renamed to ...
11682 (vec_init<mode><VEC_base_l>): ... this.
11683 (vec_extract<mode>): Renamed to ...
11684 (vec_extract<mode><VEC_base_l>): ... this.
11685 * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
11686 (vec_initv2sfsf): ... this.
11687 * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
11688 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
11689 vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
11690 gen_vec_init* calls.
11692 2017-08-01 Richard Biener <rguenther@suse.de>
11694 PR tree-optimization/81297
11695 * tree-vrp.c (get_single_symbol): Remove assert, instead drop
11696 TREE_OVERFLOW from INTEGER_CSTs.
11698 2017-07-31 Segher Boessenkool <segher@kernel.crashing.org>
11700 * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
11702 2017-07-31 Carl Love <cel@us.ibm.com>
11704 * config/rs6000/rs6000-c: Add support for built-in functions
11705 vector signed char vec_xl_be (signed long long, signed char *);
11706 vector unsigned char vec_xl_be (signed long long, unsigned char *);
11707 vector signed int vec_xl_be (signed long long, signed int *);
11708 vector unsigned int vec_xl_be (signed long long, unsigned int *);
11709 vector signed long long vec_xl_be (signed long long, signed long long *);
11710 vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
11711 vector signed short vec_xl_be (signed long long, signed short *);
11712 vector unsigned short vec_xl_be (signed long long, unsigned short *);
11713 vector double vec_xl_be (signed long long, double *);
11714 vector float vec_xl_be (signed long long, float *);
11715 * config/rs6000/altivec.h (vec_xl_be): Add #define.
11716 * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
11717 XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
11719 * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
11720 (altivec_expand_builtin): Add switch statement to call
11721 altivec_expand_xl_be for each builtin.
11722 (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
11723 __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
11724 __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
11725 __builtin_vsx_le_be_v16qi.
11726 * doc/extend.texi: Update the built-in documentation file for the
11727 new built-in functions.
11729 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
11732 * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
11734 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
11736 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11738 * config.gcc: Add z14.
11739 * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
11740 CPU model numbers for z13s and z14.
11741 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
11743 * config/s390/s390-opts.h (enum processor_type): Rename
11744 PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
11745 * config/s390/s390.c (processor_table): Add field for CPU name to
11746 be passed to Binutils.
11747 (s390_asm_output_machine_for_arch): Use the new field in
11748 processor_table for Binutils.
11749 (s390_expand_builtin): Replace arch12 with z14.
11750 (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
11751 (s390_get_sched_attrmask): Likewise.
11752 (s390_get_unit_mask): Likewise.
11753 * config/s390/s390.opt: Add z14 to processor_type enum.
11755 2017-07-31 Martin Jambor <mjambor@suse.cz>
11758 * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
11759 regardless of optimization level.
11761 2017-07-31 Jan Hubicka <hubicka@ucw.cz>
11762 Martin Liska <mliska@suse.cz>
11764 * predict.def: Remove old comment and adjust probability.
11765 * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
11766 PREDICT statements.
11768 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
11771 * config/i386/i386.c (ix86_function_naked): New function.
11772 (ix86_can_use_return_insn_p): Return false for naked functions.
11773 (ix86_expand_prologue): Skip prologue for naked functions.
11774 (ix86_expand_epilogue): Skip epilogue for naked functions
11775 and emit trap instruction.
11776 (ix86_warn_func_return): New function.
11777 (ix86_attribute_table): Add "naked" attribute specification.
11778 (TARGET_WARN_FUNC_RETURN): Define.
11779 * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
11781 2017-07-31 Martin Liska <mliska@suse.cz>
11783 * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
11784 (dump_gimple_bb_header): Always dump BB info.
11785 (pp_cfg_jump): Do not append info about BB when dumping a jump.
11787 2017-07-31 Martin Liska <mliska@suse.cz>
11790 * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
11791 also with current_function_decl non-null equality.
11793 2017-07-31 Jakub Jelinek <jakub@redhat.com>
11796 * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
11797 change type to the element type, instead add eltype variable and
11798 use it where we are interested in the element type.
11800 PR tree-optimization/81603
11801 * ipa-polymorphic-call.c
11802 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
11803 offset arithmetic in offset_int, bail out if the resulting bit offset
11804 doesn't fit into shwi.
11806 2017-07-31 Martin Liska <mliska@suse.cz>
11808 * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
11809 (gimplify_save_expr): Fix comment.
11811 2017-07-30 H.J. Lu <hongjiu.lu@intel.com>
11814 * config/i386/i386.c (ix86_function_arg): Update arguments for
11816 (ix86_compute_frame_layout): Set the initial stack offset to
11817 INCOMING_FRAME_SP_OFFSET. Update red-zone offset with
11818 INCOMING_FRAME_SP_OFFSET.
11819 (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
11820 stack before exception handler returns.
11821 * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
11822 the 'ERROR_CODE' for exception handler.
11824 2017-07-30 Uros Bizjak <ubizjak@gmail.com>
11826 * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
11827 (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
11828 (ASM_OUTPUT_REG_POP): Ditto.
11829 * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
11830 instead of asm_fprintf to output pure string.
11832 2017-07-29 Jakub Jelinek <jakub@redhat.com>
11834 * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
11835 to imported_module_or_decl hook.
11836 (debug_nothing_tree_tree_tree_bool): Remove.
11837 (debug_nothing_tree_tree_tree_bool_bool): New declaration.
11838 * debug.c (do_nothing_debug_hooks): Use
11839 debug_nothing_tree_tree_tree_bool_bool instead of
11840 debug_nothing_tree_tree_tree_bool.
11841 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11842 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
11843 * sdbout.c (sdb_debug_hooks): Likewise.
11844 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
11845 (gen_namespace_die): Add DW_AT_export_symbols attribute if
11847 (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
11848 if true, -gdwarf-5 and decl will have DW_AT_export_symbols
11849 attribute, don't add anything.
11851 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11853 * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
11854 (fold_build2_stat_loc): Likewise.
11855 (fold_build3_stat_loc): Likewise.
11856 * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
11857 (fold_build1_loc): Remove macro.
11858 (fold_build2_loc): Likewise.
11859 (fold_build3_loc): Likewise.
11861 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11863 * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
11864 (gimple_build_debug_bind_source_stat): Likewise.
11865 * gimple.h (gimple_build_debug_bind): Remove macro.
11866 (gimple_build_debug_bind_source): Likewise.
11868 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11870 * bitmap.c (bitmap_alloc): Adjust.
11871 (bitmap_gc_alloc): Likewise.
11872 * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
11874 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11876 * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
11877 (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
11878 * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
11879 (bitmap_gc_alloc_stat): Likewise.
11880 (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
11882 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11884 * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
11885 * rtl.h (shallow_copy_rtx): Remove macro.
11887 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11889 * emit-rtl.c (gen_raw_REG): Adjust.
11890 * gengenrtl.c (gendef): Likewise.
11891 * rtl.c (rtx_alloc_stat): Remove _stat from name.
11892 * rtl.h (rtx_alloc): Remove macro.
11894 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11896 * tree.c (build_tree_list_vec_stat): Remove _stat from name.
11897 (build_tree_list_stat): Likewise.
11898 * tree.h (build_tree_list): Remove macro.
11899 (build_tree_list_vec): Likewise.
11901 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11903 * tree.c (make_vector_stat): Remove _stat from name.
11904 (build_vector_stat): Likewise.
11905 * tree.h (make_vector_stat): Remove macro.
11906 (build_vector_stat): Likewise.
11908 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11910 * tree.h (build_var_debug_value): Remove prototype.
11912 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11914 * tree.c (tree_cons_stat): Remove _stat from name.
11915 * tree.h (tree_cons): Remove macro.
11917 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11919 * tree.c (build_vl_exp_stat): Remove _stat from name.
11920 * tree.h (build_vl_exp): Remove macro.
11922 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11924 * tree.c (build_decl_stat): Remove _stat from name.
11925 * tree.h (build_decl): Remove macro.
11927 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11929 * gimple.c (gimple_build_with_ops_stat): Adjust.
11930 (gimple_alloc_stat): Remove _stat from name.
11931 * gimple.h (gimple_alloc): Remove macro.
11933 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11935 * tree.c (make_tree_vec_stat): Remove _stat from name.
11936 (grow_tree_vec_stat): Likewise.
11937 * tree.h (make_tree_vec_stat): Adjust prototype.
11938 (grow_tree_vec_stat): Likewise.
11939 (make_tree_vec): Remove macro.
11940 (grow_tree_vec): Likewise.
11942 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11944 * fold-const.c (fold_build1_stat_loc): Adjust.
11945 (fold_build2_stat_loc): Likewise.
11946 (fold_build3_stat_loc): Likewise.
11947 * tree.c (build0_stat): Remove _stat from name.
11948 (build1_stat): Likewise.
11949 (build2_stat): Likewise.
11950 (build3_stat): Likewise.
11951 (build4_stat): Likewise.
11952 (build5_stat): Likewise.
11953 * tree.h (build1_loc): Remove macro, and rename _stat function
11955 (build2_loc): Likewise.
11956 (build3_loc): Likewise.
11957 (build4_loc): Likewise.
11958 (build5_loc): Likewise.
11960 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11962 * tree.c (make_int_cst_stat): Remove _stat from name.
11963 * tree.h (make_int_cst_stat): Adjust prototype.
11964 (make_int_cst): Remove macro.
11966 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11968 * tree.c (make_tre_binfo_stat): Remove _stat from name.
11969 * tree.h (make_tree_binfo_stat): Adjust prototype.
11970 (make_tree_binfo): Remove.
11972 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11974 * tree.c (copy_node_stat): Rename to copy_node.
11975 (build_distinct_type_copy): Adjust.
11976 * tree.h (copy_node_stat): Adjust prototype.
11977 (copy_node): Remove macro.
11979 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11981 * tree.c (make_node_stat): rename to make_node.
11982 (build_tree_list_stat): Adjust.
11983 (build0_stat): Likewise.
11984 (build2_stat): Likewise.
11985 (build3_stat): Likewise.
11986 (build4_stat): Likewise.
11987 (build5_stat): Likewise.
11988 (build_decl_stat): Likewise.
11989 * tree.h (make_node_stat): Adjust prototype.
11990 (make_node): remove macro.
11992 2017-07-28 Peter Bergner <bergner@vnet.ibm.com>
11994 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
11995 (PPC_FEATURE2_SCV): Likewise.
11996 * config/rs6000/rs6000.c (cpu_supports_info): Use them.
11998 2017-07-28 Tamar Christina <tamar.christina@arm.com>
12000 * config/aarch64/aarch64.c
12001 (aarch64_internal_mov_immediate): Add new special pattern.
12002 * config/aarch64/aarch64.md (*movdi_aarch64):
12003 Add reg/32bit const mov case.
12005 2017-07-28 Tamar Christina <tamar.christina@arm.com>
12006 Richard Sandiford <richard.sandiford@linaro.org>
12008 * config/aarch64/aarch64.md (mov<mode>): Generalize.
12009 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
12010 Add integer and movi cases.
12011 (movi-split-hf-df-sf split, fp16): New.
12012 (enabled): Added TARGET_FP_F16INST.
12013 * config/aarch64/iterators.md (GPF_HF): New.
12014 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
12016 2017-07-28 Tamar Christina <tamar.christina@arm.com>
12018 * config/aarch64/aarch64.c
12019 (aarch64_simd_container_mode): Add prototype.
12020 (aarch64_expand_mov_immediate): Add HI support.
12021 (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
12022 (aarch64_can_const_movi_rtx_p): New.
12023 (aarch64_preferred_reload_class):
12024 Remove restrictions of using FP registers for certain SIMD operations.
12025 (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
12026 (aarch64_valid_floating_const): Add integer move validation.
12027 (aarch64_simd_imm_scalar_p): Remove.
12028 (aarch64_output_scalar_simd_mov_immediate): Generalize function.
12029 (aarch64_legitimate_constant_p): Expand list of supported cases.
12030 * config/aarch64/aarch64-protos.h
12031 (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
12032 (aarch64_reinterpret_float_as_int): New.
12033 (aarch64_simd_imm_scalar_p): Remove.
12034 * config/aarch64/constraints.md (Uvi): New.
12035 (Dd): Split into Ds and new Dd.
12036 * config/aarch64/aarch64.md (*movsi_aarch64):
12038 (*movdi_aarch64): Add SIMD mov case.
12040 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12042 * tree-predcom.c: (struct chain): Handle store-store chain in which
12043 stores for elimination only store loop invariant values.
12044 (execute_pred_commoning_chain): Ditto.
12045 (prepare_initializers_chain_store_elim): Ditto.
12046 (prepare_finalizers): Ditto.
12047 (is_inv_store_elimination_chain): New function.
12048 (initialize_root_vars_store_elim_1): New function.
12050 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12052 * tree-predcom.c: Revise general description of the pass.
12053 (enum chain_type): New enum type for store elimination.
12054 (struct chain): New field supporting store elimination.
12055 (struct component): Ditto.
12056 (dump_chain): Dump store-stores chain.
12057 (release_chain): Release resources.
12058 (split_data_refs_to_components): Compute and create component
12059 contains only stores for elimination.
12060 (get_chain_last_ref_at): New function.
12061 (make_invariant_chain): Initialization.
12062 (make_rooted_chain): Specify chain type in parameter and record it.
12063 (add_looparound_copies): Skip for store-stores chain.
12064 (determine_roots_comp): Compute type of chain and pass it to
12066 (initialize_root_vars_store_elim_2): New function.
12067 (finalize_eliminated_stores): New function.
12068 (remove_stmt): Handle store for elimination.
12069 (execute_pred_commoning_chain): Execute predictive commoning on
12070 store-store chains.
12071 (determine_unroll_factor): Skip unroll for store-stores chain.
12072 (prepare_initializers_chain_store_elim): New function.
12073 (prepare_initializers_chain): Hanlde store-store chain.
12074 (prepare_finalizers_chain, prepare_finalizers): New function.
12075 (tree_predictive_commoning_loop): Return integer value indicating
12076 if loop is unrolled or lcssa form is corrupted.
12077 (tree_predictive_commoning): Rewrite for lcssa form if necessary.
12079 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12081 * tree-predcom.c (initialize_root): Delete.
12082 (execute_pred_commoning_chain): Initialize root vars and replace
12083 reference of non-combined chain directly, rather than call above
12086 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12088 * tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute
12089 memory reference to DR at (NITERS + ITERS)-th iteration of loop.
12091 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12093 * tree-predcom.c (struct chain): New field init_seq.
12094 (release_chain): Release init_seq.
12095 (prepare_initializers_chain): Record intialization stmts in above
12097 (insert_init_seqs): New function.
12098 (tree_predictive_commoning_loop): Call insert_init_seqs.
12100 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12102 * tree-predcom.c (determine_roots_comp): Skip trivial components.
12104 2017-07-28 Richard Biener <rguenther@suse.de>
12106 * match.pd: Remove superfluous :c.
12107 * genmatch.c (simplify::id): Add member.
12108 (lower_commutative, lower_opt_convert, lower_cond, lower_for):
12110 (current_id): New global.
12111 (dt_node::parent): Move from ...
12112 (dt_operand::parent): ... here. Add for_id member.
12113 (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
12114 (decision_tree::find_node): Relax order requirement when
12115 merging DT_TRUE nodes to ones inbetween the current simplify
12116 and the one we try to merge with. Add diagnostic whenever
12117 we need to enforce pattern order by not merging.
12118 (decision_tree::insert): Set current_id.
12119 (decision_tree::print_node): Dump parent node and for_id.
12120 (parser::last_id): Add member.
12121 (parser::push_simplify): Assign unique id.
12122 (parser::parser): Initialize last_id.
12124 2017-07-28 Martin Liska <mliska@suse.cz>
12127 * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
12128 gimple_build_debug_bind.
12130 2017-07-28 Richard Biener <rguenther@suse.de>
12132 PR tree-optimization/81502
12133 * match.pd: Add pattern combining BIT_INSERT_EXPR with
12135 * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
12137 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
12138 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
12139 for BIT_FIELD_REF args.
12140 * fold-const.c (make_bit_field_ref): Likewise.
12141 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
12143 2017-07-28 Jakub Jelinek <jakub@redhat.com>
12146 * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
12147 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
12148 * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
12149 Or it into SANITIZER_UNDEFINED.
12150 * ubsan.c: Include gimple-fold.h and varasm.h.
12151 (ubsan_expand_ptr_ifn): New function.
12152 (instrument_pointer_overflow): New function.
12153 (maybe_instrument_pointer_overflow): New function.
12154 (instrument_object_size): Formatting fix.
12155 (pass_ubsan::execute): Call instrument_pointer_overflow
12156 and maybe_instrument_pointer_overflow.
12157 * internal-fn.c (expand_UBSAN_PTR): New function.
12158 * ubsan.h (ubsan_expand_ptr_ifn): Declare.
12159 * sanitizer.def (__ubsan_handle_pointer_overflow,
12160 __ubsan_handle_pointer_overflow_abort): New builtins.
12161 * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
12162 * internal-fn.def (UBSAN_PTR): New internal function.
12163 * opts.c (sanitizer_opts): Add pointer-overflow.
12164 * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
12165 * fold-const.c (build_range_check): Compute pointer range check in
12166 integral type if pointer arithmetics would be needed. Formatting
12169 2017-07-28 Martin Liska <mliska@suse.cz>
12172 * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
12173 parameters that are of a variable-length.
12175 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
12177 * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add
12179 * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
12180 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
12181 (CRT_CALL_STATIC_FUNCTION): Likewise.
12182 (ASM_DEFAULT_SPEC): New define.
12183 (ASM_SPEC32): Likewise.
12184 (ASM_SPEC64): Likewise.
12185 (ASM_SPEC_COMMON): Likewise.
12186 (ASM_SPEC): Likewise.
12187 (INVALID_64BIT): Likewise.
12188 (LINK_OS_DEFAULT_SPEC): Likewise.
12189 (LINK_OS_SPEC32): Likewise.
12190 (LINK_OS_SPEC64): Likewise.
12191 (POWERPC_LINUX): Likewise.
12192 (PTRDIFF_TYPE): Likewise.
12193 (RESTORE_FP_PREFIX): Likewise.
12194 (RESTORE_FP_SUFFIX): Likewise.
12195 (SAVE_FP_PREFIX): Likewise.
12196 (SAVE_FP_SUFFIX): Likewise.
12197 (SIZE_TYPE): Likewise.
12198 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
12199 (TARGET_64BIT): Likewise.
12200 (TARGET_64BIT): Likewise.
12201 (TARGET_AIX): Likewise.
12202 (WCHAR_TYPE_SIZE): Likewise.
12203 (WCHAR_TYPE): Undefine.
12204 (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
12205 (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
12206 (CPP_OS_RTEMS_SPEC): Delete.
12207 (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add
12208 asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
12210 * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
12212 2017-07-28 Jakub Jelinek <jakub@redhat.com>
12214 PR tree-optimization/81578
12215 * tree-parloops.c (build_new_reduction): Bail out if
12216 reduction_code isn't one of the standard OpenMP reductions.
12217 Move the details printing after that decision.
12219 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
12221 * config/rs6000/predicates.md (volatile_mem_operand): Remove code
12222 related to reload_in_progress.
12223 (splat_input_operand): Likewise.
12224 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
12226 * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
12228 (TARGET_EXPAND_TO_RTL_HOOK): Delete.
12229 (TARGET_INSTANTIATE_DECLS): Likewise.
12230 (legitimate_indexed_address_p): Delete reload_in_progress code.
12231 (rs6000_debug_legitimate_address_p): Likewise.
12232 (rs6000_eliminate_indexed_memrefs): Likewise.
12233 (rs6000_emit_le_vsx_store): Likewise.
12234 (rs6000_emit_move_si_sf_subreg): Likewise.
12235 (rs6000_emit_move): Likewise.
12236 (register_to_reg_type): Likewise.
12237 (rs6000_pre_atomic_barrier): Likewise.
12238 (rs6000_machopic_legitimize_pic_address): Likewise.
12239 (rs6000_allocate_stack_temp): Likewise.
12240 (rs6000_address_for_fpconvert): Likewise.
12241 (rs6000_address_for_altivec): Likewise.
12242 (rs6000_secondary_memory_needed_rtx): Delete function.
12243 (rs6000_check_sdmode): Likewise.
12244 (rs6000_alloc_sdmode_stack_slot): Likewise.
12245 (rs6000_instantiate_decls): Likewise.
12246 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
12247 * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
12248 Delete reload_in_progress.
12249 (*vec_reload_and_plus_<mptrsize>): Likewise.
12250 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
12251 (vsx_div_v2di): Likewise.
12252 (vsx_udiv_v2di): Likewise.
12254 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
12256 * config/rs6000/rs6000.opt (mlra): Replace with stub.
12257 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
12258 * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
12259 (rs6000_debug_reg_global): Delete print of LRA status.
12260 (rs6000_option_override_internal): Delete dead LRA related code.
12261 (rs6000_lra_p): Delete function.
12262 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
12264 2017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
12266 * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
12267 * config/riscv/rtems.h: New file.
12269 2017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12270 Sudakshina Das <sudi.das@arm.com>
12272 * config/aarch64/aarch64.md
12273 (define_split for and<mode>3nr_compare): Move
12274 non aarch64_logical_operand to a register.
12275 (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
12276 register immediate operand to a register.
12277 * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
12279 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
12281 PR middle-end/81564
12282 * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
12284 2017-07-27 Richard Biener <rguenther@suse.de>
12286 PR tree-optimization/81573
12287 PR tree-optimization/81494
12288 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
12289 multi defuse cycle case.
12291 2017-07-27 Richard Biener <rguenther@suse.de>
12293 PR tree-optimization/81571
12294 * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
12297 2017-07-27 Eric Botcazou <ebotcazou@adacore.com>
12299 * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
12300 earlier and only if MASK_FPU is set. Adjust formatting.
12302 2017-07-27 Martin Liska <mliska@suse.cz>
12304 * opt-functions.awk: Add validation of value of Init.
12305 * optc-gen.awk: Pass new argument.
12307 2017-07-27 Martin Liska <mliska@suse.cz>
12309 * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
12310 Fix wrong condition.
12312 2017-07-27 Martin Liska <mliska@suse.cz>
12314 * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
12315 BBs and edges seen by autoFDO.
12317 2017-07-27 Richard Biener <rguenther@suse.de>
12319 PR tree-optimization/81502
12320 * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
12321 with incompatible but same sized type.
12322 (execute_update_addresses_taken): Likewise.
12324 2017-07-27 James Greenhalgh <james.greenhalgh@arm.com>
12326 * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
12327 flag_tree_loop_vectorize rather than flag_tree_vectorize.
12329 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12332 * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
12333 ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
12334 Change s_operand to memory_operand.
12336 2017-07-27 Richard Sandiford <richard.sandiford@linaro.org>
12338 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
12339 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
12340 (rs6000_emit_le_vsx_permute): ...this. Take the destination as input.
12341 Emit instructions rather than returning an expression. Handle TFmode
12342 and KFmode by casting to TImode.
12343 (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
12344 (rs6000_emit_le_vsx_store): Likewise.
12345 * config/rs6000/vsx.md (VSX_TI): New iterator.
12346 (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
12347 (*vsx_le_undo_permute_<mode>): Likewise.
12348 (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
12349 emit the split sequence.
12350 (*vsx_le_perm_store_<mode>): Likewise.
12352 2017-07-27 Jakub Jelinek <jakub@redhat.com>
12354 PR tree-optimization/81555
12355 PR tree-optimization/81556
12356 * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
12357 if true, force CHANGED for the recursive invocation.
12358 (reassociate_bb): Remember original length of ops array, pass
12359 len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
12361 * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
12362 attributes for noipa attribute. For naked attribute use
12363 lookup_attribute first before lookup_attribute_spec.
12364 * final.c (rest_of_handle_final): Disable IPA RA for functions with
12366 * ipa-visibility.c (non_local_p): Fix comment typos. Return true
12367 for functions with noipa attribute.
12368 (cgraph_externally_visible_p): Return true for functions with noipa
12370 * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
12371 for functions with noipa attribute.
12372 * doc/extend.texi: Document noipa function attribute.
12373 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
12374 also for functions with noipa attribute.
12375 (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
12377 2017-07-26 Andrew Pinski <apinski@cavium.com>
12379 * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
12380 vec_unalign_load_cost and vec_unalign_store_cost.
12382 2017-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12384 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
12385 -mvsx-small-integer option.
12386 (ISA_3_0_MASKS_IEEE): Likewise.
12387 (OTHER_VSX_VECTOR_MASKS): Likewise.
12388 (POWERPC_MASKS): Likewise.
12389 * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
12390 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
12391 code, only testing for DImode being allowed in non-VSX floating
12393 (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
12394 to TARGET_P8_VECTOR test. Remove redundant VSX test inside of
12396 (rs6000_option_override_internal): Delete -mvsx-small-integer.
12397 (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
12398 TARGET_P8_VECTOR test.
12399 (rs6000_secondary_reload_simple_move): Likewise.
12400 (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
12401 since TARGET_P9_VECTOR was already tested.
12402 (rs6000_opt_masks): Remove -mvsx-small-integer.
12403 * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
12404 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
12406 (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
12407 test for TARGET_VEXTRACTUB was used, and that uses
12409 (p9 extract splitter): Likewise.
12410 (vsx_extract_<mode>_di_p9): Likewise.
12411 (vsx_extract_<mode>_store_p9): Likewise.
12412 (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
12413 for TARGET_P9_VECTOR was used. Delete code that is now dead with
12414 the elimination of TARGET_VSX_SMALL_INTEGER.
12415 (vsx_extract_<mode>_p8): Likewise.
12416 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
12417 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
12418 (vsx_set_<mode>_p9): Likewise.
12419 (vsx_set_v4sf_p9): Likewise.
12420 (vsx_set_v4sf_p9_zero): Likewise.
12421 (vsx_insert_extract_v4sf_p9): Likewise.
12422 (vsx_insert_extract_v4sf_p9_2): Likewise.
12423 * config/rs6000/rs6000.md (sign extend splitter): Change
12424 TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
12425 (floatsi<mode>2_lfiwax_mem): Likewise.
12426 (floatunssi<mode>2_lfiwzx_mem): Likewise.
12427 (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
12428 since a test for TARGET_P9_VECTOR was used.
12429 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
12430 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
12431 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
12432 (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
12433 TARGET_P8_VECTOR test.
12434 (fix_trunc<mode>si2_stfiwx): Likewise.
12435 (fix_trunc<mode>si2_internal): Likewise.
12436 (fix_trunc<SFDF:mode><QHI:mode>2): Delete
12437 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
12439 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
12440 (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
12441 TARGET_P8_VECTOR test.
12442 (fixuns_trunc<mode>si2_stfiwx): Likewise.
12443 (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
12444 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
12446 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
12447 (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
12448 since a test for TARGET_P9_VECTOR was used.
12449 (splitter for loading small constants): Likewise.
12451 2017-07-26 Andrew Pinski <apinski@cavium.com>
12453 * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
12456 2017-07-26 H.J. Lu <hongjiu.lu@intel.com>
12459 * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
12460 (fp_valid_at): Likewise.
12462 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
12464 * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
12465 (qdf24xx_addrcost_table): Likewise.
12466 (cortexa57_tunings): Update to use generic_branch_cost.
12467 (cortexa72_tunings): Likewise.
12468 (cortexa73_tunings): Likewise.
12469 (qdf24xx_tunings): Likewise.
12471 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
12473 * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
12474 (thunderx2t99_branch_cost): Likewise.
12475 (cortexa35_tunings): Update to use generic_branch_cost.
12476 (cortexa53_tunings): Likewise.
12477 (cortexa57_tunings): Likewise.
12478 (cortexa72_tunings): Likewise.
12479 (cortexa73_tunings): Likewise.
12480 (thunderx2t99_tunings): Likewise.
12482 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
12484 * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
12485 (sparc_option_override): Honour MASK_FSMULD.
12486 * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
12487 * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
12488 * config/sparc/sparc.opt (mfsmuld): New option.
12489 * doc/invoke.texi (mfsmuld): Document option.
12491 2017-07-26 Marek Polacek <polacek@redhat.com>
12493 PR middle-end/70992
12494 * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
12496 2017-07-26 Richard Biener <rguenther@suse.de>
12498 * gimple-match-head.c (do_valueize): Return OP if valueize
12500 (get_def): New helper to get at the def stmt of a SSA name
12501 if valueize allows.
12502 * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
12503 do_valueize to get at the def stmt.
12504 (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
12506 2017-07-26 Wilco Dijkstra <wdijkstr@arm.com>
12508 PR middle-end/46932
12509 * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
12511 2017-07-26 Martin Liska <mliska@suse.cz>
12514 * function.c (expand_function_start): Make expansion of
12515 nonlocal_goto_save_area after parm_birth_insn.
12517 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
12519 * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
12520 from all CPU target flags enable members.
12522 2017-07-26 Richard Biener <rguenther@suse.de>
12524 * genmatch.c (dt_simplify::gen): Make iterator vars const.
12525 (decision_tree::gen): Make 'type' const.
12526 (write_predicate): Likewise.
12528 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
12530 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
12531 Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
12532 (rs6000_option_override_internal): Likewise.
12533 (rs6000_expand_vector_set): Likewise.
12534 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
12535 (TARGET_UPPER_REGS_SF): Likewise.
12536 (TARGET_UPPER_REGS_DI): Likewise.
12537 (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
12538 (TARGET_DIRECT_MOVE_64BIT): Likewise.
12539 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
12540 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
12541 (Splitters for DI constants in Altivec registers): Likewise.
12542 * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
12543 (vsx_set_v4sf_p9): Likewise.
12544 (vsx_set_v4sf_p9_zero): Likewise.
12545 (vsx_insert_extract_v4sf_p9): Likewise.
12546 (vsx_insert_extract_v4sf_p9_2): Likewise.
12548 2017-07-25 Carl Love <cel@us.ibm.com>
12550 * doc/extend.texi: Update the built-in documentation file for the
12551 existing built-in functions
12552 vector signed char vec_cnttz (vector signed char);
12553 vector unsigned char vec_cnttz (vector unsigned char);
12554 vector signed short vec_cnttz (vector signed short);
12555 vector unsigned short vec_cnttz (vector unsigned short);
12556 vector signed int vec_cnttz (vector signed int);
12557 vector unsigned int vec_cnttz (vector unsigned int);
12558 vector signed long long vec_cnttz (vector signed long long);
12559 vector unsigned long long vec_cnttz (vector unsigned long long);
12561 2017-07-25 Andrew Pinski <apinski@cavium.com>
12563 * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
12564 accesses where the use is for the first operand of a BIT_INSERT.
12566 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
12569 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
12570 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
12572 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
12574 * config/i386/gstabs.h: Delete.
12575 * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
12577 2017-07-25 Uros Bizjak <ubizjak@gmail.com>
12579 * config/i386/i386.c (ix86_decompose_address): Do not check for
12580 register RTX when looking at index_reg or base_reg.
12581 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
12583 2017-07-25 Eric Botcazou <ebotcazou@adacore.com>
12585 * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
12586 to update EH info here.
12588 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
12590 * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
12592 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
12594 * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
12596 2017-07-25 Torsten Duwe <duwe@suse.de>
12598 * common.opt: Introduce -fpatchable-function-entry
12599 command line option, and its variables function_entry_patch_area_size
12600 and function_entry_patch_area_start.
12601 * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
12602 including a two-value parser.
12603 * target.def (print_patchable_function_entry): New target hook.
12604 * targhooks.h (default_print_patchable_function_entry): New function.
12605 * targhooks.c (default_print_patchable_function_entry): Likewise.
12606 * toplev.c (process_options): Switch off IPA-RA if
12607 patchable function entries are being generated.
12608 * varasm.c (assemble_start_function): Look at the
12609 patchable-function-entry command line switch and current
12610 function attributes and maybe generate NOP instructions by
12611 calling the print_patchable_function_entry hook.
12612 * doc/extend.texi: Document patchable_function_entry attribute.
12613 * doc/invoke.texi: Document -fpatchable_function_entry
12614 command line option.
12615 * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
12617 * doc/tm.texi: Re-generate.
12619 2017-07-25 Jakub Jelinek <jakub@redhat.com>
12622 * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
12623 TARGET_AVX512DQ rather than TARGET_AVX512BW.
12625 2017-07-25 Tamar Christina <tamar.christina@arm.com>
12627 * config/arm/parsecpu.awk (all_cores): Remove duplicates.
12629 2017-07-25 Richard Biener <rguenther@suse.de>
12631 PR tree-optimization/81455
12632 * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
12633 not walk in cycles when looking for guards.
12635 2017-07-25 Richard Biener <rguenther@suse.de>
12637 PR tree-optimization/81529
12638 * tree-vect-stmts.c (process_use): Disregard live induction PHIs
12639 when optimizing backedge uses.
12641 2017-07-25 David Edelsohn <dje.gcc@gmail.com>
12643 * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
12645 * dwarf2out.c (output_macinfo): Copy debug_line_section_label
12646 to dl_section_ref. On AIX, append an expression to subtract
12647 the size of the section length to dl_section_ref.
12649 2017-07-25 Segher Boessenkool <segher@kernel.crashing.org>
12651 * configure.ac: If any of the config.* scripts fail, exit 1.
12652 * configure: Regenerate.
12654 2017-07-25 Richard Biener <rguenther@suse.de>
12656 PR middle-end/81546
12657 * tree-ssa-operands.c (verify_imm_links): Remove cap on number
12658 of immediate uses, be more verbose on errors.
12660 2017-07-25 Richard Biener <rguenther@suse.de>
12662 PR tree-optimization/81510
12663 * tree-vect-loop.c (vect_is_simple_reduction): When the
12664 reduction stmt is not inside the loop bail out.
12666 2017-07-25 Richard Biener <rguenther@suse.de>
12668 PR tree-optimization/81303
12669 * tree-vect-loop-manip.c (vect_loop_versioning): Build
12670 profitability check against LOOP_VINFO_NITERSM1.
12672 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
12674 * domwalk.c (cmp_bb_postorder): Simplify.
12675 (sort_bbs_postorder): New function. Use it...
12676 (dom_walker::walk): ...here to optimize common cases.
12678 2017-07-25 Martin Liska <mliska@suse.cz>
12681 * ipa-visibility.c (function_and_variable_visibility): Make the
12682 redirection just on target that supports aliasing.
12683 Fix GNU coding style.
12685 2017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
12688 * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
12690 * config/arm/rtems.h: Likewise.
12691 * config/bfin/rtems.h: Likewise.
12692 * config/i386/rtemself.h: Likewise.
12693 * config/lm32/rtems.h: Likewise.
12694 * config/m32c/rtems.h: Likewise.
12695 * config/m68k/rtemself.h: Likewise.
12696 * config/microblaze/rtems.h: Likewise.
12697 * config/mips/rtems.h: Likewise.
12698 * config/moxie/rtems.h: Likewise.
12699 * config/nios2/rtems.h: Likewise.
12700 * config/powerpcspe/rtems.h: Likewise.
12701 * config/rs6000/rtems.h: Likewise.
12702 * config/rtems.h: Likewise.
12703 * config/sh/rtems.h: Likewise.
12704 * config/sh/rtemself.h: Likewise.
12705 * config/sparc/rtemself.h: Likewise.
12707 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
12710 * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
12711 * gimple-pretty-print.c (dump_profile, dump_probability): Same.
12712 * tree-ssa-structalias.c (alias_get_name): Same.
12714 2017-07-25 Bin Cheng <bin.cheng@arm.com>
12717 * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
12718 instructions if no du chain is found.
12720 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
12722 * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
12724 2017-07-25 Richard Biener <rguenther@suse.de>
12726 PR middle-end/81505
12727 * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
12730 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
12732 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
12733 upper-regs options.
12734 (ISA_2_7_MASKS_SERVER): Likewise.
12735 (ISA_3_0_MASKS_IEEE): Likewise.
12736 (OTHER_P8_VECTOR_MASKS): Likewise.
12737 (OTHER_VSX_VECTOR_MASKS): Likewise.
12738 (POWERPC_MASKS): Likewise.
12739 (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
12740 duplicate list of options.
12741 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
12742 explicit -mupper-regs options.
12743 * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
12744 -mupper-regs* options. Delete -mvsx-scalar-memory, which was an
12745 alias for -mupper-regs-df.
12746 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
12747 (rs6000_init_hard_regno_mode_ok): Likewise.
12748 (rs6000_option_override_internal): Likewise.
12749 (rs6000_opt_masks): Likewise.
12750 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
12751 options in terms of whether -mvsx or -mpower8-vector was used.
12752 (TARGET_UPPER_REGS_DI): Likewise.
12753 (TARGET_UPPER_REGS_SF): Likewise.
12754 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
12755 -mupper-regs-* options.
12757 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
12759 * passes.c (emergency_dump_function): Print some empty lines and a
12760 header before the RTL dump.
12762 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
12764 * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
12766 2017-07-24 Wilco Dijkstra <wdijkstr@arm.com>
12769 * config/aarch64/aarch64.c (aarch64_classify_symbol):
12770 Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
12772 2017-07-24 Carl Love <cel@us.ibm.com>
12774 * config/rs6000/rs6000-c.c: Add support for built-in functions
12775 vector float vec_extract_fp32_from_shorth (vector unsigned short);
12776 vector float vec_extract_fp32_from_shortl (vector unsigned short);
12777 * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
12778 vec_extract_fp_from_shortl): Add defines for the two builtins.
12779 * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
12780 VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
12782 * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
12783 (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
12784 * doc/extend.texi: Update the built-in documentation file for the
12785 new built-in function.
12787 2017-07-24 Jakub Jelinek <jakub@redhat.com>
12790 * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
12792 * doc/generic.texi: Likewise.
12793 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
12794 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
12796 2017-07-24 Jackson Woodruff <jackson.woodruff@arm.com>
12798 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
12799 (aarch64_mls_elt_merge<mode>): Likewise.
12801 2017-07-23 Krister Walfridsson <krister.walfridsson@gmail.com>
12803 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
12804 having __cxa_atexit.
12806 2017-07-23 Michael Collison <michael.collison@arm.com>
12808 * config/arm/arm.c (arm_option_override): Deprecate
12809 use of -mstructure-size-boundary.
12810 * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
12811 * doc/invoke.texi: Deprecate -mstructure-size-boundary.
12813 2017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12816 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
12817 Reduce cost estimate for direct moves.
12819 2017-07-23 Uros Bizjak <ubizjak@gmail.com>
12822 * config/i386/i386.c (ix86_option_override_internal): Disable
12823 BMI, BMI2 and TBM instructions for -m16.
12825 2017-07-21 Carl Love <cel@us.ibm.com>
12827 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12828 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
12829 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
12830 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
12831 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
12832 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
12833 VMULOSW): New enum "unspec" values.
12834 (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
12835 altivec_vmulosw): New patterns.
12836 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
12837 VMULOSW): Add definitions.
12839 2017-07-21 Jim Wilson <jim.wilson@linaro.org>
12841 * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
12842 (qdf24xx): Likewise.
12843 * config/aarch64/aarch64-options-extensions.def (rdma); New.
12844 * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
12845 (AARCH64_FL_V8_1): Renumber.
12846 (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
12847 (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
12848 * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
12849 * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs. Add
12850 rdma to feature modifiers list.
12852 2017-07-21 Yury Gribov <tetra2005@gmail.com>
12854 PR middle-end/56727
12855 * ipa-visibility (function_and_variable_visibility): Convert
12856 recursive PLT call to direct call if appropriate.
12858 2017-07-21 Andrew Pinski <apinski@cavium.com>
12860 * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
12861 operand 1 to see if the types precision matches.
12862 * fold-const.c (operand_equal_p): Likewise.
12864 2017-07-21 Richard Biener <rguenther@suse.de>
12866 PR tree-optimization/81303
12867 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
12868 in datarefs vector. Allow NULL dr0 for no peeling cost estimate.
12869 (vect_peeling_hash_get_lowest_cost): Adjust.
12870 (vect_enhance_data_refs_alignment): Likewise. Use
12871 vect_get_peeling_costs_all_drs to compute the penalty for no
12872 peeling to match up costs.
12874 2017-07-21 Richard Biener <rguenther@suse.de>
12876 PR tree-optimization/81500
12877 * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
12878 we didn't identify a reduction path.
12880 2017-07-21 Tom de Vries <tom@codesourcery.com>
12881 Cesar Philippidis <cesar@codesourcery.com>
12883 PR gcov-profile/81442
12884 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
12887 2017-07-21 Tom de Vries <tom@codesourcery.com>
12890 * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
12892 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
12893 nvptx_override_options_after_change.
12895 2017-07-21 Ulrich Drepper <drepper@redhat.com>
12897 * dwarf2out.c (output_file_names): Avoid double testing for
12898 dwarf_version >= 5.
12900 2017-07-21 Georg-Johann Lay <avr@gjlay.de>
12902 * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
12904 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
12906 * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
12908 (try_crossjump_to_edge): Do not punt on partitioned functions.
12910 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
12912 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
12913 Put all BBs reachable only via paths crossing cold region to cold
12915 * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
12917 2016-07-21 Richard Biener <rguenther@suse.de>
12919 PR tree-optimization/81303
12920 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
12921 into account prologue and epilogue iterations when raising
12922 min_profitable_iters to sth at least covering one vector iteration.
12924 2017-07-21 Tamar Christina <tamar.christina@arm.com>
12926 * config/arm/arm.c (arm_test_cpu_arch_dat):
12929 2017-07-20 Nathan Sidwell <nathan@acm.org>
12931 Remove TYPE_METHODS.
12932 * tree.h (TYPE_METHODS): Delete.
12933 * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
12934 * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
12935 (dbxout_type_methods): Scan TYPE_FIELDS.
12936 (dbxout_type): Don't check TYPE_METHODS here.
12937 * function.c (use_register_for_decl): Always ignore register for
12938 class types when not optimizing.
12939 * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
12940 * tree.c (free_lang_data_in_type): Stitch out member functions and
12941 templates from TYPE_FIELDS.
12942 (build_distinct_type_copy, verify_type_variant,
12943 verify_type): Member fns are on TYPE_FIELDS.
12944 * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
12945 * tree-pretty-print.c (dump_generic_node): Likewise.
12947 2017-07-20 Jakub Jelinek <jakub@redhat.com>
12950 * config/i386/i386.c (ix86_expand_vector_init_general): Handle
12951 V2TImode and V4TImode.
12952 (ix86_expand_vector_extract): Likewise.
12953 * config/i386/sse.md (VMOVE): Enable V4TImode even for just
12954 TARGET_AVX512F, instead of only for TARGET_AVX512BW.
12955 (ssescalarmode): Handle V4TImode and V2TImode.
12956 (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
12957 (*vec_extractv2ti, *vec_extractv4ti): New insns.
12958 (VEXTRACTI128_MODE): New mode iterator.
12959 (splitter for *vec_extractv?ti first element): New.
12960 (VEC_INIT_MODE): New mode iterator.
12961 (vec_init<mode>): Consolidate 3 expanders into one using
12962 VEC_INIT_MODE mode iterator.
12964 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
12966 * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
12967 non_spilled_static_chain_regno_p.
12969 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
12971 * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
12973 2017-07-20 Jan Hubicka <hubicka@ucw.cz>
12975 * bb-reorder.c (connect_traces): Allow copying of blocks within
12978 2017-07-20 Richard Biener <rguenther@suse.de>
12980 * gimple.h (gimple_phi_result): Add gphi * overload.
12981 (gimple_phi_result_ptr): Likewise.
12982 (gimple_phi_arg): Likewise. Adjust index assert to only
12983 allow actual argument accesses rather than all slots available
12985 (gimple_phi_arg_def): Add gphi * overload.
12986 * tree-phinodes.c (make_phi_node): Initialize only actual
12988 (resize_phi_node): Clear memory not covered by old node,
12989 do not initialize excess argument slots.
12990 (reserve_phi_args_for_new_edge): Initialize new argument slot
12993 2017-07-20 Bin Cheng <bin.cheng@arm.com>
12995 PR tree-optimization/81388
12997 2016-07-21 Bin Cheng <bin.cheng@arm.com>
12999 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
13000 by removing computation of may_be_zero.
13002 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
13003 Tom de Vries <tom@codesourcery.com>
13005 PR middle-end/81030
13006 * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
13007 when gimple level profile disagrees with what RTL expander did.
13009 2017-07-20 Richard Biener <rguenther@suse.de>
13011 PR tree-optimization/61171
13012 * tree-vectorizer.h (slp_instance): Add reduc_phis member.
13013 (vect_analyze_stmt): Add slp instance parameter.
13014 (vectorizable_reduction): Likewise.
13015 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
13016 (vect_is_simple_reduction): Deal with chains not detected
13017 as SLP reduction chain, specifically not properly associated
13018 chains containing a mix of plus/minus.
13019 (get_reduction_op): Remove.
13020 (get_initial_defs_for_reduction): Simplify, pass in whether
13021 this is a reduction chain, pass in the SLP node for the PHIs.
13022 (vect_create_epilog_for_reduction): Get the SLP instance as
13024 (vectorizable_reduction): Get the SLP instance as arg.
13025 During analysis remember the SLP node with the PHIs in the
13026 instance. Simplify getting at the vectorized reduction PHIs.
13027 * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
13028 through SLP instance.
13029 (vect_slp_analyze_operations): Likewise.
13030 * tree-vect-stms.c (vect_analyze_stmt): Likewise.
13031 (vect_transform_stmt): Likewise.
13033 2017-07-20 Tom de Vries <tom@codesourcery.com>
13035 PR tree-optimization/81489
13036 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
13037 read of phi arg location to before loop that modifies phi.
13039 2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
13041 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
13044 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
13046 PR middle-end/81331
13047 * except.c (execute): Fix ordering issue.
13049 2018-07-19 Segher Boessenkool <segher@kernel.crashing.org>
13051 PR rtl-optimization/81423
13052 * combine.c (make_compound_operation_int): Don't try to optimize
13053 the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
13055 2017-07-19 Segher Boessenkool <segher@kernel.crashing.org>
13057 PR rtl-optimization/81423
13058 * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
13059 with a constant that is -1 in the truncated to mode.
13061 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
13063 * predict.c (propagate_unlikely_bbs_forward): Break out from ...
13064 (determine_unlikely_bbs): ... here.
13065 * predict.h (propagate_unlikely_bbs_forward): Declare.
13066 * cfgexpand.c (pass_expand::execute): Use it.
13067 * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
13069 (find_rarely_executed_basic_blocks_and_crossing_edges): Use
13070 propagate_unlikely_bbs_forward.
13072 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
13074 PR middle-end/81331
13075 * except.c (maybe_add_nop_after_section_switch): New function.
13078 2017-07-19 Tom de Vries <tom@codesourcery.com>
13080 * gimple.h (gimple_phi_set_arg): Make assert more strict.
13082 2017-07-19 Tom de Vries <tom@codesourcery.com>
13084 * gimple.h (gimple_phi_arg): Make assert more strict.
13086 2017-07-19 Steven Munroe <munroesj@gcc.gnu.org>
13088 * config.gcc (powerpc*-*-*): Add mmintrin.h.
13089 * config/rs6000/mmintrin.h: New file.
13090 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
13092 2017-07-19 Jakub Jelinek <jakub@redhat.com>
13094 PR tree-optimization/81346
13095 * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
13097 2017-07-19 Tom de Vries <tom@codesourcery.com>
13099 * config/nvptx/nvptx.md (VECIM): Add V2DI.
13101 2017-07-19 Tom de Vries <tom@codesourcery.com>
13103 * config/nvptx/nvptx-modes.def: Add V2DImode.
13104 * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
13105 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
13106 (nvptx_output_mov_insn): Handle lack of mov.b128.
13107 (nvptx_print_operand): Handle 'H' and 'L' codes.
13108 (nvptx_vector_mode_supported): Allow V2DImode.
13109 (nvptx_preferred_simd_mode): New function.
13110 (nvptx_data_alignment): New function.
13111 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
13112 nvptx_preferred_simd_mode.
13113 * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
13115 (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment.
13117 2017-07-19 Tom de Vries <tom@codesourcery.com>
13119 * config/nvptx/nvptx-modes.def: New file. Add V2SImode.
13120 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
13121 (nvptx_vector_mode_supported): New function. Allow V2SImode.
13122 (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
13123 * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
13124 (mov<VECIM>_insn): New define_insn.
13125 (define_expand "mov<VECIM>): New define_expand.
13127 2017-07-19 Tom de Vries <tom@codesourcery.com>
13129 * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
13131 2017-07-19 Jakub Jelinek <jakub@redhat.com>
13133 PR tree-optimization/81346
13134 * fold-const.h (fold_div_compare, range_check_type): Declare.
13135 * fold-const.c (range_check_type): New function.
13136 (build_range_check): Use range_check_type.
13137 (fold_div_compare): No longer static, rewritten into
13138 a match.pd helper function.
13139 (fold_comparison): Don't call fold_div_compare here.
13140 * match.pd (X / C1 op C2): New optimization using fold_div_compare
13141 as helper function.
13143 2017-07-19 Nathan Sidwell <nathan@acm.org>
13145 * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
13146 (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
13147 * tree.c (find_decls_types_r, verify_type): Use
13148 TYPE_{MIN,MAX}_VALUE_RAW.
13149 * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
13150 (hash_tree): Likewise.
13151 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
13153 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
13156 2017-07-18 Tom de Vries <tom@codesourcery.com>
13158 PR middle-end/81464
13159 * omp-expand.c (expand_omp_for_static_chunk): Handle
13160 equal-argument loop exit phi.
13162 2017-07-18 Uros Bizjak <ubizjak@gmail.com>
13165 * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
13166 (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
13167 operand 2 predicate.
13168 (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
13169 operand 2 predicate.
13170 (ror,rol -> rorx splitters): Use const_int_operand as
13171 operand 2 predicate.
13173 2017-06-18 Richard Biener <rguenther@suse.de>
13175 PR tree-optimization/81410
13176 * tree-vect-stmts.c (vectorizable_load): Properly adjust for
13177 the gap in the ! slp_perm SLP case after each group.
13179 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
13181 PR middle-end/81463
13182 * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
13185 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
13187 PR middle-end/81462
13188 * predict.c (set_even_probabilities): Cleanup; do not affect
13189 probabilities that are already known.
13190 (combine_predictions_for_bb): Call even when count is set.
13192 2017-07-18 Nathan Sidwell <nathan@acm.org>
13194 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
13197 2017-07-18 Bin Cheng <bin.cheng@arm.com>
13200 * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
13201 optimization for loop niter analysis.
13203 2017-07-18 Georg-Johann Lay <avr@gjlay.de>
13206 * config/avr/avr.c (avr_optimize_casesi): Don't use
13207 INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
13209 2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
13211 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
13212 body_cost_vec from _vect_peel_extended_info.
13213 (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
13214 (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
13217 2017-07-18 Bin Cheng <bin.cheng@arm.com>
13219 * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
13221 2017-07-18 Richard Biener <rguenther@suse.de>
13223 PR tree-optimization/80620
13224 PR tree-optimization/81403
13225 * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
13226 info when re-using a VN table entry.
13228 2017-07-18 Richard Biener <rguenther@suse.de>
13230 PR tree-optimization/81418
13231 * tree-vect-loop.c (vectorizable_reduction): Properly compute
13232 vectype_in. Verify that with lane-reducing reduction operations
13233 we have a single def-use cycle.
13235 2017-07-17 Carl Love <cel@us.ibm.com>
13237 Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com>
13239 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13240 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
13241 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
13242 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
13243 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
13244 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
13245 VMULOSW): New enum "unspec" values.
13246 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
13247 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
13248 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
13249 altivec_vmulosw): New patterns.
13250 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
13251 VMULOSW): Add definitions.
13252 2017-07-17 Uros Bizjak <ubizjak@gmail.com>
13254 * config/alpha/alpha.c: Include predict.h.
13256 2017-07-17 Yury Gribov <tetra2005@gmail.com>
13258 * tree-vrp.c (compare_assert_loc): Fix comparison function
13259 to return predictable results.
13261 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
13263 * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
13265 (subdi3): Likewise.
13266 * config/arc/arc.opt (mexpand-adddi): Deprecate it.
13267 * doc/invoke.texi (mexpand-adddi): Update text.
13269 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
13271 * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
13272 that also clobbers the CC register. The old expand code is moved
13274 (*arc_clzsi2): ... here.
13275 (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
13276 the CC register. The old expand code is moved to ...
13277 (arc_ctzsi2): ... here.
13279 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
13281 * config/arc/arc.opt (mindexed-loads): Use initial value
13282 TARGET_INDEXED_LOADS_DEFAULT.
13283 (mauto-modify-reg): Use initial value
13284 TARGET_AUTO_MODIFY_REG_DEFAULT.
13285 * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
13286 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
13287 * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
13288 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
13290 2017-07-17 Martin Liska <mliska@suse.cz>
13293 * opts.c (finish_options): Do not allow -fgnu-tm
13294 w/ -fsanitize={kernel-,}address. Say sorry.
13296 2017-07-17 Bin Cheng <bin.cheng@arm.com>
13299 * tree-loop-distribution.c (classify_partition): Only assert on
13300 numer of iterations.
13301 (merge_dep_scc_partitions): Delete prameter. Update function call.
13302 (distribute_loop): Remove code handling loop with unknown niters.
13303 (pass_loop_distribution::execute): Skip loop with unknown niters.
13305 2017-07-17 Bin Cheng <bin.cheng@arm.com>
13308 * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
13309 function sort_partitions_by_post_order.
13311 2017-07-17 Bin Cheng <bin.cheng@arm.com>
13313 PR tree-optimization/81374
13314 * tree-loop-distribution.c (pass_loop_distribution::execute): Record
13315 the max index of basic blocks, rather than number of basic blocks.
13317 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
13319 * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
13321 (arc_legitimate_pic_operand_p): Likewise.
13322 * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
13324 (arc_needs_pcl_p): Likewise.
13325 (arc_legitimate_pc_offset_p): Likewise.
13326 (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
13327 function is also used in constrains.md.
13328 (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
13329 validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
13330 PLUS. Only return true/false in known cases, otherwise assert.
13331 (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
13332 is already called in arc_legitimate_constant_p.
13333 * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
13335 (LEGITIMATE_PIC_OPERAND_P): Use
13336 arc_raw_symbolic_reference_mentioned_p function.
13337 * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
13342 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
13343 Andrew Burgess <andrew.burgess@embecosm.com>
13345 * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
13346 (arc_return_address_register): New function.
13347 * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
13348 (arc_handle_fndecl_attribute): Add naked attribute.
13349 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
13350 (TARGET_WARN_FUNC_RETURN): Likewise.
13351 (arc_allocate_stack_slots_for_args): New function.
13352 (arc_warn_func_return): Likewise.
13353 (machine_function): Change type fn_type.
13354 (arc_compute_function_type): Consider new naked function type,
13355 change function return type.
13356 (arc_must_save_register): Adapt to handle new
13357 arc_compute_function_type's return type.
13358 (arc_expand_prologue): Likewise.
13359 (arc_expand_epilogue): Likewise.
13360 (arc_return_address_regs): Delete.
13361 (arc_return_address_register): New function.
13362 (arc_epilogue_uses): Use above function.
13363 * config/arc/arc.h (arc_return_address_regs): Delete prototype.
13364 (arc_function_type): Change encoding, add naked type.
13365 (ARC_INTERRUPT_P): Change to handle the new encoding.
13366 (ARC_FAST_INTERRUPT_P): Likewise.
13367 (ARC_NORMAL_P): Define.
13368 (ARC_NAKED_P): Likewise.
13369 (arc_compute_function_type): Delete prototype.
13370 * config/arc/arc.md (in_ret_delay_slot): Use
13371 arc_return_address_register function.
13372 (simple_return): Likewise.
13373 (p_return_i): Likewise.
13375 2017-07-17 Jakub Jelinek <jakub@redhat.com>
13377 PR tree-optimization/81428
13378 * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
13379 can't be built for those types.
13381 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
13383 Remove stuff dead since r239246.
13385 * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
13386 * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
13387 (avr_inform_devices): Remove dead stuff.
13389 2017-07-17 Tamar Christina <tamar.christina@arm.com>
13391 * config/arm/arm_neon.h: Fix softp typo.
13393 2017-07-17 Jakub Jelinek <jakub@redhat.com>
13395 PR tree-optimization/81365
13396 * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
13397 aggregate moves onto bb predecessor edges, make sure there are no
13398 loads that could alias the lhs in between the start of bb and the
13401 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
13404 * config/avr/avr.c (avr_mul_highpart_cost): New static function.
13405 (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
13406 [LSHIFTRT, outer_code = TRUNCATE]: Same.
13408 2017-07-17 Jakub Jelinek <jakub@redhat.com>
13410 PR tree-optimization/81396
13411 * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
13412 (init_symbolic_number): Initialize it to 1.
13413 (perform_symbolic_merge): Add n_ops from both operands into the new
13415 (find_bswap_or_nop): Don't consider n->n == cmpnop computations
13416 without base_addr as useless if they need more than one operation.
13417 (bswap_replace): Handle !bswap case for NULL base_addr.
13419 2017-07-17 Tom de Vries <tom@codesourcery.com>
13422 * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
13425 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
13427 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
13428 conditional builtin define __FIX_LEON3FT_B2BST.
13430 2017-07-17 Daniel Cederman <cederman@gaisler.com>
13432 * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
13433 MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
13436 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
13438 PR rtl-optimization/81424
13439 * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
13440 to remove potential trapping from operands if -fnon-call-exceptions.
13442 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
13444 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
13445 profile_proability for scalling.
13446 * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
13448 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
13450 * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
13452 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
13454 * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
13455 fixpoint arithmetics.
13457 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
13459 * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
13460 fixpoint arithmetics.
13462 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
13464 * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
13465 fixpoint arithmetics.
13467 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
13469 * profile-count.h (profile_probability::from_reg_br_prob_note,
13470 profile_probability::to_reg_br_prob_note): New functions.
13471 * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
13472 * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
13473 * predict.c (probability_reliable_p): Update.
13474 (edge_probability_reliable_p): Update.
13475 (br_prob_note_reliable_p): Update.
13476 (invert_br_probabilities): Update.
13477 (add_reg_br_prob_note): New function.
13478 (combine_predictions_for_insn): Update.
13479 * asan.c (asan_clear_shadow): Update.
13480 * cfgbuild.c (compute_outgoing_frequencies): Update.
13481 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
13482 (update_br_prob_note): Update.
13483 (rtl_verify_edges): Update.
13484 (purge_dead_edges): Update.
13485 (fixup_reorder_chain): Update.
13486 * emit-rtl.c (try_split): Update.
13487 * ifcvt.c (cond_exec_process_insns): Update.
13488 (cond_exec_process_if_block): Update.
13489 (dead_or_predicable): Update.
13490 * internal-fn.c (expand_addsub_overflow): Update.
13491 (expand_neg_overflow): Update.
13492 (expand_mul_overflow): Update.
13493 * loop-doloop.c (doloop_modify): Update.
13494 * loop-unroll.c (compare_and_jump_seq): Update.
13495 * optabs.c (emit_cmp_and_jump_insn_1): Update.
13496 * predict.h: Update.
13497 * reorg.c (mostly_true_jump): Update.
13499 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
13500 * config/alpha/alpha.c (emit_unlikely_jump): Update.
13501 * config/arc/arc.c: (emit_unlikely_jump): Update.
13502 * config/arm/arm.c: (emit_unlikely_jump): Update.
13503 * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
13504 * config/frv/frv.c (frv_print_operand_jump_hint): Update.
13505 * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
13506 (ix86_print_operand): Update.
13507 (ix86_split_fp_branch): Update.
13508 (predict_jump): Update.
13509 * config/ia64/ia64.c (ia64_print_operand): Update.
13510 * config/mmix/mmix.c (mmix_print_operand): Update.
13511 * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
13512 (rs6000_expand_split_stack_prologue): Update.
13513 * config/rs6000/rs6000.c: Update.
13514 * config/s390/s390.c (s390_expand_vec_strlen): Update.
13515 (s390_expand_vec_movstr): Update.
13516 (s390_expand_cs_tdsi): Update.
13517 (s390_expand_split_stack_prologue): Update.
13518 * config/sh/sh.c (sh_print_operand): Update.
13519 (expand_cbranchsi4): Update.
13520 (expand_cbranchdi4): Update.
13521 * config/sparc/sparc.c (output_v9branch): Update.
13522 * config/spu/spu.c (get_branch_target): Update.
13523 (ea_load_store_inline): Update.
13524 * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
13525 * config/tilepro/tilepro.c: Update.
13527 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
13529 * gimplify.c (mostly_copy_tree_r): Revert latest change.
13530 (gimplify_save_expr): Likewise.
13532 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
13534 * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
13536 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
13538 * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
13540 * timevar.def (TV_IPA_FNSUMMARY): Define.
13542 2017-07-16 Daniel Cederman <cederman@gaisler.com>
13544 * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
13545 to back store errata sensitive sequence from being generated.
13546 (sqrtdf2_fix): Likewise.
13548 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
13550 * tree-ssa-threadupdate.c (compute_path_counts,
13551 update_joiner_offpath_counts): Use profile_probability.
13553 2017-07-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
13556 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
13558 * config/arm/arm-c.c (arm_cpu_builtins): Define
13559 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
13561 2017-07-14 Kelvin Nilsen <kelvin@gcc.gnu.org>
13563 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13564 array entries to represent __ieee128 versions of the
13565 scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
13566 scalar_extract_sig, and scalar_insert_exp built-in functions.
13567 (altivec_resolve_overloaded_builtin): Add special case handling
13568 for the __builtin_scalar_insert_exp function, as represented by
13569 the P9V_BUILTIN_VEC_VSIEDP constant.
13570 * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
13571 exponent support for __ieee128 argument.
13572 (VSESQP): Add scalar extract signature support for __ieee128
13574 (VSTDCNQP): Add scalar test negative support for __ieee128
13576 (VSIEQP): Add scalar insert exponent support for __int128 argument
13577 with __ieee128 result.
13578 (VSIEQPF): Add scalar insert exponent support for __ieee128
13579 argument with __ieee128 result.
13580 (VSTDCQP): Add scalar test data class support for __ieee128
13582 (VSTDCNQP): Add overload support for scalar test negative with
13583 __ieee128 argument.
13584 (VSTDCQP): Add overload support for scalar test data class
13585 __ieee128 argument.
13586 * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
13587 UNSPEC_VSX_SXSIGDP.
13588 (UNSPEC_VSX_SIEXPQP): New constant.
13589 (xsxexpqp): New insn for VSX scalar extract exponent quad
13591 (xsxsigqp): New insn for VSX scalar extract significand quad
13593 (xsiexpqpf): New insn for VSX scalar insert exponent quad
13594 precision with floating point argument.
13595 (xststdcqp): New expand for VSX scalar test data class quad
13597 (xststdcnegqp): New expand for VSX scalar test negative quad
13599 (xststdcqp): New insn to match expansions for VSX scalar test data
13600 class quad precision and VSX scalar test negative quad precision.
13601 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
13602 special case operand checking to enforce that second operand of
13603 VSX scalar test data class with quad precision argument is a 7-bit
13605 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
13606 prototypes and descriptions of __ieee128 versions of
13607 scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
13608 scalar_test_data_class, and scalar_test_neg built-in functions.
13610 2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13612 PR tree-optimization/81162
13613 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
13614 replace a negate with an add.
13616 2017-07-14 James Greenhalgh <james.greenhalgh@arm.com>
13618 * doc/invoke.texi (arm/-mcpu): Document +crypto.
13620 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
13622 * config/arm/arm-c.c (arm_cpu_builtins): Define
13623 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
13625 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
13627 * config/arm/arm-cpus.in (cortex-r52): Add new entry.
13628 (armv8-r): Set ARM Cortex-R52 as default CPU.
13629 * config/arm/arm-tables.opt: Regenerate.
13630 * config/arm/arm-tune.md: Regenerate.
13631 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
13633 * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
13634 extension for -mcpu=cortex-r52.
13636 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
13638 * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
13639 (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
13640 * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
13641 (fp-armv8): Define it as FP_ARMv8 only.
13642 config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
13643 (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
13645 config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
13646 TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
13647 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
13648 first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
13649 than TARGET_FPU_ARMV8.
13650 * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
13651 __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
13652 * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
13654 * config/arm/neon.md (neon_vrint): Likewise.
13655 (neon_vcvt): Likewise.
13656 (neon_<fmaxmin_op><mode>): Likewise.
13657 (<fmaxmin><mode>3): Likewise.
13658 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
13659 * config/arm/predicates.md (arm_cond_move_operator): Check against
13660 TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
13662 2017-07-14 Jackson Woodruff <jackson.woodruff@arm.com>
13664 * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
13665 to top of function.
13667 2017-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13669 * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
13670 loop in comment with memset.
13672 2017-07-14 Martin Liska <mliska@suse.cz>
13674 * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
13675 * dwarf2out.c (is_java): Remove the function.
13676 (output_pubname): Remove usage of the function.
13677 (lower_bound_default): Remove usage of DW_LANG_Java.
13678 (gen_compile_unit_die): Likewise.
13679 * gcc.c: Remove compiler defaults for .java and .zip files.
13680 * gimple-expr.c (remove_suffix): Change as there's no longer
13681 extension than 4-letter one.
13682 * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
13683 (gimplify_save_expr): Likewise.
13684 * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
13685 as it's possible even for other languages than Java.
13686 * langhooks.h (struct lang_hooks): Remove Java from a comment.
13687 * lto-opts.c (lto_write_options): Remove reference to Java.
13688 * opts.c (strip_off_ending): Update file extension handling.
13689 * tree-cfg.c (verify_gimple_call): Remove comment with Java.
13690 * tree-eh.c (lower_resx): Likewise.
13691 * tree.c (free_lang_data_in_type): Remove dead code.
13692 (find_decls_types_r): Likewise.
13693 (build_common_builtin_nodes): Remove Java from a comment.
13694 (verify_type): Remove dead code.
13695 * varasm.c (assemble_external): Remove Java from a comment.
13697 2017-07-14 Martin Liska <mliska@suse.cz>
13699 * opts.c (finish_options): Add quotes.
13700 (common_handle_option): Likewise.
13702 2017-07-14 Martin Liska <mliska@suse.cz>
13704 * dbxout.c (get_lang_number): Do not handle GNU Pascal.
13705 * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
13706 Remove N_SO_PASCAL.
13707 * dwarf2out.c (lower_bound_default): Do not handle
13709 (gen_compile_unit_die): Likewise.
13710 * gcc.c: Remove default extension binding for GNU Pascal.
13711 * stmt.c: Remove Pascal language from a comment.
13712 * xcoffout.c: Likewise.
13714 2017-07-13 David Malcolm <dmalcolm@redhat.com>
13717 * diagnostic-show-locus.c (fixit_cmp): New function.
13718 (layout::layout): Sort m_fixit_hints.
13719 (column_range::column_range): Assert that the values are valid.
13720 (struct char_span): New struct.
13721 (correction::overwrite): New method.
13722 (struct source_line): New struct.
13723 (line_corrections::add_hint): Add assertions. Reimplement memcpy
13724 calls in terms of classes source_line and char_span, and
13725 correction::overwrite.
13726 (selftest::test_overlapped_fixit_printing_2): New function.
13727 (selftest::diagnostic_show_locus_c_tests): Call it.
13729 2017-07-13 Will Schmidt <will_schmidt@vnet.ibm.com>
13731 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
13732 early if there is no lhs.
13734 2017-07-13 Martin Liska <mliska@suse.cz>
13736 * dwarf2out.c (gen_pointer_type_die): Remove dead code.
13737 (gen_reference_type_die): Likewise.
13738 * stor-layout.c: Remove Pascal-related comment.
13740 2017-07-13 Martin Liska <mliska@suse.cz>
13742 * opts.c (finish_options): Add quotes to error messages.
13743 (parse_sanitizer_options): Likewise.
13745 2017-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
13747 * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
13749 2017-07-13 Richard Earnshaw <rearnsha@arm.com>
13751 * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
13753 2017-07-13 Maxim Ostapenko <m.ostapenko@samsung.com>
13755 * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
13757 * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
13759 2017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
13762 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
13763 provides the hardware capability bits, define the macro
13764 __BUILTIN_CPU_SUPPORTS__.
13765 * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
13766 if GLIBC does not provide the hardware capability bits. Add a
13767 gcc_unreachable call if the built-in cpu function is neither
13768 __builtin_cpu_is nor __builtin_cpu_supports.
13769 (rs6000_get_function_versions_dispatcher): Change the warning
13770 that an old GLIBC is used which does not export the capability
13771 bits to be an error.
13772 * doc/extend.texi (target_clones attribute): Document the
13773 restriction that GLIBC 2.23 or newer is needed on the PowerPC.
13774 (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
13775 needed by __builtin_cpu_is and __builtin_cpu_supports. Document
13776 the macros defined by GCC if the newer GLIBC is available.
13778 2017-07-12 Jeff Law <law@redhat.com>
13780 * config/riscv/riscv.c: Remove unnecessary includes. Reorder
13781 remaining includes slightly.
13782 * config/riscv/riscv-builtins.c: Include profile-count.h.
13784 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
13787 * config/avr/avr.c (avr_set_current_function): In diagnostic
13788 messages: Quote keywords and (parts of) identifiers.
13789 [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
13792 2017-07-12 Carl Love <cel@us.ibm.com>
13794 * config/rs6000/rs6000-c.c: Add support for built-in functions
13795 vector bool char vec_revb (vector bool char);
13796 vector bool short vec_revb (vector short char);
13797 vector bool int vec_revb (vector bool int);
13798 vector bool long long vec_revb (vector bool long long);
13799 * doc/extend.texi: Update the built-in documentation file for the
13800 new built-in functions.
13802 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13804 * config/s390/s390.md: Remove movcc splitter.
13806 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13808 * config/s390/s390.c (s390_rtx_costs): Return proper costs for
13809 load/store on condition.
13811 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
13814 * config/avr/avr.c (avr_encode_section_info)
13815 [progmem && !TREE_READONLY]: Error if progmem object needs
13818 2017-07-11 Michael Collison <michael.collison@arm.com>
13820 * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
13823 2017-07-11 Carl Love <cel@us.ibm.com>
13825 * config/rs6000/rs6000-c.c: Add support for builtins
13826 vector unsigned int vec_parity_lsbb (vector signed int);
13827 vector unsigned int vec_parity_lsbb (vector unsigned int);
13828 vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
13829 vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
13830 vector unsigned long long vec_parity_lsbb (vector signed long long);
13831 vector unsigned long long vec_parity_lsbb (vector unsigned long long);
13832 * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
13833 * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
13834 * doc/extend.texi: Update the built-in documentation file for the
13835 new built-in functions.
13837 2017-07-11 David Malcolm <dmalcolm@redhat.com>
13839 * diagnostic-show-locus.c: Include "gcc-rich-location.h".
13840 (layout::m_primary_loc): New field.
13841 (layout::layout): Initialize new field. Move location filtering
13842 logic from here to...
13843 (layout::maybe_add_location_range): ...this new method. Add
13844 support for filtering to just the lines already specified by other
13846 (layout::will_show_line_p): New method.
13847 (gcc_rich_location::add_location_if_nearby): New method.
13848 (selftest::test_add_location_if_nearby): New test function.
13849 (selftest::diagnostic_show_locus_c_tests): Call it.
13850 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
13853 2017-07-11 Tom de Vries <tom@codesourcery.com>
13855 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
13856 (bb_first_real_insn): New function.
13857 (nvptx_single): Add extra initialization of broadcasted condition
13860 2017-07-11 Nathan Sidwell <nathan@acm.org>
13862 * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
13864 2017-07-11 Georg-Johann Lay <avr@gjlay.de>
13866 * doc/extend.texi (AVR Function Attributes): Remove weblink to
13867 Binutils doc as TEXI will mess them up.
13868 * doc/invoke.texi (AVR Options): Same here.
13870 2017-07-11 Daniel Cederman <cederman@gaisler.com>
13872 * config/sparc/sparc.opt (mfix-ut700): New option.
13873 (mfix-gr712rc): Likewise.
13874 (sparc_fix_b2bst): New variable.
13875 * doc/invoke.texi (SPARC options): Document them.
13876 (ARM options): Fix warnings.
13877 * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
13878 instructions to prevent sequences that can trigger the store-store
13879 errata for certain LEON3FT processors.
13880 (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
13881 (sparc_option_override): Set sparc_fix_b2bst appropriately.
13882 * config/sparc/sparc.md (fix_b2bst): New attribute.
13883 (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
13885 2017-07-10 Uros Bizjak <ubizjak@gmail.com>
13888 * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
13890 (*rsqrtsf2_sse): Ditto.
13892 (div<mode>3): Macroize insn from divdf3 and divsf3
13893 using MODEF mode iterator.
13895 2017-07-10 Martin Sebor <msebor@redhat.com>
13897 PR tree-optimization/80397
13898 * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
13899 instead of testing for equality to INTEGER_TYPE.
13901 2017-07-10 Vineet Gupta <vgupta@synopsys.com>
13903 * config.gcc: Remove uclibc from arc target spec.
13905 2017-07-10 Claudiu Zissulescu <claziss@synopsys.com>
13907 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
13909 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
13912 * lto-wrapper.c (remove_option): New function.
13913 (merge_and_complain): Merge PIC/PIE options more realistically.
13915 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
13917 Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
13921 * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
13922 (HAVE_AS_AVR_MGCCISR_OPTION): If so, AC_DEFINE it.
13923 * config.in: Regenerate.
13924 * configure: Regenerate.
13925 * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
13926 * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
13927 * config/avr/avr.opt (-mgas-isr-prologues): New option and...
13928 (TARGET_GASISR_PROLOGUES): ...target mask.
13929 * common/config/avr/avr-common.c
13930 (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
13931 Set -mgas-isr-prologues.
13932 * config/avr/avr-passes.def (avr_pass_pre_proep): Add
13933 INSERT_PASS_BEFORE for it.
13934 * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
13935 * config/avr/avr.c (avr_option_override)
13936 [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
13937 (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
13938 (avr_attribute_table) <no_gccisr>: Add new function attribute.
13939 (avr_set_current_function) <is_no_gccisr>: Init machine field.
13940 (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
13942 (make_avr_pass_pre_proep): New function.
13943 (emit_push_sfr) <treg>: Add argument to function and use it
13944 instead of TMP_REG.
13945 (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
13946 and set machine->gasisr.yes.
13947 (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
13948 (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
13949 __gcc_isr.n_pushed to .L__stack_usage.
13950 (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
13951 (avr_asm_final_postscan_insn): ...this new static function.
13952 * config/avr/avr.h (machine_function)
13953 <is_no_gccisr, use_L__stack_usage>: New fields.
13954 <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
13955 * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
13956 (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
13957 (gasisr, *gasisr): New expander and insn.
13958 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
13959 [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
13960 * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
13962 2017-07-10 Richard Earnshaw <rearnsha@arm.com>
13964 * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
13967 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
13969 Move jump-tables out of .text again.
13972 * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
13973 (ASM_OUTPUT_ADDR_VEC): New function.
13974 (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
13975 (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
13976 INSN_ADDRESSes as asm comment.
13977 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
13978 (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
13979 (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
13980 * config/avr/avr.md (*tablejump): Adjust comment.
13981 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
13982 * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
13984 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
13985 (avr_output_addr_vec): New proto.
13986 (avr_log_t) <insn_addresses>: New field.
13988 2017-07-09 H.J. Lu <hongjiu.lu@intel.com>
13991 * config/i386/i386.c (ix86_function_arg_advance): Set
13992 outgoing_args_on_stack to true if there are outgoing arguments
13994 (ix86_function_arg): Likewise.
13995 (ix86_get_drap_rtx): Use DRAP only if there are outgoing
13996 arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
13997 * config/i386/i386.h (machine_function): Add
13998 outgoing_args_on_stack.
14000 2017-07-09 Krister Walfridsson <krister.walfridsson@gmail.com>
14002 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
14003 supporting pthreds.
14004 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
14006 2017-07-08 Richard Sandiford <richard.sandiford@linaro.org>
14008 * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
14009 (REAL_H): Remove $(MACHMODE_H).
14010 (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
14012 (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
14013 $(MACHMODE_H) and double-int.h.
14014 (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
14016 (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
14019 2017-07-07 Andrew Pinski <apinski@cavium.com>
14021 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
14022 prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
14024 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com>
14026 * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
14027 Add warning if GCC was not configured to link against a GLIBC that
14028 exports the hardware capability bits.
14029 (make_resolver_func): Make resolver function private and not a
14030 COMDAT function. Create the name with clone_function_name instead
14031 of make_unique_name.
14034 * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
14035 correct operand in doing the split.
14037 2017-07-07 Carl Love <cel@us.ibm.com>
14039 * config/rs6000/rs6000-c: Add support for built-in function
14040 vector unsigned short vec_pack_to_short_fp32 (vector float,
14042 * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
14043 BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
14044 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
14045 * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
14046 (convert_4f32_8i16): Add define_expand.
14047 * doc/extend.texi: Update the built-in documentation file for the
14048 new built-in function.
14050 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14052 * config/sparc/m8.md: New file.
14053 * config/sparc/sparc.md: Include m8.md.
14055 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14057 * config/sparc/sparc.opt: New option -mvis4b.
14058 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
14059 (sparc_option_override): Handle VIS4B.
14060 (enum sparc_builtins): Define
14061 SPARC_BUILTIN_DICTUNPACK{8,16,32},
14062 SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
14063 SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
14064 SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
14065 SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
14066 (check_constant_argument): New function.
14067 (sparc_vis_init_builtins): Define builtins
14068 __builtin_vis_dictunpack{8,16,32},
14069 __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
14070 __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
14071 __builtin_vis_fpcmpde{8,16,32}shl and
14072 __builtin_vis_fpcmpur{8,16,32}shl.
14073 (sparc_expand_builtin): Check that the constant operands to
14074 __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
14075 constant and in range.
14076 * config/sparc/sparc-c.c (sparc_target_macros): Handle
14078 * config/sparc/sparc.h (SPARC_IMM2_P): Define.
14079 (SPARC_IMM5_P): Likewise.
14080 * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
14081 (enabled): Handle vis4b.
14082 (UNSPEC_DICTUNPACK): New unspec.
14083 (UNSPEC_FPCMPSHL): Likewise.
14084 (UNSPEC_FPUCMPSHL): Likewise.
14085 (UNSPEC_FPCMPDESHL): Likewise.
14086 (UNSPEC_FPCMPURSHL): Likewise.
14087 (cpu_feature): New CPU feature `vis4b'.
14088 (dictunpack{8,16,32}): New insns.
14089 (FPCSMODE): New mode iterator.
14090 (fpcscond): New code iterator.
14091 (fpcsucond): Likewise.
14092 (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
14093 (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
14094 (fpcmpde{8,16,32}{si,di}shl): Likewise.
14095 (fpcmpur{8,16,32}{si,di}shl): Likewise.
14096 * config/sparc/constraints.md: Define constraints `q' for unsigned
14097 2-bit integer constants and `t' for unsigned 5-bit integer
14099 * config/sparc/predicates.md (imm5_operand_dictunpack8): New
14101 (imm5_operand_dictunpack16): Likewise.
14102 (imm5_operand_dictunpack32): Likewise.
14103 (imm2_operand): Likewise.
14104 * doc/invoke.texi (SPARC Options): Document -mvis4b.
14105 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
14106 ditunpack* and fpcmp*shl builtins.
14108 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14110 * config.gcc: Handle m8 in --with-{cpu,tune} options.
14111 * config.in: Add HAVE_AS_SPARC6 define.
14112 * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
14114 * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
14116 (ASM_CPU32_DEFAUILT_SPEC): Likewise.
14117 (CPP_CPU_SPEC): Handle m8.
14118 (ASM_CPU_SPEC): Likewise.
14119 * config/sparc/sparc-opts.h (enum processor_type): Add
14121 * config/sparc/sparc.c (m8_costs): New struct.
14122 (sparc_option_override): Handle TARGET_CPU_m8.
14123 (sparc32_initialize_trampoline): Likewise.
14124 (sparc64_initialize_trampoline): Likewise.
14125 (sparc_issue_rate): Likewise.
14126 (sparc_register_move_cost): Likewise.
14127 * config/sparc/sparc.h (TARGET_CPU_m8): Define.
14128 (CPP_CPU64_DEFAULT_SPEC): Define for M8.
14129 (ASM_CPU64_DEFAULT_SPEC): Likewise.
14130 (CPP_CPU_SPEC): Handle M8.
14131 (ASM_CPU_SPEC): Likewise.
14132 (AS_M8_FLAG): Define.
14133 * config/sparc/sparc.md: Add m8 to the cpu attribute.
14134 * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
14135 * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
14137 * configure: Regenerate.
14138 * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
14141 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14143 * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
14145 * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
14146 ("*movdi_insn_sp32"): Do not set v3pipe.
14147 ("*movsi_insn"): Likewise.
14148 ("*movdi_insn_sp64"): Likewise.
14149 ("*movsf_insn"): Likewise.
14150 ("*movdf_insn_sp32"): Likewise.
14151 ("*movdf_insn_sp64"): Likewise.
14152 ("*zero_extendsidi2_insn_sp64"): Likewise.
14153 ("*sign_extendsidi2_insn"): Likewise.
14154 ("*mov<VM32:mode>_insn"): Likewise.
14155 ("*mov<VM64:mode>_insn_sp64"): Likewise.
14156 ("*mov<VM64:mode>_insn_sp32"): Likewise.
14157 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
14158 ("<vlop:code><VL:mode>3"): Likewise.
14159 ("*not_<vlop:code><VL:mode>3"): Likewise.
14160 ("*nand<VL:mode>_vis"): Likewise.
14161 ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
14162 ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
14163 ("one_cmpl<VL:mode>2"): Likewise.
14164 ("faligndata<VM64:mode>_vis"): Likewise.
14165 ("alignaddrsi_vis"): Likewise.
14166 ("alignaddrdi_vis"): Likweise.
14167 ("alignaddrlsi_vis"): Likewise.
14168 ("alignaddrldi_vis"): Likewise.
14169 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
14170 ("bmaskdi_vis"): Likewise.
14171 ("bmasksi_vis"): Likewise.
14172 ("bshuffle<VM64:mode>_vis"): Likewise.
14173 ("cmask8<P:mode>_vis"): Likewise.
14174 ("cmask16<P:mode>_vis"): Likewise.
14175 ("cmask32<P:mode>_vis"): Likewise.
14176 ("pdistn<P:mode>_vis"): Likewise.
14177 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
14179 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14181 * config/sparc/sparc.md ("subtype"): New insn attribute.
14182 ("*wrgsr_sp64"): Set insn subtype.
14183 ("*rdgsr_sp64"): Likewise.
14184 ("alignaddrsi_vis"): Likewise.
14185 ("alignaddrdi_vis"): Likewise.
14186 ("alignaddrlsi_vis"): Likewise.
14187 ("alignaddrldi_vis"): Likewise.
14188 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
14189 ("fexpand_vis"): Likewise.
14190 ("fpmerge_vis"): Likewise.
14191 ("faligndata<VM64:mode>_vis"): Likewise.
14192 ("bshuffle<VM64:mode>_vis"): Likewise.
14193 ("cmask8<P:mode>_vis"): Likewise.
14194 ("cmask16<P:mode>_vis"): Likewise.
14195 ("cmask32<P:mode>_vis"): Likewise.
14196 ("fchksm16_vis"): Likewise.
14197 ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
14198 ("fmean16_vis"): Likewise.
14199 ("fp<plusminus_insn>64_vis"): Likewise.
14200 ("<plusminus_insn>v8qi3"): Likewise.
14201 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
14202 ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
14203 ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
14204 ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
14205 ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
14206 ("*movqi_insn"): Likewise.
14207 ("*movhi_insn"): Likewise.
14208 ("*movsi_insn"): Likewise.
14209 ("movsi_pic_gotdata_op"): Likewise.
14210 ("*movdi_insn_sp32"): Likewise.
14211 ("*movdi_insn_sp64"): Likewise.
14212 ("movdi_pic_gotdata_op"): Likewise.
14213 ("*movsf_insn"): Likewise.
14214 ("*movdf_insn_sp32"): Likewise.
14215 ("*movdf_insn_sp64"): Likewise.
14216 ("*zero_extendhisi2_insn"): Likewise.
14217 ("*zero_extendqihi2_insn"): Likewise.
14218 ("*zero_extendqisi2_insn"): Likewise.
14219 ("*zero_extendqidi2_insn"): Likewise.
14220 ("*zero_extendhidi2_insn"): Likewise.
14221 ("*zero_extendsidi2_insn_sp64"): Likewise.
14222 ("ldfsr"): Likewise.
14223 ("prefetch_64"): Likewise.
14224 ("prefetch_32"): Likewise.
14225 ("tie_ld32"): Likewise.
14226 ("tie_ld64"): Likewise.
14227 ("*tldo_ldub_sp32"): Likewise.
14228 ("*tldo_ldub1_sp32"): Likewise.
14229 ("*tldo_ldub2_sp32"): Likewise.
14230 ("*tldo_ldub_sp64"): Likewise.
14231 ("*tldo_ldub1_sp64"): Likewise.
14232 ("*tldo_ldub2_sp64"): Likewise.
14233 ("*tldo_ldub3_sp64"): Likewise.
14234 ("*tldo_lduh_sp32"): Likewise.
14235 ("*tldo_lduh1_sp32"): Likewise.
14236 ("*tldo_lduh_sp64"): Likewise.
14237 ("*tldo_lduh1_sp64"): Likewise.
14238 ("*tldo_lduh2_sp64"): Likewise.
14239 ("*tldo_lduw_sp32"): Likewise.
14240 ("*tldo_lduw_sp64"): Likewise.
14241 ("*tldo_lduw1_sp64"): Likewise.
14242 ("*tldo_ldx_sp64"): Likewise.
14243 ("*mov<VM32:mode>_insn"): Likewise.
14244 ("*mov<VM64:mode>_insn_sp64"): Likewise.
14245 ("*mov<VM64:mode>_insn_sp32"): Likewise.
14247 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14249 * config/sparc/sparc.md ("type"): New insn type viscmp.
14250 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
14252 ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
14253 ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
14254 ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
14255 * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
14257 ("n7_vis_logical_11cycle"): Likewise.
14258 * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
14259 * config/sparc/niagara2.md ("niag3_vis": Likewise.
14260 * config/sparc/niagara.md ("niag_vis"): Likewise.
14261 * config/sparc/ultra3.md ("us3_fga"): Likewise.
14262 * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
14264 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14266 * config/sparc/sparc.md: New instruction type `bmask'.
14267 (bmaskdi_vis): Use the `bmask' type.
14268 (bmasksi_vis): Likewise.
14269 * config/sparc/ultra3.md (us3_array): Likewise.
14270 * config/sparc/niagara7.md (n7_array): Likewise.
14271 * config/sparc/niagara4.md (n4_array): Likewise.
14272 * config/sparc/niagara2.md (niag2_vis): Likewise.
14273 (niag3_vis): Likewise.
14274 * config/sparc/niagara.md (niag_vis): Likewise.
14276 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
14278 * ipa-comdats.c: Remove optimize check from gate.
14279 * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
14280 for functions not optimized.
14281 (ipa_fn_summary_read): Skip optimize check.
14282 (ipa_fn_summary_write): Likewise.
14283 * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
14285 * ipa-inline.c (can_inline_edge_p): Not optimized functions are
14287 (can_inline_edge_p): Check flag_pcc_struct_return for match.
14288 (check_callers): Give up on caller which is not optimized.
14289 (inline_small_functions): Likewise.
14290 (ipa_inline): Do not give up when not optimizing.
14291 * ipa-visbility.c (function_and_variable_visibility): Do not optimize
14292 away unoptimizes cdtors.
14293 (whole_program_function_and_variable_visibility): Do
14294 ipa_discover_readonly_nonaddressable_vars in LTO mode.
14295 * ipa.c (process_references): Do not check optimize.
14296 (symbol_table::remove_unreachable_nodes): Update optimize check.
14297 (set_writeonly_bit): Update optimize check.
14298 (pass_ipa_cdtor_merge::gate): Do not check optimize.
14299 (pass_ipa_single_use::gate): Remove.
14301 2017-07-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
14303 * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
14304 insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
14305 rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
14306 mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
14307 permute_load, permute_store, adjust_extract, adjust_splat,
14308 adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
14309 replace_swap_with_copy, dump_swap_insn_table,
14310 alignment_with_canonical_addr, alignment_mask, find_alignment_op,
14311 recombine_lvx_pattern, recombine_stvx_pattern,
14312 recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
14313 make_pass_analyze_swaps): Move all code related to p8 swap optimizations
14314 to file rs6000-p8swap.c.
14315 * config/rs6000/rs6000-p8swap.c: New file.
14316 * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
14317 * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
14318 and rs6000*-*-* targets.
14320 2017-07-06 David Malcolm <dmalcolm@redhat.com>
14322 * Makefile.in (selftest): Remove dependency on s-selftest-c++.
14324 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
14326 * lto-wrapper.c (merge_and_complain): Do not merge
14327 fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
14328 fsigned_zeros, ftrapping_math, fwrapv.
14329 (append_compiler_options): Do not track these options.
14330 (append_linker_options): Likewie
14332 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
14334 * cgraphunit.c (cgraph_node::finalize_function): When
14335 !flag_toplevel_reorde set no_reorder flag.
14336 (varpool_node::finalize_decl): Likewise.
14337 (symbol_table::compile): Drop no toplevel reorder path.
14339 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
14341 * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
14342 edges; zero probability is not better than uninitialized.
14344 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
14346 * asan.h (asan_sanitize_allocas_p): Declare.
14347 * asan.c (asan_sanitize_allocas_p): New function.
14348 (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
14349 (handle_builtin_alloca): Likewise.
14350 * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
14351 if !asan_sanitize_allocas_p.
14352 * params.def (asan-instrument-allocas): Add new option.
14353 * params.h (ASAN_PROTECT_ALLOCAS): Define.
14354 * opts.c (common_handle_option): Disable allocas sanitization for
14357 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
14359 * asan.c: Include gimple-fold.h.
14360 (get_last_alloca_addr): New function.
14361 (handle_builtin_stackrestore): Likewise.
14362 (handle_builtin_alloca): Likewise.
14363 (asan_emit_allocas_unpoison): Likewise.
14364 (get_mem_refs_of_builtin_call): Add new parameter, remove const
14365 quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
14366 BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
14367 (instrument_builtin_call): Pass gimple iterator to
14368 get_mem_refs_of_builtin_call.
14369 (last_alloca_addr): New global.
14370 * asan.h (asan_emit_allocas_unpoison): Declare.
14371 * builtins.c (expand_asan_emit_allocas_unpoison): New function.
14372 (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
14373 * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
14374 if function calls alloca.
14375 * gimple-fold.c (replace_call_with_value): Remove static keyword.
14376 * gimple-fold.h (replace_call_with_value): Declare.
14377 * internal-fn.c: Include asan.h.
14378 * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
14379 BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
14381 2017-07-06 David Malcolm <dmalcolm@redhat.com>
14383 * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
14384 (C_SELFTEST_FLAGS): New.
14385 (CPP_SELFTEST_FLAGS): New.
14386 (SELFTEST_DEPS): New, from deps of s-selftest.
14387 (C_SELFTEST_DEPS): New, from deps of s-selftest.
14388 (CPP_SELFTEST_DEPS): New.
14389 (selftest): Add dependency on s-selftest-c++.
14390 (s-selftest): Rename to...
14391 (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
14392 and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
14393 than SELFTEST_FLAGS.
14394 (selftest-gdb): Rename to...
14395 (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
14397 (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
14398 (selftest-valgrind): Rename to...
14399 (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
14401 (selftest-valgrind): Reintroduce as an alias for
14402 selftest-c-valgrind.
14403 (s-selftest-c++): New.
14404 (selftest-c++-gdb): New.
14405 (selftest-c++-valgrind): New.
14407 2017-07-06 Olivier Hainque <hainque@adacore.com>
14409 * gcc.c (process_command): When deciding if undefined variables
14410 should be ignored when processing specs, accept "gcc -v" as well.
14412 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
14414 * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
14415 afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
14417 2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
14419 * config/arm/arm-cpus.in (armv8-r): Add new entry.
14420 * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
14421 * config/arm/arm-tables.opt: Regenerate.
14422 * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
14424 * doc/invoke.texi: Mention -march=armv8-r and its extensions.
14426 2017-07-06 Carl Love <cel@us.ibm.com>
14428 * ChangeLog: Clean up from mid air collision
14430 2017-07-06 Carl Love <cel@us.ibm.com>
14432 * config/rs6000/rs6000-c.c: Add support for built-in functions
14433 vector signed int vec_subc (vector signed int, vector signed int);
14434 vector signed __int128 vec_subc (vector signed __int128,
14435 vector signed __int128);
14436 vector unsigned __int128 vec_subc (vector unsigned __int128,
14437 vector unsigned __int128);
14438 vector signed int vec_sube (vector signed int, vector signed int,
14439 vector signed int);
14440 vector unsigned int vec_sube (vector unsigned int,
14441 vector unsigned int,
14442 vector unsigned int);
14443 vector signed __int128 vec_sube (vector signed __int128,
14444 vector signed __int128,
14445 vector signed__int128);
14446 vector unsigned __int128 vec_sube (vector unsigned __int128,
14447 vector unsigned __int128,
14448 vector unsigned __int128);
14449 vector signed int vec_subec (vector signed int, vector signed int,
14450 vector signed int);
14451 vector unsigned int vec_subec (vector unsigned int,
14452 vector unsigned int,
14453 vector unsigned int);
14454 vector signed __int128 vec_subec (vector signed __int128,
14455 vector signed __int128,
14456 vector signed__int128);
14457 vector unsigned __int128 vec_subec (vector unsigned __int128,
14458 vector unsigned __int128,
14459 vector unsigned __int128);
14460 * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
14461 ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
14462 * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
14463 BU_ALTIVEC_OVERLOAD_X definitions.
14464 * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
14465 * doc/extend.texi: Update the built-in documentation file for the new
14466 built-in functions.
14468 2017-07-06 David Malcolm <dmalcolm@redhat.com>
14471 * diagnostic-show-locus.c (layout::layout): Use start and finish
14472 spelling location for the start and finish of each range.
14473 * genmatch.c (linemap_client_expand_location_to_spelling_point):
14474 Add unused aspect param.
14475 * input.c (expand_location_1): Add "aspect" param, and use it
14476 to access the correct part of the location.
14477 (expand_location): Pass LOCATION_ASPECT_CARET to new param of
14479 (expand_location_to_spelling_point): Likewise.
14480 (linemap_client_expand_location_to_spelling_point): Add "aspect"
14481 param, and pass it to expand_location_1.
14483 2017-07-06 Sebastian Peryt <sebastian.peryt@intel.com>
14485 * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
14486 _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
14487 _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
14488 _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
14489 _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
14490 _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
14491 _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
14492 _mm_maskz_getmant_ss): New intrinsics.
14493 (__builtin_ia32_getexpss128_mask): Changed to ...
14494 __builtin_ia32_getexpss128_round ... this.
14495 (__builtin_ia32_getexpsd128_mask): Changed to ...
14496 __builtin_ia32_getexpsd128_round ... this.
14497 * config/i386/i386-builtin-types.def
14498 ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
14499 (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
14500 * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
14501 __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round,
14502 __builtin_ia32_getmantss_mask_round): New builtins.
14503 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
14504 V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
14505 (CODE_FOR_avx512f_vgetmantv2df_mask_round,
14506 CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
14507 * config/i386/sse.md
14508 (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
14509 avx512f_sgetexp<mode><mask_scalar_name>
14510 <round_saeonly_scalar_name> ... this.
14511 (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
14512 %0, %1, %2<round_saeonly_op3>}): Changed to ...
14513 vgetexp<ssescalarmodesuffix>
14514 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14515 %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
14516 (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
14517 avx512f_vgetmant<mode><mask_scalar_name>
14518 <round_saeonly_scalar_name> ... this.
14519 (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
14520 %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
14521 vgetmant<ssescalarmodesuffix>
14522 \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
14523 %0<mask_scalar_operand4>, %1, %2
14524 <round_saeonly_scalar_mask_op4>, %3} ... this.
14525 * config/i386/subst.md (mask_scalar_operand4,
14526 round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4,
14527 round_saeonly_scalar_nimm_predicate): New subst attributes.
14529 2017-07-06 Julia Koval <julia.koval@intel.com>
14531 * config/i386/i386.c (ix86_erase_embedded_rounding):
14532 Remove code for old rounding pattern.
14534 2017-07-06 Richard Earnshaw <rearnsha@arm.com>
14536 * config/arm/t-arm (GTM_H): Add arm-cpu.h.
14538 2017-07-06 Christophe Lyon <christophe.lyon@linaro.org>
14540 * doc/sourcebuild.texi (Test Directives, Variants of
14541 dg-require-support): Add documentation for dg-require-stack-check.
14543 2017-07-05 Sebastian Peryt <sebastian.peryt@intel.com>
14545 * config/i386/subst.md (mask_scalar, round_scalar,
14546 round_saeonly_scalar): New meta-templates.
14547 (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
14548 round_scalar_mask_operand3, round_scalar_mask_op3,
14549 round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
14550 round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
14551 round_saeonly_scalar_constraint,
14552 round_saeonly_scalar_prefix): New subst attribute.
14553 * config/i386/sse.md
14554 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
14555 <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
14556 <round_scalar_name> ... this.
14557 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
14558 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
14559 <round_scalar_name> ... this.
14560 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
14561 <sse>_vm<code><mode>3<mask_scalar_name>
14562 <round_saeonly_scalar_name> ... this.
14563 (v<plusminus_mnemonic><ssescalarmodesuffix>
14564 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
14565 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
14566 v<plusminus_mnemonic><ssescalarmodesuffix>
14567 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14568 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
14569 (v<multdiv_mnemonic><ssescalarmodesuffix>
14570 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
14571 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
14572 v<multdiv_mnemonic><ssescalarmodesuffix>
14573 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14574 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
14575 (v<maxmin_float><ssescalarmodesuffix>
14576 \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
14577 %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
14578 v<maxmin_float><ssescalarmodesuffix>
14579 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14580 %0<mask_scalar_operand3>, %1, %<iptr>2
14581 <round_saeonly_scalar_mask_op3>} ... this.
14583 2017-07-05 Richard Earnshaw <rearnsha@arm.com>
14585 * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
14586 (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
14588 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
14589 Alan Hayward <alan.hayward@arm.com>
14590 David Sherwood <david.sherwood@arm.com>
14592 * combine.c (simplify_if_then_else): Remove "enum" before
14594 * compare-elim.c (can_eliminate_compare): Likewise.
14595 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
14597 (aarch64_lookup_simd_builtin_type): Likewise.
14598 (aarch64_simd_builtin_type): Likewise.
14599 (aarch64_init_simd_builtin_types): Likewise.
14600 (aarch64_simd_expand_args): Likewise.
14601 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
14603 (aarch64_reverse_mask): Likewise.
14604 (aarch64_simd_emit_reg_reg_move): Likewise.
14605 (aarch64_gen_adjusted_ldpstp): Likewise.
14606 (aarch64_ccmp_mode_to_code): Likewise.
14607 (aarch64_operands_ok_for_ldpstp): Likewise.
14608 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
14609 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
14611 (aarch64_min_divisions_for_recip_mul): Likewise.
14612 (aarch64_reassociation_width): Likewise.
14613 (aarch64_get_condition_code_1): Likewise.
14614 (aarch64_simd_emit_reg_reg_move): Likewise.
14615 (aarch64_simd_attr_length_rglist): Likewise.
14616 (aarch64_reverse_mask): Likewise.
14617 (aarch64_operands_ok_for_ldpstp): Likewise.
14618 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
14619 (aarch64_gen_adjusted_ldpstp): Likewise.
14620 * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
14622 * config/arc/arc.c (legitimate_offset_address_p): Likewise.
14623 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
14624 (arm_lookup_simd_builtin_type): Likewise.
14625 (arm_simd_builtin_type): Likewise.
14626 (arm_init_simd_builtin_types): Likewise.
14627 (arm_expand_builtin_args): Likewise.
14628 * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
14629 * config/ft32/ft32.c (ft32_libcall_value): Likewise.
14630 (ft32_setup_incoming_varargs): Likewise.
14631 (ft32_function_arg): Likewise.
14632 (ft32_function_arg_advance): Likewise.
14633 (ft32_pass_by_reference): Likewise.
14634 (ft32_arg_partial_bytes): Likewise.
14635 (ft32_valid_pointer_mode): Likewise.
14636 (ft32_addr_space_pointer_mode): Likewise.
14637 (ft32_addr_space_legitimate_address_p): Likewise.
14638 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
14640 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
14641 (ix86_emit_outlined_ms2sysv_restore): Likewise.
14642 (iamcu_alignment): Likewise.
14643 (canonicalize_vector_int_perm): Likewise.
14644 (ix86_noce_conversion_profitable_p): Likewise.
14645 (ix86_mpx_bound_mode): Likewise.
14646 (ix86_operands_ok_for_move_multiple): Likewise.
14647 * config/microblaze/microblaze-protos.h
14648 (microblaze_expand_conditional_branch_reg): Likewise.
14649 * config/microblaze/microblaze.c
14650 (microblaze_expand_conditional_branch_reg): Likewise.
14651 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
14653 (rs6000_reassociation_width): Likewise.
14654 (rs6000_invalid_binary_op): Likewise.
14655 (fusion_p9_p): Likewise.
14656 (emit_fusion_p9_load): Likewise.
14657 (emit_fusion_p9_store): Likewise.
14658 * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
14660 (riscv_hard_regno_mode_ok_p): Likewise.
14661 (riscv_address_insns): Likewise.
14662 (riscv_split_symbol): Likewise.
14663 (riscv_legitimize_move): Likewise.
14664 (riscv_function_value): Likewise.
14665 (riscv_hard_regno_nregs): Likewise.
14666 (riscv_expand_builtin): Likewise.
14667 * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
14668 (riscv_build_integer): Likewise.
14669 (riscv_split_integer): Likewise.
14670 (riscv_legitimate_constant_p): Likewise.
14671 (riscv_cannot_force_const_mem): Likewise.
14672 (riscv_regno_mode_ok_for_base_p): Likewise.
14673 (riscv_valid_base_register_p): Likewise.
14674 (riscv_valid_offset_p): Likewise.
14675 (riscv_valid_lo_sum_p): Likewise.
14676 (riscv_classify_address): Likewise.
14677 (riscv_legitimate_address_p): Likewise.
14678 (riscv_address_insns): Likewise.
14679 (riscv_load_store_insns): Likewise.
14680 (riscv_force_binary): Likewise.
14681 (riscv_split_symbol): Likewise.
14682 (riscv_force_address): Likewise.
14683 (riscv_legitimize_address): Likewise.
14684 (riscv_move_integer): Likewise.
14685 (riscv_legitimize_const_move): Likewise.
14686 (riscv_legitimize_move): Likewise.
14687 (riscv_address_cost): Likewise.
14688 (riscv_subword): Likewise.
14689 (riscv_output_move): Likewise.
14690 (riscv_canonicalize_int_order_test): Likewise.
14691 (riscv_emit_int_order_test): Likewise.
14692 (riscv_function_arg_boundary): Likewise.
14693 (riscv_pass_mode_in_fpr_p): Likewise.
14694 (riscv_pass_fpr_single): Likewise.
14695 (riscv_pass_fpr_pair): Likewise.
14696 (riscv_get_arg_info): Likewise.
14697 (riscv_function_arg): Likewise.
14698 (riscv_function_arg_advance): Likewise.
14699 (riscv_arg_partial_bytes): Likewise.
14700 (riscv_function_value): Likewise.
14701 (riscv_pass_by_reference): Likewise.
14702 (riscv_setup_incoming_varargs): Likewise.
14703 (riscv_print_operand): Likewise.
14704 (riscv_elf_select_rtx_section): Likewise.
14705 (riscv_save_restore_reg): Likewise.
14706 (riscv_for_each_saved_reg): Likewise.
14707 (riscv_register_move_cost): Likewise.
14708 (riscv_hard_regno_mode_ok_p): Likewise.
14709 (riscv_hard_regno_nregs): Likewise.
14710 (riscv_class_max_nregs): Likewise.
14711 (riscv_memory_move_cost): Likewise.
14712 * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
14713 * config/rl78/rl78.c (rl78_split_movsi): Likewise.
14714 (rl78_addr_space_address_mode): Likewise.
14715 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14717 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
14718 (rs6000_reassociation_width): Likewise.
14719 (rs6000_invalid_binary_op): Likewise.
14720 (fusion_p9_p): Likewise.
14721 (emit_fusion_p9_load): Likewise.
14722 (emit_fusion_p9_store): Likewise.
14723 * config/visium/visium-protos.h (prepare_move_operands): Likewise.
14724 (ok_for_simple_move_operands): Likewise.
14725 (ok_for_simple_move_strict_operands): Likewise.
14726 (ok_for_simple_arith_logic_operands): Likewise.
14727 (visium_legitimize_reload_address): Likewise.
14728 (visium_select_cc_mode): Likewise.
14729 (output_cbranch): Likewise.
14730 (visium_split_double_move): Likewise.
14731 (visium_expand_copysign): Likewise.
14732 (visium_expand_int_cstore): Likewise.
14733 (visium_expand_fp_cstore): Likewise.
14734 * config/visium/visium.c (visium_pass_by_reference): Likewise.
14735 (visium_function_arg): Likewise.
14736 (visium_function_arg_advance): Likewise.
14737 (visium_libcall_value): Likewise.
14738 (visium_setup_incoming_varargs): Likewise.
14739 (visium_legitimate_constant_p): Likewise.
14740 (visium_legitimate_address_p): Likewise.
14741 (visium_legitimize_address): Likewise.
14742 (visium_secondary_reload): Likewise.
14743 (visium_register_move_cost): Likewise.
14744 (visium_memory_move_cost): Likewise.
14745 (prepare_move_operands): Likewise.
14746 (ok_for_simple_move_operands): Likewise.
14747 (ok_for_simple_move_strict_operands): Likewise.
14748 (ok_for_simple_arith_logic_operands): Likewise.
14749 (visium_function_value_1): Likewise.
14750 (rtx_ok_for_offset_p): Likewise.
14751 (visium_legitimize_reload_address): Likewise.
14752 (visium_split_double_move): Likewise.
14753 (visium_expand_copysign): Likewise.
14754 (visium_expand_int_cstore): Likewise.
14755 (visium_expand_fp_cstore): Likewise.
14756 (visium_split_cstore): Likewise.
14757 (visium_select_cc_mode): Likewise.
14758 (visium_split_cbranch): Likewise.
14759 (output_cbranch): Likewise.
14760 (visium_print_operand_address): Likewise.
14761 * expmed.c (flip_storage_order): Likewise.
14762 * expmed.h (emit_cstore): Likewise.
14763 (flip_storage_order): Likewise.
14764 * genrecog.c (validate_pattern): Likewise.
14765 * hsa-gen.c (gen_hsa_addr): Likewise.
14766 * internal-fn.c (expand_arith_overflow): Likewise.
14767 * ira-color.c (allocno_copy_cost_saving): Likewise.
14768 * lra-assigns.c (find_hard_regno_for_1): Likewise.
14769 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
14770 (process_invariant_for_inheritance): Likewise.
14771 * lra-eliminations.c (move_plus_up): Likewise.
14772 * omp-low.c (lower_oacc_reductions): Likewise.
14773 * simplify-rtx.c (simplify_subreg): Likewise.
14774 * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
14775 (TARGET_CHKP_BOUND_MODE): Likewise..
14776 * targhooks.c (default_chkp_bound_mode): Likewise.
14777 (default_setup_incoming_vararg_bounds): Likewise.
14778 * targhooks.h (default_chkp_bound_mode): Likewise.
14779 (default_setup_incoming_vararg_bounds): Likewise.
14780 * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
14781 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
14782 (have_whole_vector_shift): Likewise.
14783 * tree-vect-stmts.c (vectorizable_load): Likewise.
14784 * doc/tm.texi: Regenerate.
14786 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
14788 Graceful degrade if Binutils PR21472 is not available.
14791 * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
14792 .rodata in flash test fails.
14793 (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
14794 * confgure: Regenerate.
14795 * config.in: Regenerate.
14796 * config/avr/avr.c (avr_asm_named_section)
14797 [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
14798 __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
14799 (avr_asm_init_sections): Same.
14801 2017-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14803 * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
14804 (fma<VH:mode>4_intrinsic): Likewise.
14805 (*fmsub<VCVTF:mode>4): Likewise.
14806 (*fmsub<VH:mode>4_intrinsic): Likewise.
14808 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
14811 * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
14812 Don't depend on "optimize > 0".
14813 (out_movhi_r_mr, out_movqi_mr_r): Same.
14814 (out_movhi_mr_r, out_movqi_r_mr): Same.
14815 (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
14816 io_address_operand on "optimize > 0".
14818 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14820 * tree-loop-distribution.c: Add general explanantion on the pass.
14821 (generate_loops_for_partition): Mark distributed loop.
14822 (pg_add_dependence_edges): New parameter. Handle alias data
14823 dependence specially and record it in the parameter if asked.
14824 (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
14825 (init_partition_graph_vertices, add_partition_graph_edge): New.
14826 (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
14827 (free_partition_graph_vdata, build_partition_graph): New.
14828 (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
14829 (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
14830 (data_ref_segment_size, latch_dominated_by_data_ref): New.
14831 (compute_alias_check_pairs, version_loop_by_alias_check): New.
14832 (version_for_distribution_p, finalize_partitions): New.
14833 (distribute_loop): Handle alias data dependence specially. Factor
14834 out loop fusion code as functions and call these functions.
14836 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14838 * tree-loop-distribution.c (classify_partition): New parameter and
14839 better handle reduction statement.
14840 (rdg_build_partitions): Revise comment.
14841 (distribute_loop): Compute statements in all partitions and pass it
14842 to classify_partition.
14844 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14846 * tree-loop-distribution.c (enum partition_type): New.
14847 (struct partition): New field type.
14848 (partition_merge_into): Add parameter. Update partition type.
14849 (data_dep_in_cycle_p, update_type_for_merge): New functions.
14850 (build_rdg_partition_for_vertex): Compute partition type.
14851 (rdg_build_partitions): Dump partition type.
14852 (distribute_loop): Update calls to partition_merge_into.
14854 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14856 * tree-loop-distribution.c (struct ddr_hasher): New.
14857 (ddr_hasher::hash, ::equal, get_data_dependence): New function.
14859 (classify_partition): Call get_data_dependence.
14860 (pg_add_dependence_edges): Ditto.
14861 (distribute_loop): Release data dependence hash table.
14863 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14865 * tree-loop-distribution.c (ref_base_address): Delete.
14866 (similar_memory_accesses): Rename ...
14867 (share_memory_accesses): ... to this. Check if partitions access
14868 the same memory reference.
14869 (distribute_loop): Call share_memory_accesses.
14871 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14873 * tree-loop-distribution.c (struct partition): New field recording
14874 its data reference.
14875 (partition_alloc, partition_free): Init and release data refs.
14876 (partition_merge_into): Merge data refs.
14877 (build_rdg_partition_for_vertex): Collect data refs for partition.
14878 (pg_add_dependence_edges): Change parameters from vector to bitmap.
14880 (distribute_loop): Remve data refs from vertice data of partition
14883 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14885 * tree-loop-distribution.c (params.h): Include header file.
14886 (MAX_DATAREFS_NUM, DR_INDEX): New macro.
14887 (datarefs_vec): New global var.
14888 (create_rdg_vertices): Use datarefs_vec directly.
14889 (free_rdg): Don't free data references.
14890 (build_rdg): Update use. Don't free data references.
14891 (distribute_loop): Compute global variable for data references.
14892 Bail out if there are too many data references.
14894 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14896 * tree-loop-distribution.c (loop_nest): New global var.
14897 (build_rdg): Use loop directly, rather than loop nest.
14898 (pg_add_dependence_edges): Remove loop nest parameter. Use global
14900 (distribute_loop): Compute global variable loop nest. Update use.
14902 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14904 * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
14905 (partition_merge_into): New parameter. Dump reason for fusion.
14906 (distribute_loop): Update use of partition_merge_into.
14908 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14910 * tree-loop-distribution.c (bb_top_order_index): New.
14911 (bb_top_order_index_size, bb_top_order_cmp): New.
14912 (stmts_from_loop): Use topological order.
14913 (pass_loop_distribution::execute): Compute and release topological
14914 order for basic blocks.
14916 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14918 * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
14921 2017-07-05 Bin Cheng <bin.cheng@arm.com>
14923 * cfgloop.h (struct loop): Add comment. New field orig_loop_num.
14924 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
14925 * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
14926 * internal-fn.def (LOOP_DIST_ALIAS): New.
14927 * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
14928 (fold_loop_internal_call): ... this.
14929 (vect_loop_dist_alias_call): New function.
14930 (set_uid_loop_bbs): Call fold_loop_internal_call.
14931 (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
14934 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
14937 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
14938 Require dead FLAGS_REG at the beginning of a peephole.
14940 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
14943 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
14944 arguments in the call to __builtin_ia32_sbb_u32.
14945 (_subborrow_u64): Swap _X and _Y arguments in the call to
14946 __builtin_ia32_sbb_u64.
14948 2017-07-04 Jakub Jelinek <jakub@redhat.com>
14951 * tree-vrp.c (compare_assert_loc): Turn into a function template
14952 with stable template parameter. Only test if a->e is NULL,
14953 !a->e == !b->e has been verified already. Use e == NULL or
14954 e != NULL instead of e or ! e tests. If stable is true, don't use
14955 iterative_hash_expr, on the other side allow a or b or both NULL
14956 and sort the NULLs last.
14957 (process_assert_insertions): Sort using compare_assert_loc<false>
14958 instead of compare_assert_loc, later sort using
14959 compare_assert_loc<true> before calling process_assert_insertions_for
14960 in a loop. Use break instead of continue once seen NULL pointer.
14962 2017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
14964 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
14965 Cortex-R7 and Cortex-R8 processors.
14967 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
14969 * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
14970 uninitialized while src is not.
14972 2017-07-04 Richard Earnshaw <rearnsha@arm.com>
14974 * common/config/arm/arm-common.c: Adjust include path for
14976 * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
14977 (arm-cpu.h): Create in build directory. Adjust dependency rules.
14978 (arm-cpu-data.h): Likewise.
14979 (arm-cpu-cdata.h): Likewise.
14980 * config/arm/arm-cpu.h: Delete.
14981 * config/arm/arm-cpu-cdata.h: Delete.
14982 * config/arm/arm-cpu-data.h: Delete.
14984 2017-07-04 James Greenhalgh <james.greenhalgh@arm.com>
14986 * config/arm/arm-cpus.in (cortex-a55): New.
14987 (cortex-a75): Likewise.
14988 (cortex-a75.cortex-a55): Likewise.
14989 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
14991 * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
14992 * config/arm/arm-cpu-cdata.h: Regenerate.
14993 * config/arm/arm-cpu-data.h: Regenerate.
14994 * config/arm/arm-cpu.h: Regenerate.
14995 * config/arm/arm-tables.opt: Regenerate.
14996 * config/arm/arm-tune.md: Regenerate.
14998 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
15000 * haifa-sched.c (sched_create_recovery_edges): Update profile.
15002 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
15004 * bb-reorder.c (better_edge_p): Fix handling of uninitialized
15007 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org>
15009 PR tree-optimization/81292
15010 * tree-ssa-strlen.c (handle_builtin_strlen): When setting
15011 full_string_p, also call adjust_related_strinfos if the adjustment
15012 is simple, otherwise invalidate related strinfos.
15014 2017-07-04 Martin Liska <mliska@suse.cz>
15017 * sanopt.c (sanitize_rewrite_addressable_params): Mark the
15018 newly created variable as DECL_IGNORED_P.
15020 2017-07-04 Martin Liska <mliska@suse.cz>
15023 * ipa-inline.c (inline_small_functions):
15024 Use xstrdup_for_dump.
15026 2017-07-04 Tom de Vries <tom@codesourcery.com>
15028 * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
15030 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
15033 * config/darwin.c (darwin_function_switched_text_sections):
15036 2017-07-03 Jan Hubicka <hubicka@ucw.cz>
15038 * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
15040 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
15042 * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
15044 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15046 * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
15047 min_profitable_iters, and th as inclusive lower bounds.
15048 Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
15049 (vect_estimate_min_profitable_iters): Return inclusive lower bounds
15050 for min_profitable_iters and min_profitable_estimate.
15051 (vect_transform_loop): Treat th as an inclusive lower bound.
15052 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
15054 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
15057 * config/darwin.c (darwin_function_switched_text_sections):
15058 Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
15059 in two pieces, and suppress the use of buf.
15061 2017-07-03 Nathan Sidwell <nathan@acm.org>
15063 * hash-table.h (hash_table_mod1): Fix indentation.
15065 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15067 PR middle-end/81290
15068 * predict.c (force_edge_cold): Be more careful about propagation
15070 * profile-count.h (profile_probability::guessed,
15071 profile_probability::fdo, profile_count::guessed, profile_count::fdo):
15073 * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
15075 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com>
15077 * doc/invoke.texi (rcpc architecture extension): Document it.
15079 2017-07-03 Richard Biener <rguenther@suse.de>
15081 PR tree-optimization/60510
15082 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
15083 the scalar reduction PHI and use it.
15084 (vectorizable_reduction): Properly guard the single_defuse_cycle
15085 path for non-SLP reduction chains where we cannot use it.
15086 Rework reduc_def/index and vector type deduction. Rework
15087 vector operand gathering during reduction op code-gen.
15088 * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
15089 chains dissolve the chain and leave it to non-SLP reduction
15092 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15094 * tree-data-ref.h (dr_alignment): Declare.
15095 * tree-data-ref.c (dr_alignment): New function.
15096 * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
15097 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
15099 * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
15101 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15103 * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
15104 and base_misalignment fields.
15105 (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
15106 * tree-data-ref.c: Include builtins.h.
15107 (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
15108 * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
15109 (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
15110 * tree-vect-data-refs.c: Include tree-cfg.h.
15111 (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
15112 fields instead of calculating an alignment here.
15113 (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new
15114 innermost_loop_behavior fields.
15116 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15118 * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
15120 (DR_STEP_ALIGNMENT): New macro.
15121 * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
15122 * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
15123 (create_data_ref): Print it.
15124 * tree-vect-stmts.c (vectorizable_load): Use the step alignment
15125 to tell whether the step preserves vector (mis)alignment.
15126 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
15127 Move the check for an integer step and generalise to all INTEGER_CST.
15128 (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
15129 Print the outer step alignment.
15131 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15133 * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
15134 with offset_alignment.
15135 (DR_ALIGNED_TO): Delete.
15136 (DR_OFFSET_ALIGNMENT): New macro.
15137 * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
15138 (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
15139 * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
15140 (create_data_ref): Likewise.
15141 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
15142 (vect_analyze_data_refs): Likewise.
15143 * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
15144 creating dummy innermost behavior.
15146 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15148 * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
15149 with a "innermost_loop_behavior *" and refeence tree.
15150 * tree-data-ref.c (dr_analyze_innermost): Likewise.
15151 (create_data_ref): Update call accordingly.
15152 * tree-predcom.c (find_looparound_phi): Likewise.
15154 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15156 * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
15157 fields with dr_wrt_vec_loop.
15158 (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
15159 (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
15160 (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
15161 (vect_dr_behavior): New function.
15162 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
15163 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
15164 vect_dr_behavior. Use a step_preserves_misalignment_p boolean to
15165 track whether the step preserves the misalignment.
15166 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
15167 Use vect_dr_behavior.
15168 (vect_setup_realignment): Update call accordingly.
15169 (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior.
15170 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
15171 call to vect_create_addr_base_for_vector_ref.
15172 (vect_create_cond_for_align_checks): Likewise.
15173 * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
15174 STMT_VINFO_DR_WRT_VEC_LOOP as a block.
15175 (vect_recog_mask_conversion_pattern): Likewise.
15176 * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
15177 (new_stmt_vec_info): Remove redundant zeroing.
15179 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
15181 * common/config/arm/arm-common.c (arm_be8_option): New function.
15182 * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
15183 (ISA_ARMv6): Add isa_bit_be8.
15184 * config/arm/arm.h (arm_be8_option): Add prototype.
15185 (BE8_SPEC_FUNCTION): New define.
15186 (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
15187 * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
15188 (mlittle-endian): Similarly.
15189 (mbe8, mbe32): New options.
15190 * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
15191 * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
15193 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15195 * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
15197 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15199 * tree-cfgcleanup.c (want_merge_blocks_p): New function.
15200 (cleanup_tree_cfg_bb): Use it.
15201 * profile-count.h (profile_count::of_for_merging, profile_count::merge):
15203 * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
15205 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15208 * loop-doloop.c (add_test): Update profile.
15210 2017-07-03 Martin Liska <mliska@suse.cz>
15213 * sanopt.c (rewrite_usage_of_param): New function.
15214 (sanitize_rewrite_addressable_params): Likewise.
15215 (pass_sanopt::execute): Call rewrite_usage_of_param.
15217 2017-07-03 Richard Biener <rguenther@suse.de>
15219 * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
15220 back to using VIEW_CONVERT_EXPR.
15222 2017-07-03 Martin Liska <mliska@suse.cz>
15225 * doc/extend.texi: Document when a resolver function is
15226 generated for target_clones.
15228 2017-07-03 Martin Liska <mliska@suse.cz>
15230 * asan.c (asan_emit_stack_protection): Unpoison just red zones
15231 and shadow memory of auto variables which are subject of
15232 use-after-scope sanitization.
15233 (asan_expand_mark_ifn): Add do set only when is_poison.
15235 2016-07-03 Richard Biener <rguenther@suse.de>
15237 * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
15239 (vect_force_simple_reduction): Record reduction def -> phi mapping.
15240 (vectorizable_reduction): Perform reduction PHI creation when
15241 visiting a reduction PHI and adjust and simplify code generation
15242 phase of the reduction op. Cache dts, use fold_binary, not fold_build2.
15243 (vect_transform_loop): Visit reduction PHIs.
15244 * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
15245 defs into the SLP tree.
15246 (vect_build_slp_tree): Reduction defs terminate the recursion.
15247 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
15249 (vect_get_vec_defs_for_stmt_copy): Export.
15250 (vect_get_vec_defs): Likewise.
15251 * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
15253 (vect_get_vec_defs_for_stmt_copy): Declare.
15254 (vect_get_vec_defs): Likewise.
15256 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15258 * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
15259 parameter with a "loop" parameter and use it instead of the
15260 loop containing DR_STMT. Don't check simple_iv when doing
15261 BB analysis. Describe the two analysis modes in the comment.
15263 2017-07-03 Tom de Vries <tom@codesourcery.com>
15265 PR tree-optimization/69468
15266 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
15267 (find_same_succ_bb): Handle ignore_edge_flags.
15269 2017-07-03 Tom de Vries <tom@codesourcery.com>
15271 PR tree-optimization/81192
15272 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
15274 (same_succ::equal): Don't find bbs to be equal if bb->loop_father
15276 (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
15278 2017-07-03 Tom de Vries <tom@codesourcery.com>
15280 PR tree-optimization/81192
15281 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
15282 BB_SAME_SUCC (bb) == NULL.
15284 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15286 * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
15289 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15291 * dumpfile.c: Include profile-count.h
15292 * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
15294 (insert_cond_bb): Update profile.
15295 * tree-cfg.h (insert_cond_bb): Update prototype.
15296 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
15297 * tree-dump.c: Do not include tree-cfg.
15299 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15301 * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
15303 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15305 * expect.c (dw2_build_landing_pads): Update profile of the landing pad
15308 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15310 * tree-complex.c (expand_complex_div_wide): update profile.
15312 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
15313 Alan Hayward <alan.hayward@arm.com>
15314 David Sherwood <david.sherwood@arm.com>
15316 * Makefile.in (MACHMODE_H): Remove insn-modes.h
15317 (CORETYPES_H): New define.
15318 (MOSTLYCLEANFILES): Add insn-modes-inline.h.
15319 (insn-modes-inline.h, s-modes-inline-h): New rules.
15320 (generated_files): Add insn-modes-inline.h.
15321 (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
15322 (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
15323 (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
15324 (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
15325 (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
15326 (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
15327 (build/gencodes.o, build/genconditions.o): Likewise.
15328 (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
15329 (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
15330 (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
15331 (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
15332 (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
15333 (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
15334 * coretypes.h: Include everything up to real.h for generators.
15335 Include insn-modes.h first. Include wide-int-print.h after
15336 wide-int.h. Include insn-modes-inline.h and then machmode.h.
15337 * machmode.h: Don't include insn-modes.h here.
15338 * function-tests.c: Remove includes of signop.h, machmode.h,
15339 double-int.h and wide-int.h.
15341 * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
15343 * optc-save-gen.awk: Likewise.
15344 * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
15345 * godump.c: Remove include of wide-int-print.h.
15346 * pretty-print.h: Likewise.
15347 * wide-int-print.cc: Likewise.
15348 * wide-int.cc: Likewise.
15349 * hash-map-tests.c: Remove include of signop.h.
15350 * hash-set-tests.c: Likewise.
15351 * rtl-tests.c: Likewise.
15352 * mkconfig.sh: Remove include of machmode.h.
15353 * genmodes.c (emit_insn_modes_h): Split emission of inline functions
15355 (emit_insn_modes_inline_h): ...this new function. Emit the code
15356 into an insn-modes-inline.h header file, adding appropriate
15357 include guards and end comments.
15358 (emit_insn_modes_c_header): Remove include of machmode.h.
15359 (emit_min_insn_modes_c_header): Include coretypes.h rather than
15361 (main): Handle -i flag and call emit_insn_modes_inline_h when
15364 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
15366 * tree-ssa-strlen.c (strinfo): Rename the length field to
15367 nonzero_chars. Add a full_string_p field.
15368 (compare_nonzero_chars, zero_length_string_p): New functions.
15369 (get_addr_stridx): Add an offset_out parameter.
15370 Use compare_nonzero_chars.
15371 (get_stridx): Update accordingly. Use compare_nonzero_chars.
15372 (new_strinfo): Update after above changes to strinfo.
15373 (set_endptr_and_length): Set full_string_p.
15374 (get_string_length): Update after above changes to strinfo.
15375 (unshare_strinfo): Update call to new_strinfo.
15376 (maybe_invalidate): Likewise.
15377 (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
15378 Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars
15379 as a uhwi instead of an shwi. Update after above changes to
15380 strinfo and new_strinfo.
15381 (zero_length_string): Assert that chainsi contains full strings.
15382 Use zero_length_string_p. Update call to new_strinfo.
15383 (adjust_related_strinfos): Update after above changes to strinfo.
15384 Copy full_string_p from origsi.
15385 (adjust_last_stmt): Use zero_length_string_p.
15386 (handle_builtin_strlen): Update after above changes to strinfo and
15387 new_strinfo. Install the lhs as the string length if the previous
15388 entry didn't describe a full string.
15389 (handle_builtin_strchr): Update after above changes to strinfo
15391 (handle_builtin_strcpy): Likewise.
15392 (handle_builtin_strcat): Likewise.
15393 (handle_builtin_malloc): Likewise.
15394 (handle_pointer_plus): Likewise.
15395 (handle_builtin_memcpy): Likewise. Track nonzero characters
15396 that aren't necessarily followed by a nul terminator.
15397 (handle_char_store): Likewise.
15399 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
15401 PR tree-optimization/80769
15402 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
15403 for malloc and calloc. Document the new invariant that all related
15404 strinfos have delayed lengths or none do.
15405 (verify_related_strinfos): Move earlier in file.
15406 (set_endptr_and_length): New function, split out from...
15407 (get_string_length): ...here. Also set the lengths of related
15409 (zero_length_string): Assert that chainsi has known (rather than
15411 (adjust_related_strinfos): Likewise.
15413 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
15415 PR tree-optimization/81136
15416 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
15417 assert that two references with the same misalignment have the same
15418 compile-time misalignment if those compile-time misalignments
15421 2017-07-01 Andi Kleen <ak@linux.intel.com>
15423 * print-tree.c (print_node): Print all attributes.
15425 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
15427 * cfg.c (scale_bbs_frequencies): New function.
15428 * cfg.h (scale_bbs_frequencies): Declare it.
15429 * cfgloopanal.c (single_likely_exit): Cleanup.
15430 * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
15432 (scale_loop_profile): Likewise.
15433 (loop_version): Likewise.
15434 (create_empty_loop_on_edge): Update.
15435 * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
15436 scale_loop_frequencies, scale_loop_profile, loopify,
15437 loop_version): Update prototypes.
15438 * modulo-sched.c (sms_schedule): Update.
15439 * predict.c (unlikely_executed_edge_p): Also check probability.
15440 (probably_never_executed_edge_p): Fix typo.
15441 * tree-if-conv.c (version_loop_for_if_conversion): Update.
15442 * tree-parloops.c (gen_parallel_loop): Update.
15443 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
15444 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
15445 * tree-ssa-loop-split.c (split_loop): Update.
15446 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
15447 * tree-vect-loop-manip.c (vect_do_peeling): Update.
15448 (vect_loop_versioning): Update.
15449 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
15451 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
15453 * trans-mem.c (split_bb_make_tm_edge): Update profile.
15455 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
15457 * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
15458 to keep profile consistent.
15460 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
15462 * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
15463 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
15464 * profile-count.h (max_safe_multiplier): Make unsigned.
15465 (profile_count::guessed_zero): New.
15467 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
15469 * bb-reorder.c (fix_up_crossing_landing_pad,
15470 fix_crossing_conditional_branches): Use make_single_succ_edge
15471 to keep profile consistent.
15473 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
15475 * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
15478 2017-07-01 Jakub Jelinek <jakub@redhat.com>
15481 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
15482 the right scopes, make sure cond_jump isn't preserved between multiple
15483 iterations. Search for fallthru edge whenever there are 3+ edges and
15484 use find_fallthru_edge for it.
15486 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
15488 Patch by Alexander Monakov <amonakov@ispras.ru>
15489 * sel-sched-ir.c (compute_succs_info): Handle uninitialized
15490 probabilities consistently.
15492 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
15494 * pa.c (pa_expand_compare_and_swap_loop): Update call of
15495 emit_cmp_and_jump_insns.
15497 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
15500 * tree-inline.c (expand_call_inline): Combine profile statuses.
15502 2017-06-30 Andrew Pinski <apinski@cavium.com>
15504 * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
15505 fold_stmt returned true.
15507 2017-06-30 Nathan Sidwell <nathan@acm.org>
15509 * ggc.h (empty_string): Delete.
15510 * cfgexpand.c (expand_asm_stmt): Use plain "".
15511 * optabs.c (expand_asm_memory_barrier): Likewise.
15512 * stringpool.c (empty_string): Delete.
15513 (digit_vector, digit_string): Delete.
15514 (ggc_alloc_string): Use plain "", don't optimize single digit
15515 strings. Use ggc_alloc_atomic.
15517 2017-06-30 Richard Earnshaw <rearnsha@arm.com>
15519 * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
15520 comparison set and one other set, use the cost of the non-comparison
15523 2017-06-30 Nathan Sidwell <nathan@acm.org>
15525 * ggc.h: Replace all 'static inline' with plain 'inline'. Fix
15528 2017-06-30 Peter Bergner <bergner@vnet.ibm.com>
15530 * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
15531 loops. Remove now unneeded calls to gimple_switch_set_label() that
15532 just set removed labels to NULL_TREE.
15534 2017-06-30 Aldy Hernandez <aldyh@redhat.com>
15536 * tree-ssanames.c (set_range_info_raw): Abstract from ...
15537 (set_range_info): ...here. Only call set_range_info_raw if domain
15539 (set_nonzero_bits): Call set_range_info_raw.
15540 * tree-ssanames.h (set_range_info_raw): New.
15542 2017-06-30 Jakub Jelinek <jakub@redhat.com>
15545 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
15546 V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
15547 of nonimmediate_operand and <store_mask_constraint> instead of m
15548 for the input operand. For V8FI iterator, always split if input
15549 is a MEM. For V16FI and V8SF_256 iterators, don't test if both
15550 operands are MEM if <mask_applied>. For VI4F_256 iterator, use
15551 <store_mask_predicate> instead of register_operand and
15552 <store_mask_constraint> instead of v for the input operand. Make
15553 sure both operands aren't MEMs for if not <mask_applied>.
15555 2017-06-30 Sylvestre Ledru <sylvestre@debian.org>
15557 * lto-wrapper.c (copy_file) Close both file descriptors before
15560 2017-06-30 Martin Liska <mliska@suse.cz>
15563 * multiple_target.c (create_dispatcher_calls): Make ifunc
15564 also for function that don't have calls or are not referenced.
15566 2017-06-30 Richard Biener <rguenther@suse.de>
15568 * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
15569 analyze the first scalar stmt. Move vector type computation
15570 for the BB case here from ...
15571 * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard
15572 live operation processing in the SLP case properly.
15574 2017-06-30 Richard Biener <rguenther@suse.de>
15576 * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
15578 2017-06-30 Martin Liska <mliska@suse.cz>
15581 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
15582 before BUILT_IN_UNWIND_RESUME when ASAN is used.
15584 2017-06-30 Yvan Roux <yvan.roux@linaro.org>
15586 * doc/invoke.texi (AArch64): Add missing options and remove redundant
15589 2017-06-30 Richard Biener <rguenther@suse.de>
15591 PR tree-optimization/81249
15592 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
15593 condition reduction result to original scalar type.
15595 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15597 * profile-count.h (enum profile_quality): Fix typos and whitespace
15600 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15602 * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
15603 type for branch probabilities.
15605 2017-06-29 Julian Brown <julian@codesourcery.com>
15606 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
15608 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
15609 * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
15610 (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
15611 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
15613 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
15615 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
15616 check for CC usage into AARCH64_FUSE_CMP_BRANCH.
15617 * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
15618 CC usage from generic code to here.
15619 * sched-deps.c (sched_macro_fuse_insns): Move the condition for
15620 CC usage into the target macros.
15622 2017-06-29 Maya Rashish <coypu@sdf.org>
15624 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
15627 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
15629 * arm/arm-builtins.c: Include profile-count.h
15630 * except.c (sjlj_emit_function_enter): Use
15631 profile_probability::unlikely.
15633 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
15635 * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
15636 and tocrel_offset be pointer args rather than implicitly using
15638 (legitimate_constant_pool_address_p, rs6000_emit_move,
15639 const_load_sequence_p, adjust_vperm): Add local tocrel_base and
15640 tocrel_offset and use in toc_relative_expr_p call.
15641 (print_operand, print_operand_address): Use static tocrel_base_oac
15642 and tocrel_offset_oac.
15643 (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
15646 2017-06-29 Maya Rashish <coypu@sdf.org>
15648 * config/vax/builtins.md (ffssi2_internal): Correct constraint.
15650 2017-06-29 Eric Botcazou <ebotcazou@adacore.com>
15652 * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
15653 objects, take into account only the alignment of 'op0' and 'mode1' if
15656 2017-06-29 Steve Ellcey <sellcey@cavium.com>
15658 * ccmp.c (ccmp_tree_comparison_p): New function.
15659 (ccmp_candidate_p): Update to use above function.
15660 (get_compare_parts): New function.
15661 (expand_ccmp_next): Update to use new functions.
15662 (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
15664 (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
15665 take mode as argument.
15666 * ccmp.h (expand_ccmp_expr): Add mode as argument.
15667 * expr.c (expand_expr_real_1): Pass mode as argument.
15669 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org>
15671 * combine.c (combine_instructions): Print insns to dump_file, together
15674 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
15676 * asan.c (asan_emit_stack_protection): Update.
15677 (create_cond_insert_point): Update.
15678 * auto-profile.c (afdo_propagate_circuit): Update.
15679 * basic-block.h (struct edge_def): Turn probability to
15680 profile_probability.
15681 (EDGE_FREQUENCY): Update.
15682 * bb-reorder.c (find_traces_1_round): Update.
15683 (better_edge_p): Update.
15684 (sanitize_hot_paths): Update.
15685 * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
15686 (make_single_succ_edge): Update.
15687 (check_bb_profile): Update.
15688 (dump_edge_info): Update.
15689 (update_bb_profile_for_threading): Update.
15690 * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
15691 probabilitycount to 0.
15692 * cfgbuild.c (compute_outgoing_frequencies): Update.
15693 * cfgcleanup.c (try_forward_edges): Update.
15694 (outgoing_edges_match): Update.
15695 (try_crossjump_to_edge): Update.
15696 * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
15697 (expand_gimple_tailcall): Update.
15698 (construct_init_block): Use make_single_succ_edge.
15699 (construct_exit_block): Use make_single_succ_edge.
15700 * cfghooks.c (verify_flow_info): Update.
15701 (redirect_edge_succ_nodup): Update.
15702 (split_edge): Update.
15703 (account_profile_record): Update.
15704 * cfgloopanal.c (single_likely_exit): Update.
15705 * cfgloopmanip.c (scale_loop_profile): Update.
15706 (set_zero_probability): Remove.
15707 (duplicate_loop_to_header_edge): Update.
15708 * cfgloopmanip.h (loop_version): Update prototype.
15709 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
15710 (force_nonfallthru_and_redirect): Update.
15711 (update_br_prob_note): Update.
15712 (rtl_verify_edges): Update.
15713 (purge_dead_edges): Update.
15714 (rtl_lv_add_condition_to_bb): Update.
15715 * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
15716 * cgraphunit.c (init_lowered_empty_function): Update.
15717 (cgraph_node::expand_thunk): Update.
15718 * cilk-common.c: Include profile-count.h
15719 * dojump.c (inv): Remove.
15720 (jumpifnot): Update.
15721 (jumpifnot_1): Update.
15722 (do_jump_1): Update.
15724 (do_jump_by_parts_greater_rtx): Update.
15725 (do_compare_rtx_and_jump): Update.
15726 * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
15727 do_jump_1. do_compare_rtx_and_jump): Update prototype.
15728 * dwarf2cfi.c: Include profile-count.h
15729 * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
15730 (sjlj_emit_dispatch_table): Likewise.
15731 * explow.c: Include profile-count.h
15732 * expmed.c (emit_store_flag_force): Update.
15733 (do_cmp_and_jump): Update.
15734 * expr.c (compare_by_pieces_d::generate): Update.
15735 (compare_by_pieces_d::finish_mode): Update.
15736 (emit_block_move_via_loop): Update.
15737 (store_expr_with_bounds): Update.
15738 (store_constructor): Update.
15739 (expand_expr_real_2): Update.
15740 (expand_expr_real_1): Update.
15741 * expr.h (try_casesi, try_tablejump): Update prototypes.
15742 * gimple-pretty-print.c (dump_probability): Update.
15743 (dump_profile): New.
15744 (dump_gimple_label): Update.
15745 (dump_gimple_bb_header): Update.
15746 * graph.c (draw_cfg_node_succ_edges): Update.
15747 * hsa-gen.c (convert_switch_statements): Update.
15748 * ifcvt.c (cheap_bb_rtx_cost_p): Update.
15749 (find_if_case_1): Update.
15750 (find_if_case_2): Update.
15751 * internal-fn.c (expand_arith_overflow_result_store): Update.
15752 (expand_addsub_overflow): Update.
15753 (expand_neg_overflow): Update.
15754 (expand_mul_overflow): Update.
15755 (expand_vector_ubsan_overflow): Update.
15756 * ipa-cp.c (good_cloning_opportunity_p): Update.
15757 * ipa-split.c (split_function): Use make_single_succ_edge.
15758 * ipa-utils.c (ipa_merge_profiles): Update.
15759 * loop-doloop.c (add_test): Update.
15760 (doloop_modify): Update.
15761 * loop-unroll.c (compare_and_jump_seq): Update.
15762 (unroll_loop_runtime_iterations): Update.
15763 * lra-constraints.c (lra_inheritance): Update.
15764 * lto-streamer-in.c (input_cfg): Update.
15765 * lto-streamer-out.c (output_cfg): Update.
15766 * mcf.c (adjust_cfg_counts): Update.
15767 * modulo-sched.c (sms_schedule): Update.
15768 * omp-expand.c (expand_omp_for_init_counts): Update.
15769 (extract_omp_for_update_vars): Update.
15770 (expand_omp_ordered_sink): Update.
15771 (expand_omp_for_ordered_loops): Update.
15772 (expand_omp_for_generic): Update.
15773 (expand_omp_for_static_nochunk): Update.
15774 (expand_omp_for_static_chunk): Update.
15775 (expand_cilk_for): Update.
15776 (expand_omp_simd): Update.
15777 (expand_omp_taskloop_for_outer): Update.
15778 (expand_omp_taskloop_for_inner): Update.
15779 * omp-simd-clone.c (simd_clone_adjust): Update.
15780 * optabs.c (expand_doubleword_shift): Update.
15781 (expand_abs): Update.
15782 (emit_cmp_and_jump_insn_1): Update.
15783 (expand_compare_and_swap_loop): Update.
15784 * optabs.h (emit_cmp_and_jump_insns): Update prototype.
15785 * predict.c (predictable_edge_p): Update.
15786 (edge_probability_reliable_p): Update.
15787 (set_even_probabilities): Update.
15788 (combine_predictions_for_insn): Update.
15789 (combine_predictions_for_bb): Update.
15790 (propagate_freq): Update.
15791 (estimate_bb_frequencies): Update.
15792 (force_edge_cold): Update.
15793 * profile-count.c (profile_count::dump): Add missing space into dump.
15794 (profile_count::debug): Add newline.
15795 (profile_count::differs_from_p): Explicitly convert to unsigned.
15796 (profile_count::stream_in): Update.
15797 (profile_probability::dump): New member function.
15798 (profile_probability::debug): New member function.
15799 (profile_probability::differs_from_p): New member function.
15800 (profile_probability::differs_lot_from_p): New member function.
15801 (profile_probability::stream_in): New member function.
15802 (profile_probability::stream_out): New member function.
15803 * profile-count.h (profile_count_quality): Rename to ...
15804 (profile_quality): ... this one.
15805 (profile_probability): New.
15806 (profile_count): Update.
15807 * profile.c (compute_branch_probabilities): Update.
15808 * recog.c (peep2_attempt): Update.
15809 * sched-ebb.c (schedule_ebbs): Update.
15810 * sched-rgn.c (find_single_block_region): Update.
15811 (compute_dom_prob_ps): Update.
15812 (schedule_region): Update.
15813 * sel-sched-ir.c (compute_succs_info): Update.
15814 * stmt.c (struct case_node): Update.
15815 (do_jump_if_equal): Update.
15816 (get_outgoing_edge_probs): Update.
15817 (conditional_probability): Update.
15818 (emit_case_dispatch_table): Update.
15819 (expand_case): Update.
15820 (expand_sjlj_dispatch_table): Update.
15821 (emit_case_nodes): Update.
15822 * targhooks.c: Update.
15823 * tracer.c (better_p): Update.
15824 (find_best_successor): Update.
15825 * trans-mem.c (expand_transaction): Update.
15826 * tree-call-cdce.c: Update.
15827 * tree-cfg.c (gimple_split_edge): Upate.
15828 (move_sese_region_to_fn): Upate.
15829 * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
15830 * tree-eh.c (lower_resx): Upate.
15831 (cleanup_empty_eh_move_lp): Upate.
15832 * tree-if-conv.c (version_loop_for_if_conversion): Update.
15833 * tree-inline.c (copy_edges_for_bb): Update.
15834 (copy_cfg_body): Update.
15835 * tree-parloops.c (gen_parallel_loop): Update.
15836 * tree-profile.c (gimple_gen_ic_func_profiler): Update.
15837 (gimple_gen_time_profiler): Update.
15838 * tree-ssa-dce.c (remove_dead_stmt): Update.
15839 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
15840 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
15841 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
15842 (unloop_loops): Update.
15843 (try_peel_loop): Update.
15844 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
15845 * tree-ssa-loop-split.c (connect_loops): Update.
15846 (split_loop): Update.
15847 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
15848 (hoist_guard): Update.
15849 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
15850 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
15851 (value_replacement): Update.
15852 * tree-ssa-reassoc.c (branch_fixup): Update.
15853 * tree-ssa-tail-merge.c (replace_block_by): Update.
15854 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
15855 (create_edge_and_update_destination_phis): Update.
15856 (compute_path_counts): Update.
15857 (recompute_probabilities): Update.
15858 (update_joiner_offpath_counts): Update.
15859 (freqs_to_counts_path): Update.
15860 (duplicate_thread_path): Update.
15861 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
15862 (struct switch_conv_info): Update.
15863 (gen_inbound_check): Update.
15864 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
15865 (vect_do_peeling): Update.
15866 (vect_loop_versioning): Update.
15867 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
15868 (optimize_mask_stores): Update.
15869 * ubsan.c (ubsan_expand_null_ifn): Update.
15870 * value-prof.c (gimple_divmod_fixed_value): Update.
15871 (gimple_divmod_fixed_value_transform): Update.
15872 (gimple_mod_pow2): Update.
15873 (gimple_mod_pow2_value_transform): Update.
15874 (gimple_mod_subtract): Update.
15875 (gimple_mod_subtract_transform): Update.
15876 (gimple_ic): Update.
15877 (gimple_stringop_fixed_value): Update.
15878 (gimple_stringops_transform): Update.
15879 * value-prof.h: Update.
15881 2017-06-29 Carl Love <cel@us.ibm.com>
15883 * config/rs6000/rs6000-c.c: Add support for built-in functions
15884 vector signed int vec_signed (vector float);
15885 vector signed long long vec_signed (vector double);
15886 vector signed int vec_signed2 (vector double, vector double);
15887 vector signed int vec_signede (vector double);
15888 vector signed int vec_signedo (vector double);
15889 * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
15890 instruction generator.
15891 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
15892 UNSPEC_VSX_VSIGNED2): Add UNSPECS.
15893 (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
15895 (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
15896 vunsignede_v2df): Add define_expands.
15897 * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
15898 VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
15899 VEC_UNSIGNEDO): Add definitions.
15900 * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
15901 UNSPEC_VSX_VSIGNED2): Add UNSPECs.
15902 (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
15903 (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
15904 vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
15905 * config/rs6000/altivec.h (vec_signed, vec_signed2,
15906 vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
15907 vec_unsignede, vec_unsignedo): Add builtin defines.
15908 * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
15910 * doc/extend.texi: Update the built-in documentation file for the
15911 new built-in functions.
15913 2017-06-29 Richard Biener <rguenther@suse.de>
15915 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
15916 reduction chains to LOOP_VINFO_REDUCTIONS.
15917 * tree-vect-slp.c (vect_analyze_slp): Continue looking for
15918 SLP reductions after processing reduction chains.
15920 2017-06-29 Nathan Sidwell <nathan@acm.org>
15922 * builtins.c (fold_builtin_FUNCTION): Use
15923 lang_hooks.decl_printable_name.
15925 2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
15927 PR middle-end/81194
15928 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
15929 with only one label.
15930 * stmt.c (expand_case): Assert NCASES is greater than one.
15932 2017-06-29 Richard Biener <rguenther@suse.de>
15934 * tree-cfg.c (group_case_labels_stmt): Return whether we changed
15936 (group_case_labels): Likewise.
15937 (find_taken_edge): Push sanity checking on val to workers...
15938 (find_taken_edge_cond_expr): ... here
15939 (find_taken_edge_switch_expr): ... and here, handle cases
15940 with just a default label.
15941 * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
15942 (group_case_labels): Likewise.
15943 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
15944 group_case_labels does anything cleanup the CFG again.
15946 2017-06-29 Bin Cheng <bin.cheng@arm.com>
15948 PR tree-optimization/81196
15949 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
15950 exit condition comparing two IVs.
15952 2017-06-29 Richard Earnshaw <rearnsha@arm.com>
15954 * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
15955 profile to the dummy entry at the end of the list of architectures.
15956 * config/arm/arm-cpu-cdata.h: Regenerated.
15958 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15959 Michael Collison <michael.collison@arm.com>
15962 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
15964 (*aarch64_reg_<mode>3_neg_mask2): New pattern.
15965 (*aarch64_reg_<mode>3_minus_mask): New pattern.
15966 (*aarch64_<optab>_reg_di3_mask2): New pattern.
15967 * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
15968 of shift when the shift amount is masked with constant equal to
15969 the size of the mode.
15970 * config/aarch64/predicates.md (subreg_lowpart_operator): New
15973 2017-06-29 Martin Liska <mliska@suse.cz>
15975 * config/i386/i386.opt: Change range from [1,5] to [0,5].
15977 2017-06-29 Yury Gribov <tetra2005@gmail.com>
15980 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
15983 (edge_growth_cache_entry::edge_growth_cache_entry): New
15985 (reset_edge_growth_cache): Update to use constructor.
15987 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15989 * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
15990 (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
15991 (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
15993 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com>
15995 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
15996 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
15998 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
16000 * config.gcc (*-linux-musl*): Add t-musl tmake_file.
16001 (*-linux-uclibc*): Add t-uclibc tmake_file.
16002 * config/t-musl: New.
16003 * config/t-uclibc: New.
16005 2017-06-28 Richard Earnshaw <rearnsha@arm.com>
16007 * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
16009 (gen_comm_data): Emit architectural setting of arch_prof.
16010 * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
16012 (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
16013 (armv8-m.base, armv8-m.main): Likewise.
16014 * arm-protos.h (arm_build_target): Add profile field.
16015 (arch_option): Likewise.
16016 * config/arm/arm.c (arm_configure_build_target): Copy the profile to
16018 * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
16019 arm_active_target.profile.
16021 2017-06-28 Richard Biener <rguenther@suse.de>
16023 PR middle-end/81227
16024 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
16025 TYPE_OVERFLOW_WRAPS.
16026 * match.pd (negate_expr_p): Likewise.
16027 * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
16028 fold_build2, not fold_binary.
16030 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
16032 * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
16033 Convert memory address to Pmode.
16034 (aarch64_print_operand): Assert MEM operands are always Pmode.
16036 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
16039 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
16040 Remove redundant if.
16041 (aarch_forward_to_shift_is_not_shifted_reg): Remove.
16042 * config/arm/aarch-common-protos.h
16043 (aarch_forward_to_shift_is_not_shifted_re): Remove.
16044 * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
16046 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
16049 * multiple_target.c (create_dispatcher_calls): Set the default
16050 clone to be static, not public.
16052 2017-06-28 Richard Biener <rguenther@suse.de>
16054 * tree-vect-loop.c (vectorizable_reduction): Move special
16055 cond reduction IV var creation ...
16056 (vect_create_epilog_for_reduction): ... here. Remove induction_index
16057 parameter. Use STMT_VINFO_VECTYPE.
16058 * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
16061 2017-06-28 Martin Liska <mliska@suse.cz>
16064 * ipa-visibility.c (non_local_p): Handle visibility.
16066 2017-06-28 Martin Liska <mliska@suse.cz>
16069 * common.opt: Add IntegerRange to various options.
16070 * opt-functions.awk (integer_range_info): New function.
16071 * optc-gen.awk: Add integer_range_info to cl_options struct.
16072 * opts-common.c (decode_cmdline_option): Handle
16073 CL_ERR_INT_RANGE_ARG.
16074 (cmdline_handle_error): Likewise.
16075 * opts.c (print_filtered_help): Show valid interval in
16076 when --help is provided.
16077 * opts.h (struct cl_option): Add range_min and range_max fields.
16078 * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
16080 2017-06-28 Marc Glisse <marc.glisse@inria.fr>
16082 * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
16083 (x * C EQ/NE y * C): New transformation.
16085 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org>
16087 * genmultilib (combination_space): Accept '+' in option names.
16089 2017-06-28 Martin Liska <mliska@suse.cz>
16092 * asan.c (instrument_derefs): Bail out inner references
16093 that are hard register variables.
16095 2017-06-28 Jakub Jelinek <jakub@redhat.com>
16098 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
16099 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
16101 2017-06-28 Richard Biener <rguenther@suse.de>
16103 * tree-vectorizer.h (vect_get_vec_defs): Remove.
16104 (vect_get_slp_defs): Adjust.
16105 * tree-vect-loop.c (get_initial_defs_for_reduction): Split
16107 * tree-vect-slp.c (vect_get_constant_vectors): ... here and
16109 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
16110 get_initial_defs_for_reduction instead of vect_get_vec_defs.
16111 (vectorizable_reduction): Adjust.
16112 * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
16114 (vect_get_slp_defs): Likewise.
16115 * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
16116 (vectorizable_bswap): Adjust.
16117 (vectorizable_call): Likewise.
16118 (vectorizable_conversion): Likewise.
16119 (vectorizable_assignment): Likewise.
16120 (vectorizable_shift): Likewise.
16121 (vectorizable_operation): Likewise.
16122 (vectorizable_store): Likewise.
16123 (vectorizable_condition): Likewise.
16124 (vectorizable_comparison): Likewise.
16126 2017-06-28 Michael Collison <michael.collison@arm.com>
16129 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
16131 (arm_gen_movmemqi): Removed unused variable 'i'.
16132 Convert 'for' loop into 'while' loop.
16133 (arm_expand_prologue): Remove last unnecessary set of insn.
16134 (thumb_pop): Remove unused variable 'pushed_words'.
16135 (thumb_exit): Remove last unnecessary set of regs_to_pop.
16137 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16139 * config/s390/predicates.md: Use s390_rel_address_ok_p.
16140 * config/s390/s390-protos.h: Add prototype of
16141 s390_rel_address_ok_p.
16142 * config/s390/s390.c (s390_got_symbol): New function.
16143 (s390_rel_address_ok_p): New function.
16144 (legitimize_pic_address): Use s390_rel_address_ok_p.
16145 (s390_load_got): Use s390_got_symbol.
16146 (s390_option_override): Issue error if
16147 -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
16148 * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
16150 * config/s390/s390.opt: New option mpic-data-is-text-relative.
16152 2017-06-27 Andrew Pinski <apinski@cavium.com>
16154 * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
16155 (X * copysign (1.0, X)): New pattern.
16156 (X * copysign (1.0, -X)): New pattern.
16157 (copysign (-1.0, CST)): New pattern.
16159 2017-06-27 Joseph Myers <joseph@codesourcery.com>
16161 * genmultilib (combination_space): Remove variable.
16162 Validate reuse rules against regular expression for any sequence
16163 of multilib options in any order.
16165 2017-06-27 Michael Collison <michael.collison@arm.com>
16167 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
16168 call aarch64_split_simd_combine.
16169 * (aarch64_combine_internal<mode>): Delete pattern.
16170 * config/aarch64/aarch64.c (aarch64_split_simd_combine):
16171 Allow register and subreg operands.
16173 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
16175 * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
16176 specific need, just fallback on defaults.
16177 (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
16179 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
16180 Olivier Hainque <hainque@adacore.com>
16182 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
16184 (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
16185 targets. Pick a default if no particular attempt applied.
16186 (STACK_CHECK_PROTECT): Double for 64bit targets, which have
16189 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
16191 * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
16192 (x86_64-wrs-vxworks7): Likewise.
16194 2017-06-27 Marek Polacek <polacek@redhat.com>
16197 * ubsan.c (instrument_null): Check get_base_address's result for null.
16199 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
16201 * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
16203 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
16205 * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
16206 BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
16207 (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
16208 BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
16209 New function types.
16210 * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
16211 BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
16212 BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
16213 BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
16214 BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
16215 BUILT_IN_FEUPDATEENV): New builtins.
16216 * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
16217 TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
16218 * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
16219 fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
16221 (builtin_structptr_types): Adjust size.
16222 * tree.c (builtin_structptr_types): Add four entries.
16224 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
16225 Olivier Hainque <hainque@adacore.com>
16227 * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
16228 (TLS_SYM): New local macro, forcing reference to __tls__ on
16229 link command lines for VxWorks 7 RTPs, triggering initialization
16231 (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
16232 OS features TLS support, true for RTPs on VxWorks 7.
16233 * config/vxworks.c (vxworks_override_options): Setup emutls
16236 2017-06-27 Jakub Jelinek <jakub@redhat.com>
16238 * predict.c (test_prediction_value_range): Use -1U instead of -1
16239 to avoid narrowing conversion warning.
16240 * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
16241 to avoid narrowing conversion warning.
16242 * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
16244 * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
16246 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
16248 * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
16249 64bit configurations.
16250 (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
16251 (SIZE_TYPE): Likewise.
16252 * config/vxworks.c (vxworks_emutls_var_fields): Use
16253 long_unsigned_type_node instead of unsigned_type_node as the offset
16254 field type, which is "pointer" mode in emutls.c.
16256 2017-06-27 Jakub Jelinek <jakub@redhat.com>
16259 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
16261 PR middle-end/81207
16262 * gimple-fold.c (replace_call_with_call_and_fold): Handle
16263 gimple_vuse copying separately from gimple_vdef copying.
16265 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16267 * value-prof.c (free_hist): Remove call to memset and the enclosing if
16270 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
16271 Olivier Hainque <hainque@adacore.com>
16273 * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
16274 for all vxworks7 targets.
16275 * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
16276 (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
16277 (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
16278 variations for VX6/VX7 and 32/64bits later on in ...
16279 (VXWORKS_LIB_SPEC): Leverage new macros.
16280 (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
16281 as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
16283 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
16285 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
16286 _VX_TOOL_FAMILY and _VX_TOOL to gnu.
16288 2017-06-26 Carl Love <cel@us.ibm.com>
16290 * config/rs6000/rs6000-c.c: Add support for built-in functions
16291 vector bool char vec_reve (vector bool char);
16292 vector signed char vec_reve (vector signed char);
16293 vector unsigned char vec_reve (vector unsigned char);
16294 vector bool int vec_reve (vector bool int);
16295 vector signed int vec_reve (vector signed int);
16296 vector unsigned int vec_reve (vector unsigned int);
16297 vector bool long long vec_reve (vector bool long long);
16298 vector signed long long vec_reve (vector signed long long);
16299 vector unsigned long long vec_reve (vector unsigned long long);
16300 vector bool short vec_reve (vector bool short);
16301 vector signed short vec_reve (vector signed short);
16302 vector double vec_reve (vector double);
16303 vector float vec_reve (vector float);
16304 * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
16305 VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
16306 * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
16307 (altivec_vreve): New pattern.
16308 * config/rs6000/altivec.h (vec_reve): New define.
16309 * doc/extend.texi (vec_rev): Update the built-in documentation file
16310 for the new built-in functions.
16312 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16314 PR tree-optimization/71815
16315 * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
16317 (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
16319 (slsr_process_phi): Likewise.
16320 (replace_uncond_cands_and_profitable_phis): Don't replace a
16321 multiply candidate with a stride of 1 (copy or cast).
16322 (phi_incr_cost): Call uses_consumed_by_stmt rather than
16324 (lowest_cost_path): Likewise.
16325 (total_savings): Likewise.
16327 2017-06-26 Richard Biener <rguenther@suse.de>
16330 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
16331 Use def_builtin_pure for all gather builtins.
16333 2017-06-26 Richard Biener <rguenther@suse.de>
16335 PR tree-optimization/81203
16336 * tree-tailcall.c (find_tail_calls): Do not move stmts into
16337 non-dominating BBs.
16339 2017-06-26 Marek Polacek <polacek@redhat.com>
16342 * doc/invoke.texi: Document -Wmultistatement-macros.
16344 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
16346 * doc/sourcebuild.texi (ARM-specific attributes): Document new
16347 arm_neon_ok_no_float_abi effective target.
16349 2017-06-26 Richard Biener <rguenther@suse.de>
16351 PR tree-optimization/80928
16352 * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
16353 (copy_bbs): Set BB_DUPLICATED flag early.
16354 (execute_on_growing_pred): Do not execute for BB_DUPLICATED
16356 (execute_on_shrinking_pred): Likewise.
16357 * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
16358 BB_DUPLICATED blocks.
16359 * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
16360 iterate over all PHIs considering removal of *gsi.
16362 2017-06-23 Jim Wilson <jim.wilson@linaro.org>
16364 * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
16367 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
16369 * config/rs6000/rs6000-string.c: (expand_block_clear,
16370 do_load_for_compare, select_block_compare_mode,
16371 compute_current_alignment, expand_block_compare,
16372 expand_strncmp_align_check, expand_strn_compare,
16373 expand_block_move, rs6000_output_load_multiple)
16374 Move functions related to string/block move/compare
16375 to a separate file.
16376 * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
16377 * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
16378 for this function which is now used in two files.
16379 * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
16380 * config.gcc: Add rs6000-string.o to extra_objs for
16381 targets powerpc*-*-* and rs6000*-*-*.
16383 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
16386 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
16387 32-bit, since indexed is not valid for DImode.
16388 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
16389 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
16390 (define_peephole2 for Altivec d-form load): Add 32-bit support.
16391 (define_peephole2 for Altivec d-form store): Likewise.
16394 * multiple_target.c (create_dispatcher_calls): Only create the
16395 dispatcher call if the function is the default clone of a
16396 versioned function.
16398 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
16400 PR middle-end/80902
16401 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
16402 a call, force the call to not be a tail call.
16404 2017-06-23 Jeff Law <law@redhat.com>
16406 * doc/contrib.texi: Add entry for Steven Pemberton's work on
16409 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com>
16411 * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
16412 update_call_from_tree(). (rs6000_gimple_fold_builtin): Add
16413 handling for early expansion of vector shifts (sl,sr,sra,rl).
16414 (builtin_function_type): Add vector shift right instructions
16415 to the unsigned argument list.
16417 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
16419 rtl-optimizatoin/79286
16420 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
16421 * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
16422 trap. PIC register plus a const unspec without offset can never trap.
16424 2017-06-23 Marc Glisse <marc.glisse@inria.fr>
16426 * tree.h (builtin_structptr_type): New type.
16427 (builtin_structptr_types): Declare new array.
16428 * tree.c (builtin_structptr_types): New array.
16429 (free_lang_data, build_common_tree_nodes): Use it.
16431 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
16434 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
16437 2017-06-22 Matt Turner <mattst88@gmail.com>
16439 * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
16440 Lake models to skylake case. Assume skylake for unknown
16441 models with clflushopt.
16443 2017-06-22 Jeff Law <law@redhat.com>
16445 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
16446 frame sizes that do not satisfy aarch64_uimm12_shift.
16448 2017-06-22 Jan Hubicka <hubicka@ucw.cz>
16450 * profile-count.h (apply_probability,
16451 apply_scale, probability_in): Fix checks for zero.
16453 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16455 * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
16456 * doc/cppdiropts.texi (-I @var{dir}): Document it.
16458 2016-06-22 Richard Biener <rguenther@suse.de>
16460 * tree-vect-loop.c (vect_model_reduction_cost): Handle
16461 COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
16462 REDUC_MAX_EXPR support.
16463 (vectorizable_reduction): Likewise.
16464 (vect_create_epilog_for_reduction): Likewise.
16466 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com>
16468 * match.pd (A / (1 << B) -> A >> B): New.
16469 * generic-match-head.c: Include optabs-tree.h.
16470 * gimple-match-head.c: Likewise.
16471 * optabs-tree.h (target_supports_op_p): New.
16472 * optabs-tree.c (target_supports_op_p): New.
16474 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16476 * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
16477 $gcc_cv_ld --help output.
16478 (gcc_cv_ld_demangle): Likewise.
16479 (gcc_cv_ld_eh_frame_hdr): Likewise.
16480 (gcc_cv_ld_pie): Likewise.
16481 (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld.
16482 (gcc_cv_ld_buildid): Likewise.
16483 (gcc_cv_ld_sysroot): Likewise.
16484 (ld_bndplt_support): Likewise.
16485 (ld_pushpopstate_support): Likewise.
16486 * configure: Regenerate.
16487 * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
16489 2017-06-21 Jakub Jelinek <jakub@redhat.com>
16492 * config/i386/sse.md (round<mode>2): Renumber match_dup and
16493 operands indexes to avoid gap between operands and match_dups.
16495 2017-06-21 Andrew Pinski <apinski@cavium.com>
16497 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
16498 Increment Arith_shift and Arith_shift_reg by 1.
16499 * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
16501 * config/aarch64/aarch64.c (thunderx_tunings): Enable
16502 AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
16503 (aarch64_strip_extend): Add new argument and test for it.
16504 (aarch64_cheap_mult_shift_p): New function.
16505 (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
16506 add a cost if it is true.
16507 Update calls to aarch64_strip_extend.
16508 (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
16510 2017-06-21 Andrew Pinski <apinski@cavium.com>
16512 * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
16514 (thunderxt88): Likewise.
16515 * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
16516 (thunderx_prefetch_tune): New variable.
16517 (thunderx2t99_prefetch_tune): Update for the correct values.
16518 (thunderxt88_tunings): New variable.
16519 (thunderx_tunings): Use thunderx_prefetch_tune instead of
16520 generic_prefetch_tune.
16521 (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
16523 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16525 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
16526 SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
16527 (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
16528 (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
16529 (aarch64_atomic_cas<mode>, GPI): Likewise.
16531 2017-06-21 Martin Liska <mliska@suse.cz>
16533 * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
16534 statements on cold and hot labels.
16535 * predict.c (tree_estimate_probability_bb): Remove the
16536 prediction from this place.
16538 2017-06-21 Martin Liska <mliska@suse.cz>
16540 PR tree-optimization/79489
16541 * gimplify.c (maybe_add_early_return_predict_stmt): New
16543 (gimplify_return_expr): Call the function.
16544 * predict.c (tree_estimate_probability_bb): Remove handling
16546 * predict.def: Update comment about early return predictor.
16547 * gimple-predict.h (is_gimple_predict): New function.
16548 * predict.def: Change default value of early return to 66.
16549 * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
16551 * passes.def: Put pass_strip_predict_hints to the beginning of
16554 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com>
16556 * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
16557 FUNCTION_DECL declarations.
16558 (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
16560 (dwaf2out_decl): Likewise.
16561 * godump.c (go_early_global_decl): Skip call to the real debug hook
16562 for FUNCTION_DECL declarations.
16563 * passes.c (rest_of_decl_compilation): Skip call to the
16564 early_global_decl debug hook for FUNCTION_DECL declarations, unless
16565 -fdump-go-spec is passed.
16567 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
16569 * config/i386/i386.c (struct builtin_isa): New field pure_p.
16570 Reorder for compactness.
16571 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
16572 (def_builtin_pure, def_builtin_pure2): New functions.
16573 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
16575 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
16577 * match.pd (nop_convert): New predicate.
16578 ((A +- CST1) +- CST2): Allow some NOP conversions.
16580 2017-06-21 Jakub Jelinek <jakub@redhat.com>
16583 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
16584 with ctors/dtors if GOVD_SHARED is set.
16586 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
16588 * config/aarch64/aarch64.md (movti_aarch64):
16589 Emit mov rather than orr.
16590 (movtf_aarch64): Likewise.
16591 * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
16592 Emit mov rather than orr.
16594 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
16596 * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
16597 Swap alternatives, make integer dup more expensive.
16599 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
16601 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
16602 Return true for non-tls symbols.
16604 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com>
16606 * config/aarch64/aarch64-cores.def (cortex-a55): New.
16607 (cortex-a75): Likewise.
16608 (cortex-a75.cortex-a55): Likewise.
16609 * config/aarch64/aarch64-tune.md: Regenerate.
16610 * doc/invoke.texi (-mtune): Document new values for -mtune.
16612 2017-06-21 Tom de Vries <tom@codesourcery.com>
16614 * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
16615 stack_size feature.
16616 (Effective-Target Keywords, Other attributes): Suggest using
16617 dg-add-options stack_size feature to get stack limit in stack_size
16618 effective target documentation.
16620 2017-06-21 Julian Brown <julian@codesourcery.com>
16621 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
16623 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
16624 (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
16625 * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
16627 * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
16628 attribute type list for neon_multiply.
16629 * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
16630 attribute type list for neon_multiply.
16631 * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
16632 * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
16633 attribute type list for neon_multiply.
16634 * config/arm/types.md (crypto_pmull): Add.
16635 * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
16636 attribute type list.
16638 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org>
16640 * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
16643 2017-06-20 Jakub Jelinek <jakub@redhat.com>
16645 * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
16646 to make sure not to dereference a NULL cost_classes_ptr pointer.
16648 2017-06-20 Carl Love <cel@us.ibm.com>
16650 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16651 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
16652 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
16653 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
16654 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
16655 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
16656 VMULOSW): New enum "unspec" values.
16657 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
16658 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
16659 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
16660 altivec_vmulosw): New patterns.
16661 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
16662 VMULOSW): Add definitions.
16664 2017-06-20 Julia Koval <julia.koval@intel.com>
16666 * config/i386/i386.c: Fix rounding expand for new pattern.
16667 * config/i386/subst.md: Fix pattern (parallel -> unspec).
16669 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
16671 * config/aarch64/aarch64-option-extensions.def (rcpc): New.
16672 * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
16674 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
16676 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
16679 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
16681 * config/aarch64/aarch64-cores.def: Rearrange to sort by
16682 architecture, then by implementer ID.
16683 * config/aarch64/aarch64-tune.md: Regenerate.
16685 2017-06-20 Richard Biener <rguenther@suse.de>
16687 PR middle-end/81097
16688 * fold-const.c (split_tree): Fold to type before negating.
16690 2017-06-20 David Malcolm <dmalcolm@redhat.com>
16692 * diagnostic-show-locus.c
16693 (selftest::test_fixit_deletion_affecting_newline): New function.
16694 (selftest::diagnostic_show_locus_c_tests): Call it.
16696 2017-06-20 Andreas Schwab <schwab@suse.de>
16699 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
16702 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
16704 * config/arm/arm-c.c (arm_cpu_builtins): New block to define
16705 __ARM_FEATURE_COPROC according to support.
16707 2017-06-20 Jakub Jelinek <jakub@redhat.com>
16709 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
16710 Rewritten to avoid overflow for > 32-bit pointers.
16713 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
16714 by removing enum keyword.
16715 (ubsan_type_descriptor): Likewise. Formatting fix.
16718 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
16719 splitter): Require TARGET_SSE2 in the condition.
16721 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
16724 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
16725 for doing vector set of SFmode on ISA 3.0.
16726 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
16727 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
16729 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
16730 SFmode value into a V4SF variable that was extracted from another
16731 V4SF variable without converting the element to double precision
16732 and back to single precision vector format.
16733 (vsx_insert_extract_v4sf_p9_2): Likewise.
16735 2017-06-19 Jakub Jelinek <jakub@redhat.com>
16737 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
16738 in UWHI to avoid undefined overflow.
16741 * ubsan.h (enum ubsan_encode_value_phase): New.
16742 (ubsan_encode_value): Change second argument to
16743 enum ubsan_encode_value_phase with default value of
16744 UBSAN_ENCODE_VALUE_GENERIC.
16745 * ubsan.c (ubsan_encode_value): Change second argument to
16746 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
16747 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
16748 create_tmp_var_raw instead of create_tmp_var and use a
16750 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
16751 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
16752 ubsan_encode_value callers.
16755 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
16756 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
16757 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
16759 2017-06-19 Richard Biener <rguenther@suse.de>
16761 PR middle-end/81118
16762 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
16763 estimates if we changed anything.
16765 2017-06-19 Richard Biener <rguenther@suse.de>
16767 PR tree-optimization/80887
16768 * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
16769 (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
16770 simplified lookups, then reset mprts_hook.
16771 (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
16773 (try_to_simplify): Likewise.
16775 2017-06-19 Martin Liska <mliska@suse.cz>
16778 * gimplify.c (gimplify_switch_expr):
16779 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
16781 2017-06-19 Martin Liska <mliska@suse.cz>
16783 * doc/install.texi: Document that PGO runs in 4 stages.
16785 2017-06-19 Martin Liska <mliska@suse.cz>
16788 * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
16789 to dispatcher function name.
16790 * multiple_target.c (replace_function_decl): New function.
16791 (create_dispatcher_calls): Redirect both edges and references.
16793 2017-06-19 Jan Hubicka <hubicka@ucw.cz>
16795 * profile-count.c (profile_count::dump): Dump quality.
16796 (profile_count::differs_from_p): Update for unsigned val.
16797 * profile-count.h (profile_count_quality): New enum.
16798 (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
16800 2017-06-19 Richard Biener <rguenther@suse.de>
16802 * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
16803 struct function as arg.
16804 (estimate_numbers_of_iterations): Export overload with loop arg.
16805 (free_numbers_of_iterations_estimates_loop): Use an overload of
16806 free_numbers_of_iterations_estimates instead.
16807 * tree-cfg.c (remove_bb): Adjust.
16808 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
16809 * tree-parloops.c (gen_parallel_loop): Likewise.
16810 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
16812 (tree_unroll_loops_completely): Likewise.
16813 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
16814 Use an overload instead and export.
16815 (estimated_loop_iterations): Adjust.
16816 (max_loop_iterations): Likewise.
16817 (likely_max_loop_iterations): Likewise.
16818 (estimate_numbers_of_iterations): Take struct function as arg
16820 (loop_exits_before_overflow): Adjust.
16821 (free_numbers_of_iterations_estimates_loop): Use an overload.
16822 * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
16823 * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
16825 2017-06-19 Richard Biener <rguenther@suse.de>
16828 * ipa-prop.c (find_constructor_constant_at_offset): Handle
16829 RANGE_EXPR conservatively.
16831 2017-06-16 Carl Love <cel@us.ibm.com>
16833 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16834 definitions for vec_float, vec_float2, vec_floato,
16835 vec_floate built-ins.
16836 * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
16837 for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
16839 * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
16840 FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
16841 UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
16842 * config/altivec.md (define_insn "p8_vmrgew_<mode>",
16843 define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
16844 * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
16845 vec_floato): Add builtin defines.
16846 * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
16847 Update the built-in documentation file for the new built-in
16850 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16852 * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
16853 (mthumb): Mark as the negative of -marm.
16855 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16857 * doc/invoke.texi (ARM Options, -mcpu): Document supported
16859 (ARM Options, -mtune): Document that this accepts the same
16860 extension options as -mcpu.
16861 (ARM Options, -mfpu): Document addition of -mfpu=auto.
16863 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16865 * doc/invoke.texi (ARM Options, -march=): Document new syntax and
16866 permitted extensions.
16868 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16870 * config/arm/arm-cpus.in (armv7): Add extension +nofp.
16871 (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
16872 (armv8-m.main): Add option +nodsp.
16873 * config/arm/arm-cpu-cdata.h: Regenerated.
16875 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16877 * config/arm/t-fuchsia: New file.
16878 * config.gcc (arm*-*-fuchsia*): Use it.
16880 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16882 * config/arm/t-symbian: Rewrite for new option infrastructure.
16884 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16886 * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
16887 (MULTILIB_REQUIRED): Likewise.
16889 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16891 * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
16892 (MULTILIB_RESUE): Likewise.
16893 (MULTILIB_MATCHES): Likewise.
16894 (MULTLIB_REQUIRED): Likewise.
16896 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16898 * config/arm/t-rtems: Rewrite for new option framework.
16900 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16902 * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
16903 (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
16904 (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
16905 (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
16906 * config/arm/t-multilib: ... here.
16907 (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
16908 (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for
16909 armv7-a and armv8*-a when A-profile libraries have not been built.
16910 * config/arm/t-rmprofile: Rewrite.
16912 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16914 * genmultilib (multilib_reuse): Allow an explicit period to be escaped
16915 with a backslash. Remove the backslash after substituting unescaped
16917 * doc/fragments.texi (MULTILIB_REUSE): Document it.
16919 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16921 * config.gcc: (arm*-*-*): When building a-profile libraries, force
16922 the driver to pass through the default setting of -mfloat-abi.
16923 * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
16925 * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
16926 (all_feat_combs): New rule.
16927 (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework
16929 * config/arm/t-aprofile: Rewrite.
16931 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16933 * config/arm/arm.h (FPUTYPE_AUTO): Define.
16934 * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
16935 fpu is not specified by the user/command-line.
16936 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
16937 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
16938 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
16939 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
16940 * common/config/arm/arm-common.c (arm_canon_arch_option): Use
16941 FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
16943 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16945 * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
16946 * config/arm/t-arm-elf: Rewritten.
16948 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16950 * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
16951 have some floating-point instructions.
16952 (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
16953 (TARGET_MAYBE_HARD_FLOAT): New macro.
16954 * config/arm/arm-builtins.c (arm_init_builtins): Use
16955 TARGET_MAYBE_HARD_FLOAT.
16956 * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
16958 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16960 * common/config/arm/arm-common.c: Define INCLUDE_LIST.
16961 (configargs.h): Include it.
16962 (arm_print_hint_for_fpu_option): New function.
16963 (arm_parse_fpu_option): New function.
16964 (candidate_extension): New class.
16965 (arm_canon_for_multilib): New function.
16966 * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
16967 (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
16968 (ARCH_CANONICAL_SPECS): New macro.
16969 (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
16971 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16973 * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
16974 are set after handling multilib fragments. Set target_cpu_default2
16977 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16979 * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
16981 (arm*-*-*): Set target_cpu_default2 to a quoted string.
16982 * config/arm/parsecpu.awk (check_cpu): Validate any extension
16984 (check_arch): Likewise.
16985 * config/arm/arm.c (arm_configure_build_target): Handle
16986 TARGET_CPU_DEFAULT being a string constant. Scan any feature
16987 options in the default.
16989 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
16991 * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
16992 when an option is an alias of another.
16993 * config/arm/parsecpu.awk (optalias): New parser token.
16994 (gen_comm_data): Mark non-alias options as such. Emit entries
16995 for extension aliases.
16996 * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
16997 (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
16998 (armv6kz, armv6zk, armv6t2): Likewise.
16999 (armv7): Make vfpv3-d16 an alias.
17000 (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in
17002 (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
17003 Sort in canonical order.
17004 (armv8-a): Sort in canonical order.
17005 (armv8.1-a, armv8.2-a): Likewise.
17006 (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in
17008 (cortex-a9): Sort in canonical order.
17009 * config/arm/arm.c (selftests.h): Include it.
17010 (arm_test_cpu_arch_data): New function.
17011 (arm_run_self_tests): New function.
17012 (TARGET_RUN_TARGET_SELFTESTS): Redefine.
17013 (targetm): Move declaration to the end of the file.
17014 * arm-cpu-cdata.h: Regenerated.
17016 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17018 * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
17019 call to target_mode_check describing the type of option passed.
17020 * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
17021 (arm_target_thumb_only): Use arm_parse_arch_option_name or
17022 arm_parse_cpu_option_name to match parameters against list of
17024 * config/arm/parsecpu.awk (gen_comm_data): Don't generate
17025 arm_arch_core_flags data structure.
17026 * config/arm/arm-cpu_cdata.h: Regenerated.
17028 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17030 * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
17032 (arm_print_hint_for_cpu_option): Likewise.
17033 (arm_print_hint_for_arch_option): Likewise.
17034 (arm_parse_cpu_option_name): Likewise.
17035 (arm_parse_arch_option_name): Likewise.
17036 * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
17037 of entries in the all_fpus list.
17038 * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
17039 (arm_parse_cpu_option_name): Declare.
17040 (arm_parse_arch_option_name): Declare.
17041 (arm_parse_option_features): Declare.
17042 (arm_intialize_isa): Declare.
17043 * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
17045 (gen_comm_data): ... here. Make definitions non-static.
17046 * config/arm/arm-cpu-data.h: Regenerated.
17047 * config/arm/arm-cpu-cdata.h: Regenerated.
17049 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17051 * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
17052 (cpu_arch_extension): New structure.
17053 (cpu_arch_option, arch_option, cpu_option): New structures.
17054 * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
17055 architecture types.
17056 (gen_data): Generate new format data tables.
17057 * config/arm/arm.c (cpu_tune): New structure.
17058 (cpu_option, processors): Delete.
17059 (arm_print_hint_for_core_or_arch): Delete. Replace with ...
17060 (arm_print_hint_for_cpu_option): ... this and ...
17061 (arm_print_hint_for_arch_option): ... this.
17062 (arm_parse_arch_cpu_name): Delete. Replace with ...
17063 (arm_parse_cpu_option_name): ... this and ...
17064 (arm_parse_arch_option_name): ... this.
17065 (arm_unrecognized_feature): Change type of target parameter to
17067 (arm_parse_arch_cpu_features): Delete. Replace with ...
17068 (arm_parse_option_features): ... this.
17069 (arm_configure_build_target): Rework to use new configuration data
17071 (arm_print_tune_info): Rework for new configuration data tables.
17072 * config/arm/arm-cpu-data.h: Regenerated.
17073 * config/arm/arm-cpu.h: Regenerated.
17075 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17077 * Makefile.in (OBJS): Move sbitmap.o from here ...
17078 (OBJS-libcommon): ... to here.
17080 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17082 * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
17083 (ISA_ALL_CRYPTO): New macro.
17084 (ISA_ALL_SIMD): New macro
17085 (ISA_ALL_FP): New macro.
17086 * config/arm/arm.c (fpu_bitlist): Update initializer.
17087 * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
17089 (arm9e): Add fpu. Add option for nofp
17090 (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
17091 (arm926ej-s, arm1026ej-s): Likewise.
17092 (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16,
17093 vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
17094 neon-fp16, neon-vfpv4, nofp and nosimd.
17095 (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp.
17096 (cortex-a8): Add fpu. Add option for nofp.
17097 (cortex-a9): Add fpu. Add options for nosimd and nofp.
17098 (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp.
17099 (cortex-r4f): Add fpu.
17100 (cortex-r5): Add fpu. Add options for nofp.dp and nofp.
17101 (cortex-r7): Use idiv option from architecture. Add fpu. Add option
17103 (cortex-r8): Likewise.
17104 (cortex-m4): Add fpu. Add option for nofp.
17105 (cortex-a15.cortex-a7): Add fpu. Add option for nofp.
17106 (cortex-a17.cortex-a7): Likewise.
17107 (cortex-a32): Add fpu. Add options for crypto and nofp.
17108 (cortex-a35, cortex-a53): Likewise.
17109 (cortex-a57): Add fpu. Add option for crypto.
17110 (cortex-a72, cortex-a73): Likewise.
17111 (exynos-m1): Likewise.
17112 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
17113 (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
17114 (cortex-m33): Add fpu. Add option for nofp.
17115 * config/arm/arm-cpu-cdata.h: Regenerated
17116 * config/arm/arm-cpu-data.h: Regenerated.
17118 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17120 * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
17121 (armv5te, armv5tej): Likewise.
17122 (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
17123 (armv7): Add options fp and vfpv3-d16.
17124 (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
17125 vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
17127 (armv7ve): Likewise.
17128 (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
17129 (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
17130 (armv8-a): Add nocrypto option.
17131 (armv8.1-a, armv8.2-a): Likewise.
17132 (armv8-m.main): add options fp, fp.dp and nofp.
17134 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17136 * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
17138 (armv8-a+crc): Delete.
17139 (armv8.1-a): Add options simd, crypto and nofp.
17140 (armv8.2-a): Add options fp16, simd, crypto and nofp.
17141 (armv8.2-a+fp16): Delete.
17142 (armv8-m.main): Add option dsp.
17143 (armv8-m.main+dsp): Delete.
17144 (cortex-a8): Add fpu. Add nofp option.
17145 (cortex-a9): Add fpu. Add nofp and nosimd options.
17146 * config/arm/parsecpu.awk (gen_data): Generate option tables and
17147 link to main cpu and architecture data structures.
17148 (gen_comm_data): Only put isa attributes from the main architecture
17150 (option): New statement for architecture and CPU entries.
17151 * arm.c (struct cpu_option): New structure.
17152 (struct processors): Add entry for options.
17153 (arm_unrecognized_feature): New function.
17154 (arm_parse_arch_cpu_name): Ignore any characters after the first
17156 (arm_parse_arch_cpu_feature): New function.
17157 (arm_configure_build_target): Separate out any CPU and architecture
17158 features and parse separately. Don't error out if -mfpu=auto is
17159 used with only an architecture string.
17160 (arm_print_asm_arch_directives): New function.
17161 (arm_file_start): Call it.
17162 * config/arm/arm-cpu-cdata.h: Regenerated.
17163 * config/arm/arm-cpu-data.h: Likewise.
17164 * config/arm/arm-tables.opt: Likewise.
17166 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17168 * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
17169 assembler when it is not -mfpu=auto.
17171 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17173 * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
17174 (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
17175 (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
17176 (ASM_CPU_SPEC): Rewrite.
17177 (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
17178 (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use
17179 MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove
17180 reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
17181 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
17182 copied string is NUL-terminated. Also strip any characters prefixed
17184 (arm_rewrite_selected_arch): New function.
17185 (arm_rewrite_march): New function.
17187 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17189 * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
17190 (x_arm_cpu_string, x_arm_tune_string): Likewise.
17191 (march, mcpu, mtune): Convert to string-based options.
17192 * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
17193 (arm_parse_arch_cpu_name): New function.
17194 (arm_configure_build_target): Use arm_parse_arch_cpu_name to
17195 identify selected architecture or CPU.
17196 (arm_option_save): New function.
17197 (TARGET_OPTION_SAVE): Redefine.
17198 (arm_option_restore): Restore string options.
17199 (arm_option_print): Print string options.
17201 2017-06-16 Martin Sebor <msebor@redhat.com>
17203 PR tree-optimization/80933
17204 PR tree-optimization/80934
17205 * builtins.c (fold_builtin_3): Do not handle bcmp here.
17206 * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
17207 (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
17208 (gimple_fold_builtin): Call them.
17210 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
17212 * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
17213 as unlikely; update profile.
17215 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
17217 * predict.c (force_edge_cold): Handle declaring edges impossible
17220 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
17222 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
17224 (try_unroll_loop_completely): Fix reporting.
17226 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
17228 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
17230 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com>
17233 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
17234 if given a non-constant argument for an intrinsic which requires a
17237 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
17239 * profile.c (compare_freqs): New function.
17240 (branch_prob): Sort edge list.
17241 (find_spanning_tree): Assume that the list is priority sorted.
17243 2017-06-16 Richard Biener <rguenther@suse.de>
17245 PR tree-optimization/81090
17246 * passes.def (pass_record_bounds): Remove.
17247 * tree-pass.h (make_pass_record_bounds): Likewise.
17248 * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
17249 make_pass_record_bounds): Likewise.
17250 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
17251 not free niter estimates at the beginning but at the end.
17252 * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
17254 2017-06-16 Richard Biener <rguenther@suse.de>
17256 * tree-switch-conversion.c (emit_case_bit_tests): Adjust
17257 initializer to workaround ICE in host GCC 4.8.
17259 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
17261 * ipa-inline-transform.c (update_noncloned_frequencies): Update also
17263 (clone_inlined_nodes): Update.
17265 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17267 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
17268 prefetch settings, and enable prefetching by default at -O3.
17270 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17272 * config/aarch64/aarch64.c (aarch64_override_options_internal):
17273 Set flag_prefetch_loop_arrays according to tuning data.
17275 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
17277 * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
17278 New tune structure.
17279 (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
17280 [Unrelated to main purpose of the patch] Place the pointer field last
17281 to enable type checking errors when tune structure are wrongly merged.
17282 * config/aarch64/aarch64.c (generic_prefetch_tune,)
17283 (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
17284 (thunderx2t99_prefetch_tune): New tune constants.
17285 (tune_params *_tunings): Update all tunings (no functional change).
17286 (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
17287 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
17288 from tunings structures.
17290 2017-06-16 Jakub Jelinek <jakub@redhat.com>
17293 * ubsan.c (instrument_null): Add T argument, use it instead
17294 of computing it based on IS_LHS.
17295 (instrument_object_size): Likewise.
17296 (pass_ubsan::execute): Adjust instrument_null and
17297 instrument_object_size callers to pass gimple_get_lhs or
17298 gimple_assign_rhs1 result to it. Use instrument_null instead of
17299 calling get_base_address and instrument_mem_ref. Handle
17300 aggregate call arguments for object-size sanitization.
17302 2017-06-16 Yury Gribov <tetra2005@gmail.com>
17304 PR tree-optimization/81089
17305 * tree-vrp.c (is_masked_range_test): Validate operands of
17308 2017-06-15 Martin Sebor <msebor@redhat.com>
17311 * dumpfile.c (dump_register): Avoid calling memset to initialize
17312 a class with a default ctor.
17313 * gcc.c (struct compiler): Remove const qualification.
17314 * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
17315 * hash-table.h: Ditto.
17316 * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
17318 * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
17319 * omp-low.c (lower_omp_ordered_clauses): Replace memset with
17321 * params.h (struct param_info): Make struct members non-const.
17322 * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
17323 with default initialization.
17324 * vec.h (vec_copy_construct, vec_default_construct): New helper
17326 (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
17327 with vec_copy_construct.
17328 (vect<T>::quick_grow_cleared): Replace memset with default ctor.
17329 (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
17330 * doc/invoke.texi (-Wclass-memaccess): Document.
17332 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17334 * emit-rtl.h (is_leaf): Update comment about local
17335 register allocator.
17337 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com>
17340 * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
17341 for a variable to have a section before checking if the section has a
17343 Set section to.persistent if persistent attribute is set.
17344 Warn if .persistent attribute is used on an automatic variable.
17346 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
17348 PR rtl-optimization/80474
17349 * reorg.c (update_block): Do not ignore instructions in a delay slot.
17351 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
17353 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
17356 2017-06-14 Maciej W. Rozycki <macro@imgtec.com>
17358 * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
17359 (casesi): Emit bounds checking as RTL.
17360 (casesi_internal_mips16_<mode>): Remove bounds checking.
17362 2017-06-14 Max Filippov <jcmvbkbc@gmail.com>
17364 * config/xtensa/xtensa.c (xtensa_option_override): Append
17365 MASK_CONST16 to target_flags in the absence of TARGET_L32R.
17366 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
17367 xtensa_doloop_hooks): Define unconditionally.
17368 (xtensa_reorg_loops): Only call reorg_loops in the presence of
17370 * config/xtensa/xtensa.h (TARGET_L32R): New definition.
17371 (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
17372 for it in xtensa_option_override.
17373 (HARD_FRAME_POINTER_IS_FRAME_POINTER,
17374 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
17376 2017-06-14 Boris Kolpackov <boris@codesynthesis.com>
17378 * doc/cppopts.texi: Document '-' special value to -MF.
17380 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com>
17382 * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
17383 (cortex_a53_fconst): Likewise.
17384 (cortex_a53_fpmul): Likewise.
17385 (cortex_a53_f_load_64): Likewise.
17386 (cortex_a53_f_load_many): Likewise.
17387 (cortex_a53_advsimd_alu): Likewise.
17388 (cortex_a53_advsimd_alu_q): Likewise.
17389 (cortex_a53_advsimd_mul): Likewise.
17390 (cortex_a53_advsimd_mul_q): Likewise.
17391 (fpmac bypass): Add new bypass for fpmac-fpmac case.
17392 Add missing fmul, r2f_cvt and fconst cases.
17394 2017-06-14 Richard Biener <rguenther@suse.de>
17396 PR middle-end/81088
17397 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
17399 (fold_binary_loc): When associating do not treat pre-existing
17400 TREE_OVERFLOW on literal constants as a reason to allow
17401 TREE_OVERFLOW on associated literal constants.
17403 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
17405 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
17406 (MASK_FEATURES): New macro.
17407 * config/sparc/sparc.c (sparc_option_override): Remove the special
17408 handling of -mfpu and generalize it to all MASK_FEATURES switches.
17410 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
17412 * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
17413 a division of 0 if non-call exceptions are enabled.
17415 2017-06-14 Andrew Pinski <apinski@cavium.com>
17416 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
17419 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
17420 Improve vector initialization code gen for only variable case.
17422 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
17424 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
17426 2017-06-14 Richard Biener <rguenther@suse.de>
17428 PR tree-optimization/81083
17429 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
17432 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17434 * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
17435 (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
17436 * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
17437 * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use.
17438 * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
17439 * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
17441 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17443 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
17444 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
17446 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17448 * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
17450 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17452 * config/rs6000/t-rtems: Don't handle SPE.
17454 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17456 * config/rs6000/t-linux: Don't handle SPE.
17458 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17460 * config/rs6000/eabispe.h: Delete file.
17462 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17464 * config/rs6000/t-spe: Delete file.
17466 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17468 * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
17469 (rs6000_legitimate_offset_address_p): Return false for anything in
17470 V2SImode or V2SFmode.
17472 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
17474 * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
17475 except V2SF and V2SI. Rearrange the vector modes, and add comments.
17476 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
17478 (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
17479 (rs6000_legitimate_offset_address_p): Ditto.
17480 (rs6000_emit_move): Ditto.
17481 (rs6000_init_builtins): Remove V4HI_type_node.
17483 2017-06-13 Martin Liska <mliska@suse.cz>
17486 * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
17487 (gate_asan): Likewise.
17488 * asan.h (asan_no_sanitize_address_p): Remove the function.
17489 (sanitize_flags_p): New function.
17490 * builtins.def: Fix coding style.
17491 * common.opt: Use renamed enum value.
17492 * convert.c (convert_to_integer_1): Use sanitize_flags_p.
17493 * doc/extend.texi: Document no_sanitize attribute.
17494 * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
17495 to SANITIZE_UNDEFINED_NONDEFAULT.
17496 * gcc.c (sanitize_spec_function): Use the renamed enum value.
17497 * gimple-fold.c (optimize_atomic_compare_exchange_p):
17498 Use sanitize_flags_p.
17499 * gimplify.c (gimplify_function_tree): Likewise.
17500 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
17501 * opts.c (parse_no_sanitize_attribute): New function.
17502 (common_handle_option): Use renamed enum value.
17503 * opts.h (parse_no_sanitize_attribute): Declare.
17504 * tree.c (sanitize_flags_p): New function.
17505 * tree.h: Declared here.
17506 * tsan.c: Use sanitize_flags_p.
17507 * ubsan.c (ubsan_expand_null_ifn): Likewise.
17508 (instrument_mem_ref): Likewise.
17509 (instrument_bool_enum_load): Likewise.
17510 (do_ubsan_in_current_function): Remove the function.
17511 (pass_ubsan::execute): Use sanitize_flags_p.
17512 * ubsan.h: Remove do_ubsan_in_current_function
17513 * tree-cfg.c (print_no_sanitize_attr_value): New function.
17514 (dump_function_to_file): Use it here.
17516 2017-06-13 Martin Jambor <mjambor@suse.cz>
17518 PR tree-optimization/80803
17519 PR tree-optimization/81063
17520 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
17521 (propagate_subaccesses_across_link): Enqueue subtree whenever
17522 necessary instead of relying on the caller.
17524 2017-06-13 Martin Jambor <mjambor@suse.cz>
17526 * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
17527 that have a first_link.
17528 (sort_and_splice_var_accesses): Do not check first_link before
17530 (subtree_mark_written_and_enqueue): Likewise.
17531 (propagate_all_subaccesses): Likewise and do not stop at first
17532 parent with a first_link.
17534 2017-06-13 Martin Jambor <mjambor@suse.cz>
17536 * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
17539 2017-06-13 Yury Gribov <tetra2005@gmail.com>
17541 * match.pd: New pattern.
17543 2017-06-13 Yury Gribov <tetra2005@gmail.com>
17545 * tree-vrp.c (is_masked_range_test): New function.
17546 (register_edge_assert_for): Determine ranges for
17549 2017-06-13 Yury Gribov <tetra2005@gmail.com>
17551 PR tree-optimization/67328
17552 * fold-const.c (maskable_range_p): New function.
17553 (build_range_check): Generate bittests if possible.
17555 2017-06-13 Martin Liska <mliska@suse.cz>
17557 * gimple-pretty-print.c (dump_probability): Add new argument.
17558 (dump_edge_probability): Dump both probability and count.
17559 (dump_gimple_label): Likewise.
17560 (dump_gimple_bb_header): Likewise.
17562 2017-06-13 Georg-Johann Lay <avr@gjlay.de>
17565 * config/avr/avr-devices.c: Fix indentation.
17566 * config/avr/gen-avr-mmcu-specs.c: Dito.
17568 2017-06-13 Richard Biener <rguenther@suse.de>
17570 * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
17571 instead get vector type from stmt_info.
17572 (vectorizable_reduction): Adjust. Remove dead code.
17574 2017-06-13 Richard Biener <rguenther@suse.de>
17576 PR middle-end/81065
17577 * fold-const.c (extract_muldiv_1): Remove bogus distribution
17578 case of C * (x * C2 + C3).
17579 (fold_addr_of_array_ref_difference): Properly fold index difference.
17581 2017-06-12 David S. Miller <davem@davemloft.net>
17584 * config/sparc/sparc.md (return expander): Emit frame blockage if
17585 function uses alloca.
17587 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org>
17589 * combine.c (make_field_assignment): Check len rather than the mode
17590 precision when calling force_to_mode.
17592 2017-06-12 Georg-Johann Lay <avr@gjlay.de>
17594 Support multilibs and devices that see flash in RAM address range.
17597 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
17598 (avr_mcu_t) <flash_pm_offset>: New field.
17599 (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
17600 * config/avr/avr.h (AVR_SHORT_CALLS): New define.
17601 (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
17602 (AVR_TINY_PM_OFFSET): Remove macro.
17603 * config/avr/avr.opt (-mshort-calls): New option.
17604 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
17605 [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
17606 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
17607 <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
17608 <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
17609 instead of avr_arch->have_jmp_call.
17610 <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
17611 [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
17612 avr_arch->flash_pm_offset to define.
17613 * config/avr/avr-devices.c (avr_arch_types): Add initializers for
17614 new field flash_pm_offset. Add entry for avrxmega3.
17615 (avr_texinfo): Add entry for avrxmega3.
17616 * config/avr/avr-mcus.def: Add entries for: avrxmega3,
17617 attiny212, attiny214,
17618 attiny412, attiny414, attiny416, attiny417,
17619 attiny814, attiny816, attiny817,
17620 attiny1614, attiny1616, attiny1617,
17621 attiny3214, attiny3216, attiny3217.
17622 * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
17623 avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
17624 (avr_print_operand_address) [AVR_TINY]: Same.
17625 (avr_asm_init_sections) <readonly_data_section>: Only patch
17626 callback if avr_arch->flash_pm_offset = 0.
17627 (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
17628 for rodata if avr_arch->flash_pm_offset != 0.
17629 (avr_encode_section_info) [AVR_TINY]: Adjust comment.
17630 * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
17631 (opts) [AVR_ISA_RCALL]: Append opt_rcall.
17632 (m_options): Append opt_rcall.
17633 (m_dirnames): Append dir_rcall.
17634 * config/avr/t-multilib: Regenerate.
17636 * configure.ac [target=avr]: Check whether avrxmega3 default
17637 linker description file works as needed.
17638 * configure: Regenerate.
17639 * doc/avr-mmcu.texi: Regenerate.
17640 * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
17641 <__AVR_ARCH__>: Document avrxmega3 and 103.
17642 <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
17643 <__AVR_SHORT_CALLS__>: Document it.
17644 <__AVR_PM_BASE_ADDRESS__>: Document it.
17645 * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
17646 (AVR Variable Attributes) <progmem>: Document this is
17647 not needed for avrxmega3.
17648 (AVR Named Address Spaces) <__flash>: Dito.
17650 2017-06-12 Jan Hubicka <hubicka@ucw.cz>
17652 * cgraph.c (cgraph_node::dump): Complain about profile insanities.
17654 2017-06-12 Doug Rupp <rupp@adacore.com>
17656 * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
17657 Append vxworks-stdint.h to the tm_file list.
17658 * config/vxworks-stdint.h: New file.
17660 2017-06-12 Martin Liska <mliska@suse.cz>
17662 PR tree-optimization/81041
17663 * tree-profile.c (gimple_gen_ic_func_profiler):
17664 Create an extra BB in profile-generate
17665 (gimple_gen_time_profiler): Likewise.
17667 2017-06-12 Jakub Jelinek <jakub@redhat.com>
17669 PR tree-optimization/81003
17670 * tree-ssa-reassoc.c (force_into_ssa_name): New function.
17671 (update_range_test): Use it instead of force_gimple_operand_gsi.
17673 2017-06-12 Richard Biener <rguenther@suse.de>
17675 PR tree-optimization/81053
17676 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
17677 with backedge value not defined in loop. Simplify def stmt
17680 2017-06-11 Tom de Vries <tom@codesourcery.com>
17683 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
17685 (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
17686 nvptx_cannot_force_const_mem.
17688 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
17690 * opts.c (finish_options): Move test for flag_split_stack after
17691 it has been initialized.
17693 2017-06-11 Jason Merrill <jason@redhat.com>
17695 * tree.h (id_equal): New.
17696 * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
17697 omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
17698 instead of strcmp of IDENTIFIER_POINTER.
17700 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
17702 * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
17703 (mark_all_inlined_calls_cdtor): Fix formating.
17704 (inline_transform): Rescale profile before inlining.
17706 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
17708 * cgraph.h (cgraph_edge::clone): Update prototype.
17709 * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
17710 (cgraph_node::create_clone): Update.
17711 (cgraph_node::create_version_clone): Update.
17712 * tree-inline.c (copy_bb): Update.
17713 (expand_call_inline): Update.
17715 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
17717 * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
17718 factored out from ...
17719 (rs6000_emit_prologue): ... here.
17721 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
17723 * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
17724 factored out from ...
17725 (rs6000_emit_prologue): ... here.
17727 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
17729 * predict.c (drop_profile): Also drop individual bb/edge and cgraph
17731 (handle_missing_profiles): Fix computation of tp_first_run.
17732 (counts_to_freqs): Do not touch freqs when count is 0.
17734 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
17736 * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
17739 2017-06-10 Tom de Vries <tom@codesourcery.com>
17741 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
17742 attributes): Document signal effective target.
17744 2017-06-10 Tom de Vries <tom@codesourcery.com>
17746 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
17747 Document effective target stack_size.
17749 2017-06-09 David Malcolm <dmalcolm@redhat.com>
17751 * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
17752 to the edit_context if they can be auto-applied.
17754 2017-06-9 Ian Lance Taylor <iant@golang.org>
17756 * opts.c (finish_options): If -fsplit-stack, disable implicit
17757 -forder-blocks-and-partition.
17758 * doc/invoke.texi (Optimize Options): Document that when using
17759 -fsplit-stack -forder-blocks-and-partition is not implicitly
17762 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
17764 * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
17765 ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
17766 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
17767 * builtins.def (abort, trap, unreachable): Declare cold.
17768 * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
17769 * tree-core.h (ECF_COLD): New.
17770 * tree.c (set_call_expr_flags): Handle ECF_COLD.
17771 (build_common_builtin_nodes): Mark unreachable and abort as cold.
17773 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
17775 * predict.c (unlikely_executed_stmt_p): Cleanup.
17777 2017-06-09 Richard Biener <rguenther@suse.de>
17779 * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
17780 model if the ref is always written to.
17782 2017-06-09 Tamar Christina <tamar.christina@arm.com>
17784 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
17786 2017-06-09 Tamar Christina <tamar.christina@arm.com>
17788 * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
17791 2017-06-09 Tom de Vries <tom@codesourcery.com>
17794 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
17795 "target cannot support label values" when encountering LABEL_REF.
17797 2017-06-09 Martin Liska <mliska@suse.cz>
17799 * tree-profile.c (gimple_gen_ic_profiler): Update comment.
17800 (gimple_gen_ic_func_profiler): Emit direct comparison
17801 of __gcov_indirect_call_callee with NULL.
17802 (gimple_gen_time_profiler): Change probability from
17803 PROB_VERY_UNLIKELY to PROB_UNLIKELY.
17805 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
17807 * profile.c (edge_gcov_counts): Turn to pointer.
17808 (compute_branch_probabilities, compute_branch_probabilities): Update.
17809 (branch_prob): Do not clear edge_gcov_count.
17810 * profile.h (edge_gcov_counts): Turn to pointer.
17811 (edge_gcov_count): Update.
17813 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
17815 * gimple.h (gimple_check_failed): Mark cold.
17817 2017-06-09 Richard Biener <rguenther@suse.de>
17819 PR tree-optimization/66623
17820 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
17821 refactor check_reduction into two parts, properly computing
17822 whether we have to check reduction validity for outer loop
17825 2017-06-09 Richard Biener <rguenther@suse.de>
17827 PR tree-optimization/79483
17828 * graphite-scop-detection.c (order): New global.
17829 (get_order): Compute bb to order mapping that satisfies code
17830 generation constraints.
17831 (cmp_pbbs): New helper.
17832 (build_scops): Start domwalk at entry block, sort generated
17835 2017-06-09 Richard Biener <rguenther@suse.de>
17837 PR middle-end/81007
17838 * ipa-polymorphic-call.c
17839 (ipa_polymorphic_call_context::restrict_to_inner_class):
17840 Skip FIELD_DECLs with error_mark_node type.
17841 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
17844 2017-06-09 Martin Liska <mliska@suse.cz>
17846 * predict.c (struct branch_predictor): New struct.
17847 (test_prediction_value_range): New test.
17848 (predict_c_tests): New function.
17849 * selftest-run-tests.c (selftest::run_tests): Run the function.
17850 * selftest.h: Declare new tests.
17852 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
17855 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
17856 gen_add3_insn did not fail.
17857 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
17858 r0, construct that number in a temporary reg and add that reg to r0.
17859 If asked to put the result in r0 as well, fail.
17861 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com>
17863 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
17864 for early expansion of vec_eqv.
17866 2017-06-08 Jakub Jelinek <jakub@redhat.com>
17868 PR middle-end/81005
17869 * ubsan.c (instrument_null): Avoid pointless code temporary.
17870 (pass_ubsan::execute): Instrument aggregate arguments of calls.
17872 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
17876 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
17879 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
17882 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
17884 * predict.c (unlikely_executed_edge_p): Move ahead.
17885 (probably_never_executed_edge_p): Use it.
17887 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
17889 PR middle-end/79988
17890 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
17891 gimple_call_builtin_p call.
17893 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
17895 * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
17896 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
17897 rtl_check_failed_type2, rtl_check_failed_code1,
17898 rtl_check_failed_code2, rtl_check_failed_code_mode,
17899 rtl_check_failed_block_symbol, cwi_check_failed_bounds,
17900 rtvec_check_failed_bounds, rtl_check_failed_flag,
17901 _fatal_insn_not_found, _fatal_insn): Likewise.
17902 * tree.h (tree_contains_struct_check_failed,
17903 tree_check_failed, tree_not_check_failed,
17904 tree_class_check_failed, tree_range_check_failed,
17905 tree_not_class_check_failed, tree_int_cst_elt_check_failed,
17906 tree_vec_elt_check_failed, phi_node_elt_check_failed,
17907 tree_operand_check_failed, omp_clause_check_failed,
17908 omp_clause_operand_check_failed, omp_clause_range_check_failed):
17911 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
17913 * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
17914 flag_branch_probabilities.
17915 * ipa-inline.c (edge_badness): Likewise.
17916 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
17917 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
17918 * predict.c (maybe_hot_frequency_p): Likewise.
17919 (probably_never_executed): Likewise.
17920 * sched-ebb.c (schedule_ebbs): Likewise.
17921 * sched-rgn.c (find_single_block_region): Likewise.
17922 * tracer.c (tail_duplicate): Likewise.
17924 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
17926 * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
17927 longer requires x_flag_profile_use.
17929 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
17931 * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
17932 instead of flag_reorder_blocks_and_partition.
17933 * dbxout.c (dbxout_function_end): Likewise.
17934 * dwarf2out.c (gen_subprogram_die): Likewise.
17935 * haifa-sched.c (sched_create_recovery_edges): Likewise.
17936 * hw-doloop.c (reorg_loops): Likewise.
17937 * varasm.c (assemble_start_function,
17938 assemble_end_function): Likewise.
17939 (decide_function_section): Do not check for
17940 flag_reorder_blocks_and_partition.
17942 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
17944 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
17946 (chkp_get_hard_register_fake_addr_expr): Ditto.
17947 (chkp_build_addr_expr): Add check for hard reg case.
17948 (chkp_parse_array_and_component_ref): Ditto.
17949 (chkp_find_bounds_1): Ditto.
17950 (chkp_process_stmt): Don't generate bounds store for
17953 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
17955 * predict.c (maybe_hot_bb_p): Do not check profile status.
17956 (maybe_hot_edge_p): Likewise.
17957 (probably_never_executed): Check for zero counts even if profile
17959 (unlikely_executed_edge_p): New function.
17960 (unlikely_executed_stmt_p): New function.
17961 (unlikely_executed_bb_p): New function.
17962 (set_even_probabilities): Use unlikely predicates.
17963 (combine_predictions_for_bb): Likewise.
17964 (predict_paths_for_bb): Likewise.
17965 (predict_paths_leading_to_edge): Likewise.
17966 (determine_unlikely_bbs): New function.
17967 (estimate_bb_frequencies): Use it.
17968 (compute_function_frequency): Use zero counts even if profile is
17970 * profile-count.h: Fix typo.
17972 2017-08-08 Julia Koval <julia.koval@intel.com>
17974 * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
17975 _mm512_mask_cvtsepi16_storeu_epi8,
17976 _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
17977 * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
17978 _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
17979 _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
17980 _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
17981 * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
17982 (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
17983 VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
17984 * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
17985 __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
17986 __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
17987 __builtin_ia32_pmovuswb256mem_mask,
17988 __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
17989 __builtin_ia32_pmovwb512mem_mask): New builtins.
17991 2017-08-08 Julia Koval <julia.koval@intel.com>
17993 PR target/73350,80862
17994 * config/i386/subst.md (round): Fix round pattern.
17995 * config/i386/i386.c (ix86_erase_embedded_rounding):
17996 Fix erasing rounding for the fixed pattern.
17998 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
18000 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
18002 2017-06-08 Martin Liska <mliska@suse.cz>
18004 PR gcov-profile/80911
18005 * gcov.c (block_info::block_info): New constructor.
18007 2017-06-07 Carl Love <cel@us.ibm.com>
18009 * config/rs6000/rs6000-c: The return type of the following
18010 built-in functions was implemented as int not long long. Fix sign
18011 of return value for the unsigned version of vec_mulo and vec_mule.
18012 vector unsigned long long vec_bperm (vector unsigned long long,
18013 vector unsigned char)
18014 vector signed long long vec_mule (vector signed int,
18016 vector unsigned long long vec_mule (vector unsigned int,
18017 vector unsigned int)
18018 vector signed long long vec_mulo (vector signed int,
18020 vector unsigned long long vec_mulo (vector unsigned int,
18021 vector unsigned int)
18022 * doc/extend.texi: Fix the documentation for the built-in
18025 2017-06-07 Carl Love <cel@us.ibm.com>
18028 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
18031 2017-06-07 Carl Love <cel@us.ibm.com>
18033 * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
18034 support, Generate doublehv for signed int/float for BE case only.
18036 2017-06-07 Alexander Monakov <amonakov@ispras.ru>
18038 * doc/invoke.texi (mcx16): Rewrite.
18040 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18042 * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
18043 * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
18044 *mov<mode>_softfloat, and an anonymous splitter): Use
18045 nonimmediate_operand instead of rs6000_nonimmediate_operand.
18047 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18049 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
18051 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
18052 (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
18053 (rs6000_debug_reg_global): Adjust.
18054 (rs6000_init_hard_regno_mode_ok): Adjust.
18055 (rs6000_dbx_register_number): Adjust.
18056 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
18057 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
18058 Remove SPE_ACC and SPEFSCR.
18059 (REG_ALLOC_ORDER): Ditto.
18060 (FRAME_POINTER_REGNUM): Change to 111.
18061 (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
18062 (REG_CLASS_NAMES): Ditto.
18063 (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
18064 (REGISTER_NAMES): Ditto.
18065 (ADDITIONAL_REG_NAMES): Ditto.
18066 (rs6000_reg_names): Ditto.
18067 * config/rs6000/rs6000.md: Renumber some register number
18070 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18072 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
18074 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
18075 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
18077 (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
18078 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
18079 Delete the SPE high registers.
18080 (REG_ALLOC_ORDER): Ditto.
18081 (enum reg_class): Remove SPE_HIGH_REGS.
18082 (REG_CLASS_NAMES): Ditto.
18083 (REG_CLASS_CONTENTS): Delete the SPE high registers.
18084 (REGISTER_NAMES): Ditto.
18085 (rs6000_reg_names): Ditto.
18086 * doc/tm.texi.in: Remove SPE as example.
18087 * doc/tm.texi: Regenerate.
18089 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18091 * config/rs6000/8540.md (ppc8540_brinc): Delete.
18092 * config/rs6000/e500mc.md (e500mc_brinc): Delete.
18093 * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
18094 * config/rs6000/rs6000.md (type): Remove "brinc".
18096 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18098 * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
18099 (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
18100 * config/rs6000/linuxspe.h: Delete file.
18101 * config/rs6000/rs6000.md: Don't include spe.md.
18102 * config/rs6000/spe.h: Delete file.
18103 * config/rs6000/spe.md: Delete file.
18104 * config/rs6000/t-rs6000: Remove spe.md.
18106 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18108 * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
18109 (reg_or_none500mem_operand): Delete.
18110 * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
18111 instead of reg_or_none500mem_operand.
18113 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18115 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
18116 handling of SPE flags.
18117 * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
18119 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18121 * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
18123 * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
18124 (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
18125 paired_divv2sf3): Similar.
18126 * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
18127 SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
18128 * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
18130 Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
18131 Rename the paired_* instruction patterns.
18132 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
18134 * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
18135 * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
18136 (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
18137 spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and
18138 TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with
18139 PAIRED_VECTOR_MODE.
18140 (struct machine_function): Delete field spe_insn_chain_scanned_p.
18141 (spe_func_has_64bit_regs_p): Delete.
18142 (spe_expand_predicate_builtin): Delete.
18143 (spe_expand_evsel_builtin): Delete.
18144 (TARGET_DWARF_REGISTER_SPAN): Do not define.
18145 (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
18146 (invalid_e500_subreg): Delete.
18147 (rs6000_legitimize_address): Always force_reg op2 as well, for
18148 paired single memory accesses.
18149 (rs6000_member_type_forces_blk): Delete.
18150 (rs6000_spe_function_arg): Delete.
18151 (rs6000_expand_unop_builtin): Delete SPE handling.
18152 (rs6000_expand_binop_builtin): Ditto.
18153 (spe_expand_stv_builtin): Delete.
18154 (bdesc_2arg_spe): Delete.
18155 (spe_expand_builtin): Delete.
18156 (spe_expand_predicate_builtin): Delete.
18157 (spe_expand_evsel_builtin): Delete.
18158 (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
18159 (spe_init_builtins): Delete.
18160 (spe_func_has_64bit_regs_p): Delete.
18161 (savres_routine_name): Delete "info" parameter. Adjust callers.
18162 (rs6000_emit_stack_reset): Ditto.
18163 (rs6000_dwarf_register_span): Delete.
18164 * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
18165 UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
18166 SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
18168 * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
18170 * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
18171 * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
18172 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
18173 mulv2sf3, divv2sf3): Delete expanders.
18175 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18177 config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
18179 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18181 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
18182 * config/rs6000/rs6000.c: Ditto.
18184 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18186 * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
18187 * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
18188 comparison_operator.
18190 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18192 * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
18193 * config/rs6000/rs6000.opt: Ditto.
18194 * config/rs6000/t-rtems: Ditto.
18196 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18198 * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
18199 TARGET_E500_SINGLE by 0, simplify.
18200 * config/rs6000/rs6000.c: Ditto.
18201 (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
18202 (spe_build_register_parallel): Delete.
18203 * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
18204 TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
18205 * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
18206 TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
18207 (E500_CONVERT): Delete.
18208 * config/rs6000/spe.md: Remove many patterns and all define_constants.
18210 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18212 * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
18213 * config/rs6000/dfp.md: Ditto.
18214 (negdd2, *negdd2_fpr): Merge.
18215 (absdd2, *absdd2_fpr): Merge.
18216 (negtd2, *negtd2_fpr): Merge.
18217 (abstd2, *abstd2_fpr): Merge.
18218 * config/rs6000/e500.h: Delete file.
18219 * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
18220 TARGET_FPRS by 1 and simplify.
18221 * config/rs6000/rs6000-c.c: Ditto.
18222 * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and
18223 TARGET_DF_SPE by 0.
18224 * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and
18226 * config/rs6000/rs6000.md: Ditto.
18227 (floatdidf2, *floatdidf2_fpr): Merge.
18228 (move_from_CR_gt_bit): Delete.
18229 * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
18230 (E500_CR_IOR_COMPARE): Delete.
18231 (All patterns that require !TARGET_FPRS): Delete.
18232 * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
18234 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18236 * passes.def (pass_iv_canon): Move before pass_loop_distribution.
18238 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18240 * graphds.c (add_edge): Intitialize edge's attached data.
18241 (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
18242 pointer parameter. Call pointed function on each edge during
18243 graph traversing. Skip traversing the edge when the function
18245 (graphds_dfs, graphds_scc): Ditto.
18246 (for_each_edge): New parameter. Pass the new parameter to callback
18248 * graphds.h (skip_edge_callback): New function pointer type.
18249 (graphds_dfs, graphds_scc): New function pointer parameter.
18250 (graphds_edge_callback, for_each_edge): New parameter.
18252 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18254 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
18255 out code checking if runtime alias check is possible to below ...
18256 Call the new function.
18257 * tree-data-ref.c (runtime_alias_check_p): ... to new function.
18258 * tree-data-ref.h (runtime_alias_check_p): New decalaration.
18260 2017-06-07 Marek Polacek <polacek@redhat.com>
18263 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
18264 TYPE_OVERFLOW_WRAPS check.
18266 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18268 * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
18269 if versioning is required.
18270 * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
18271 peeling with the check for versioning.
18273 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18275 * tree-vectorizer.h (vect_build_loop_niters): New parameter.
18276 * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
18277 Set true to new parameter if new ssa variable is defined.
18278 (vect_gen_vector_loop_niters): Refactor. Set range information
18279 for the new vector loop bound variable.
18280 (vect_do_peeling): Ditto.
18282 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18284 * tree-affine.c (ssa.h): Include header file.
18285 (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
18286 has wrapping overflow behavior.
18288 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18290 * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
18292 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18294 (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
18295 (tree_to_aff_combination): ... here.
18297 2017-06-07 Bin Cheng <bin.cheng@arm.com>
18299 * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
18300 reg_pressure model function.
18301 (ivopts_global_cost_for_size): Delete.
18302 (determine_set_costs, iv_ca_recount_cost): Call new model function
18303 ivopts_estimate_reg_pressure.
18305 2017-06-07 Tamar Christina <tamar.christina@arm.com>
18307 * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
18308 expensive than udiv. Remove floating point cases from mod.
18310 2017-06-07 Tamar Christina <tamar.christina@arm.com>
18312 * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
18313 Increase idiv cost.
18315 2017-06-07 Tamar Christina <tamar.christina@arm.com>
18317 * config/aarch64/aarch64.md
18318 (copysignsf3): Fix mask generation.
18320 2017-06-07 Jakub Jelinek <jakub@redhat.com>
18322 * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
18324 (class dump_manager): Add register_dumps method.
18325 * dumpfile.c: Include langhooks.h.
18326 (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
18327 (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
18328 (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
18329 (dump_manager::dump_register): Start with 512 entries instead of 32.
18330 (dump_manager::register_dumps): New method.
18331 * toplev.c (general_init): Instead of invoking register_dumps
18332 langhook, invoke register_dumps method on the dump manager.
18333 * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
18336 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org>
18338 * doc/md.texi: Clarify the restrictions on a define_insn condition.
18339 Say that # requires an associated define_split to exist, and that
18340 the define_split must be suitable for use after register allocation.
18342 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
18344 * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
18345 (compute_outgoing_frequencies): Also initialize zero counts.
18346 (find_many_sub_basic_blocks): Do not produce uninitialized profile
18347 around loops; preserve more of profile when nothing changes.
18349 2017-06-06 Jim Wilson <jim.wilson@linaro.org>
18351 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
18353 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
18354 * config/arm/arm-cpu-cdata.h: Regenerate.
18355 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
18356 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
18357 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
18358 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
18359 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
18361 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
18363 * config/arm/t-rmprofile: Likewise.
18364 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
18366 2017-06-06 David S. Miller <davem@davemloft.net>
18369 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
18370 blockage if function uses alloca.
18372 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18374 * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
18375 New "uid" fields to hold pretty-print IDs of group and ref.
18376 Memory references are now identified as <group_id>:<ref_id>
18377 instead of using [random] addresses.
18378 (dump_mem_details): Simplify, no functional change.
18379 (dump_mem_ref): Simplify and make output more concise.
18380 Replace couple of fprintf's throughout code with calls to dump_mem_ref.
18381 (find_or_create_group): Initialize group uid.
18382 (record_ref): Initialize ref uid. Improve debug output.
18383 (prune_group_by_reuse, should_issue_prefetch_p,)
18384 (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
18385 (mark_nontemporal_store, determine_loop_nest_reuse):
18386 Improve debug output.
18388 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18390 * dbgcnt.def (prefetch): New debug counter.
18391 * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
18392 (schedule_prefetches): Stop issueing prefetches if debug counter
18395 2017-06-06 Tom de Vries <tom@codesourcery.com>
18397 * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
18398 gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
18400 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18402 * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
18403 Use aarch64_reg_or_zero predicate for operand 4.
18404 (aarch64_compare_and_swap<mode> define_insn_and_split):
18405 Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint.
18406 (aarch64_store_exclusive<mode>): Likewise for operand 2.
18408 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
18410 * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
18411 (arm_compute_save_core_reg_mask): This.
18412 (thumb1_compute_save_reg_mask): Rename into ...
18413 (thumb1_compute_save_core_reg_mask): This.
18414 (arm_compute_save_reg0_reg12_mask): Adapt comment.
18415 (arm_compute_frame_layout): Likewise.
18417 2017-06-06 Richard Biener <rguenther@suse.de>
18419 PR tree-optimization/80974
18420 * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
18421 keep or clear leaders SSA info.
18423 2017-06-06 Tom de Vries <tom@codesourcery.com>
18425 * config/nvptx/nvptx.c (split_mode_p): New function.
18426 (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
18428 2017-06-06 Tom de Vries <tom@codesourcery.com>
18430 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
18432 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
18435 * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
18438 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
18440 * shrink-wrap.c (handle_simple_exit): Update profile.
18441 (try_shrink_wrapping): Upate profile.
18443 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
18445 * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
18446 (tree_guess_outgoing_edge_probabilities): New.
18447 * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
18448 * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
18450 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
18452 * ipa-split.c (split_function): Initialize return bb profile.
18454 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
18456 * profile.c (compute_branch_probabilities): Also initialize
18457 EXIT_BLOCK profile.
18459 2017-06-06 Richard Biener <rguenther@suse.de>
18461 PR tree-optimization/80928
18462 * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
18463 (vect_analyze_loop_operations): Properly guard analysis for
18465 (vect_transform_loop): Likewise.
18466 (vect_analyze_loop_2): Also reset SLP type on PHIs.
18467 (vect_model_induction_cost): Do not cost for pure SLP.
18468 (vectorizable_induction): Pass in SLP node, implement SLP vectorization
18469 of induction in inner loop vectorization.
18470 * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
18471 (vect_get_and_check_slp_defs): Handle vect_induction_def.
18472 (vect_build_slp_tree): Likewise. Handle PHIs as terminating the
18474 (vect_analyze_slp_cost_1): Cost induction.
18475 (vect_detect_hybrid_slp_stmts): Handle PHIs.
18476 (vect_get_slp_vect_defs): Likewise.
18477 * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
18478 (vect_transform_stmt): Handle SLP reductions.
18479 * tree-vectorizer.h (vectorizable_induction): Adjust.
18481 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
18483 * config/rs6000/rs6000.c (make_resolver_func): Update
18484 init_lowered_empty_function call.
18486 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
18488 * doc/invoke.texi: Document the -fprofile-abs-path option.
18489 * common.opt (fprofile-abs-path): New option.
18490 * gcov-io.h (gcov_write_filename): Declare.
18491 * gcov-io.c (gcov_write_filename): New function.
18492 * coverage.c (coverage_begin_function): Use gcov_write_filename.
18493 * profile.c (output_location): Likewise.
18495 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
18497 * shring-wrap.c: Revert accidental commit.
18499 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
18501 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
18503 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
18505 * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
18507 * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
18508 profile in callgraph edge.
18509 * profile-count.h (apply_probability): If THIS is 0, then result is 0
18510 (apply_scale): Likewise.
18511 * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
18512 Also scale profile when inlining function with zero profile.
18513 (initialize_cfun): Update exit block profile even when it is zero.
18514 * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
18515 when profile is read.
18517 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
18519 * config/rs6000/rs6000.c (toplevel): Include attribs.h.
18520 (CLONE_*): New constants to define the processors we can generate
18521 code for with the target_clone attribute.
18522 (rs6000_clone_map): New array to identify which clone processors
18523 the current program is running on.
18524 (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
18525 target_clone attribute.
18526 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
18527 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
18528 (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
18529 (cpu_expand_builtin): Add support for target_clone attribute.
18530 (rs6000_valid_attribute_p): Allow "default" attribute.
18531 (get_decl_name): New debug function to simplify printing the
18532 current function name in debugging statements.
18533 (rs6000_clone_priority): New functions to support the target_clone
18534 attribute, and be able to generate code to switch between ISA 2.05
18535 through ISA 3.0 (power6 through power9).
18536 (rs6000_compare_version_priority): Likewise.
18537 (rs6000_get_function_versions_dispatcher): Likewise.
18538 (make_resolver_func): Likewise.
18539 (add_condition_to_bb): Likewise.
18540 (dispatch_function_versions): Likewise.
18541 (rs6000_generate_version_dispatcher_body): Likewise.
18542 (rs6000_can_inline_p): Call get_decl_name for debugging usage.
18543 (fusion_gpr_load_p): Fix a spacing issue.
18544 * doc/extend.texi (Common Function Attributes): Document that the
18545 PowerPC supports the target_clone attribute.
18547 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
18549 * config/arm/arm.h: explain F symbol found in description of ARM
18550 register allocation in its legend.
18552 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
18554 * config/mips/frame-header-opt.c: Include profile-count.h.
18555 * config/riscv/riscv.c: Include profile-count.h
18557 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
18559 * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
18561 (sm_set_flag_if_changed): Add bbs field.
18562 (execute_sm_if_changed_flag_set): Pass BBS.
18563 (execute_sm): Update.
18565 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18567 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
18570 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18572 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
18573 (peephole2): New peephole2 to emit the above.
18574 * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
18576 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18578 * config/aarch64/aarch64.c (define_peephole2 above
18579 *sub_<shift>_<mode>): New peephole.
18581 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
18583 * config/i386/i386.c (make_resolver_func): Update.
18584 * Makefile.in: Add profile-count.h and profile-count.o
18585 * auto-profile.c (afdo_indirect_call): Update to new API.
18586 (afdo_set_bb_count): Update.
18587 (afdo_propagate_edge): Update.
18588 (afdo_propagate_circuit): Update.
18589 (afdo_calculate_branch_prob): Update.
18590 (afdo_annotate_cfg): Update.
18591 * basic-block.h: Include profile-count.h
18592 (struct edge_def): Turn count to profile_count.
18593 (struct basic_block_def): Likewie.
18594 (REG_BR_PROB_BASE): Move to profile-count.h
18595 (RDIV): Move to profile-count.h
18596 * bb-reorder.c (max_entry_count): Turn to profile_count.
18597 (find_traces): Update.
18598 (rotate_loop):Update.
18599 (connect_traces):Update.
18600 (sanitize_hot_paths):Update.
18601 * bt-load.c (migrate_btr_defs): Update.
18602 * cfg.c (RDIV): Remove.
18603 (init_flow): Use alloc_block.
18604 (alloc_block): Uninitialize count.
18605 (unchecked_make_edge): Uninitialize count.
18606 (check_bb_profile): Update.
18607 (dump_edge_info): Update.
18608 (dump_bb_info): Update.
18609 (update_bb_profile_for_threading): Update.
18610 (scale_bbs_frequencies_int): Update.
18611 (scale_bbs_frequencies_gcov_type): Update.
18612 (scale_bbs_frequencies_profile_count): New.
18613 * cfg.h (update_bb_profile_for_threading): Update.
18614 (scale_bbs_frequencies_profile_count): Declare.
18615 * cfgbuild.c (compute_outgoing_frequencies): Update.
18616 (find_many_sub_basic_blocks): Update.
18617 * cfgcleanup.c (try_forward_edges): Update.
18618 (try_crossjump_to_edge): Update.
18619 * cfgexpand.c (expand_gimple_tailcall): Update.
18620 (construct_exit_block): Update.
18621 * cfghooks.c (verify_flow_info): Update.
18622 (dump_bb_for_graph): Update.
18623 (split_edge): Update.
18624 (make_forwarder_block): Update.
18625 (duplicate_block): Update.
18626 (account_profile_record): Update.
18627 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
18628 (get_estimated_loop_iterations): Update.
18629 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
18630 (single_likely_exit): Update.
18631 * cfgloopmanip.c (scale_loop_profile): Update.
18633 (set_zero_probability): Update.
18634 (lv_adjust_loop_entry_edge): Update.
18635 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
18636 (purge_dead_edges): Update.
18637 (rtl_account_profile_record): Update.
18638 * cgraph.c (cgraph_node::create): Uninitialize count.
18639 (symbol_table::create_edge): Uninitialize count.
18640 (cgraph_update_edges_for_call_stmt_node): Update.
18641 (cgraph_edge::dump_edge_flags): Update.
18642 (cgraph_node::dump): Update.
18643 (cgraph_edge::maybe_hot_p): Update.
18644 * cgraph.h: Include profile-count.h
18645 (create_clone), create_edge, create_indirect_edge): Update.
18646 (cgraph_node): Turn count to profile_count.
18647 (cgraph_edge0: Likewise.
18648 (make_speculative, clone): Update.
18649 (create_edge): Update.
18650 (init_lowered_empty_function): Update.
18651 * cgraphclones.c (cgraph_edge::clone): Update.
18652 (duplicate_thunk_for_node): Update.
18653 (cgraph_node::create_clone): Update.
18654 * cgraphunit.c (cgraph_node::analyze): Update.
18655 (cgraph_node::expand_thunk): Update.
18656 * final.c (dump_basic_block_info): Update.
18657 * gimple-streamer-in.c (input_bb): Update.
18658 * gimple-streamer-out.c (output_bb): Update.
18659 * graphite.c (print_global_statistics): Update.
18660 (print_graphite_scop_statistics): Update.
18661 * hsa-brig.c: Include basic-block.h.
18662 * hsa-dump.c: Include basic-block.h.
18663 * hsa-gen.c (T sum_slice): Update.
18664 (convert_switch_statements):Update.
18665 * hsa-regalloc.c: Include basic-block.h.
18666 * ipa-chkp.c (chkp_produce_thunks): Update.
18667 * ipa-cp.c (struct caller_statistics): Update.
18668 (init_caller_stats): Update.
18669 (gather_caller_stats): Update.
18670 (ipcp_cloning_candidate_p): Update.
18671 (good_cloning_opportunity_p): Update.
18672 (get_info_about_necessary_edges): Update.
18673 (dump_profile_updates): Update.
18674 (update_profiling_info): Update.
18675 (update_specialized_profile): Update.
18676 (perhaps_add_new_callers): Update.
18677 (decide_about_value): Update.
18678 (ipa_cp_c_finalize): Update.
18679 * ipa-devirt.c (struct odr_type_warn_count): Update.
18680 (struct decl_warn_count): Update.
18681 (struct final_warning_record): Update.
18682 (possible_polymorphic_call_targets): Update.
18683 (ipa_devirt): Update.
18684 * ipa-fnsummary.c (redirect_to_unreachable): Update.
18685 * ipa-icf.c (sem_function::merge): Update.
18686 * ipa-inline-analysis.c (do_estimate_edge_time): Update.
18687 * ipa-inline.c (compute_uninlined_call_time): Update.
18688 (compute_inlined_call_time): Update.
18689 (want_inline_small_function_p): Update.
18690 (want_inline_self_recursive_call_p): Update.
18691 (edge_badness): Update.
18692 (lookup_recursive_calls): Update.
18693 (recursive_inlining): Update.
18694 (inline_small_functions): Update.
18695 (dump_overall_stats): Update.
18696 (dump_inline_stats): Update.
18697 * ipa-profile.c (ipa_profile_generate_summary): Update.
18698 (ipa_propagate_frequency): Update.
18699 (ipa_profile): Update.
18700 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
18701 * ipa-utils.c (ipa_merge_profiles): Update.
18702 * loop-doloop.c (doloop_modify): Update.
18703 * loop-unroll.c (report_unroll): Update.
18704 (unroll_loop_runtime_iterations): Update.
18705 * lto-cgraph.c (lto_output_edge): Update.
18706 (lto_output_node): Update.
18707 (input_node): Update.
18708 (input_edge): Update.
18709 (merge_profile_summaries): Update.
18710 * lto-streamer-in.c (input_cfg): Update.
18711 * lto-streamer-out.c (output_cfg): Update.
18712 * mcf.c (create_fixup_graph): Update.
18713 (adjust_cfg_counts): Update.
18714 (sum_edge_counts): Update.
18715 * modulo-sched.c (sms_schedule): Update.
18716 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
18717 * predict.c (maybe_hot_count_p): Update.
18718 (probably_never_executed): Update.
18719 (dump_prediction): Update.
18720 (combine_predictions_for_bb): Update.
18721 (propagate_freq): Update.
18722 (handle_missing_profiles): Update.
18723 (counts_to_freqs): Update.
18724 (rebuild_frequencies): Update.
18725 (force_edge_cold): Update.
18726 * predict.h: Include profile-count.h
18727 (maybe_hot_count_p, counts_to_freqs): UPdate.
18728 * print-rtl-function.c: Do not include cfg.h
18729 * print-rtl.c: Include basic-block.h
18730 * profile-count.c: New file.
18731 * profile-count.h: New file.
18732 * profile.c (is_edge_inconsistent): Update.
18733 (correct_negative_edge_counts): Update.
18734 (is_inconsistent): Update.
18735 (set_bb_counts): Update.
18736 (read_profile_edge_counts): Update.
18737 (compute_frequency_overlap): Update.
18738 (compute_branch_probabilities): Update; Initialize and deinitialize
18740 (branch_prob): Update.
18741 * profile.h (bb_gcov_counts, edge_gcov_counts): New.
18742 (edge_gcov_count): New.
18743 (bb_gcov_count): New.
18744 * shrink-wrap.c (try_shrink_wrapping): Update.
18745 * tracer.c (better_p): Update.
18746 * trans-mem.c (expand_transaction): Update.
18747 (ipa_tm_insert_irr_call): Update.
18748 (ipa_tm_insert_gettmclone_call): Update.
18749 * tree-call-cdce.c: Update.
18750 * tree-cfg.c (gimple_duplicate_sese_region): Update.
18751 (gimple_duplicate_sese_tail): Update.
18752 (gimple_account_profile_record): Update.
18753 (execute_fixup_cfg): Update.
18754 * tree-inline.c (copy_bb): Update.
18755 (copy_edges_for_bb): Update.
18756 (initialize_cfun): Update.
18757 (freqs_to_counts): Update.
18758 (copy_cfg_body): Update.
18759 (expand_call_inline): Update.
18760 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
18761 * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
18762 (try_unroll_loop_completely): Update.
18763 (try_peel_loop): Update.
18764 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
18765 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
18766 * tree-ssa-loop-split.c (connect_loops): Update.
18767 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
18768 * tree-ssa-reassoc.c (branch_fixup): Update.
18769 * tree-ssa-tail-merge.c (replace_block_by): Update.
18770 * tree-ssa-threadupdate.c (create_block_for_threading): Update.
18771 (compute_path_counts): Update.
18772 (update_profile): Update.
18773 (recompute_probabilities): Update.
18774 (update_joiner_offpath_counts): Update.
18775 (estimated_freqs_path): Update.
18776 (freqs_to_counts_path): Update.
18777 (clear_counts_path): Update.
18778 (ssa_fix_duplicate_block_edges): Update.
18779 (duplicate_thread_path): Update.
18780 * tree-switch-conversion.c (case_bit_test_cmp): Update.
18781 (struct switch_conv_info): Update.
18782 * tree-tailcall.c (decrease_profile): Update.
18783 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
18784 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
18785 * value-prof.c (check_counter): Update.
18786 (gimple_divmod_fixed_value): Update.
18787 (gimple_mod_pow2): Update.
18788 (gimple_mod_subtract): Update.
18789 (gimple_ic_transform): Update.
18790 (gimple_stringop_fixed_value): Update.
18791 * value-prof.h (gimple_ic): Update.
18793 2017-06-02 Carl Love <cel@us.ibm.com>
18795 * config/rs6000/rs6000-c: Add support for built-in functions
18796 vector double vec_doublee (vector signed int);
18797 vector double vec_doublee (vector unsigned int);
18798 vector double vec_doublee (vector float);
18799 vector double vec_doubleh (vector signed int);
18800 vector double vec_doubleh (vector unsigned int);
18801 vector double vec_doubleh (vector float);
18802 vector double vec_doublel (vector signed int);
18803 vector double vec_doublel (vector unsigned int);
18804 vector double vec_doublel (vector float);
18805 vector double vec_doubleo (vector signed int);
18806 vector double vec_doubleo (vector unsigned int);
18807 vector double vec_doubleo (vector float);.
18808 * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
18809 DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
18811 * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
18812 unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
18813 unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
18815 * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
18816 vec_doublel, vec_doubleh.
18817 * doc/extend.texi: Update the built-in documentation file for the
18818 new built-in functions.
18820 2017-06-02 David Malcolm <dmalcolm@redhat.com>
18823 * ipa-inline-analysis.c (free_growth_caches): Set
18824 edge_removal_hook_holder to NULL after removing it.
18826 2017-06-02 Sudakshina Das <sudi.das@arm.com>
18828 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
18829 comparision with zero.
18831 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
18832 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
18833 for early expansion of vec_min and vec_max builtins.
18834 (builtin_function_type): Add min/max unsigned variants to those
18835 identified as having unsigned arguments.
18837 2017-06-02 Olivier Hainque <hainque@adacore.com>
18839 * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
18841 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18843 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
18844 Use VALL_F16 iterator rather than VALL.
18846 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18848 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
18849 Emit CBNZ inside loop when doing a strong exchange and comparing
18850 against zero. Generate the CC flags after the loop.
18852 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
18854 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
18855 (dl_section_ref): New.
18856 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
18857 On AIX, append an expression to subtract the size of the
18858 section length to dl_section_ref.
18860 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
18862 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
18863 for early expansion of vector absolute builtins.
18865 2017-06-02 Richard Biener <rguenther@suse.de>
18867 * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
18868 what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
18870 2017-06-02 Richard Biener <rguenther@suse.de>
18872 PR tree-optimization/80948
18873 * tree-tailcall.c (find_tail_calls): Track stmts to move in
18874 stmt order as well.
18876 2017-06-02 Richard Biener <rguenther@suse.de>
18878 * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
18880 * tree-vect-stmts.c (process_use): Do not mark backedge defs
18881 for inductions as relevant.
18883 2017-06-02 Richard Biener <rguenther@suse.de>
18885 * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
18886 (vectorizable_induction): ... this. Remove dead code.
18888 2017-06-02 Eric Botcazou <ebotcazou@adacore.com>
18890 * builtins. (expand_builtin_alloca): Remove second parameter and
18891 infer its value from the first parameter instead.
18892 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
18894 2017-06-02 Jakub Jelinek <jakub@redhat.com>
18896 PR rtl-optimization/80903
18897 * loop-doloop.c (add_test): Unshare sequence.
18899 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
18901 * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
18903 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
18905 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
18907 (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
18908 xlogue_layout::get_instance, logue_layout::xlogue_layout,
18909 sp_valid_at, fp_valid_at, choose_basereg): Formatting.
18910 (xlogue_layout::get_stub_rtx): Make static.
18911 (xlogue_layout::get_stub_name): Avoid const-cast, make static.
18912 (xlogue_layout::compute_stub_managed_regs): Rename to...
18913 (xlogue_layout::count_stub_managed_regs): ...this.
18914 (xlogue_layout::is_stub_managed_reg): New function.
18915 (xlogue_layout::m_stub_names): Rename to...
18916 (xlogue_layout::s_stub_names): ...this, make static.
18917 (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
18918 xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
18919 xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
18920 xlogue_layout::s_stub_names): Instantiate statics.
18921 (stub_managed_regs): Remove.
18922 (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
18923 (disable_call_ms2sysv_xlogues): Rename to...
18924 (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
18925 (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
18927 (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
18928 change after reload_completed.
18929 (ix86_can_use_return_insn_p): Use the ix86_frame data structure
18931 (ix86_expand_prologue): Likewise.
18932 (ix86_expand_epilogue): Likewise.
18933 (ix86_expand_split_stack_prologue): Likewise.
18934 (ix86_compute_frame_layout): Remove frame parameter ...
18935 (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
18936 (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
18938 (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
18939 (ix86_frame): Move from here ...
18940 * config/i386/i386.h (ix86_frame): ... to here.
18941 (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
18942 complete ix86_frame data structure instead. Remove some_ld_name.
18944 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
18946 * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
18947 symbols that hold a DECL_VALUE_EXPR.
18949 2017-06-01 Martin Jambor <mjambor@suse.cz>
18951 PR tree-optimization/80898
18952 * tree-sra.c (process_subtree_disqualification): Removed.
18953 (disqualify_candidate): Do not acll
18954 process_subtree_disqualification.
18955 (subtree_mark_written_and_enqueue): New function.
18956 (propagate_all_subaccesses): Set grp_write of LHS subtree if the
18957 RHS has been disqualified and re-queue LHS if necessary. Apart
18958 from that, ignore disqualified RHS.
18960 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18962 * config/s390/s390.c (s390_emit_epilogue): Disable early return
18963 address fetch for z10 or later.
18965 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
18967 * config/arc/arc.md (tst_movb): Add guard when splitting.
18969 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
18971 * config/arc/arc.c (arc_can_eliminate): Test against
18972 arc_frame_pointer_needed.
18974 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
18976 * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
18977 to prevent store reordering.
18978 * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
18979 (type): Add block type.
18980 (stack_tie): Define special instruction to be used in
18983 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
18985 * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
18986 constraint. It is not valid for the pattern.
18987 (noncommutative_binary_comparison): Likewise.
18989 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
18991 * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
18994 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
18996 * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
18997 be used by the reg-alloc.
18999 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19001 * config/arc/arc.md (mulsi3): Avoid use of hard registers before
19002 reg-alloc when having mul64 or mul32x16 instructions.
19003 (mulsidi3): Likewise.
19004 (umulsidi3): Likewise.
19005 (mulsi32x16): New pattern.
19006 (mulsi64): Likewise.
19007 (mulsidi64): Likewise.
19008 (umulsidi64): Likewise.
19009 (MUL32x16_REG): Define.
19010 (mul64_600): Use MUL32x16_REG.
19011 (mac64_600): Likewise.
19012 (umul64_600): Likewise.
19013 (umac64_600): Likewise.
19015 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19017 * config/arc/arc.md (mulsi3_700): Make it commutative.
19019 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com>
19021 * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
19023 (*sign_extendsidi2_insn): Likewise for movstosw.
19025 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
19027 * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
19028 the type of the input discriminant value. Convert the
19029 discriminant value of signedness vary.
19031 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de>
19033 * doc/invoke.texi (-Wcatch-value): Document new shortcut.
19034 Add to -Wall section.
19036 2017-06-01 Richard Biener <rguenther@suse.de>
19038 PR middle-end/66313
19039 * fold-const.c (fold_plusminus_mult_expr): If the factored
19040 factor may be zero use a wrapping type for the inner operation.
19041 * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
19042 and handle moved defs.
19043 (process_assignment): Properly guard the unary op case. Return a
19044 tri-state indicating that moving the stmt before the call may allow
19045 to continue. Pass through to_move.
19046 (find_tail_calls): Handle moving unrelated defs before
19049 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
19052 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
19053 splitter result in the canonical way.
19055 2017-05-31 Uros Bizjak <ubizjak@gmail.com>
19057 * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
19058 also for 32bit target. Update insn attributes.
19059 (zero-extendsidi2 splitter): Allow all registers for operand 1.
19061 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com>
19063 * config/i386/avx512fintrin.h (_mm_mask_max_sd)
19064 (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
19065 (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
19066 (_mm_maskz_min_ss): New intrinsics.
19068 2017-05-31 Martin Liska <mliska@suse.cz>
19070 * tree-vect-loop.c (vect_create_epilog_for_reduction):
19071 Change comment style to one we normally use.
19072 (vectorizable_reduction): Likewise.
19073 (vectorizable_induction): Likewise.
19074 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
19075 (vectorizable_call): Likewise.
19076 (vectorizable_simd_clone_call): Likewise.
19077 (vectorizable_conversion): Likewise.
19078 (vectorizable_assignment): Likewise.
19079 (vectorizable_shift): Likewise.
19080 (vectorizable_operation): Likewise.
19081 (vectorizable_store): Likewise.
19082 (vectorizable_load): Likewise.
19083 * tree-vectorizer.h: Likewise.
19085 2017-05-31 Alexander Monakov <amonakov@ispras.ru>
19087 * passes.c (emergency_dump_function): New.
19088 * tree-pass.h (emergency_dump_function): Declare.
19089 * plugin.c (plugins_internal_error_function): Remove.
19090 * plugin.h (plugins_internal_error_function): Remove declaration.
19091 * toplev.c (internal_error_function): New static function. Use it...
19092 (general_init): ...here.
19094 2017-05-31 Graham Markall <graham.markall@embecosm.com>
19096 * config/arc/arc.c (arc_print_operand): Handle constant operands.
19097 (arc_rtx_costs): Add costs for new patterns.
19098 * config/arc/arc.md: Additional *add_n and *sub_n patterns.
19099 * config/arc/predicates.md: Add _1_2_3_operand predicate.
19101 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
19103 * tree-ssa-strlen.c (get_next_strinfo): New function.
19104 (get_stridx_plus_constant): Use it.
19105 (zero_length_string): Likewise.
19106 (adjust_related_strinfos): Likewise.
19107 (adjust_last_stmt): Likewise.
19109 2017-05-31 Richard Biener <rguenther@suse.de>
19112 * config/i386/i386.c (ix86_expand_builtin): Remove assert
19113 for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
19115 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
19117 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
19118 loop_vinfo argument and use of dependence distance vectors.
19119 Check instead whether the two references differ only in their
19120 initial value and assume that they have the same alignment if the
19121 difference is a multiple of the vector alignment.
19122 (vect_analyze_data_refs_alignment): Update call accordingly.
19124 2017-05-31 Martin Liska <mliska@suse.cz>
19127 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
19129 2017-05-31 Bin Cheng <bin.cheng@arm.com>
19131 * tree-vect-loop-manip.c (create_intersect_range_checks_index)
19132 (create_intersect_range_checks): Move from ...
19133 * tree-data-ref.c (create_intersect_range_checks_index)
19134 (create_intersect_range_checks): ... to here.
19135 (create_runtime_alias_checks): New function factored from ...
19136 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
19137 here. Call above function.
19138 * tree-data-ref.h (create_runtime_alias_checks): New function.
19140 2017-05-31 Bin Cheng <bin.cheng@arm.com>
19142 * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
19143 segment length for dr_b and compute it in wide_int.
19145 2017-05-31 Richard Biener <rguenther@suse.de>
19147 PR tree-optimization/80906
19148 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
19149 and pass through iv_map.
19150 (copy_bb_and_scalar_dependences): Adjust.
19151 (translate_pending_phi_nodes): Likewise.
19152 (copy_loop_close_phi_args): Handle code-generating IVs instead
19155 2017-05-30 David Malcolm <dmalcolm@redhat.com>
19157 * diagnostic-color.c (color_dict): Add "type-diff".
19158 (parse_gcc_colors): Update comment.
19159 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
19160 -fdiagnostics-show-template-tree and -fno-elide-type.
19161 (GCC_COLORS): Add type-diff to example.
19163 (-fdiagnostics-show-template-tree): New.
19164 (-fno-elide-type): New.
19165 * pretty-print.c (pp_format): Pass quote and formatters[argno] to
19166 the pp_format_decoder callback. Call any m_format_postprocessor's
19168 (pretty_printer::pretty_printer): Initialize
19169 m_format_postprocessor.
19170 (pretty_printer::~pretty_printer): Delete any
19171 m_format_postprocessor.
19172 * pretty-print.h (printer_fn): Add bool and const char ** parameters.
19173 (class format_postprocessor): New class.
19174 (struct pretty_printer::format_decoder): Document the new parameters.
19175 (struct pretty_printer::m_format_postprocessor): New field.
19176 * tree-diagnostic.c (default_tree_printer): Update for new
19177 bool and const char ** params.
19178 * tree-diagnostic.h (default_tree_printer): Likewise.
19180 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org>
19182 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
19183 (lwa_operand): Delete rs6000_gen_cell_microcode test.
19184 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
19185 rs6000_gen_cell_microcode code.
19186 (rs6000_final_prescan_insn): Delete.
19187 (rs6000_opt_vars): Delete the "gen-cell-microcode" and
19188 "warn-cell-microcode" entries.
19189 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
19190 * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
19191 throughout. Change cc_reg_not_micro_cr0_operand to
19192 cc_reg_not_cr0_operand throughout.
19193 (*extendhi<mode>2_noload): Delete.
19194 * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
19195 (mwarn-cell-microcode): Delete.
19196 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
19197 -mgen-cell-microcode and -mwarn-cell-microcode.
19199 2017-05-30 Uros Bizjak <ubizjak@gmail.com>
19202 * config/i386/constraints.md (Yd): New constraint.
19204 * config/i386/i386.md (*movti_internal): Add (?r, Ye)
19205 and (?Yd, r) alternatives. Update insn attributes.
19206 * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
19207 and (?*Yd, r) alternatives. Update insn attributes.
19208 (double-mode inter-unit splitters): Add new GR<->XMM splitters.
19210 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com>
19212 * gimplify.c (gimplify_modify_expr): Don't create a
19213 DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
19216 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com>
19218 * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
19220 2017-05-30 Richard Biener <rguenther@suse.de>
19222 * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
19223 and reduc_def fields.
19224 (STMT_VINFO_REDUC_TYPE): New define.
19225 (STMT_VINFO_REDUC_DEF): Likewise.
19226 (vect_force_simple_reduction): Adjust prototype.
19227 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
19228 (vect_is_simple_reduction): Remove check_reduction argument.
19229 (vect_force_simple_reduction): Adjust and set
19230 STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
19231 (vectorizable_reduction): Do not re-do reduction analysis
19232 but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
19233 * tree-parloops.c (gather_scalar_reductions): Adjust.
19235 2017-05-30 Richard Biener <rguenther@suse.de>
19237 PR middle-end/80901
19238 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
19241 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com>
19243 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
19244 Introduce unknown_misalignment parameter and remove vf.
19245 (vect_peeling_hash_get_lowest_cost):
19246 Pass unknown_misalignment parameter.
19247 (vect_enhance_data_refs_alignment):
19248 Fix unsupportable data ref treatment.
19250 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
19252 * tree-vect-data-refs.c (vect_get_data_access_cost):
19253 Workaround for SLP handling.
19254 (vect_enhance_data_refs_alignment):
19255 Compute costs for doing no peeling at all, compare to the best
19256 peeling costs so far and avoid peeling if cheaper.
19258 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
19260 * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
19261 Return peeling info and set costs to zero for unlimited cost
19263 (vect_enhance_data_refs_alignment): Also inspect all datarefs
19264 with unknown misalignment. Compute and costs for unknown
19265 misalignment, compare them to the costs for known misalignment
19266 and choose the cheapest for peeling.
19268 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
19270 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
19271 (vect_get_peeling_costs_all_drs): Create function.
19272 (vect_peeling_hash_get_lowest_cost):
19273 Use vect_get_peeling_costs_all_drs.
19274 (vect_peeling_supportable): Create function.
19275 (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
19277 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
19279 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
19280 DR_HAS_NEGATIVE_STEP.
19281 (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
19282 (vect_enhance_data_refs_alignment): Use.
19283 (vect_duplicate_ssa_name_ptr_info): Use.
19284 * tree-vectorizer.h (dr_misalignment): Use.
19285 (known_alignment_for_access_p): Use.
19287 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
19290 * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
19292 (has_section_name): New function.
19294 2017-05-30 Martin Liska <mliska@suse.cz>
19297 * auto-profile.c (get_function_decl_from_block): Fix
19300 2017-05-30 Richard Biener <rguenther@suse.de>
19302 PR middle-end/80876
19303 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
19305 2017-05-30 Martin Liska <mliska@suse.cz>
19307 * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
19308 * dumpfile.h (struct dump_file_info): Remove ctors.
19310 2017-05-30 Martin Liska <mliska@suse.cz>
19312 * predict.def: Fix GNU coding style.
19314 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
19316 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
19317 Mark 'to' argument with ATTRIBUTE_UNUSED.
19319 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
19321 * config/xtensa/xtensa.c (xtensa_emit_call): Use
19322 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
19323 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
19326 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
19328 * doc/install.texi (Options specification): Restore entry of
19329 --enable-sjlj-exceptions.
19331 2017-05-27 Michael Eager <eager@eagercon.com>
19334 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
19336 See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
19338 * config/microblaze/microblaze.h
19339 (FIXED_REGISTERS): Update in macro.
19340 (CALL_USED_REGISTERS): Update in macro.
19342 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org>
19344 * doc/install.texi: Add links to macOS binary distributions.
19346 2017-05-27 Jakub Jelinek <jakub@redhat.com>
19350 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
19352 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
19354 2017-05-26 Martin Liska <mliska@suse.cz>
19356 * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
19358 2017-05-26 Martin Liska <mliska@suse.cz>
19360 * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
19361 always leading ';; '.
19362 (dump_bb_info): Likewise.
19363 (brief_dump_cfg): Likewise.
19364 * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
19365 * dumpfile.c: Remove usage of TDF_VERBOSE.
19366 * dumpfile.h (enum dump_kind): Likewise.
19367 (dump_gimple_bb_header): Do not use TDF_COMMENT.
19368 * print-tree.c (debug_verbose): Remove.
19369 * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
19370 (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
19371 * tree-diagnostic.c (default_tree_printer): Replace
19372 TDF_DIAGNOSTIC with TDF_SLIM.
19374 2017-05-26 Bin Cheng <bin.cheng@arm.com>
19376 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
19377 in parameter loop, rather than loop_vinfo.
19378 (create_intersect_range_checks): Ditto.
19379 (vect_create_cond_for_alias_checks): Update call to above functions.
19381 2017-05-26 Bin Cheng <bin.cheng@arm.com>
19383 PR tree-optimization/80815
19384 * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
19385 for merging runtime alias checks. Handle negative DR_STEPs.
19387 2017-05-26 Bin Cheng <bin.cheng@arm.com>
19389 * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
19391 * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
19392 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
19393 out code pruning runtime alias checks.
19394 * tree-data-ref.c (prune_runtime_alias_test_list): New function
19395 factored out from above.
19396 * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
19398 * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
19400 (prune_runtime_alias_test_list): New decalaration.
19402 2017-05-26 Bin Cheng <bin.cheng@arm.com>
19404 * tree-vect-data-refs.c (compare_tree): Rename and move ...
19405 * tree-data-ref.c (data_ref_compare_tree): ... to here.
19406 * tree-data-ref.h (data_ref_compare_tree): New decalaration.
19407 * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
19408 (operator==, comp_dr_with_seg_len_pair): Ditto.
19409 (vect_prune_runtime_alias_test_list): Ditto.
19411 2017-05-26 Martin Liska <mliska@suse.cz>
19414 * params.def: Bound partial-inlining-entry-probability param.
19416 2017-05-26 Marek Polacek <polacek@redhat.com>
19419 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
19422 2017-05-26 Richard Biener <rguenther@suse.de>
19424 PR tree-optimization/80842
19425 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
19428 2017-05-26 Richard Biener <rguenther@suse.de>
19430 PR tree-optimization/80844
19431 * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
19433 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com>
19435 * doc/md.texi (Machine Constraints): Update x86 family
19436 machine constraints section to match 'config/i386/constraints.md'.
19438 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de>
19440 * doc/invoke.texi (-Wcatch-value=): Document new warning option.
19442 2017-05-25 Nathan Sidwell <nathan@acm.org>
19444 * doc/invoke.texi (--enable-languages): Update documentation.
19446 2017-05-25 Martin Liska <mliska@suse.cz>
19448 * dumpfile.c: Add TDF_FOLDING.
19449 * dumpfile.h (enum dump_kind): Likewise.
19450 * genmatch.c (dt_simplify::gen_1): Use it.
19452 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
19454 * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
19456 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
19458 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
19459 * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
19461 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
19463 * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
19464 * match.pd (X == C): Rewrite it here.
19465 (with_possible_nonzero_bits, with_possible_nonzero_bits2,
19466 with_certain_nonzero_bits2): New predicates.
19467 * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
19469 2017-05-24 Nathan Sidwell <nathan@acm.org>
19471 * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
19474 * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
19477 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
19479 * config/powerpcspe: New port. Files are copied from the rs6000
19480 port, with "rs6000" in filenames replaced by "powerpcspe".
19482 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com>
19484 PR rtl-optimization/80754
19485 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
19487 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
19489 * config/sparc/sparc.md (length): Return the correct value for -mflat
19490 sibcalls to match output_sibcall.
19492 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
19496 * config/rs6000/rs6000.c (struct machine_function): Add new field
19498 (rs6000_get_separate_components): Init that field, use it.
19499 (rs6000_components_for_bb): Use the field.
19501 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
19503 * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
19505 2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
19507 PR middle-end/80823
19508 * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
19510 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19513 * config/s390/s390.c (s390_check_qrst_address): Check incoming
19514 address against address_operand predicate.
19515 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
19517 2017-05-24 Eric Botcazou <ebotcazou@adacore.com>
19519 * var-tracking.c (track_expr_p): Do not return 0 for tracked record
19520 parameters passed indirectly.
19522 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
19524 * config/i386/i386.md (*movdi_internal): Remove SSE4
19525 alternative 18 (?r, *v). Update insn attributes.
19526 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
19527 Update insn attributes.
19528 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
19529 Update insn attributes.
19530 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
19531 alternative 1 (r, v). Remove isa attribute.
19532 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
19533 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
19534 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
19536 2017-05-23 Tom de Vries <tom@codesourcery.com>
19538 * doc/sourcebuild.texi (Directives, Verify compiler message): Document
19541 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
19543 * cgraphunit.c (symbol_table::process_new_functions): Update.
19544 * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
19545 (inline_generate_summary): Rename to ...
19546 (ipa_fn_summary_generate): ... this one.
19547 (inline_read_summary): Rename to ...
19548 (ipa_fn_summary_read): ... this one.
19549 (inline_write_summary): Rename to ...
19550 (ipa_fn_summary_write): ... this one.
19551 (inline_free_summary): Rename to ...
19552 (ipa_free_fn_summary): ... this one.
19553 (pass_data_local_fn_summary, pass_local_fn_summary,
19554 make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
19555 pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
19556 pass_data_ipa_fn_summary, pass_ipa_fn_summary,
19557 make_pass_ipa_fn_summary): New.
19558 * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
19559 inline_write_summary, inline_free_summary): Remove.
19560 (ipa_free_fn_summary) : New.
19561 * ipa-inline.c (ipa_inline): Update.
19562 (pass_ipa_inline): Do not generate summaries.
19563 * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
19565 * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
19566 and add pass_ipa_fn_summary.
19567 * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
19569 (make_pass_inline_parameters): Remove.
19571 2017-05-23 Thomas Schwinge <thomas@codesourcery.com>
19573 * omp-low.c (struct omp_context): Remove "default_kind" member.
19576 * omp-offload.c (execute_oacc_device_lower): Remove the
19577 parallelism dimensions function attributes for unparallelized
19578 OpenACC kernels constructs.
19580 2017-05-23 Martin Liska <mliska@suse.cz>
19582 * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
19584 (cgraph_edge::make_speculative): Likewise.
19585 (cgraph_edge::resolve_speculation): Likewise.
19586 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
19587 (cgraph_node::dump): Likewise.
19588 * cgraph.h: Likewise.
19589 * cgraphunit.c (analyze_functions): Likewise.
19590 (symbol_table::compile): Likewise.
19591 * ipa-cp.c (print_all_lattices): Likewise.
19592 (determine_versionability): Likewise.
19593 (initialize_node_lattices): Likewise.
19594 (ipcp_verify_propagated_values): Likewise.
19595 (estimate_local_effects): Likewise.
19596 (update_profiling_info): Likewise.
19597 (create_specialized_node): Likewise.
19598 (perhaps_add_new_callers): Likewise.
19599 (decide_about_value): Likewise.
19600 (decide_whether_version_node): Likewise.
19601 (identify_dead_nodes): Likewise.
19602 (ipcp_store_bits_results): Likewise.
19603 * ipa-devirt.c (dump_targets): Likewise.
19604 (ipa_devirt): Likewise.
19605 * ipa-icf.c (sem_item::dump): Likewise.
19606 (sem_function::equals): Likewise.
19607 (sem_variable::equals): Likewise.
19608 (sem_item_optimizer::read_section): Likewise.
19609 (sem_item_optimizer::execute): Likewise.
19610 (congruence_class::dump): Likewise.
19611 * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
19612 (dump_inline_summary): Likewise.
19613 (estimate_node_size_and_time): Likewise.
19614 (inline_analyze_function): Likewise.
19615 * ipa-inline-transform.c (inline_call): Likewise.
19616 * ipa-inline.c (report_inline_failed_reason): Likewise.
19617 (want_early_inline_function_p): Likewise.
19618 (edge_badness): Likewise.
19619 (update_edge_key): Likewise.
19620 (inline_small_functions): Likewise.
19621 * ipa-profile.c (ipa_profile): Likewise.
19622 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
19623 (ipa_make_edge_direct_to_target): Likewise.
19624 (remove_described_reference): Likewise.
19625 (ipa_impossible_devirt_target): Likewise.
19626 (propagate_controlled_uses): Likewise.
19627 (ipa_print_node_params): Likewise.
19628 (ipcp_transform_function): Likewise.
19629 * ipa-pure-const.c (pure_const_read_summary): Likewise.
19630 (propagate_pure_const): Likewise.
19631 * ipa-reference.c (generate_summary): Likewise.
19632 (read_write_all_from_decl): Likewise.
19633 (propagate): Likewise.
19634 (ipa_reference_read_optimization_summary): Likewise.
19635 * ipa-utils.c (ipa_merge_profiles): Likewise.
19636 * ipa.c (walk_polymorphic_call_targets): Likewise.
19637 (symbol_table::remove_unreachable_nodes): Likewise.
19638 (ipa_single_use): Likewise.
19639 * passes.c (execute_todo): Likewise.
19640 * predict.c (drop_profile): Likewise.
19641 * symtab.c (symtab_node::get_dump_name): New function.
19642 (symtab_node::dump_name): Likewise.
19643 (symtab_node::dump_asm_name): Likewise.
19644 (symtab_node::dump_references): Likewise.
19645 (symtab_node::dump_referring): Likewise.
19646 (symtab_node::dump_base): Likewise.
19647 (symtab_node::debug_symtab): Likewise.
19648 * tree-sra.c (convert_callers_for_node): Likewise.
19649 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
19650 * value-prof.c (init_node_map): Likewise.
19652 2017-05-23 Martin Liska <mliska@suse.cz>
19654 * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
19655 and symtab_node::debug_symtab to symbol_table::debug.
19656 * cgraphunit.c (analyze_functions): Use the renamed function.
19657 (symbol_table::compile): Likewise.
19658 * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
19659 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
19660 * passes.c (execute_todo): Likewise.
19661 * symtab.c (symbol_table::dump): New function.
19662 * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
19664 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
19666 * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
19667 that nonconst implies exec.
19669 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
19671 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
19672 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
19673 (inline_edge_summary_vec): Turn into ...
19674 (ipa_call_summaries): ... this one.
19675 (redirect_to_unreachable, edge_set_predicate,
19676 evaluate_properties_for_edge, inline_summary_alloc,
19677 reset_ipa_call_summary, reset_inline_summary,
19678 inline_summary_t::duplicate): Update.
19679 (inline_edge_duplication_hook): Turn to ...
19680 (ipa_call_summary_t::duplicate): ... this one.
19681 (inline_edge_removal_hook): Turn to ...
19682 (ipa_call_summary_t::remove): ... this one.
19683 (dump_inline_edge_summary): Turn to ...
19684 (dump_ipa_call_summary): ... this one.
19685 (estimate_function_body_sizes): Update.
19686 (inline_update_callee_summaries): Update.
19687 (remap_edge_change_prob): Update.
19688 (remap_edge_summaries): Update.
19689 (inline_merge_summary): Update.
19690 (do_estimate_edge_time): Update.
19691 (inline_generate_summary): Update.
19692 (inline_read_section): Update.
19693 (inline_read_summary): Update.
19694 (inline_free_summary): Update.
19695 * ipa-inline.c (can_inline_edge_p): Update.
19696 (compute_inlined_call_time): Update.
19697 (want_inline_small_function_p): Update.
19698 (edge_badness): Update.
19699 (early_inliner): Update.
19700 * ipa-inline.h (inline_edge_summary): Turn to ...
19701 (ipa_call_summary): ... this one.
19702 (ipa_call_summary_t): New class.
19703 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
19704 (ipa_call_summaries): New.
19705 (inline_edge_summary): Remove.
19706 (estimate_edge_growth): Update.
19707 * ipa-profile.c (ipa_propagate_frequency_1): Update.
19708 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
19709 * ipa-split.c (execute_split_functions): Update.
19710 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
19712 2017-05-23 Tom de Vries <tom@codesourcery.com>
19714 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
19715 attributes): Document rdrand effective target.
19717 2017-05-23 Tom de Vries <tom@codesourcery.com>
19719 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
19720 attributes): Sort alphabetically.
19722 2017-05-23 Georg-Johann Lay <avr@gjlay.de>
19724 * config/avr/genmultilib.awk: Use gsub instead of gensub.
19726 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
19729 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
19730 V2DF/V2DI splat into two separate patterns, one that handles
19731 registers, and the other that only handles memory. Drop support
19732 for splatting from a GPR on ISA 2.07 and then splitting the
19733 splat into direct move and splat.
19734 (vsx_splat_<mode>_reg): Likewise.
19735 (vsx_splat_<mode>_mem): Likewise.
19737 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org>
19739 * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
19741 2017-05-22 Jakub Jelinek <jakub@redhat.com>
19743 PR middle-end/80809
19744 * omp-low.c (finish_taskreg_remap): New function.
19745 (finish_taskreg_scan): If unit size of ctx->record_type
19746 is non-constant, unshare the size expression and replace
19747 decls in it with possible outer var refs.
19749 PR middle-end/80809
19750 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
19751 GOVD_SHARED rather than GOVD_PRIVATE with it.
19752 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
19753 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
19755 PR middle-end/80853
19756 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
19757 as last argument to build_outer_var_ref for pointer bases of array
19758 section reductions.
19760 2017-05-19 Martin Sebor <msebor@redhat.com>
19762 * print-tree.c (print_node): Print DECL_READ_P flag.
19764 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
19766 * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
19767 * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
19768 * cgraph.c: Likewise.
19769 * cgraphunit.c: Likewise.
19770 * gengtype.c: Likewise.
19771 * ipa-cp.c: Likewise.
19772 * ipa-devirt.c: Likewise.
19773 * ipa-icf.c: Likewise.
19774 * ipa-predicate.c: Likewise.
19775 * ipa-profile.c: Likewise.
19776 * ipa-prop.c: Likewise.
19777 * ipa-split.c: Likewise.
19779 * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
19780 edge_predicate_pool, dump_inline_hints,
19781 inline_summary::account_size_time, redirect_to_unreachable,
19782 edge_set_predicate, set_hint_predicate,
19783 evaluate_conditions_for_known_args, evaluate_properties_for_edge,
19784 inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
19785 inline_summary_t::remove, remap_hint_predicate_after_duplication,
19786 inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
19787 ipa_call_summary_t::remove, initialize_growth_caches,
19788 free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
19789 debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
19790 mark_modified, unmodified_parm_1, unmodified_parm,
19791 unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
19792 set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
19793 compute_bb_predicates, will_be_nonconstant_expr_predicate,
19794 will_be_nonconstant_predicate, record_modified_bb_info,
19795 get_minimal_bb, record_modified, param_change_prob,
19796 phi_result_unknown_predicate, predicate_for_phi_result,
19797 array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
19798 estimate_function_body_sizes, compute_inline_parameters,
19799 compute_inline_parameters_for_curren, pass_data_inline_parameters,
19800 estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
19801 inline_update_callee_summaries, remap_edge_change_prob,
19802 remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
19803 inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
19804 inline_analyze_function, inline_summary_t::insert,
19805 inline_generate_summary, read_ipa_call_summary, inline_read_section,
19806 inline_read_summary, write_ipa_call_summary, inline_write_summary,
19807 inline_free_summary): Move to ipa-fnsummary.h
19808 (predicate_t): Remove.
19809 * ipa-fnsummary.c: New file.
19810 * ipa-inline.h: Do not include sreal.h and ipa-predicate.h
19811 (enum inline_hints_vals, inline_hints, agg_position_info,
19812 INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
19813 inline_summaries, ipa_call_summary, ipa_call_summary_t,
19814 ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
19815 dump_inline_summary, dump_inline_hints, inline_generate_summary,
19816 inline_read_summary, inline_write_summary, inline_free_summary,
19817 inline_analyze_function, initialize_inline_failed,
19818 inline_merge_summary, inline_update_overall_summary,
19819 compute_inline_parameters): Move to ipa-fnsummary.h
19820 * ipa-fnsummary.h: New file.
19821 * ipa-inline-transform.h: Include ipa-inline.h.
19822 * ipa-inline.c: LIkewise.
19824 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
19826 * ipa-inline.c (edge_badness): Use inlined_time instead of
19827 inline_summaries->get.
19829 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
19831 * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
19833 2017-05-22 Nathan Sidwell <nathan@acm.org>
19835 * doc/invoke.texi (fdump-translation-unit): Delete documentation.
19836 (fdump-lang): Document 'raw' option.
19837 * dumpfile.h (TDI_tu): Delete.
19838 * dumpfile.c (dump_files): Remove translation-unit.
19839 (FIRST_AUTO_NUMBERED_DUMP): Decrement.
19841 2017-05-22 Georg-Johann Lay <avr@gjlay.de>
19843 * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
19844 command option from $(AWK) call.
19845 * config/avr/genmultilib.awk: Simplify and rewrite so that it
19846 generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
19847 [FORMAT]: Remove handling of variable.
19848 * config/avr/t-multilib: Regenerate.
19850 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
19852 * ipa-inline-analysis.c (inline_summary::reset): Do not reset
19854 (dump_inline_summary): Do not print self_time.
19855 (estimate_function_body_sizes): Do not set self_time.
19856 (compute_inline_parameters): Likewise.
19857 (inline_read_section, inline_write_summary): Do not stream self_time.
19858 * ipa-inline.h (inline_summary): Drop self_time.
19860 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
19862 * ipa-inline-analysis.c (account_size_time): Rename to ...
19863 (inline_summary::account_size_time): ... this one.
19864 (reset_ipa_call_summary): Turn to ...
19865 (ipa_call_summary::reset): ... this one.
19866 (reset_inline_summary): Turn to ...
19867 (inline_summary::reset): ... this one.
19868 (inline_summary_t::remove): Update.
19869 (inline_summary_t::duplicate): Update.
19870 (ipa_call_summary_t::remove): Update.
19871 (dump_inline_summary): Update.
19872 (estimate_function_body_sizes): Update.
19873 (compute_inline_parameters): Update.
19874 (estimate_node_size_and_time): Update.
19875 (inline_merge_summary): Update.
19876 (inline_update_overall_summary): Update.
19877 (inline_read_section): Update.
19878 (inline_write_summary): Update.
19879 * ipa-inline.h (inline_summary): Rename entry to size_time_table;
19880 add account_size_time and reset member functions.
19881 (ipa_call_summary): Add reset function.
19882 * ipa-predicate.h (predicate::operator &): Constify.
19884 2017-05-22 Richard Biener <rguenther@suse.de>
19886 * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
19888 2017-05-19 Jason Merrill <jason@redhat.com>
19890 * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
19892 2017-05-19 Marek Polacek <polacek@redhat.com>
19895 * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
19896 TYPE_OVERFLOW_WRAPS checks.
19898 2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
19900 * tree-core.h (enum omp_clause_default_kind): Add
19901 "OMP_CLAUSE_DEFAULT_PRESENT".
19902 * tree-pretty-print.c (dump_omp_clause): Handle it.
19903 * gimplify.c (enum gimplify_omp_var_data): Add
19904 "GOVD_MAP_FORCE_PRESENT".
19905 (gimplify_adjust_omp_clauses_1): Map it to
19906 "GOMP_MAP_FORCE_PRESENT".
19907 (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
19909 * gimplify.c (oacc_default_clause): Clarify.
19911 2017-05-19 Nathan Sidwell <nathan@acm.org>
19913 LANG_HOOK_REGISTER_DUMPS
19914 * toplev.c (general_init): Call register dump lang hook.
19915 * doc/invoke.texi: Document -fdump-lang option family.
19916 * dumpfile.c (dump_files): Remove class dump here.
19917 (FIRST_AUTO_NUMBERED_DUMP): Adjust.
19918 * dumpfile.h (tree_dump_index): Remove TDI_class.
19919 * langhooks-def.h (lhd_register_dumps): Declare.
19920 (LANG_HOOKS_REGISTER_DUMPS): Define.
19921 (LANG_HOOKS_INITIALIZER): Add it.
19922 * langhooks.c (lhd_register_dumps): Define.
19923 * langhooks.h (struct lang_hooks): Add register_dumps.
19925 2017-05-19 Nathan Sidwell <nathan@acm.org>
19927 * context.h (context::set_passes): New.
19928 * context.c (context::context): Do not create pass manager.
19929 * toplev.c (general_init): Create pass manager here.
19931 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org>
19933 * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
19934 use this splitter if two add or or instructions would also work for
19935 the constant we want to generate.
19937 2017-05-19 Richard Biener <rguenther@suse.de>
19940 * genmatch.c (dt_node::gen_kids_1): Add missing scope around
19941 predicate evaluation.
19943 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
19945 * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
19947 * ipa-inline.c (want_inline_small_function_p): Do not cast to
19950 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
19952 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
19953 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
19954 (inline_edge_summary_vec): Turn into ...
19955 (ipa_call_summaries): ... this one.
19956 (redirect_to_unreachable, edge_set_predicate,
19957 evaluate_properties_for_edge, inline_summary_alloc,
19958 reset_ipa_call_summary, reset_inline_summary,
19959 inline_summary_t::duplicate): Update.
19960 (inline_edge_duplication_hook): Turn to ...
19961 (ipa_call_summary_t::duplicate): ... this one.
19962 (inline_edge_removal_hook): Turn to ...
19963 (ipa_call_summary_t::remove): ... this one.
19964 (dump_inline_edge_summary): Turn to ...
19965 (dump_ipa_call_summary): ... this one.
19966 (estimate_function_body_sizes): Update.
19967 (inline_update_callee_summaries): Update.
19968 (remap_edge_change_prob): Update.
19969 (remap_edge_summaries): Update.
19970 (inline_merge_summary): Update.
19971 (do_estimate_edge_time): Update.
19972 (inline_generate_summary): Update.
19973 (inline_read_section): Update.
19974 (inline_read_summary): Update.
19975 (inline_free_summary): Update.
19976 * ipa-inline.c (can_inline_edge_p): Update.
19977 (compute_inlined_call_time): Update.
19978 (want_inline_small_function_p): Update.
19979 (edge_badness): Update.
19980 (early_inliner): Update.
19981 * ipa-inline.h (inline_edge_summary): Turn to ...
19982 (ipa_call_summary): ... this one.
19983 (ipa_call_summary_t): New class.
19984 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
19985 (ipa_call_summaries): New.
19986 (inline_edge_summary): Remove.
19987 (estimate_edge_growth): Update.
19988 * ipa-profile.c (ipa_propagate_frequency_1): Update.
19989 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
19990 * ipa-split.c (execute_split_functions): Update.
19991 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
19993 2017-05-19 Richard Biener <rguenther@suse.de>
19995 PR middle-end/80764
19996 * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
19998 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org>
20000 * config/rs6000/rs6000.c (struct machine_function): Add field
20001 fpr_is_wrapped_separately.
20002 (rs6000_get_separate_components): Use 64 components. Handle the
20003 new FPR components.
20004 (rs6000_components_for_bb): Handle the FPR components.
20005 (rs6000_emit_prologue_components): Handle the FPR components.
20006 (rs6000_emit_epilogue_components): Handle the FPR components.
20007 (rs6000_set_handled_components): Handle the FPR components.
20008 (rs6000_emit_prologue): Don't output prologue code for those FPRs
20009 that are already separately shrink-wrapped.
20010 (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
20011 that are already separately shrink-wrapped.
20013 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
20016 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
20019 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
20020 (define_peephole2 for Altivec d-form load): Add peepholes to catch
20021 cases where the register allocator uses a move and an offsettable
20022 memory operation to/from a FPR register on ISA 2.06/2.07.
20023 (define_peephole2 for Altivec d-form store): Likewise.
20025 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
20028 * config/i386/mmx.md (*mov<mode>_internal): Enable
20029 alternatives 11, 12, 13 and 14 also for 32bit targets.
20030 Remove alternatives 15, 16, 17 and 18.
20031 * config/i386/sse.md (vec_concatv2di): Change
20032 alternative (!x, *y) to (x, ?!*Yn).
20034 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com>
20036 * dumpfile.h (enum dump_kind): Remove stray comma.
20038 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
20040 * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
20041 * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
20042 predicate::num_conditions
20043 (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
20044 (CHANGED): turn into predicate::changed.
20045 (agg_position_info): Move to ipa-predicate.h
20046 (add_condition, predicate::add_clause, predicate::operator &=,
20047 predicate::or_with, predicate::evaluate, predicate::probability,
20048 dump_condition, dump_clause, predicate::dump,
20049 predicate::remap_after_duplication, predicate::remap_after_inlining,
20050 predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
20051 (evaluate_conditions_for_known_args): Update.
20052 (set_cond_stmt_execution_predicate): Update.
20053 * ipa-inline.h: Include ipa-predicate.h
20054 (condition, inline_param_summary, conditions, agg_position_info,
20055 predicate): Move to ipa-predicate.h
20056 * ipa-predicate.c: New file.
20057 * ipa-predicate.h: New file.
20059 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com>
20061 * final.c (leaf_function_p): Check we are not in a sequence.
20063 2017-05-18 Martin Liska <mliska@suse.cz>
20065 * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
20066 * dumpfile.c (dump_register): Use new enum dump_kind.
20067 (get_dump_file_name): Likewise.
20068 (dump_enable_all): Likewise.
20069 (dump_switch_p_1): Likewise.
20070 (enable_rtl_dump_file): Remove usage of TDF_RTL.
20071 * dumpfile.h (enum dump_kind): New enum type.
20072 (struct dump_file_info): Create constructor and
20073 format fields and comments.
20074 * passes.c (pass_manager::register_one_dump_file):
20076 * statistics.c (statistics_early_init): Likewise.
20077 * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
20078 TDF_TREE with TDF_SLIM.
20079 (gather_memory_references_ref): Likewise.
20081 2017-05-18 Martin Liska <mliska@suse.cz>
20083 * vec.h (struct vnull): Use it.
20085 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
20087 * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
20088 (true_predicate, false_predicate, true_predicate_p,
20089 false_predicate_p): Remove.
20090 (single_cond_predicate, not_inlined_predicate): Turn to member function
20092 (add_condition): Update.
20093 (add_clause): Turn to...
20094 (predicate::add_clause): ... this one; update; allow passing NULL
20096 (and_predicates): Turn to ...
20097 (predicate::operator &=): ... this one.
20098 (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
20099 (or_predicates): Turn to ...
20100 (predicate::or_with): ... this one.
20101 (evaluate_predicate): Turn to ...
20102 (predicate::evaluate): ... this one.
20103 (predicate_probability): Turn to ...
20104 (predicate::probability): ... this one.
20105 (dump_condition): Update.
20106 (dump_predicate): Turn to ...
20107 (predicate::dump): ... this one.
20108 (account_size_time): Update.
20109 (edge_set_predicate): Update.
20110 (set_hint_predicate): UPdate.
20111 (evaluate_conditions_for_known_args): Update.
20112 (evaluate_properties_for_edge): Update.
20113 (remap_predicate_after_duplication): Turn to...
20114 (predicate::remap_after_duplication): ... this one.
20115 (remap_hint_predicate_after_duplication): Update.
20116 (inline_summary_t::duplicate): UPdate.
20117 (dump_inline_edge_summary): Update.
20118 (dump_inline_summary): Update.
20119 (set_cond_stmt_execution_predicate): Update.
20120 (set_switch_stmt_execution_predicate): Update.
20121 (compute_bb_predicates): Update.
20122 (will_be_nonconstant_expr_predicate): Update.
20123 (will_be_nonconstant_predicate): Update.
20124 (phi_result_unknown_predicate): Update.
20125 (predicate_for_phi_result): Update.
20126 (array_index_predicate): Update.
20127 (estimate_function_body_sizes): Update.
20128 (estimate_node_size_and_time): Update.
20129 (estimate_ipcp_clone_size_and_time): Update.
20130 (remap_predicate): Rename to ...
20131 (predicate::remap_after_inlining): ... this one.
20132 (remap_hint_predicate): Update.
20133 (inline_merge_summary): Update.
20134 (inline_update_overall_summary): Update.
20135 (estimate_size_after_inlining): Update.
20136 (read_predicate): Rename to ...
20137 (predicate::stream_in): ... this one.
20138 (read_inline_edge_summary): Update.
20139 (write_predicate): Rename to ...
20140 (predicate::stream_out): ... this one.
20141 (write_inline_edge_summary): Update.
20142 * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
20143 (clause_t): Turn to uint32_t
20144 (predicate): Turn to class; implement constructor and operators
20146 (size_time_entry): Update.
20147 (inline_summary): Update.
20148 (inline_edge_summary): Update.
20150 2017-05-18 Marc Glisse <marc.glisse@inria.fr>
20152 * fold-const.c (fold_binary_loc): Move transformation...
20153 * match.pd (C - X CMP X): ... here.
20155 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
20157 * config/sparc/sparc.c (sparc_option_override): Set function
20158 alignment for -mcpu=niagara7 to 64 to match the I$ line.
20159 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
20161 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
20163 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
20165 2017-05-18 Marek Polacek <polacek@redhat.com>
20168 * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
20169 (pass_ubsan::execute): Call gimple_assign_single_p instead of
20170 gimple_assign_load_p.
20172 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
20174 PR middle-end/80692
20175 * real.c (do_compare): Give decimal_do_compare preference over
20176 comparing just the signs.
20178 2017-05-17 Uros Bizjak <ubizjak@gmail.com>
20180 * doc/md.texi (Canonicalization of Instructions): Describe the
20181 canonical form of instructions that inherently set a condition
20184 2017-05-17 Peter Bergner <bergner@vnet.ibm.com>
20186 PR middle-end/80775
20187 * tree-cfg.c: Move deletion of unreachable case statements to after
20188 the merging of consecutive case labels.
20190 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
20192 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
20193 readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
20194 restoring of callee-saved registers.
20196 2017-05-17 Eric Botcazou <ebotcazou@adacore.com>
20198 * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
20199 * config/visium/visium.c (single_set_and_flags): Likewise.
20200 * config/visium/visium.md (Substitutions): Likewise.
20202 2017-05-17 Martin Liska <mliska@suse.cz>
20204 * cfg.c: Introduce dump_flags_t type and
20205 use it instead of int type.
20207 * cfghooks.c: Likewise.
20208 * cfghooks.h (struct cfg_hooks): Likewise.
20209 * cfgrtl.c: Likewise.
20210 * cfgrtl.h: Likewise.
20211 * cgraph.c (cgraph_node::get_body): Likewise.
20212 * coretypes.h: Likewise.
20213 * domwalk.c: Likewise.
20214 * domwalk.h: Likewise.
20215 * dumpfile.c (struct dump_option_value_info): Likewise.
20216 (dump_enable_all): Likewise.
20217 (dump_switch_p_1): Likewise.
20218 (opt_info_switch_p): Likewise.
20219 * dumpfile.h (enum tree_dump_index): Likewise.
20220 (struct dump_file_info): Likewise.
20221 * genemit.c: Likewise.
20222 * generic-match-head.c: Likewise.
20223 * gengtype.c (open_base_files): Likewise.
20224 * gimple-pretty-print.c: Likewise.
20225 * gimple-pretty-print.h: Likewise.
20226 * graph.c (print_graph_cfg): Likewise.
20227 * graphite-scop-detection.c (dot_all_sese): Likewise.
20228 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
20229 * loop-unroll.c (report_unroll): Likewise.
20230 * passes.c (pass_manager::register_one_dump_file): Likewise.
20231 * print-tree.c: Likewise.
20232 * statistics.c: Likewise.
20233 * tree-cfg.c: Likewise.
20234 * tree-cfg.h: Likewise.
20235 * tree-dfa.c: Likewise.
20236 * tree-dfa.h: Likewise.
20237 * tree-dump.c (dump_function): Likewise.
20238 * tree-dump.h (struct dump_info): Likewise.
20239 * tree-pretty-print.c: Likewise.
20240 * tree-pretty-print.h: Likewise.
20241 * tree-ssa-live.c: Likewise.
20242 * tree-ssa-live.h: Likewise.
20243 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
20244 * tree-vect-loop.c: Likewise.
20245 * tree-vect-slp.c: Likewise.
20247 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com>
20248 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20250 PR tree-optimization/80457
20251 * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
20252 of all arguments to a statement as scalar_to_vec operations.
20253 (vectorizable_call): Adjust call to vect_model_simple_cost for
20255 (vectorizable_conversion): Likewise.
20256 (vectorizable_assignment): Likewise.
20257 (vectorizable_shift): Likewise.
20258 (vectorizable_operation): Likewise.
20259 (vectorizable_comparison): Likewise.
20260 (vect_is_simple_cond): Record the def types for operands.
20261 (vectorizable_condition): Likewise, call vect_model_simple_cost.
20262 * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
20263 for statement argument count.
20265 2017-05-16 Carl Love <cel@us.ibm.com>
20267 * config/rs6000/rs6000-c: Add support for built-in functions
20268 vector unsigned long long vec_bperm (vector unsigned long long,
20269 vector unsigned char)
20270 vector signed long long vec_mule (vector signed int,
20272 vector unsigned long long vec_mule (vector unsigned int,
20273 vector unsigned int)
20274 vector signed long long vec_mulo (vector signed int,
20276 vector unsigned long long vec_mulo (vector unsigned int,
20277 vector unsigned int)
20278 vector signed char vec_sldw (vector signed char,
20279 vector signed char,
20281 vector unsigned char vec_sldw (vector unsigned char,
20282 vector unsigned char,
20284 vector signed short vec_sldw (vector signed short,
20285 vector signed short,
20287 vector unsigned short vec_sldw (vector unsigned short,
20288 vector unsigned short,
20290 vector signed int vec_sldw (vector signed int,
20293 vector unsigned int vec_sldw (vector unsigned int,
20294 vector unsigned int,
20296 vector signed long long vec_sldw (vector signed long long,
20297 vector signed long long,
20299 vector unsigned long long vec_sldw (vector unsigned long long,
20300 vector unsigned long long,
20302 * config/rs6000/rs6000-c: Add support for built-in functions
20303 * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
20304 * config/rs6000/altivec.h: Add defintion for vec_sldw.
20305 * doc/extend.texi: Update the built-in documentation for the
20306 new built-in functions.
20308 2017-05-16 Marek Polacek <polacek@redhat.com>
20312 * tree.c (save_expr): Don't fold the expression.
20314 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
20316 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
20317 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
20318 and (?*y,m). Update insn attributes.
20320 2017-05-16 Martin Liska <mliska@suse.cz>
20322 * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
20323 flags argument of print_gimple_stmt, print_gimple_expr,
20324 print_generic_stmt and print_generic_expr.
20325 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
20326 * coretypes.h: Likewise.
20327 * except.c (dump_eh_tree): Likewise.
20328 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
20329 * gimple-pretty-print.h: Likewise.
20330 * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
20331 (backprop::push_to_worklist): Likewise.
20332 (backprop::pop_from_worklist): Likewise.
20333 (backprop::process_use): Likewise.
20334 (backprop::intersect_uses): Likewise.
20335 (note_replacement): Likewise.
20336 * gimple-ssa-store-merging.c
20337 (pass_store_merging::terminate_all_aliasing_chains): Likewise.
20338 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
20339 (pass_store_merging::execute): Likewise.
20340 * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
20341 (ssa_base_cand_dump_callback): Likewise.
20342 (dump_incr_vec): Likewise.
20343 (replace_refs): Likewise.
20344 (replace_mult_candidate): Likewise.
20345 (create_add_on_incoming_edge): Likewise.
20346 (create_phi_basis): Likewise.
20347 (insert_initializers): Likewise.
20348 (all_phi_incrs_profitable): Likewise.
20349 (introduce_cast_before_cand): Likewise.
20350 (replace_one_candidate): Likewise.
20351 * gimplify.c (gimplify_expr): Likewise.
20352 * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
20353 (set_rename): Likewise.
20354 (rename_uses): Likewise.
20355 (copy_loop_phi_nodes): Likewise.
20356 (add_close_phis_to_merge_points): Likewise.
20357 (copy_loop_close_phi_args): Likewise.
20358 (copy_cond_phi_args): Likewise.
20359 (graphite_copy_stmts_from_block): Likewise.
20360 (translate_pending_phi_nodes): Likewise.
20361 * graphite-poly.c (print_pdr): Likewise.
20362 (dump_gbb_cases): Likewise.
20363 (dump_gbb_conditions): Likewise.
20364 (print_scop_params): Likewise.
20365 * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
20366 (build_cross_bb_scalars_use): Likewise.
20367 (gather_bbs::before_dom_children): Likewise.
20368 * hsa-dump.c (dump_hsa_immed): Likewise.
20369 * ipa-cp.c (print_ipcp_constant_value): Likewise.
20370 (get_replacement_map): Likewise.
20371 * ipa-inline-analysis.c (dump_condition): Likewise.
20372 (estimate_function_body_sizes): Likewise.
20373 * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
20374 (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
20375 * ipa-prop.c (ipa_dump_param): Likewise.
20376 (ipa_print_node_jump_functions_for_edge): Likewise.
20377 (ipa_modify_call_arguments): Likewise.
20378 (ipa_modify_expr): Likewise.
20379 (ipa_dump_param_adjustments): Likewise.
20380 (ipa_dump_agg_replacement_values): Likewise.
20381 (ipcp_modif_dom_walker::before_dom_children): Likewise.
20382 * ipa-pure-const.c (check_stmt): Likewise.
20383 (pass_nothrow::execute): Likewise.
20384 * ipa-split.c (execute_split_functions): Likewise.
20385 * omp-offload.c (dump_oacc_loop_part): Likewise.
20386 (dump_oacc_loop): Likewise.
20387 * trans-mem.c (tm_log_emit): Likewise.
20388 (tm_memopt_accumulate_memops): Likewise.
20389 (dump_tm_memopt_set): Likewise.
20390 (dump_tm_memopt_transform): Likewise.
20391 * tree-cfg.c (gimple_verify_flow_info): Likewise.
20392 (print_loop): Likewise.
20393 * tree-chkp-opt.c (chkp_print_addr): Likewise.
20394 (chkp_gather_checks_info): Likewise.
20395 (chkp_get_check_result): Likewise.
20396 (chkp_remove_check_if_pass): Likewise.
20397 (chkp_use_outer_bounds_if_possible): Likewise.
20398 (chkp_reduce_bounds_lifetime): Likewise.
20399 * tree-chkp.c (chkp_register_addr_bounds): Likewise.
20400 (chkp_mark_completed_bounds): Likewise.
20401 (chkp_register_incomplete_bounds): Likewise.
20402 (chkp_mark_invalid_bounds): Likewise.
20403 (chkp_maybe_copy_and_register_bounds): Likewise.
20404 (chkp_build_returned_bound): Likewise.
20405 (chkp_get_bound_for_parm): Likewise.
20406 (chkp_build_bndldx): Likewise.
20407 (chkp_get_bounds_by_definition): Likewise.
20408 (chkp_generate_extern_var_bounds): Likewise.
20409 (chkp_get_bounds_for_decl_addr): Likewise.
20410 * tree-chrec.c (chrec_apply): Likewise.
20411 * tree-data-ref.c (dump_data_reference): Likewise.
20412 (dump_subscript): Likewise.
20413 (dump_data_dependence_relation): Likewise.
20414 (analyze_overlapping_iterations): Likewise.
20415 * tree-inline.c (expand_call_inline): Likewise.
20416 (tree_function_versioning): Likewise.
20417 * tree-into-ssa.c (dump_defs_stack): Likewise.
20418 (dump_currdefs): Likewise.
20419 (dump_names_replaced_by): Likewise.
20420 (dump_update_ssa): Likewise.
20421 (update_ssa): Likewise.
20422 * tree-object-size.c (pass_object_sizes::execute): Likewise.
20423 * tree-parloops.c (build_new_reduction): Likewise.
20424 (try_create_reduction_list): Likewise.
20425 (ref_conflicts_with_region): Likewise.
20426 (oacc_entry_exit_ok_1): Likewise.
20427 (oacc_entry_exit_single_gang): Likewise.
20428 * tree-pretty-print.h: Likewise.
20429 * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
20430 (get_scalar_evolution): Likewise.
20431 (add_to_evolution): Likewise.
20432 (get_loop_exit_condition): Likewise.
20433 (analyze_evolution_in_loop): Likewise.
20434 (analyze_initial_condition): Likewise.
20435 (analyze_scalar_evolution): Likewise.
20436 (instantiate_scev): Likewise.
20437 (number_of_latch_executions): Likewise.
20438 (gather_chrec_stats): Likewise.
20439 (final_value_replacement_loop): Likewise.
20440 (scev_const_prop): Likewise.
20441 * tree-sra.c (dump_access): Likewise.
20442 (disqualify_candidate): Likewise.
20443 (create_access): Likewise.
20444 (reject): Likewise.
20445 (maybe_add_sra_candidate): Likewise.
20446 (create_access_replacement): Likewise.
20447 (analyze_access_subtree): Likewise.
20448 (analyze_all_variable_accesses): Likewise.
20449 (sra_modify_assign): Likewise.
20450 (initialize_constant_pool_replacements): Likewise.
20451 (find_param_candidates): Likewise.
20452 (decide_one_param_reduction): Likewise.
20453 (replace_removed_params_ssa_names): Likewise.
20454 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
20455 * tree-ssa-copy.c (dump_copy_of): Likewise.
20456 (copy_prop_visit_cond_stmt): Likewise.
20457 * tree-ssa-dce.c (mark_operand_necessary): Likewise.
20458 * tree-ssa-dom.c (pass_dominator::execute): Likewise.
20459 (record_equivalences_from_stmt): Likewise.
20460 * tree-ssa-dse.c (compute_trims): Likewise.
20461 (delete_dead_call): Likewise.
20462 (delete_dead_assignment): Likewise.
20463 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
20464 (forward_propagate_into_cond): Likewise.
20465 (pass_forwprop::execute): Likewise.
20466 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
20467 * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
20469 (move_computations_worker): Likewise.
20470 (execute_sm): Likewise.
20471 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
20472 (remove_exits_and_undefined_stmts): Likewise.
20473 (remove_redundant_iv_tests): Likewise.
20474 * tree-ssa-loop-ivopts.c (dump_use): Likewise.
20475 (adjust_iv_update_pos): Likewise.
20476 * tree-ssa-math-opts.c (bswap_replace): Likewise.
20477 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
20478 (value_replacement): Likewise.
20479 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
20480 * tree-ssa-pre.c (print_pre_expr): Likewise.
20481 (get_representative_for): Likewise.
20482 (create_expression_by_pieces): Likewise.
20483 (insert_into_preds_of_block): Likewise.
20484 (eliminate_insert): Likewise.
20485 (eliminate_dom_walker::before_dom_children): Likewise.
20486 (eliminate): Likewise.
20487 (remove_dead_inserted_code): Likewise.
20488 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
20489 * tree-ssa-reassoc.c (get_rank): Likewise.
20490 (eliminate_duplicate_pair): Likewise.
20491 (eliminate_plus_minus_pair): Likewise.
20492 (eliminate_not_pairs): Likewise.
20493 (undistribute_ops_list): Likewise.
20494 (eliminate_redundant_comparison): Likewise.
20495 (update_range_test): Likewise.
20496 (optimize_range_tests_var_bound): Likewise.
20497 (optimize_vec_cond_expr): Likewise.
20498 (rewrite_expr_tree): Likewise.
20499 (rewrite_expr_tree_parallel): Likewise.
20500 (linearize_expr): Likewise.
20501 (break_up_subtract): Likewise.
20502 (linearize_expr_tree): Likewise.
20503 (attempt_builtin_powi): Likewise.
20504 (attempt_builtin_copysign): Likewise.
20505 (transform_stmt_to_copy): Likewise.
20506 (transform_stmt_to_multiply): Likewise.
20507 (dump_ops_vector): Likewise.
20508 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
20509 (print_scc): Likewise.
20510 (set_ssa_val_to): Likewise.
20511 (visit_reference_op_store): Likewise.
20512 (visit_use): Likewise.
20513 (sccvn_dom_walker::before_dom_children): Likewise.
20514 (run_scc_vn): Likewise.
20515 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
20517 (expr_hash_elt::print): Likewise.
20518 (const_and_copies::pop_to_marker): Likewise.
20519 (const_and_copies::record_const_or_copy_raw): Likewise.
20520 * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
20521 * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
20522 (dump_predicates): Likewise.
20523 (find_uninit_use): Likewise.
20524 (warn_uninitialized_phi): Likewise.
20525 (pass_late_warn_uninitialized::execute): Likewise.
20526 * tree-ssa.c (verify_vssa): Likewise.
20527 (verify_ssa): Likewise.
20528 (maybe_optimize_var): Likewise.
20529 * tree-vrp.c (dump_value_range): Likewise.
20530 (dump_all_value_ranges): Likewise.
20531 (dump_asserts_for): Likewise.
20532 (register_edge_assert_for_2): Likewise.
20533 (vrp_visit_cond_stmt): Likewise.
20534 (vrp_visit_switch_stmt): Likewise.
20535 (vrp_visit_stmt): Likewise.
20536 (vrp_visit_phi_node): Likewise.
20537 (simplify_cond_using_ranges_1): Likewise.
20538 (fold_predicate_in): Likewise.
20539 (evrp_dom_walker::before_dom_children): Likewise.
20540 (evrp_dom_walker::push_value_range): Likewise.
20541 (evrp_dom_walker::pop_value_range): Likewise.
20542 (execute_early_vrp): Likewise.
20544 2017-05-16 Richard Biener <rguenther@suse.de>
20546 * dwarf2out.c (loc_list_from_tree_1): Do not create
20547 DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
20549 2017-05-16 Richard Biener <rguenther@suse.de>
20551 * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
20553 (note_variable_value_in_expr): If we resolved the decl ref
20554 do not push to the stack.
20556 2017-05-16 Matthew Wahab <matthew.wahab@arm.com>
20558 * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
20559 operations in fast-math mode.
20560 (vaddq_f16): Likewise.
20561 (vmul_f16): Likewise.
20562 (vmulq_f16): Likewise.
20563 (vsub_f16): Likewise.
20564 (vsubq_f16): Likewise.
20565 * config/arm/neon.md (add<mode>3): New.
20567 (fma:<VH:mode>3): New. Also remove outdated comment.
20570 2017-05-16 Martin Liska <mliska@suse.cz>
20574 * ipa-devirt.c (warn_types_mismatch): Fix typo.
20575 (odr_types_equivalent_p): Likewise.
20577 2017-05-15 Sylvestre Ledru <sylvestre@debian.org>
20579 * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
20581 2017-05-15 Uros Bizjak <ubizjak@gmail.com>
20584 * config/i386.i386.md (*zero_extendsidi2): Do not penalize
20585 non-interunit SSE move alternatives with '?'.
20586 (zero-extendsidi peephole2): New peephole to skip intermediate
20587 general register in SSE zero-extend sequence.
20589 2017-05-15 Jeff Law <law@redhat.com>
20591 * reorg.c (relax_delay_slots): Create a new variable to hold
20592 the temporary target rather than clobbering TARGET_LABEL.
20594 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
20595 missing argument to extract_bit_field call.
20596 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
20598 2017-05-15 Martin Liska <mliska@suse.cz>
20601 * gcc.c (process_command): Do not allow empty argument of -o option.
20603 2017-05-15 Renlin Li <renlin.li@arm.com>
20605 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
20606 * config/aarch64/aarch64.c (aarch64_expand_call): Define.
20607 * config/aarch64/constraints.md (Usf): Add long call check.
20608 * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
20609 (call_value): Likewise.
20610 (sibcall): Likewise.
20611 (sibcall_value): Likewise.
20613 (call_value_insn): New.
20614 (sibcall_insn): Update rtx pattern.
20615 (sibcall_value_insn): Likewise.
20616 (call_internal): Remove.
20617 (call_value_internal): Likewise.
20618 (sibcall_internal): Likewise.
20619 (sibcall_value_internal): Likewise.
20620 (call_reg): Likewise.
20621 (call_symbol): Likewise.
20622 (call_value_reg): Likewise.
20623 (call_value_symbol): Likewise.
20625 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
20628 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
20630 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
20632 * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
20633 compatible with CCGOCmode and with CCZmode.
20635 2017-05-14 Martin Sebor <msebor@redhat.com>
20637 PR middle-end/77671
20638 * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
20639 (gimple_fold_builtin_snprintf): Same.
20640 * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
20641 (gimple_fold_builtin_snprintf): Same.
20642 * gimple-ssa-sprintf.c (get_format_string): Correct the detection
20643 of character types.
20644 (is_call_safe): New function.
20645 (try_substitute_return_value): Call it.
20646 (try_simplify_call): New function.
20647 (pass_sprintf_length::handle_gimple_call): Call it.
20649 2017-05-14 Martin Sebor <msebor@redhat.com>
20651 PR middle-end/80669
20652 * builtins.c (expand_builtin_stpncpy): Simplify.
20654 2017-05-14 Daniel Santos <daniel.santos@pobox.com>
20656 * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
20657 * config/i386/i386.h
20658 (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
20659 (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
20660 (struct machine_function): Add new members call_ms2sysv,
20661 call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
20662 (struct machine_frame_state): New fields sp_realigned and
20663 sp_realigned_offset.
20664 * config/i386/i386.c
20665 (enum xlogue_stub): New enum.
20666 (enum xlogue_stub_sets): New enum.
20667 (class xlogue_layout): New class.
20668 (struct ix86_frame): New fields stack_realign_allocate_offset,
20669 stack_realign_offset and outlined_save_offset. Modify comments to
20670 detail stack layout when using out-of-line stubs.
20671 (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
20672 (ix86_option_override_internal): Add sorry() for TARGET_SEH and
20673 -mcall-ms2sysv-xlogues.
20674 (stub_managed_regs): New static variable.
20675 (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
20676 registers managed by out-of-line stub.
20677 (disable_call_ms2sysv_xlogues): New function.
20678 (ix86_compute_frame_layout): Modify re-alignment calculations, disable
20679 m->call_ms2sysv when appropriate and compute frame layout for
20681 (sp_valid_at, fp_valid_at): New inline functions.
20682 (choose_basereg): New function.
20683 (choose_baseaddr): Add align parameter, use choose_basereg and modify
20685 (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
20686 Use align parameter of choose_baseaddr to generated aligned SSE movs
20688 (pro_epilogue_adjust_stack): Modify to track
20689 machine_frame_state::sp_realigned.
20690 (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
20691 (ix86_nsaved_sseregs): Likewise.
20692 (ix86_emit_save_regs): Likewise.
20693 (ix86_emit_save_regs_using_mov): Likewise.
20694 (ix86_emit_save_sse_regs_using_mov): Likewise.
20695 (get_scratch_register_on_entry): Likewise.
20696 (gen_frame_set): New function.
20697 (gen_frame_load): Likewise.
20698 (gen_frame_store): Likewise.
20699 (emit_outlined_ms2sysv_save): Likewise.
20700 (emit_outlined_ms2sysv_restore): Likewise.
20701 (ix86_expand_prologue): Modify stack re-alignment code and call
20702 emit_outlined_ms2sysv_save when appropriate.
20703 (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add
20704 parameter rtx_insn *insn, which allows the function to be used to only
20705 generate the notes.
20706 (ix86_expand_epilogue): Modify validity checks of frame and stack
20707 pointers, and call emit_outlined_ms2sysv_restore when appropriate.
20708 (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
20709 * config/i386/predicates.md
20710 (save_multiple): New predicate.
20711 (restore_multiple): Likewise.
20712 * config/i386/sse.md
20713 (save_multiple<mode>): New pattern.
20714 (save_multiple_realign<mode>): Likewise.
20715 (restore_multiple<mode>): Likewise.
20716 (restore_multiple_and_return<mode>): Likewise.
20717 (restore_multiple_leave_return<mode>): Likewise.
20718 * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
20720 2017-05-14 Julia Koval <julia.koval@intel.com>
20722 * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
20723 * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
20724 (__builtin_ia32_xsetbv): New builtins.
20725 * config/i386/i386.c (ix86_expand_special_args_builtin):
20727 (ix86_expand_builtin): Special expand for new intrinsics.
20728 * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
20729 (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
20730 * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
20732 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20734 * cfganal.c (inverted_post_order_compute): Change argument type
20736 * cfganal.h (inverted_post_order_compute): Adjust prototype.
20737 * df-core.c (rest_of_handle_df_initialize): Adjust.
20738 (rest_of_handle_df_finish): Likewise.
20739 (df_analyze_1): Likewise.
20740 (df_analyze): Likewise.
20741 (loop_inverted_post_order_compute): Change argument to be a vec *.
20742 (df_analyze_loop): Adjust.
20743 (df_get_n_blocks): Likewise.
20744 (df_get_postorder): Likewise.
20745 * df.h (struct df_d): Change field to be a vec.
20746 * lcm.c (compute_laterin): Adjust.
20747 (compute_available): Likewise.
20748 * lra-lives.c (lra_create_live_ranges_1): Likewise.
20749 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
20750 * tree-ssa-pre.c (compute_antic): Likewise.
20752 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20754 * cfganal.c (connect_infinite_loops_to_exit): Adjust.
20755 (depth_first_search::depth_first_search): Change structure init
20756 function to this constructor.
20757 (depth_first_search::add_bb): Rename function to this member.
20758 (depth_first_search::execute): Likewise.
20759 (flow_dfs_compute_reverse_finish): Adjust.
20761 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20763 * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
20764 (longest_simple_path): Likewise.
20765 * shrink-wrap.c (spread_components): Likewise.
20766 (disqualify_problematic_components): Likewise.
20767 (emit_common_heads_for_components): Likewise.
20768 (emit_common_tails_for_components): Likewise.
20769 (insert_prologue_epilogue_for_components): Likewise.
20771 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20773 * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
20776 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20778 * df-core.c (df_set_blocks): Start using auto_bitmap.
20779 (df_compact_blocks): Likewise.
20780 * df-problems.c (df_rd_confluence_n): Likewise.
20781 * df-scan.c (df_insn_rescan_all): Likewise.
20782 (df_process_deferred_rescans): Likewise.
20783 (df_update_entry_block_defs): Likewise.
20784 (df_update_exit_block_uses): Likewise.
20785 (df_entry_block_bitmap_verify): Likewise.
20786 (df_exit_block_bitmap_verify): Likewise.
20787 (df_scan_verify): Likewise.
20788 * lra-constraints.c (lra_constraints): Likewise.
20789 (undo_optional_reloads): Likewise.
20790 (lra_undo_inheritance): Likewise.
20791 * lra-remat.c (calculate_gen_cands): Likewise.
20792 (do_remat): Likewise.
20793 * lra-spills.c (assign_spill_hard_regs): Likewise.
20794 (spill_pseudos): Likewise.
20795 * tree-ssa-pre.c (bitmap_set_and): Likewise.
20796 (bitmap_set_subtract_values): Likewise.
20798 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20800 * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
20801 management with auto_bitmap.
20802 (fix_inter_tick): Likewise.
20803 (fix_recovery_deps): Likewise.
20804 * ira.c (add_store_equivs): Likewise.
20805 (find_moveable_pseudos): Likewise.
20806 (split_live_ranges_for_shrink_wrap): Likewise.
20807 * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
20808 (rtx_reuse_manager::seen_def_p): Likewise.
20809 (rtx_reuse_manager::set_seen_def): Likewise.
20810 * print-rtl.h (class rtx_reuse_manager): Likewise.
20812 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20814 * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
20816 (migrate_btr_def): Likewise.
20817 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
20818 * df-core.c (loop_post_order_compute): Likewise.
20819 (loop_inverted_post_order_compute): Likewise.
20820 * hsa-common.h: Likewise.
20821 * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
20822 * init-regs.c (initialize_uninitialized_regs): Likewise.
20823 * ipa-inline.c (resolve_noninline_speculation): Likewise.
20824 (inline_small_functions): Likewise.
20825 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
20826 * ira.c (combine_and_move_insns): Likewise.
20827 (build_insn_chain): Likewise.
20828 * loop-invariant.c (find_invariants): Likewise.
20829 * lower-subreg.c (propagate_pseudo_copies): Likewise.
20830 * predict.c (tree_predict_by_opcode): Likewise.
20831 (predict_paths_leading_to): Likewise.
20832 (predict_paths_leading_to_edge): Likewise.
20833 (estimate_loops_at_level): Likewise.
20834 (estimate_loops): Likewise.
20835 * shrink-wrap.c (try_shrink_wrapping): Likewise.
20836 (spread_components): Likewise.
20837 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
20838 * tree-loop-distribution.c (rdg_build_partitions): Likewise.
20839 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
20840 * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
20841 * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
20842 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
20843 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
20844 * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
20845 (mark_threaded_blocks): Likewise.
20846 (thread_through_all_blocks): Likewise.
20847 * tree-ssa.c (verify_ssa): Likewise.
20848 (execute_update_addresses_taken): Likewise.
20849 * tree-ssanames.c (verify_ssaname_freelists): Likewise.
20851 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20853 * cfganal.c (mark_dfs_back_edges): Replace manual stack with
20855 (post_order_compute): Likewise.
20856 (inverted_post_order_compute): Likewise.
20857 (pre_and_rev_post_order_compute_fn): Likewise.
20859 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20861 * genrecog.c (int_set::int_set): Explicitly construct our
20862 auto_vec base class.
20863 * vec.h (auto_vec::auto_vec): New constructor.
20865 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20867 * bitmap.h (class auto_bitmap): New constructor taking
20868 bitmap_obstack * argument.
20870 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20872 * bitmap.h (class auto_bitmap): Change type of m_bits to
20873 bitmap_head, and adjust ctor / dtor and member operators.
20875 2017-05-13 Uros Bizjak <ubizjak@gmail.com>
20877 * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
20878 when returned register mode doesn't match original mode.
20880 2017-05-12 Jeff Law <law@redhat.com>
20881 Jakub Jelinek <jakub@redhat.com>
20883 * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
20884 we look for cc setter after the compare-elim changes.
20885 * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
20886 within the vector to match what compare-elim now expects.
20887 (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
20888 (xorsi3_flags, one_cmplsi2_flags): Likewise.
20890 * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
20891 after the compare-elim changes.
20892 * config/rx/rx.md (abssi2_flags): Fix order of patterns within
20893 the vector to match what compare-elim now expects.
20894 (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
20895 (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
20896 (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
20897 (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
20898 (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
20900 * config/visium/visium.c (single_set_and_flags): Fix where
20901 we look for cc setter after the compare-elim changes.
20902 * config/visium/visium.md (flags_subst_logic): Fix order of patterns
20903 with the vector to match what compare-elim now expects.
20904 (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
20905 (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
20906 (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
20907 (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
20908 (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
20909 (neg<mode>2_insn_set_overflow): Likewise.
20911 2017-05-12 Jim Wilson <jim.wilson@linaro.org>
20913 PR middle-end/79794
20914 * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
20915 maybe_expand_insn call, set ops[0].target. If still set after call,
20916 set alt_rtl. Add extra arg to recursive calls.
20917 (extract_bit_field): Add alt_rtl argument. Pass to
20919 * expmed.h (extract_bit_field): Fix prototype.
20920 * expr.c (emit_group_load_1, copy_blkmode_from_reg)
20921 (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
20922 to extract_bit_field_calls.
20923 (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
20924 Pass alt_rtl to extract_bit_field calls.
20925 * calls.c (store_unaligned_arguments_into_psuedos)
20926 load_register_parameters): Pass extra NULL to extract_bit_field calls.
20927 * optabs.c (maybe_legitimize_operand): Clear op->target when call
20929 * optabs.h (struct expand_operand): Add target bitfield.
20931 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
20933 * compare-elim.c (try_eliminate_compare): Canonicalize
20934 operation with embedded compare to
20935 [(set (reg:CCM) (compare:CCM (operation) (immediate)))
20936 (set (reg) (operation)].
20938 * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
20940 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
20943 * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
20944 cost of adding a carry flag for ADC instruction.
20945 [case MINUS]: Ignore the cost of subtracting a carry flag
20946 for SBB instruction.
20948 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
20950 * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
20952 * config/rs6000/bmiintrin.h: New file.
20953 * config/rs6000/bmi2intrin.h: New file.
20954 * config/rs6000/x86intrin.h: New file.
20956 2017-05-12 Jeff Law <law@redhat.com>
20958 * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
20961 2017-05-12 Peter Bergner <bergner@vnet.ibm.com>
20963 PR middle-end/80707
20964 * tree-cfg.c: Remove cfg edges of unreachable case statements.
20966 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
20968 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
20969 early expansion of vector divide builtins.
20970 (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
20971 builtins identified as having unsigned arguments.
20973 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
20975 * config/rs6000/rs6000.c (gimple-fold.h): New #include.
20976 (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
20977 expansion of vector logical operations (and, andc, or, xor,
20980 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
20982 * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
20983 * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
20985 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
20987 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
20988 early GIMPLE expansion of vector multiplies.
20990 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
20992 * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
20993 TARGET_HAVE_MOVT conditional.
20994 (movt splitter): Likewise.
20996 2017-05-12 Richard Biener <rguenther@suse.de>
20998 * tree-ssa-sccvn.h (has_VN_INFO): Declare.
20999 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21000 Fold all stmts not inplace.
21002 2017-05-12 Richard Biener <rguenther@suse.de>
21004 PR tree-optimization/80713
21005 * tree-ssa-pre.c (remove_dead_inserted_code): Clear
21006 inserted_exprs bit for not removed stmts.
21008 2017-05-12 Thomas Schwinge <thomas@codesourcery.com>
21010 PR middle-end/69921
21011 * tree-parloops.c (create_parallel_loop): Set "oacc kernels
21012 parallelized" attribute for parallelized OpenACC kernels.
21013 * omp-offload.c (execute_oacc_device_lower): Use it.
21015 * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
21016 Set "oacc kernels" attribute.
21017 * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
21018 parameter. Adjust all users.
21019 (oacc_fn_attrib_kernels_p): Remove function.
21020 * omp-offload.c (execute_oacc_device_lower): Look for "oacc
21021 kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
21022 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
21023 * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
21024 assert "oacc kernels" attribute is set.
21026 2017-05-11 Carl Love <cel@us.ibm.com>
21028 * config/rs6000/rs6000-c: Add support for built-in functions
21029 vector unsigned char vec_popcnt (vector signed char)
21030 vector unsigned char vec_popcnt (vector unsigned char)
21031 vector unsigned short vec_popcnt (vector signed short)
21032 vector unsigned short vec_popcnt (vector unsigned short)
21033 vector unsigned int vec_popcnt (vector signed int)
21034 vector unsigned int vec_popcnt (vector unsigned int)
21035 vector unsigned long long vec_popcnt (vector signed long long)
21036 vector unsigned long long vec_popcnt (vector unsigned long long)
21037 vector signed long long vec_slo (vector signed long long,
21038 vector signed char)
21039 vector signed long long vec_slo (vector signed long long,
21040 vector unsigned char)
21041 vector unsigned long long vec_slo (vector unsigned long long,
21042 vector signed char)
21043 vector unsigned long long vec_slo (vector unsigned long long,
21044 vector unsigned char)
21045 * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
21046 VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
21047 * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
21048 vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
21049 * doc/extend.texi: Update the built-in documentation file for the
21050 new built-in functions.
21052 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
21054 * attribs.h (sorted_attr_string): Move machine independent
21055 functions for target clone support from the i386 port to common
21056 code. Rename ix86_function_versions to common_function_versions.
21057 Rename make_name to make_unique_name.
21058 (common_function_versions): Likewise.
21059 (make_unique_name): Likewise.
21060 (make_dispatcher_decl): Likewise.
21061 (is_function_default_version): Likewise.
21062 * attribs.c (attr_strcmp): Likewise.
21063 (sorted_attr_string): Likewise.
21064 (common_function_versions): Likewise.
21065 (make_unique_name): Likewise.
21066 (make_dispatcher_decl): Likewise.
21067 (is_function_default_version): Likewise.
21068 * config/i386/i386.c (attr_strcmp): Likewise.
21069 (sorted_attr_string): Likewise.
21070 (ix86_function_versions): Likewise.
21071 (make_name): Likewise.
21072 (make_dispatcher_decl): Likewise.
21073 (is_function_default_version): Likewise.
21074 (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
21076 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21079 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
21080 Account for direct move costs for vec_construct of integer
21083 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
21086 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
21087 (UNSPEC_STX_ATOMIC): Ditto.
21088 (loaddi_via_sse): New insn.
21089 (storedi_via_sse): Ditto.
21090 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
21091 Update corresponding peephole2 patterns.
21092 (atomic_storedi_fpu): Ditto.
21094 2017-05-11 Julia Koval <julia.koval@intel.com>
21096 * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
21097 (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
21099 * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
21100 (__builtin_ia32_rsqrt14ss_mask): New builtins.
21101 * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
21103 2017-05-11 Nathan Sidwell <nathan@acm.org>
21105 * graphite-poly.c: Include dumpfile.h.
21107 * dumpfle.h (dump_function): Declare here ...
21108 * tree-dump.h (dump_function): ... not here.
21109 * dumpfile.c: #include tree-cfg.h.
21110 (dump_function): Move here from ...
21111 * tree-dump.c (dump_function): ... here.
21112 * gimplify.c: #include splay-tree.h, not tree-dump.h.
21113 * graphite-poly.c: Don't include tree-dump.h.
21114 * cgraphclones.c: Include dumpfile.h not tree-dump.h.
21115 * print-tree.c: Likewise.
21116 * stor-layout.c: Likewise.
21117 * tree-nested.c: Likewise.
21119 * dumpfile.c (dump_start): Use TDF_FLAGS.
21120 (dump_enable_all): Fix TDF_KIND check thinko.
21122 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
21124 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21125 array entries to represent two legal parameterizations of the
21126 overloaded __builtin_cmpb function, as represented by the
21127 P6_OV_BUILTIN_CMPB constant.
21128 (altivec_resolve_overloaded_builtin): Add special case handling
21129 for the __builtin_cmpb function, as represented by the
21130 P6_OV_BUILTIN_CMPB constant.
21131 * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
21132 (BU_P6_64BIT_2): New macro.
21133 (BU_P6_OVERLOAD_2): New macro
21134 (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
21135 (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
21136 (CMPB): Add overload support to represent both 32-bit and 64-bit
21137 compare-bytes function.
21138 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
21139 support for TARGET_CMPB.
21140 * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
21141 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
21142 documentation of the __builtin_cmpb overloaded built-in function.
21144 2017-05-11 Richard Biener <rguenther@suse.de>
21146 PR tree-optimization/80705
21147 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
21148 bases are not vectorizable.
21150 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21152 * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
21153 when counting register pressure.
21155 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21157 * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
21158 (iv_ca_more_deps): Renamed to ...
21159 (iv_ca_compare_deps): ... this.
21160 (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
21162 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21164 * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
21166 (determine_group_iv_costs): ... here.
21167 (find_inv_vars_cb): Record inv var if it's not recorded before.
21169 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21171 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
21172 (get_shiftadd_cost): Ditto.
21174 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21176 * tree-ssa-address.c: Include header file.
21177 (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
21179 (add_to_parts): Refactor.
21180 (addr_to_parts): New parameter. Update use of move_hint_to_base.
21181 (create_mem_ref): Update use of addr_to_parts. Re-associate addr
21184 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21186 PR tree-optimization/53090
21187 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
21189 (extract_cond_operands): Detect condition with IV on both sides
21190 and return COMP_IV_EXPR_2.
21191 (find_interesting_uses_cond): Add iv_use for both IVs in condition.
21192 (rewrite_use_compare): Simplify by removing call to function
21193 extract_cond_operands.
21195 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21197 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
21198 (extract_cond_operands): Detect condition comparing against non-
21199 invariant bound and return appropriate enum value.
21200 (find_interesting_uses_cond): Update use of extract_cond_operands.
21201 Handle its return value accordingly.
21202 (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
21204 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21206 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
21207 nonlinear iv_use computation in loop invariant sensitive way.
21209 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21211 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
21212 (find_iv_candidates): Call relate_compare_use_with_all_cands.
21214 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21216 * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
21217 (dump_cand): Support iv_cand.inv_exprs.
21218 (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
21220 (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
21223 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21225 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
21227 * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
21228 as local function. Include necessary header files.
21229 * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
21231 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21233 * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
21235 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21237 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
21238 operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
21239 RSHIFT_EXPR and BIT_NOT_EXPR.
21241 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21243 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
21244 (adjust_setup_cost): New parameter supporting round up adjustment.
21245 (struct address_cost_data): Delete.
21246 (force_expr_to_var_cost): Don't bound cost with spill_cost.
21247 (split_address_cost, ptr_difference_cost): Delete.
21248 (difference_cost, compare_aff_trees, record_inv_expr): Delete.
21249 (struct ainc_cost_data): New struct.
21250 (get_address_cost_ainc): New function.
21251 (get_address_cost, get_computation_cost): Reimplement.
21252 (determine_group_iv_cost_address): Record inv_expr for all uses of
21254 (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
21255 (iv_ca_has_deps): Reimplemented to ...
21256 (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps
21258 (iv_ca_extend): Call iv_ca_more_deps.
21260 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21262 * tree-ssa-address.c (struct mem_address): Move to header file.
21263 (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
21264 * tree-ssa-address.h (struct mem_address): Move from C file.
21265 (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
21267 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21269 * tree-affine.h (aff_combination_type): New interface.
21270 (aff_combination_zero_p): Remove static.
21271 (aff_combination_const_p): New interface.
21272 (aff_combination_singleton_var_p): New interfaces.
21274 2017-05-11 Richard Biener <rguenther@suse.de>
21276 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21277 Skip unreachable blocks and destinations.
21278 (eliminate): Move stmt removal and fixup ...
21279 (fini_eliminate): ... here. Skip inserted exprs.
21280 (pass_pre::execute): Move fini_pre after fini_eliminate.
21281 * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
21282 (tail_merge_optimize): Run cleanup_tree_cfg if requested by
21283 PRE to get rid of dead code that has invalid SSA form and
21284 split critical edges again.
21286 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21288 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
21290 2017-05-11 Richard Biener <rguenther@suse.de>
21292 * passes.c (execute_function_todo): Verify loops if they are
21293 said to be up-to-date.
21294 * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
21295 * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
21297 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
21300 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
21301 handle calling assemble_external ourself.
21304 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
21305 modes with zero size. Enhance comment.
21307 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21309 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
21310 built-ins for vec_xl and vec_xst with short and char pointer
21313 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
21315 * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
21316 (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
21317 (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
21318 (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
21319 (_mm_maskz_min_round_ss): New intrinsics.
21320 * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
21321 (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
21322 * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
21323 (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
21324 (__builtin_ia32_minss_mask_round): New builtins.
21325 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21326 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
21327 * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
21329 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
21330 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
21332 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
21335 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
21337 * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
21338 (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
21339 (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
21340 (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
21341 (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
21342 (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
21343 (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
21344 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21345 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
21346 * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
21347 (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
21348 (__builtin_ia32_mulss_mask_round): New builtins.
21349 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21350 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
21351 * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
21353 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
21354 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
21356 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
21359 2017-05-10 Julia Koval <julia.koval@intel.com>
21361 * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
21362 (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
21363 (_mm256_setr_m128i): New intrinsics.
21365 2017-05-10 Julia Koval <julia.koval@intel.com>
21367 * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
21368 (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
21369 (_mm_maskz_rcp14_ss): New intrinsics.
21370 * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
21371 (__builtin_ia32_rcp14ss_mask): New builtins.
21372 * config/i386/sse.md (srcp14<mode>_mask): New pattern.
21374 2017-05-10 Peter Bergner <bergner@vnet.ibm.com>
21376 PR tree-optimization/51513
21377 * tree-cfg.c (gimple_seq_unreachable_p): New function.
21378 (assert_unreachable_fallthru_edge_p): Use it.
21379 (group_case_labels_stmt): Likewise.
21380 * tree-cfg.h: Prototype it.
21381 * stmt.c: Include cfghooks.h and tree-cfg.h.
21382 (emit_case_dispatch_table) <gap_label>: New local variable.
21383 Use it to fill dispatch table gaps.
21384 Test for default_label before updating probabilities.
21385 (expand_case) <default_label>: Remove unneeded initialization.
21386 Test for unreachable default case statement and remove its edge.
21387 Set default_label accordingly.
21388 * tree-ssa-ccp.c (optimize_unreachable): Update comment.
21390 2017-05-10 Carl Love <cel@us.ibm.com>
21392 * config/rs6000/rs6000-c: Add support for built-in functions
21393 vector signed char vec_neg (vector signed char)
21394 vector signed short int vec_neg (vector short int)
21395 vector signed int vec_neg (vector signed int)
21396 vector signed long long vec_neg (vector signed long long)
21397 vector float vec_neg (vector float)
21398 vector double vec_neg (vector double)
21399 * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
21401 * config/rs6000/altivec.h: Add define for vec_neg
21402 * doc/extend.texi: Update the built-in documentation for the
21403 new built-in functions.
21405 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21407 PR tree-optimization/77644
21408 * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
21410 2017-05-10 Nathan Sidwell <nathan@acm.org>
21412 * dumpfile.h (TDI_lang_all): New.
21413 (TDF_KIND): New. Renumber others
21414 (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
21416 * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add
21418 (get_dump_file_name): Adjust suffix generation.
21419 (dump_enable_all): Use TDF_KIND.
21420 * doc/invoke.texi (-fdump-lang-all): Document.
21422 * dumpfile.h: Tabify.
21424 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com>
21427 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
21428 Move member access before delete.
21430 2017-05-10 Alexandre Oliva <aoliva@redhat.com>
21432 * tree-inline.c (expand_call_inline): Split block at stmt
21435 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
21438 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
21439 are now unused after splitting mov{sf,sd}_hardfloat.
21440 (f32_lr2): Likewise.
21441 (f32_lm): Likewise.
21442 (f32_lm2): Likewise.
21443 (f32_li): Likewise.
21444 (f32_li2): Likewise.
21445 (f32_lv): Likewise.
21446 (f32_sr): Likewise.
21447 (f32_sr2): Likewise.
21448 (f32_sm): Likewise.
21449 (f32_sm2): Likewise.
21450 (f32_si): Likewise.
21451 (f32_si2): Likewise.
21452 (f32_sv): Likewise.
21453 (f32_dm): Likewise.
21454 (f32_vsx): Likewise.
21455 (f32_av): Likewise.
21456 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
21457 For movsf, order stores so the VSX stores occur before the GPR
21458 store which encourages the register allocator to use a traditional
21459 FPR instead of a GPR. For movsd, order the stores so that the GPR
21460 store comes before the VSX stores to allow the power6 to work.
21461 This is due to the power6 not having a 32-bit integer store
21462 instruction from a FPR.
21463 (movsf_hardfloat): Likewise.
21464 (movsd_hardfloat): Likewise.
21466 2017-05-09 Martin Sebor <msebor@redhat.com>
21468 PR translation/80280
21469 * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
21472 PR translation/80280
21473 * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
21474 data member added in r247778.
21475 (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
21477 2017-05-09 Nathan Sidwell <nathan@acm.org>
21479 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
21481 * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
21484 2017-05-09 Marek Polacek <polacek@redhat.com>
21486 * doc/invoke.texi: Fix typo.
21488 2017-05-09 Richard Biener <rguenther@suse.de>
21490 * tree-vrp.c (vrp_val_is_max): Adjust comment.
21491 (vrp_val_is_min): Likewise.
21492 (set_value_range_to_value): Likewise.
21493 (set_value_range_to_nonnegative): Likewise.
21494 (gimple_assign_nonzero_p): Likewise.
21495 (gimple_stmt_nonzero_p): Likewise.
21496 (vrp_int_const_binop): Likewise. Remove unreachable case.
21497 (adjust_range_with_scev): Adjust comments.
21498 (compare_range_with_value): Likewise.
21499 (extract_range_from_phi_node): Likewise.
21500 (test_for_singularity): Likewise.
21502 2017-05-09 Richard Biener <rguenther@suse.de>
21504 * tree-vrp.c (get_single_symbol): Add assert that we don't
21505 get overflowed constants as invariant part.
21506 (compare_values_warnv): Add comment before the TREE_NO_WARNING
21507 checks. Use wi::cmp instead of recursing for integer constants.
21508 (compare_values): Just ignore whether we assumed undefined
21509 overflow instead of failing the compare.
21510 (extract_range_for_var_from_comparison_expr): Add comment before the
21511 TREE_NO_WARNING sets.
21512 (test_for_singularity): Likewise.
21513 (extract_range_from_comparison): Do not disable optimization
21514 when we assumed undefined overflow.
21515 (extract_range_basic): Remove init of unused var.
21517 2017-05-09 Richard Biener <rguenther@suse.de>
21519 * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
21520 (extract_range_from_multiplicative_op_1): Adjust.
21521 (extract_range_from_binary_expr_1): Use int_const_binop.
21523 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
21526 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
21527 rs6000_store_data_bypass_p in seven define_bypass directives and
21528 in several comments.
21529 * config/rs6000/rs6000-protos.h: Add prototype for
21530 rs6000_store_data_bypass_p function.
21531 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
21532 function implements slightly different (rs6000-specific) semantics
21533 than store_data_bypass_p, returning false rather than aborting
21534 with assertion error when arguments do not satisfy the
21535 requirements of store data bypass.
21536 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
21537 rs6000_store_data_bypass_p.
21539 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
21541 * config/xtensa/xtensa-protos.h
21542 (xtensa_initial_elimination_offset): New declaration.
21543 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
21544 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
21545 macro definition, add case for FRAME_POINTER_REGNUM when
21546 FRAME_GROWS_DOWNWARD.
21547 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
21548 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
21549 xtensa_initial_elimination_offset.
21551 2017-05-08 Nathan Sidwell <nathan@acm.org>
21553 * doc/invoke.texi: Alphabetize -fdump options.
21555 2017-05-08 Martin Sebor <msebor@redhat.com>
21557 PR translation/80280
21558 * config/sol2-c.c (solaris_pragma_align): Correct quoting.
21560 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
21562 * target.def (compute_frame_layout): New optional target hook.
21563 * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
21564 * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
21565 * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
21567 * reload1.c (verify_initial_elim_offsets): Likewise.
21568 * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
21569 (use_simple_return_p): Call arm_compute_frame_layout if needed.
21570 (arm_get_frame_offsets): Split up into this ...
21571 (arm_compute_frame_layout): ... and this function.
21573 2017-05-08 Richard Sandiford <richard.sandiford@arm.com>
21575 * config/aarch64/constraints.md (Usa): New constraint.
21576 * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
21578 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
21580 * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
21581 with_multilib_list after it has been checked.
21583 2017-05-08 Richard Biener <rguenther@suse.de>
21585 * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
21586 (bitmap_set_subtract_values): Likewise.
21588 2017-05-08 Richard Biener <rguenther@suse.de>
21590 * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
21591 (gimple_assign_nonzero): ... this and remove strict_overflow_p
21593 (gimple_stmt_nonzero_warnv_p): Rename to ...
21594 (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
21596 (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
21597 (extract_range_basic): Adjust, do not disable propagation on
21598 strict overflow sensitive simplification.
21599 (vrp_visit_cond_stmt): Likewise.
21601 2017-05-05 Jan Hubicka <hubicka@ucw.cz>
21603 * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
21604 body size unconditionally.
21606 2017-05-07 Jeff Law <law@redhat.com>
21609 2017-05-06 Jeff Law <law@redhat.com>
21610 PR tree-optimization/78496
21611 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
21614 PR tree-optimization/78496
21615 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
21616 (simplify_stmt_using_ranges): Call it.
21617 (vrp_dom_walker::before_dom_children): Extract equivalences
21618 from an ASSERT_EXPR with an equality comparison against a
21621 2017-05-06 Jeff Law <law@redhat.com>
21623 PR tree-optimization/78496
21624 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
21627 PR tree-optimization/78496
21628 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
21629 (simplify_stmt_using_ranges): Call it.
21630 (vrp_dom_walker::before_dom_children): Extract equivalences
21631 from an ASSERT_EXPR with an equality comparison against a
21634 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
21636 * lra-constraints.c (lra_copy_reg_equiv): New function.
21637 (split_reg): Use it to copy equivalence information from the
21638 original register to the spill register.
21640 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
21642 PR rtl-optimization/75964
21643 * simplify-rtx.c (simplify_const_relational_operation): Remove
21644 invalid handling of comparisons of integer ABS.
21646 2017-05-06 Uros Bizjak <ubizjak@gmail.com>
21648 * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
21649 initialize to zero.
21650 (init_regs): Remove declaration.
21651 (function_arg_advance_32): Initialize error_p as boolean variable.
21653 2017-05-05 Nathan Sidwell <nathan@acm.org>
21655 * store-motion.c (remove_reachable_equiv_notes): Reformat long
21656 lines. Use for (;;).
21658 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21660 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
21661 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
21662 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
21663 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
21664 VF=2 that require versioning.
21666 2017-05-05 David Malcolm <dmalcolm@redhat.com>
21668 * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
21671 2017-05-05 David Malcolm <dmalcolm@redhat.com>
21673 * diagnostic.h (diagnostic_override_option_index): Convert from
21674 macro to inline function.
21676 2017-05-05 David Malcolm <dmalcolm@redhat.com>
21678 * diagnostic.c (last_module_changed_p): New function.
21679 (set_last_module): New function.
21680 (diagnostic_report_current_module): Convert macro usage to
21681 the above functions.
21682 * diagnostic.h (diagnostic_context::last_module): Strengthen
21683 from const line_map * to const line_map_ordinary *.
21684 (diagnostic_last_module_changed): Delete macro.
21685 (diagnostic_set_last_module): Delete macro.
21687 2017-05-05 David Malcolm <dmalcolm@redhat.com>
21689 * diagnostic.c (diagnostic_impl): Replace report_diagnostic
21690 with diagnostic_report_diagnostic.
21691 (diagnostic_n_impl_richloc): Likewise.
21692 * diagnostic.h (report_diagnostic): Delete macro.
21693 * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
21694 with diagnostic_report_diagnostic.
21695 * substring-locations.c (format_warning_va): Likewise.
21697 2017-05-05 David Malcolm <dmalcolm@redhat.com>
21699 * diagnostic.c (diagnostic_report_diagnostic): Eliminate
21700 save/restor of format_spec. Move option-printing code to...
21701 (print_option_information): ...this new function, and
21702 reimplement by simply printing to the pretty_printer,
21703 rather than appending to the format string.
21705 2017-05-05 David Malcolm <dmalcolm@redhat.com>
21707 * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
21708 handling logic into...
21709 (update_effective_level_from_pragmas): ...this new function.
21711 2017-05-04 Andrew Waterman <andrew@sifive.com>
21713 * config/riscv/riscv.opt (mstrict-align): New option.
21714 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
21715 (SLOW_UNALIGNED_ACCESS): Define.
21716 (riscv_slow_unaligned_access): Declare.
21717 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
21719 (riscv_slow_unaligned_access): New variable.
21720 (rocket_tune_info): Set slow_unaligned_access to true.
21721 (optimize_size_tune_info): Set slow_unaligned_access to false.
21722 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
21723 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
21724 (riscv_option_override): Set riscv_slow_unaligned_access.
21725 * doc/invoke.texi: Add -mstrict-align to RISC-V.
21727 2017-05-04 Kito Cheng <kito.cheng@gmail.com>
21729 * config/riscv/riscv.md: Unify indentation.
21731 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
21736 * config/rs6000/rs6000.md (u code attribute): Add FIX and
21738 (extendsi<mode>2): Add support for doing sign extension via
21739 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
21740 don't have ISA 3.0 instructions.
21741 (extendsi<mode>2 splitter): Likewise.
21742 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
21743 generate the normal insns since SImode can now go in vector
21744 registers. Disallow the special UNSPECs needed for previous
21745 machines to hide SImode being used. Add new insns
21746 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
21747 (fix_trunc<mode>si2_stfiwx): Likewise.
21748 (fix_trunc<mode>si2_internal): Likewise.
21749 (fixuns_trunc<mode>si2): Likewise.
21750 (fixuns_trunc<mode>si2_stfiwx): Likewise.
21751 (fctiw<u>z_<mode>_smallint): Likewise.
21752 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
21753 of floating point to 32-bit integer from doing a direct move to
21754 the GPR registers to do a store.
21755 (fctiwz_<mode>): Break long line.
21757 2017-05-05 Bin Cheng <bin.cheng@arm.com>
21759 * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
21760 * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
21761 (addr_list, addr_offset_valid_p): New.
21762 (split_address_groups): Check offset validity with above function.
21763 (gt-tree-ssa-loop-ivopts.h): Include header file.
21765 2017-05-05 Nathan Sidwell <nathan@acm.org>
21767 * config.gcc (arm*-*-*): Add missing 'fi'.
21769 2017-05-05 Steve Ellcey <sellcey@cavium.com>
21771 * doc/invoke.texi (-fopt-info): Explicitly say order of options
21772 included in -fopt-info does not matter.
21773 * doc/optinfo.texi (-fopt-info): Fix description of default
21774 behavour. Explicitly say order of options included in -fopt-info
21777 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
21779 * config.gcc: Allow combinations of aprofile and rmprofile values for
21780 --with-multilib-list.
21781 * config/arm/t-multilib: New file.
21782 * config/arm/t-aprofile: Remove initialization of MULTILIB_*
21783 variables. Remove setting of ISA and floating-point ABI in
21784 MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in
21785 MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
21786 and MULTILIB_DIRNAMES respectively. Add comment to introduce all
21787 matches. Add architecture matches for marvel-pj4 and generic-armv7-a
21789 * config/arm/t-rmprofile: Likewise except for the matches changes.
21790 * doc/install.texi (--with-multilib-list): Document the combination of
21791 aprofile and rmprofile values and warn about pitfalls in doing that.
21793 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
21795 * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
21796 (movdi_aarch64): Likewise.
21798 2017-05-05 Jakub Jelinek <jakub@redhat.com>
21800 PR tree-optimization/80632
21801 * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
21803 (build_arrays): Initialize it for virtual phis.
21804 (fix_phi_nodes): Use it for virtual phis.
21806 PR tree-optimization/80558
21807 * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
21808 [x, y] op z into [x op, y op z] for op & or | if conditions
21811 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
21812 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
21815 * config/arm/arm.md (use_literal_pool): Remove.
21816 (64-bit immediate split): No longer takes cost into consideration
21817 if arm_disable_literal_pool is enabled.
21818 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
21819 used when arm_disable_literal_pool is enabled.
21820 (arm_max_const_double_inline_cost): Remove use of
21821 arm_disable_literal_pool.
21822 (push_minipool_fix): Add assert.
21823 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
21824 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
21825 (no_literal_pool_sf_immediate): New.
21827 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21829 PR tree-optimization/80613
21830 * tree-ssa-dce.c (propagate_necessity): Remove cases for
21831 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
21833 2017-05-05 Richard Biener <rguenther@suse.de>
21835 * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
21837 2017-05-05 Georg-Johann Lay <avr@gjlay.de>
21839 * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
21840 of this flag from insn conditions due to removal from r247495.
21842 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
21844 * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
21846 (arm_early_store_addr_dep_ptr): Likewise.
21847 * config/arm/aarch-common-protos.h
21848 (arm_early_load_addr_dep_ptr): Add prototype.
21849 (arm_early_store_addr_dep_ptr): Likewise.
21850 * config/arm/cortex-a53.md: Add new bypasses.
21852 2017-05-05 Jakub Jelinek <jakub@redhat.com>
21854 * tree.c (next_type_uid): Change type to unsigned.
21855 (type_hash_canon): Decrement back next_type_uid if
21856 freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs
21857 also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
21860 2017-05-04 Martin Sebor <msebor@redhat.com>
21862 * builtins.c: Fix a trivial typo in a comment.
21864 PR middle-end/79234
21865 * builtins.c (check_sizes): Adjust to handle reading past the end.
21866 Avoid printing excessive upper bound of ranges. Use %E to print
21867 tree nodes instead of converting them to %wu.
21868 (expand_builtin_memchr): New function.
21869 (compute_dest_size): Rename...
21870 (compute_objsize): ...to this.
21871 (expand_builtin_memcpy): Adjust.
21872 (expand_builtin_mempcpy): Adjust.
21873 (expand_builtin_strcat): Adjust.
21874 (expand_builtin_strcpy): Adjust.
21875 (check_strncat_sizes): Adjust.
21876 (expand_builtin_strncat): Adjust.
21877 (expand_builtin_strncpy): Adjust and simplify.
21878 (expand_builtin_memset): Adjust.
21879 (expand_builtin_bzero): Adjust.
21880 (expand_builtin_memcmp): Adjust.
21881 (expand_builtin): Handle memcmp.
21882 (maybe_emit_chk_warning): Check strncat just once.
21884 2017-05-04 Martin Sebor <msebor@redhat.com>
21886 PR preprocessor/79214
21887 PR middle-end/79222
21888 PR middle-end/79223
21889 * builtins.c (check_sizes): Add inlining context and issue
21890 warnings even when -Wno-system-headers is set.
21891 (check_strncat_sizes): Same.
21892 (expand_builtin_strncat): Same.
21893 (expand_builtin_memmove): New function.
21894 (expand_builtin_stpncpy): Same.
21895 (expand_builtin): Handle memmove and stpncpy.
21897 2017-05-04 Bin Cheng <bin.cheng@arm.com>
21899 * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
21900 which is not used any more.
21902 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
21904 * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
21906 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
21908 * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
21909 (cortexa53_tunings): Likewise.
21910 (cortexa57_tunings): Likewise.
21911 (cortexa72_tunings): Likewise.
21912 (cortexa73_tunings): Likewise.
21914 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
21916 * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
21917 Set loop alignment to 8.
21919 2017-05-04 Martin Sebor <msebor@redhat.com>
21921 PR translation/80280
21922 * builtins.c (expand_builtin_object_size): Add missing quoting to
21923 %D and like directives.
21924 * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
21925 (hsa_type_for_tree_type): Same.
21926 (verify_function_arguments): Same.
21927 * symtab.c (symbol_table::change_decl_assembler_name): Same.
21928 * varasm.c (get_section): Same.
21931 2017-05-04 Martin Sebor <msebor@redhat.com>
21933 PR translation/80280
21934 * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
21936 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
21938 * config/aarch64/aarch64.c (generic_addrcost_table):
21939 Change HI/TI mode setting.
21941 2017-05-04 Martin Jambor <mjambor@suse.cz>
21943 PR tree-optimization/80622
21944 * tree-sra.c (comes_initialized_p): New function.
21945 (build_accesses_from_assign): Only set write lazily when
21946 comes_initialized_p is false.
21947 (analyze_access_subtree): Use comes_initialized_p.
21948 (propagate_subaccesses_across_link): Assert !comes_initialized_p
21949 instead of testing for PARM_DECL.
21951 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21953 * config/aarch64/aarch64.md (prefetch); Adjust predicate and
21954 constraint on operand 0 to allow more general addressing modes.
21955 Adjust output template.
21956 * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
21958 * config/aarch64/aarch64-protos.h
21959 (aarch64_address_valid_for_prefetch_p): Declare prototype.
21960 * config/aarch64/constraints.md (Dp): New address constraint.
21961 * config/aarch64/predicates.md (aarch64_prefetch_operand): New
21964 2017-05-04 Jan Hubicka <hubicka@ucw.cz>
21966 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
21967 update use of estimate_ipcp_clone_size_and_time.
21968 (estimate_local_effects): Update use of
21969 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
21970 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
21971 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
21972 Return nonspecialized time.
21974 2017-05-04 Richard Biener <rguenther@suse.de>
21976 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
21977 for the last VUSE which def dominates the PHI. Directly call
21979 (get_continuation_for_phi_1): Remove.
21981 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org>
21983 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
21984 to explain the use of truncating division. Cap the number of
21985 iterations to the maximum given by nb_iterations_upper_bound,
21988 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
21990 * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
21991 * configure: Regenerate.
21992 * config.in: Regenerate.
21993 * config/i386/driver-mingw32.c: new file.
21994 * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
21995 * config.host: Link driver-mingw32.o on MinGW host.
21996 * doc/install.texi: Document new --enable-mingw-wildcard configure
21999 2017-05-04 Marek Polacek <polacek@redhat.com>
22001 PR tree-optimization/80612
22002 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
22004 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
22005 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
22007 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
22008 (movt splitter): Likewise.
22009 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
22010 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
22011 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
22012 block for Thumb-1 with MOVT.
22013 (thumb2_legitimate_address_p): Move code block ...
22014 (can_avoid_literal_pool_for_label_p): ... into this new function.
22015 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
22017 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
22018 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
22019 "M-profile targets with the MOVT instruction".
22021 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
22023 * config/arm/arm-builtins.c (arm_init_builtins): Rename
22024 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
22025 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
22027 2017-05-04 Martin Liska <mliska@suse.cz>
22029 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
22030 variable cond_code.
22032 2017-05-04 Richard Biener <rguenther@suse.de>
22034 * tree.c (array_at_struct_end_p): Handle arrays at struct
22035 end with flexarrays more conservatively. Refactor and treat
22036 arrays of arrays or aggregates more strict. Fix
22037 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
22038 * tree.c (array_at_struct_end_p): Adjust prototype.
22039 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
22040 * gimple-fold.c (get_range_strlen): Likewise.
22041 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
22043 2017-05-04 Richard Biener <rguenther@suse.de>
22045 PR tree-optimization/31130
22046 * tree-vrp.c (needs_overflow_infinity): Remove as always returning
22048 (supports_overflow_infinity): Likewise.
22049 (is_negative_overflow_infinity): Likewise.
22050 (is_positive_overflow_infinity): Likewise.
22051 (is_overflow_infinity): Likewise.
22052 (stmt_overflow_infinity): Likewise.
22053 (overflow_infinity_range_p): Likewise.
22054 (usable_range_p): Remove as always returning true.
22055 (make_overflow_infinity): Remove.
22056 (negative_overflow_infinity): Likewise.
22057 (positive_overflow_infinity): Likewise.
22058 (avoid_overflow_infinity): Likewise.
22059 (set_value_range): Adjust accordingly.
22060 (set_value_range_to_nonnegative): Likewise, remove now unused
22061 overflow_infinity arg.
22062 (vrp_operand_equal_p): Adjust.
22063 (update_value_range): Likewise.
22064 (range_int_cst_singleton_p): Likewise.
22065 (operand_less_p): Likewise.
22066 (compare_values_warnv): Likewise.
22067 (extract_range_for_var_from_comparison_expr): Likewise.
22068 (vrp_int_const_binop): Likewise.
22069 (zero_nonzero_bits_from_vr): Likewise.
22070 (extract_range_from_multiplicative_op_1): Likewise.
22071 (extract_range_from_binary_expr_1): Likewise.
22072 (extract_range_from_unary_expr): Likewise.
22073 (extract_range_from_comparison): Likewise.
22074 (extract_range_basic): Likewise.
22075 (adjust_range_with_scev): Likewise.
22076 (compare_ranges): Likewise.
22077 (compare_range_with_value): Likewise.
22078 (dump_value_range): Likewise.
22079 (test_for_singularity): Likewise, remove strict_overflow_p parameter
22081 (simplify_cond_using_ranges): Adjust.
22083 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
22085 * brig-builtins.def: Added a builtin for class_f64.
22086 * builtin-types.def: Added a builtin type needed by class_f64.
22088 2017-05-03 Jason Merrill <jason@redhat.com>
22090 * timevar.def: Add TV_CONSTEXPR.
22092 2017-05-03 David Malcolm <dmalcolm@redhat.com>
22094 * common.opt (fdiagnostics-parseable-fixits): Fix typo.
22096 2017-05-03 Martin Jambor <mjambor@suse.cz>
22098 * ipa-prop.c (ipa_update_after_lto_read): Removed.
22099 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
22100 * ipa-cp.c (ipcp_propagate_stage): Do not call
22101 ipa_update_after_lto_read.
22102 * ipa-inline.c (ipa_inline): Likewise.
22104 2017-05-03 Martin Jambor <mjambor@suse.cz>
22106 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY
22107 tag. Added a default constructor and a destructor.
22108 (ipa_edge_args_sum_t): New class;
22109 (ipa_edge_args_sum): Declare.
22110 (ipa_edge_args_vector): Remove declaration.
22111 (IPA_EDGE_REF): Use ipa_edge_args_sum.
22112 (ipa_free_edge_args_substructures): Remove declaration.
22113 (ipa_check_create_edge_args): Use ipa_edge_args_sum.
22114 (ipa_edge_args_info_available_for_edge_p): Likewise.
22115 * ipa-prop.c (ipa_edge_args_vector): Removed.
22116 (edge_removal_hook_holder): Likewise.
22117 (edge_duplication_hook_holder): Likewise.
22118 (ipa_edge_args_sum): New variable.
22119 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
22120 ipa_edge_args_vector.
22121 (ipa_free_edge_args_substructures): Likewise.
22122 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
22123 ipa_edge_args_vector.
22124 (ipa_edge_removal_hook): Turned into method
22125 ipa_edge_args_sum_t::remove.
22126 (ipa_edge_duplication_hook): Turned into method
22127 ipa_edge_args_sum_t::duplicate.
22128 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
22129 registering edge hooks.
22130 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
22131 * ipa-inline-analysis.c (estimate_function_body_sizes): Test
22132 ipa_edge_args_sum instead of ipa_edge_args_vector.
22133 * ipa-profile.c (ipa_profile): Likewise.
22135 2017-05-03 Martin Jambor <mjambor@suse.cz>
22137 * symbol-summary.h (function_summary): New method exists.
22138 (function_summary::symtab_removal): Deallocate through release.
22139 (call_summary): New class.
22140 (gt_ggc_mx): New overload.
22141 (gt_pch_nx): Likewise.
22142 (gt_pch_nx): Likewise.
22144 2017-05-03 Jeff Law <law@redhat.com>
22146 PR tree-optimization/78496
22147 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
22148 from simplify_cond_using_ranges. Split off code to walk
22149 backwards through casts into ...
22150 (simplify_cond_using_ranges_2): New function.
22151 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
22152 (execute_vrp): After identifying jump threads, call
22153 simplify_cond_using_ranges_2.
22155 2017-05-03 Jan Hubicka <hubicka@ucw.cz>
22158 * ipa-inline.h (inline_summary): Add ctor.
22159 (create_ggc): Do not use ggc_cleared_alloc.
22161 2017-05-03 Jeff Downs <heydowns@somuchpressure.net>
22162 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22164 * gcc.c (handle_braces): Support escaping in switch matching
22166 * doc/invoke.texi (Spec Files): Document it.
22167 Remove superfluous @code markup in items.
22169 2017-05-03 David Malcolm <dmalcolm@redhat.com>
22171 * diagnostic-show-locus.c (struct column_range): New struct.
22172 (get_affected_columns): New function.
22173 (get_printed_columns): New function.
22174 (struct correction): New struct.
22175 (correction::ensure_capacity): New function.
22176 (correction::ensure_terminated): New function.
22177 (struct line_corrections): New struct.
22178 (line_corrections::~line_corrections): New dtor.
22179 (line_corrections::add_hint): New function.
22180 (layout::print_trailing_fixits): Reimplement in terms of the new
22182 (selftest::test_overlapped_fixit_printing): New function.
22183 (selftest::diagnostic_show_locus_c_tests): Call it.
22185 2017-05-03 Nathan Sidwell <nathan@acm.org>
22187 Canonicalize canonical type hashing
22188 * tree.h (type_hash_canon_hash): Declare.
22189 * tree.c (type_hash_list, attribute_hash_list): Move into
22190 type_hash_canon_hash.
22191 (build_type_attribute_qual_variant): Break out hash code calc into
22192 type_hash_canon_hash.
22193 (type_hash_canon_hash): New. Generic type hash computation.
22194 (build_range_type_1, build_array_type_1, build_function_type,
22195 build_method_type_directly, build_offset_type, build_complex_type,
22196 make_vector_type): Call it.
22198 2017-05-03 Richard Biener <rguenther@suse.de>
22200 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
22201 When all DRs have unknown misaligned do not always peel
22202 when there is a store but apply the same costing model as if
22203 there were only loads.
22205 2017-05-03 Richard Biener <rguenther@suse.de>
22208 PR tree-optimization/80492
22209 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
22210 compare_base_decls returning dont-know properly.
22212 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
22214 * config/arm/iterators.md (CCSI): New mode iterator.
22215 (arch): New mode attribute.
22216 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
22217 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
22218 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI
22219 code iterator for success result mode.
22220 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
22221 the corresponding new insn generators.
22223 2017-05-03 Bin Cheng <bin.cheng@arm.com>
22226 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22227 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
22229 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org>
22231 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
22232 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
22233 (DDR_A): Wrap DDR argument in brackets.
22234 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
22235 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
22236 (DDR_REVERSED_P): Likewise.
22238 2017-05-03 Jakub Jelinek <jakub@redhat.com>
22240 PR tree-optimization/79472
22241 * tree-switch-conversion.c (struct switch_conv_info): Add
22242 contiguous_range and default_case_nonstandard fields.
22243 (collect_switch_conv_info): Compute contiguous_range and
22244 default_case_nonstandard fields, don't clear final_bb if
22245 contiguous_range and only the default case doesn't have the required
22247 (check_all_empty_except_final): Set default_case_nonstandard instead
22248 of failing if contiguous_range and the default case doesn't have empty
22250 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
22251 and only the default case doesn't have the required constants. Skip
22253 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW
22254 if default_case_nonstandard.
22255 (build_constructors): Build constant 1 just once. Assert that default
22256 values aren't inserted in between cases if contiguous_range. Skip
22258 (build_arrays): Skip virtual phis.
22259 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
22260 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
22261 Handle virtual phis.
22262 (gen_inbound_check): Handle default_case_nonstandard case.
22263 (process_switch): Adjust check_final_bb caller. Call
22264 gather_default_values with the first non-default case instead of
22265 default case if default_case_nonstandard.
22267 2017-05-02 Nathan Sidwell <nathan@acm.org>
22269 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
22270 check. Fix formatting.
22272 2017-05-02 Jan Hubicka <hubicka@ucw.cz>
22274 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
22275 errors when comparing specialized and unspecialized times.
22277 2017-05-02 David Malcolm <dmalcolm@redhat.com>
22279 * diagnostic-show-locus.c
22280 (layout::should_print_annotation_line_p): Make private.
22281 (layout::print_annotation_line): Make private.
22282 (layout::annotation_line_showed_range_p): Make private.
22283 (layout::show_ruler): Make private.
22284 (layout::print_source_line): Make private. Pass in line and
22285 line_width, rather than calling location_get_source_line. Drop
22287 (layout::print_leading_fixits): New method.
22288 (layout::print_any_fixits): Rename to...
22289 (layout::print_trailing_fixits): ...this, and make private.
22290 Don't print newline fixits.
22291 (diagnostic_show_locus): Move logic for printing one row into...
22292 (layout::print_line): ...this new function. Move the
22293 location_get_source_line call and error-handling from
22294 print_source_line to here. Call print_leading_fixits, and rename
22295 print_any_fixits to print_trailing_fixits.
22296 (selftest::test_fixit_insert_containing_newline): Update now that
22297 newlines are partially supported.
22298 (selftest::test_fixit_insert_containing_newline_2): New test.
22299 (selftest::test_fixit_replace_containing_newline): Update comments.
22300 (selftest::diagnostic_show_locus_c_tests): Call the new test.
22301 * edit-context.c (class added_line): New class.
22302 (class edited_line): Describe newline handling in comment.
22303 (edited_line::actually_edited_p): New method.
22304 (edited_line::print_content): Delete redundant decl.
22305 (edited_line::m_predecessors): New field.
22306 (edited_file::print_content): Call edited_line::print_content.
22307 (edited_file::print_diff): Update to support newlines.
22308 (edited_file::print_diff_hunk): Likewise.
22309 (edited_file::print_run_of_changed_lines): New function.
22310 (edited_file::print_diff_line): Convert to...
22311 (print_diff_line): ...this.
22312 (edited_file::get_effective_line_count): New function.
22313 (edited_line::edited_line): Initialize new field m_predecessors.
22314 (edited_line::~edited_line): Clean up m_predecessors.
22315 (edited_line::apply_fixit): Handle newlines.
22316 (edited_line::get_effective_line_count): New function.
22317 (edited_line::print_content): New function.
22318 (edited_line::print_diff_lines): New function.
22319 (selftest::test_applying_fixits_insert_containing_newline): New
22321 (selftest::test_applying_fixits_replace_containing_newline): New
22323 (selftest::insert_line): New function.
22324 (selftest::test_applying_fixits_multiple_lines): Add example of
22326 (selftest::edit_context_c_tests): Call the new tests.
22328 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22330 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
22331 parameter cand. Update dump information.
22332 (get_computation_cost): Update uses.
22334 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22336 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
22337 (get_computation_aff): Reorder parameters. Use get_computation_aff_1.
22338 (get_computation_at, rewrite_use_address): Update use of
22339 get_computation_aff.
22341 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22343 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
22344 (get_computation): Delete.
22345 (get_computation_cost): Implement like get_computation_cost_at.
22346 Use get_computation_at.
22347 (get_computation_cost_at): Delete.
22348 (rewrite_use_nonlinear_expr): Use get_computation_at.
22349 (rewrite_use_compare, remove_unused_ivs): Ditto.
22351 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22353 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
22355 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22357 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
22358 (ivopts_global_cost_for_size): Rename parameter and update uses.
22359 (iv_ca_recount_cost): Update uses.
22360 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
22361 candidates seperately in n_invs and n_cands.
22362 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
22364 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22366 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
22367 (find_inv_vars_cb): New.
22368 (find_depends): Renamed to ...
22369 (find_inv_vars): ... this.
22370 (add_candidate_1, force_var_cost): Call find_inv_vars.
22371 (split_address_cost, determine_group_iv_cost_cond): Ditto.
22373 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22375 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
22376 inv_vars. Add inv_exprs.
22377 (struct iv_cand): Rename depends_on to inv_vars.
22378 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
22379 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around.
22380 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
22381 (dump_cand): Dump inv_vars.
22382 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
22383 (record_invariant, find_depends, add_candidate_1): Ditto.
22384 (set_group_iv_cost, force_var_cost): Ditto.
22385 (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
22386 (get_computation_cost_at, get_computation_cost): Ditto.
22387 (determine_group_iv_cost_generic): Ditto.
22388 (determine_group_iv_cost_address): Ditto.
22389 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
22390 (determine_group_iv_costs): Ditto.
22391 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
22392 (iv_ca_set_remove_invariants): Renamed to ...
22393 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs.
22394 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
22395 (iv_ca_set_add_invariants): Renamed to ...
22396 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs.
22397 (iv_ca_set_cp): Use iv_ca_set_add_invs.
22398 (iv_ca_has_deps): Support inv_vars and inv_exprs.
22399 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
22400 (create_new_ivs): Remove useless dump.
22402 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22404 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
22406 (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
22407 (iv_ca_set_no_cp, create_new_iv): Ditto.
22409 2017-05-02 Bin Cheng <bin.cheng@arm.com>
22411 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
22413 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
22415 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
22416 function tree_check2.
22418 2017-05-02 Martin Liska <mliska@suse.cz>
22420 * doc/gcov.texi: Add missing preposition.
22421 * gcov.c (function_info::function_info): Properly fill up
22422 all member variables.
22424 2017-05-02 Tamar Christina <tamar.christina@arm.com>
22426 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
22428 2017-05-02 Tamar Christina <tamar.christina@arm.com>
22430 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
22432 2017-05-02 Martin Liska <mliska@suse.cz>
22435 * lto-streamer-in.c (lto_read_tree_1): Remove
22436 LTO_STREAMER_DEBUG.
22437 * lto-streamer.c (struct tree_hash_entry): Likewise.
22438 (struct tree_entry_hasher): Likewise.
22439 (tree_entry_hasher::hash): Likewise.
22440 (tree_entry_hasher::equal): Likewise.
22441 (lto_streamer_init): Likewise.
22442 (lto_orig_address_map): Likewise.
22443 (lto_orig_address_get): Likewise.
22444 (lto_orig_address_remove): Likewise.
22445 * lto-streamer.h: Likewise.
22446 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
22447 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
22449 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com>
22451 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
22452 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
22453 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
22454 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
22455 (mm_maskz_sub_round_ss, _mm_mask_add_sd)
22456 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
22457 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
22458 (mm_maskz_sub_ss): New intrinsics.
22459 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
22460 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
22461 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
22462 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
22463 (__builtin_ia32_subss_mask_round): New builtins.
22464 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
22465 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
22466 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
22468 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
22469 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
22471 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
22474 2017-05-02 Martin Jambor <mjambor@suse.cz>
22476 PR tree-optimization/78687
22477 * tree-sra.c (access): New field parent.
22478 (process_subtree_disqualification): New function.
22479 (disqualify_candidate): Call it.
22480 (build_accesses_from_assign): Reset write flag if creating an
22482 (build_access_subtree): Fill in parent field and also prpagate
22483 down grp_write flag.
22484 (create_artificial_child_access): New parameter set_grp_write, set
22485 grp_write to its value.
22486 (propagate_subaccesses_across_link): Also propagate grp_write flag
22488 (propagate_all_subaccesses): Push the closest parent back to work
22489 queue if add_access_to_work_queue returned true.
22491 2017-05-02 Richard Biener <rguenther@suse.de>
22493 * common.opt (fstrict-overflow): Alias negative to fwrapv.
22494 * doc/invoke.texi (fstrict-overflow): Remove all traces of
22495 -fstrict-overflow documentation.
22496 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
22497 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
22498 flag_strict_overflow.
22499 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
22500 * lto-opts.c (lto_write_options): Do not stream it.
22501 * lto-wrapper.c (merge_and_complain): Do not handle it.
22502 * opts.c (default_options_table): Do not set -fstrict-overflow.
22503 (finish_options): Likewise do not clear it when sanitizing.
22504 * simplify-rtx.c (simplify_const_relational_operation): Do not
22505 test flag_strict_overflow.
22507 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
22509 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
22510 using enabled attribute.
22511 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
22512 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
22513 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
22514 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
22515 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
22516 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
22517 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
22518 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
22519 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
22520 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
22522 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
22524 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
22526 2017-05-02 Richard Biener <rguenther@suse.de>
22528 PR tree-optimization/80591
22530 2017-04-10 Richard Biener <rguenther@suse.de>
22532 * tree-ssa-structalias.c (find_func_aliases): Properly handle
22535 2017-05-02 Richard Biener <rguenther@suse.de>
22537 PR tree-optimization/80549
22538 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
22539 (cleanup_tree_cfg_noloop): Create forwarders to known loop
22540 headers if they do not have a preheader.
22542 2017-05-02 Martin Liska <mliska@suse.cz>
22545 * common.opt: Fix typo.
22546 * doc/invoke.texi: Likewise.
22548 2017-05-01 Jan Beulich <jbeulich@suse.com>
22550 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
22551 swapping, add (x,x,m,x,n) alternative.
22553 2017-05-01 Nathan Sidwell <nathan@acm.org>
22555 * calls.c (combine_pending_stack_adjustment_and_call): Remove
22556 unnecessary unadjusted_alignment check.
22558 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
22561 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
22563 * gimplify.c (gimplify_cilk_detach): New function.
22564 (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
22565 * tree-core.h: Document EXPR_CILK_SPAWN.
22566 * tree.h (EXPR_CILK_SPAWN): Define.
22568 2017-05-01 David Malcolm <dmalcolm@redhat.com>
22570 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
22571 to use new fixit_hint representation, using the "replace" logic.
22572 (get_line_span_for_fixit_hint): Likewise.
22573 (layout::print_any_fixits): Likewise.
22574 (selftest::test_one_liner_many_fixits): Rename to...
22575 (selftest::test_one_liner_many_fixits_1): ...this, and update
22576 comment and expected output to reflect that the multiple fix-it
22577 hints are now consolidated into one insertion.
22578 (selftest::test_one_liner_many_fixits_2): New test.
22579 (selftest::test_diagnostic_show_locus_one_liner): Update for
22581 (selftest::test_fixit_consolidation): Update for fix-it API
22583 * diagnostic.c (print_parseable_fixits): Likewise.
22584 * edit-context.c (edited_line::m_line_events): Convert from
22585 auto_vec <line_event *> to auto_vec <line_event>.
22586 (class line_event): Convert from abstract base class to a concrete
22587 class, taking over the role of replace_event.
22588 (class insert_event): Delete.
22589 (class replace_event): Rename to class line_event. Convert to
22591 (edit_context::add_fixits): Reimplement.
22592 (edit_context::apply_insert): Delete.
22593 (edit_context::apply_replace): Rename to...
22594 (edit_context::apply_fixit): ...this. Convert to half-open range.
22595 (edited_file::apply_insert): Delete.
22596 (edited_file::apply_replace): Rename to...
22597 (edited_file::apply_fixit): ...this.
22598 (edited_line::~edited_line): Drop deletion of events.
22599 (edited_line::apply_insert): Delete.
22600 (edited_line::apply_replace): Rename to...
22601 (edited_line::apply_fixit): ...this. Convert to half-open range.
22602 Update for change to type of m_line_events.
22603 * edit-context.h (edit_context::apply_insert): Delete.
22604 (edit_context::apply_replace): Rename to...
22605 (edit_context::apply_fixit): ...this.
22607 2017-05-01 Martin Sebor <msebor@redhat.com>
22609 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
22612 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
22615 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
22616 __get_cpuid_max returns 0.
22617 (__get_cpuid_count): Ditto.
22619 2017-05-01 Eric Botcazou <ebotcazou@adacore.com>
22621 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
22622 replacement expression is another instance of one of its arguments.
22624 2017-05-01 Jakub Jelinek <jakub@redhat.com>
22627 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
22628 check for stack push/pop autoinc.
22629 * config/i386/i386.c (ix86_agi_dependent): Return false
22630 if the only reason why modified_in_p returned true is that
22631 addr is SP based and set_insn is a push or pop.
22633 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
22635 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
22638 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
22641 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
22642 (account_size_time): Use two predicates - exec_pred and
22644 (evaluate_conditions_for_known_args): Compute both clause and
22646 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
22647 (inline_summary_t::duplicate): Update.
22648 (estimate_function_body_sizes): Caluculate exec and nonconst predicates
22650 (compute_inline_parameters): Likewise.
22651 (estimate_edge_size_and_time): Update caluclation of time.
22652 (estimate_node_size_and_time): Compute both time and nonspecialized
22654 (estimate_ipcp_clone_size_and_time): Update.
22655 (inline_merge_summary): Update.
22656 (do_estimate_edge_time): Update.
22657 (do_estimate_edge_size): Update.
22658 (do_estimate_edge_hints): Update.
22659 (inline_read_section, inline_write_summary): Stream both new predicates.
22660 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
22662 (compute_inlined_call_time): Cleanup.
22663 (big_speedup_p): Update.
22664 (edge_badness): Update.
22665 * ipa-inline.h (INLINE_TIME_SCALE): Remove.
22666 (size_time_entry): Replace predicate by exec_predicate and
22667 nonconst_predicate.
22668 (edge_growth_cache_entry): Cache both time nad nonspecialized time.
22669 (estimate_edge_time): Return also nonspec_time.
22670 (reset_edge_growth_cache): Update.
22672 2017-04-29 Jakub Jelinek <jakub@redhat.com>
22674 PR rtl-optimization/80491
22675 * ifcvt.c (noce_process_if_block): When looking for x setter
22676 with missing else_bb, don't check only the insn right before
22677 cond_earliest, but look for the last insn that x is modified in
22678 within the same bb.
22680 PR rtl-optimization/80491
22681 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
22683 2017-04-29 Marc Glisse <marc.glisse@inria.fr>
22685 PR tree-optimization/80487
22686 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
22688 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22690 PR tree-optimization/79697
22691 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
22692 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
22693 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
22695 * gimple-fold.c (gimple_fold_builtin_realloc): New function.
22696 (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
22698 2017-04-28 Martin Sebor <msebor@redhat.com>
22700 PR tree-optimization/80523
22701 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
22702 (init_target_to_host_charmap, target_to_host, target_strtol10): New
22704 (maybe_warn, format_directive, parse_directive): Use new functions.
22705 (pass_sprintf_length::execute): Call init_target_to_host_charmap.
22707 2017-04-28 Marc Glisse <marc.glisse@inria.fr>
22709 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
22711 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
22713 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
22714 target_header_dir): Set correctly.
22715 * configure: Regenerated.
22716 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
22717 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
22718 instead of SYSTEM_HEADER_DIR.
22720 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
22722 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
22723 (estimate_local_effects): Likewise.
22724 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
22725 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
22726 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
22727 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
22728 do_estimate_edge_time, estimate_edge_time): Likewise.
22729 * ipa-inline-analysis.c (estimate_node_size_and_time,
22730 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
22731 (estimate_time_after_inlining): Remove.
22733 2017-04-28 Martin Liska <mliska@suse.cz>
22735 * doc/gcov.texi: Enhance documentation of gcov.
22737 2017-04-28 Martin Liska <mliska@suse.cz>
22739 * doc/gcov.texi: Sort options in alphabetic order.
22740 * doc/gcov-dump.texi: Likewise.
22741 * doc/gcov-tool.texi: Likewise.
22742 * gcov.c (print_usage): Likewise.
22743 * gcov-dump.c (print_usage): Likewise.
22744 * gcov-tool.c (print_merge_usage_message): Likewise.
22745 (print_rewrite_usage_message): Likewise.
22746 (print_overlap_usage_message): Likewise.
22748 2017-04-28 Martin Liska <mliska@suse.cz>
22750 PR gcov-profile/53915
22751 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
22753 2017-04-28 Martin Liska <mliska@suse.cz>
22755 PR gcov-profile/79891
22756 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
22757 is marked by compiler as living on a line.
22758 (get_cycles_count): Remove usage of the union.
22759 (output_intermediate_file): Likewise.
22760 (find_source): Fix GNU coding style.
22761 (accumulate_line_counts): Remove old non-all block mode.
22762 (output_lines): Remove usage of the union.
22763 * profile.c (output_location): Include all BBs, even if
22764 belonging to a same line (and file) as a previous BB.
22766 2017-04-28 Martin Liska <mliska@suse.cz>
22768 * gcov.c (process_args): Handle new argument 'w'.
22769 (read_graph_file): Assign ID to BBs.
22770 (output_branch_count): Display BB # if verbose flag is set.
22771 (output_lines): Likewise for arcs.
22772 (print_usage): Add '--verbose' option help.
22773 * doc/gcov.texi: Document --verbose (-w) option.
22775 2017-04-28 Martin Liska <mliska@suse.cz>
22777 * gcov.c (struct block_location_info): New struct.
22778 (process_file): Fill up the new structure.
22779 (read_graph_file): Replace usage of encoding by the newly added
22781 (add_line_counts): Likewise.
22782 (accumulate_line_counts): Remove usage of the union.
22783 (function_info::function_info): New function.
22784 (function_info::~function_info): Likewise.
22785 (process_file): Call delete instead of release_function.
22786 (release_function): Release the function.
22787 (release_structures): Call delete instead of release_function.
22788 (solve_flow_graph): Replace usage of num_blocks.
22789 (find_exception_blocks): Likewise.
22790 (output_lines): Fix GNU coding style.
22792 2017-04-28 Martin Liska <mliska@suse.cz>
22795 * coverage.c (coverage_remove_note_file): New function.
22796 * coverage.h: Declare the function.
22797 * toplev.c (finalize): Clean if an error has been seen.
22799 2017-04-28 Martin Liska <mliska@suse.cz>
22801 PR gcov-profile/80031
22802 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
22803 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
22804 * gcov.c (read_graph_file): Read just number of blocks.
22805 * profile.c (branch_prob): Do not stream 0 flags per a basic
22808 2017-04-28 Martin Liska <mliska@suse.cz>
22810 * gcov-dump.c (tag_*): Add new argument to declarations.
22811 (dump_gcov_file): Likewise.
22812 (tag_blocks): Add and use new argument depth.
22813 (tag_arcs): Likewise.
22814 (tag_lines): Likewise.
22815 (tag_counters): Likewise.
22816 (tag_summary): Likewise.
22817 (dump_working_sets): Use depth to do a proper indentation.
22819 2017-04-28 Jakub Jelinek <jakub@redhat.com>
22822 * cgraph.h (symtab_node::debug_symtab): No longer inline.
22823 * symtab.c (symtab_node::debug_symtab): Move definition here.
22825 2017-04-28 Richard Biener <rguenther@suse.de>
22827 * lto-streamer.h (LTO_major_version): Bump to 7.
22829 2017-04-28 Richard Biener <rguenther@suse.de>
22831 * tree-vrp.c (assert_info): New struct.
22832 (add_assert_info): New helper.
22833 (register_edge_assert_for_2): Refactor to add asserts to a vector
22835 (register_edge_assert_for_1): Likewise.
22836 (register_edge_assert_for): Likewise.
22837 (finish_register_edge_assert_for): New helper actually registering
22838 asserts where live on edge.
22839 (find_conditional_asserts): Adjust.
22840 (find_switch_asserts): Likewise.
22841 (evrp_dom_walker::try_find_new_range): Generalize.
22842 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
22844 2017-04-27 Marek Polacek <polacek@redhat.com>
22847 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
22848 arg10 and arg11 to itype.
22850 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
22852 * doc/extend.texi (Object Size Checking): Improve grammar.
22854 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
22857 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
22858 that the logic for permitting reciprocal estimates matches that
22861 2017-04-27 Jakub Jelinek <jakub@redhat.com>
22864 * tree.c (type_cache_hasher::equal): Only compare
22865 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
22866 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
22867 non-aggregate element types.
22868 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
22869 about the flag on ARRAY_TYPEs in the comment, formatting fix.
22871 2017-04-27 Richard Biener <rguenther@suse.de>
22873 PR middle-end/80533
22874 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
22875 stripping ARRAY_REFs from MEM_EXPR make sure we're not
22876 keeping a reference to a trailing array.
22878 2017-04-27 Richard Biener <rguenther@suse.de>
22880 PR middle-end/80539
22881 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
22882 being in loop-closed SSA form conservatively.
22883 (chrec_fold_multiply_poly_poly): Likewise.
22885 2017-04-27 Tamar Christina <tamar.christina@arm.com>
22887 PR middle-end/79665
22888 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
22889 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
22891 2017-04-27 Jakub Jelinek <jakub@redhat.com>
22894 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
22895 (aarch64_function_arg_alignment): Return unsigned int again, but still
22896 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
22897 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
22898 Don't emit -Wpsabi note.
22899 (aarch64_function_arg_boundary): Likewise.
22900 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
22903 2017-04-26 Nathan Sidwell <nathan@acm.org>
22905 * tree.h (crc32_unsigned_n): Declare.
22906 (crc32_unsigned, crc32_unsigned): Make inline.
22907 * tree.c (crc32_unsigned_bits): Replace with ...
22908 (crc32_unsigned_n): ... this.
22909 (crc32_unsigned, crc32_byte): Remove.
22910 (crc32_string): Remove unnecessary braces.
22912 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
22914 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
22915 * ipa-inline-analysis.c (MAX_TIME): Remove.
22916 (account_size_time): Use sreal for time.
22917 (dump_inline_summary): Update.
22918 (estimate_function_body_sizes): Update.
22919 (estimate_edge_size_and_time): Update.
22920 (estimate_calls_size_and_time): Update.
22921 (estimate_node_size_and_time): Update.
22922 (inline_merge_summary): Update.
22923 (inline_update_overall_summary): Update.
22924 (estimate_time_after_inlining): Update.
22925 (inline_read_section): Update.
22926 (inline_write_summary): Update.
22927 * ipa-inline.c (compute_uninlined_call_time): Update.
22928 (compute_inlined_call_time): Update.
22929 (recursive_inlining): Update.
22930 (inline_small_functions): Update.
22931 (dump_overall_stats): Update.
22932 * ipa-inline.h: Include sreal.h.
22933 (size_time_entry): Turn time to sreal.
22934 (inline_summary): Turn self_time nad time to sreal.
22936 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
22938 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
22940 (sreal::stream_out, sreal::stream_in): New.
22941 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
22943 2017-04-25 Jakub Jelinek <jakub@redhat.com>
22945 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
22948 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
22951 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
22953 (dimode_scalar_chain::compute_convert_gain): Ditto.
22954 (dimode_scalar_chain::make_vector_copies): Ditto.
22955 (dimode_scalar_chain::convert_reg): Ditto.
22956 (dimode_scalar_chain::convert_insn): Ditto.
22957 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
22958 (VI248_AVX512BW_1): New mode iterator.
22959 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
22960 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
22963 2017-04-25 Martin Sebor <msebor@redhat.com>
22965 PR tree-optimization/80497
22966 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
22967 constants are representable in HOST_WIDE_INT.
22968 (parse_directive): Ditto.
22970 2017-04-25 Martin Sebor <msebor@redhat.com>
22973 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
22974 (new_zero_array): Adjust signature.
22975 (dom_info::dom_init): Used unsigned rather that size_t.
22976 (dom_info::dom_info): Same.
22978 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22979 Jakub Jelinek <jakub@redhat.com>
22982 * config/arm/arm.c: Include gimple.h.
22983 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
22984 returns negative, increment ncrn only if it returned positive.
22985 (arm_needs_doubleword_align): Return int instead of bool,
22986 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
22987 members, but if there is any such non-FIELD_DECL
22988 > PARM_BOUNDARY aligned decl, return -1 instead of false.
22989 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
22990 returns negative, increment nregs only if it returned positive.
22991 (arm_setup_incoming_varargs): Likewise.
22992 (arm_function_arg_boundary): Emit -Wpsabi note if
22993 arm_needs_doubleword_align returns negative, return
22994 DOUBLEWORD_ALIGNMENT only if it returned positive.
22996 2017-04-25 Marek Polacek <polacek@redhat.com>
22999 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
23000 first argument to type.
23002 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
23005 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
23006 type checks to test for compatibility instead of equality.
23008 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23009 Jakub Jelinek <jakub@redhat.com>
23012 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
23014 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
23015 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
23016 the alignment computation, but return their maximum in warn_alignment.
23017 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
23018 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
23020 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
23021 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
23024 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23026 * config/arc/simdext.md (dmpyh): Fix typo.
23028 2017-04-25 Richard Biener <rguenther@suse.de>
23030 PR tree-optimization/80492
23031 * alias.c (compare_base_decls): Handle registers with asm
23032 specification conservatively.
23033 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
23034 compare_base_decls returning dont-know properly.
23036 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23038 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
23039 (legitimate_offset_address_p): New function.
23040 (arc_legitimate_address_p): Use above function.
23042 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23044 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
23046 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23048 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
23049 ACCH registers whenever they are available.
23051 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23053 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
23054 double regs fix when not used.
23056 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23058 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
23060 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
23061 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
23063 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23065 * config/arc/arc.c (arc_output_addsi): Check for h-register class
23066 when emitting short ADD instructions.
23068 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23070 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
23072 (cmpsi_cc_c_insn): Likewise.
23073 (cbranchsi4_scratch): Compute proper instruction length using
23074 compact_hreg_operand.
23075 * config/arc/predicates.md (compact_hreg_operand): New predicate.
23077 2017-04-25 Richard Biener <rguenther@suse.de>
23079 PR middle-end/80509
23080 * passes.c (pass_manager::pass_manager): Initialize
23081 m_name_to_pass_map.
23083 2017-04-25 Richard Biener <rguenther@suse.de>
23085 PR tree-optimization/79201
23086 * tree-ssa-sink.c (statement_sink_location): Handle calls.
23088 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23091 * config/s390/vector.md: Split MEM->GPR vector moves for
23092 non-s_operand addresses.
23094 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23097 * config/s390/predicates.md (reload_const_wide_int_operand): New
23099 * config/s390/s390.md ("movti"): Remove d/P alternative.
23100 ("movti_bigconst"): New pattern definition.
23102 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
23105 * s390-protos.h (s390_expand_cs_hqi): Removed.
23106 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
23107 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
23108 modes as well as CCZ1mode and CCZmode.
23109 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
23110 signature of s390_emit_compare_and_swap.
23111 (s390_expand_cs_hqi): Likewise, make static.
23112 (s390_expand_cs_tdsi): Generate an explicit compare before trying
23113 compare-and-swap, in some cases.
23114 (s390_expand_cs): Wrapper function.
23115 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
23117 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
23118 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
23119 patterns for small and large integers. Forbid symref memory operands.
23120 Move expander to s390.c. Require cc register.
23121 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
23122 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
23123 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
23124 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
23125 symref memory operands. Remove CC mode and call s390_match_ccmode
23127 ("atomic_exchange<mode>"): Allow and implement all integer modes.
23129 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
23131 * config/s390/s390.md (define_peephole2): New peephole to help
23132 combining the load-and-test pattern with volatile memory.
23134 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
23136 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
23137 with CCZmode for TARGET_Z196.
23139 2017-04-25 Jakub Jelinek <jakub@redhat.com>
23141 PR rtl-optimization/80501
23142 * combine.c (make_compound_operation_int): Set subreg_code to SET
23143 even for AND with mask of the sign bit of mode.
23145 PR rtl-optimization/80500
23146 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
23147 sum's initial value.
23149 2017-04-25 Julian Brown <julian@codesourcery.com>
23150 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
23152 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
23154 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
23156 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
23158 2017-04-25 Julian Brown <julian@codesourcery.com>
23159 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
23161 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
23162 (thunderx2t99_sha): New Reservation.
23164 2017-04-25 Julian Brown <julian@codesourcery.com>
23165 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
23167 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
23168 type for 1-element load.
23170 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
23172 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
23174 2017-04-24 Martin Jambor <mjambor@suse.cz>
23176 PR tree-optimization/80293
23177 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
23178 char arrays not totally scalarizable if it is false.
23179 (analyze_all_variable_accesses): Pass correct value in the new
23180 parameter. Add a statistics counter.
23182 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
23184 PR middle-end/79931
23185 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
23187 2017-04-24 Richard Biener <rguenther@suse.de>
23189 PR tree-optimization/80494
23190 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
23191 out for complex types.
23193 2017-04-24 Richard Biener <rguenther@suse.de>
23195 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
23196 * tree-ssa-sccvn.c (print_scc): Print SCC size.
23197 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
23198 (DFS): Adjust and never fail.
23199 (sccvn_dom_walker::fail): Remove.
23200 (sccvn_dom_walker::before_dom_children): Adjust.
23201 (run_scc_vn): Likewise and never fail.
23202 * tree-ssa-pre.c (pass_pre::execute): Adjust.
23203 (pass_fre::execute): Likewise.
23205 2017-04-24 Richard Biener <rguenther@suse.de>
23207 PR tree-optimization/79725
23208 * tree-ssa-sink.c (statement_sink_location): Return whether
23209 failure reason was zero uses. Move that check later.
23210 (sink_code_in_bb): Deal with zero uses by removing the stmt
23213 2017-04-24 Richard Biener <rguenther@suse.de>
23216 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
23217 pointer-based references.
23219 2017-04-24 Richard Biener <rguenther@suse.de>
23222 * pass_manager.h (pass_manager::operator new): Remove.
23223 (pass_manager::operator delete): Likewise.
23224 * passes.c (pass_manager::operator new): Remove.
23225 (pass_manager::operator delete): Likewise.
23226 (pass_manager::pass_manager): Zero individual pass members.
23228 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
23231 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
23232 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
23233 Check "XEXP (src, 1)" operand here.
23234 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
23235 Check "XEXP (src, 1)" operand here.
23236 (dimode_scalar_chain::make_vector_copies): Detect count register
23237 of a shift instruction. Zero extend count register from QImode
23238 to DImode to satisfy vector shift pattern count operand predicate.
23239 Substitute vector shift count operand with a DImode copy.
23240 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
23243 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
23245 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
23246 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
23247 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
23248 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
23249 (UNSPEC_NOREX_MEM): Remove definition.
23251 2017-04-21 Richard Biener <rguenther@suse.de>
23253 PR tree-optimization/79547
23254 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
23255 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
23256 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
23257 without any constraints.
23259 2017-04-21 Richard Biener <rguenther@suse.de>
23261 PR tree-optimization/78847
23262 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
23264 2017-04-21 Richard Biener <rguenther@suse.de>
23266 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
23267 (build_distinct_type_copy): Likewise.
23268 (build_variant_type_copy): Likewise.
23269 * tree.c (build_qualified_type): Pass down mem-stat info.
23270 (build_distinct_type_copy): Likewise.
23271 (build_variant_type_copy): Likewise.
23273 2017-04-21 Richard Biener <rguenther@suse.de>
23275 PR tree-optimization/80237
23276 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
23278 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
23279 for a simplified result.
23281 2016-04-21 Richard Biener <rguenther@suse.de>
23283 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
23284 sth as strict as a simple_iv but a chrec without symbols and an
23285 operand defined in the loop we are peeling (and not some subloop).
23286 (propagate_constants_for_unrolling): Propagate all constants.
23288 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
23291 * config/i386/i386.c (print_reg): Remove assert for disalowed
23292 regno values, call output_operand_lossage instead.
23294 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
23297 * config/i386/constraints.md (Yc): New register constraint.
23298 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
23299 Use Yc constraint for alternative 2 of operand 0. Remove
23300 preferred_for_speed attribute.
23302 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
23304 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
23305 lastprivate clauses in SIMT case.
23307 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
23309 * doc/invoke.texi (-Wextra-semi): Document new warning option.
23311 2017-04-20 Richard Biener <rguenther@suse.de>
23313 PR tree-optimization/57796
23314 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
23315 as N scalar stores.
23316 (vect_model_load_cost): Cost gathers as N scalar loads.
23318 2017-04-20 Richard Biener <rguenther@suse.de>
23320 * ggc-page.c (ggc_allocated_p): Rename to ...
23321 (safe_lookup_page_table_entry): ... this and return the lookup
23323 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
23325 2017-04-20 Richard Biener <rguenther@suse.de>
23327 PR tree-optimization/80453
23328 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
23329 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
23330 from the conditions.
23331 (vn_phi_eq): Pass them down.
23332 (vn_phi_lookup): Record them.
23333 (vn_phi_insert): Likewise.
23335 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
23337 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
23338 uninitialized variable warning to avoid buffer overrun.
23340 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
23343 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
23344 is suppressed for '{ 0 }' in C.
23346 2017-04-20 Jakub Jelinek <jakub@redhat.com>
23348 * BASE-VER: Set to 8.0.0.
23350 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
23352 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
23353 priority .init_array and .fini_array section with SECTION_NOTYPE
23356 2017-04-20 Jakub Jelinek <jakub@redhat.com>
23358 PR middle-end/80423
23359 * tree.h (build_array_type): Add typeless_storage default argument.
23360 * tree.c (type_cache_hasher::equal): Also compare
23361 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
23362 (build_array_type): Add typeless_storage argument, set
23363 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
23365 (build_nonshared_array_type): Adjust build_array_type_1 caller.
23366 (build_array_type): Likewise. Add typeless_storage argument.
23368 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
23369 Jakub Jelinek <jakub@redhat.com>
23371 PR tree-optimization/80426
23372 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
23373 operation on symbolic operands, also compute the overflow for the
23374 invariant part when the operation degenerates into a negation.
23376 2017-04-19 Jakub Jelinek <jakub@redhat.com>
23379 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
23380 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
23383 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
23385 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
23388 * config/avr/avr.c (tree.h): Include it.
23389 (cgraph.h): Include it.
23390 (avr_encode_section_info): Don't warn for uninitialized progmem
23391 variable if it's just an alias.
23393 2017-04-19 Richard Biener <rguenther@suse.de>
23396 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
23397 when needed by AutoPGO.
23399 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
23402 * doc/lto.texi: Remove an extra 'that'.
23404 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
23406 PR rtl-optimization/80429
23407 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
23408 are only used in debug insns.
23410 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
23411 Vladimir Makarov <vmakarov@redhat.com>
23413 * config/sparc/predicates.md (input_operand): Add comment. Return
23414 true for any memory operand when LRA is in progress.
23415 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
23417 2017-04-18 Jeff Law <law@redhat.com>
23420 * mips.md ({return,simple_return}_internal): Do not overwrite
23423 2017-04-18 Jakub Jelinek <jakub@redhat.com>
23425 PR tree-optimization/80443
23426 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
23427 instead of adding 1, subtract -1 and similarly instead of subtracting
23430 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
23432 PR rtl-optimization/80357
23433 * haifa-sched.c (tmp_bitmap): New variable.
23434 (model_recompute): Handle duplicate use records.
23435 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
23436 (free_global_sched_pressure_data): Free it.
23438 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
23441 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
23442 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
23443 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
23444 instead of SYSTEM_HEADER_DIR.
23446 2017-04-18 Jeff Law <law@redhat.com>
23448 PR middle-end/80422
23449 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
23450 predecessors after walking up the insn chain.
23452 2017-04-18 Jakub Jelinek <jakub@redhat.com>
23455 * dwarf2out.c (modified_type_die): Try harder not to emit internal
23456 sizetype type into debug info.
23458 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
23461 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
23462 unneeded test for TARGET_UPPER_REGS_SF.
23463 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
23465 2017-04-18 Jakub Jelinek <jakub@redhat.com>
23468 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
23469 instead of gsi_after_labels.
23471 2017-04-18 Jeff Law <law@redhat.com>
23473 * regcprop.c (maybe_mode_change): Avoid creating copies of the
23477 2017-04-13 Jeff Law <law@redhat.com>
23478 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
23479 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
23481 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
23484 * config/avr/avr.c (intl.h): Include it.
23485 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
23487 2017-04-18 Martin Liska <mliska@suse.cz>
23489 PR gcov-profile/78783
23490 * gcov-tool.c (gcov_output_files): Validate that destination
23491 file is either removed by the tool or by a user.
23493 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
23494 Guy Benyei <guybe@mellanox.com>
23496 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
23497 block, and do not negate it, the stored id is already negative.
23499 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
23501 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
23503 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
23506 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
23507 masks of options that should be turned off if the VSX vector
23508 options are turned off.
23509 (OTHER_P8_VECTOR_MASKS): Likewise.
23510 (OTHER_VSX_VECTOR_MASKS): Likewise.
23511 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
23512 rs6000_disable_incompatible_switches to validate no type switches
23514 (rs6000_incompatible_switch): New function to disallow turning on
23515 other vector options if -mno-vsx, -mno-power8-vector, or
23516 -mno-power9-vector are specified.
23518 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
23520 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
23522 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
23524 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
23525 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
23526 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
23527 (ARG_POINTER_CFA_OFFSET): Likewise.
23529 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
23531 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
23532 conditions to take advantage of various optimizations.
23534 2017-04-13 Jeff Law <law@redhat.com>
23536 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
23537 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
23538 (zero_extendsidi2_dext): Likewise.
23540 2017-04-13 Jakub Jelinek <jakub@redhat.com>
23543 * fold-const.c (fold_ternary_loc): Revert
23544 use op0 instead of fold_convert_loc (loc, type, arg0) part of
23547 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
23549 PR rtl-optimization/80343
23550 * lra-remat.c (update_scratch_ops): Assign original hard reg to
23551 new scratch pseudo.
23553 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
23556 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
23557 to ubsan_encode_value.
23559 2017-04-13 Jeff Law <law@redhat.com>
23561 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
23562 appearing in DEBUG_INSNs.
23564 2017-04-13 Martin Liska <mliska@suse.cz>
23566 PR gcov-profile/80413
23567 * gcov-io.c (gcov_write_string): Copy to buffer just when
23568 allocated size is greater than zero.
23570 2017-04-13 Jakub Jelinek <jakub@redhat.com>
23573 * dwarf2out.c (decls_for_scope): Ignore declarations of
23574 current_function_decl in BLOCK_NONLOCALIZED_VARS.
23576 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
23579 * ipa-visibility.c (non_local_p): Fix typos.
23580 (localize_node): When localizing symbol in same comdat group,
23581 dissolve the group only when we know external symbols are going
23583 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
23585 2017-04-12 Jakub Jelinek <jakub@redhat.com>
23587 PR tree-optimization/79390
23588 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
23589 order does not result in usable sequence, retry with reversed operand
23595 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
23596 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
23597 op0 instead of fold_convert_loc (loc, type, arg0).
23599 2017-04-12 Jeff Law <law@redhat.com>
23601 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
23602 has a delay slot in the generated code.
23604 * config/cris/cris.md (cris_preferred_reload_class): Return
23605 GENNONACR_REGS rather than GENERAL_REGS.
23607 2017-04-12 Jakub Jelinek <jakub@redhat.com>
23610 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
23611 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
23612 signedness of the result type.
23614 2017-04-12 Richard Biener <rguenther@suse.de>
23615 Jeff Law <law@redhat.com>
23617 PR tree-optimization/80359
23618 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
23619 trim stores to TARGET_MEM_REFs.
23621 2017-04-12 Richard Biener <rguenther@suse.de>
23623 PR tree-optimization/79390
23624 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
23625 threading case even more.
23627 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
23630 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
23631 for quad_address_p for TImode, instead of just not indexed_address.
23633 2017-04-12 Richard Biener <rguenther@suse.de>
23634 Bernd Edlinger <bernd.edlinger@hotmail.de>
23636 PR middle-end/79671
23637 * alias.c (component_uses_parent_alias_set_from): Handle
23638 TYPE_TYPELESS_STORAGE.
23639 (get_alias_set): Likewise.
23640 * tree-core.h (tree_type_common): Add typeless_storage flag.
23641 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
23642 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
23643 for types containing members with TYPE_TYPELESS_STORAGE.
23644 (place_field): Likewise.
23645 (layout_type): Likewise for ARRAY_TYPE.
23646 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
23647 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
23648 TYPE_TYPELESS_STORAGE.
23649 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
23651 2017-04-12 Jakub Jelinek <jakub@redhat.com>
23654 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
23655 first argument to type.
23657 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23661 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
23662 CONST0_RTX (mode) rather than const0_rtx where appropriate.
23663 (rs6000_expand_binop_builtin): Likewise.
23664 (rs6000_expand_ternop_builtin): Likewise; also add missing
23665 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
23666 vshasigma built-ins.
23667 * doc/extend.texi: Document that vec_xxpermdi's third argument
23668 must be a constant.
23670 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
23672 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
23673 Use shift_const cost parameter when calculating gain of STV shifts.
23675 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
23677 PR rtl-optimization/70478
23678 * lra-constraints.c (process_alt_operands): Check memory for
23679 disfavoring memory insn operand.
23681 2017-04-11 Jakub Jelinek <jakub@redhat.com>
23683 PR middle-end/80100
23684 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
23685 left shift in unsigned HOST_WIDE_INT type.
23687 PR rtl-optimization/80385
23688 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
23689 (not (neg X)) into (plus X -1) for complex or non-integral modes.
23692 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
23693 if they have any depend clauses.
23695 2017-04-11 Martin Liska <mliska@suse.cz>
23698 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
23699 * ipa-split.c (split_function): Create a local comdat symbol
23700 if caller is in a comdat group.
23702 2017-04-11 Martin Liska <mliska@suse.cz>
23705 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
23708 2017-04-11 Martin Sebor <msebor@redhat.com>
23710 PR middle-end/80364
23711 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
23712 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
23714 (directive::set_width, directive::set_precision, format_character):
23716 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
23719 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
23722 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
23723 conflict, set target->arch_name instead of target->cpu_name.
23725 2017-04-11 Richard Biener <rguenther@suse.de>
23727 PR tree-optimization/80374
23728 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
23729 build_zero_cst, remove fold_convertible_p check again.
23731 2017-04-11 Martin Liska <mliska@suse.cz>
23734 * ubsan.c (instrument_object_size): Do not instrument register
23737 2017-04-11 Jakub Jelinek <jakub@redhat.com>
23740 * config/i386/i386-builtin-types.def
23741 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
23742 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
23743 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
23744 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
23745 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
23746 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
23747 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
23748 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
23749 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
23750 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
23751 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
23752 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
23753 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
23754 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
23755 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
23756 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
23757 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
23758 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
23759 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
23760 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
23761 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
23762 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
23763 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
23764 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
23765 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
23766 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
23767 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
23768 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
23769 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
23770 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
23771 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
23772 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
23773 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
23774 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
23775 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
23776 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
23777 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
23778 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
23779 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
23780 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
23781 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
23782 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
23783 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
23784 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
23785 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
23786 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
23788 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
23789 flag to second_arg_count, handle 4 argument function type _COUNT
23790 aliases, handle second_arg_count on second argument rather than last.
23792 2017-04-10 Jeff Law <law@redhat.com>
23794 PR tree-optimization/80374
23795 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
23796 record anything if we can not convert integer_zero_node to the
23799 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
23802 * config/rs6000/rs6000.c (rs6000_option_override_internal):
23803 Enhance special handling given to the TARGET_P9_MINMAX option in
23804 relation to certain other options.
23806 2017-04-10 Bin Cheng <bin.cheng@arm.com>
23808 PR tree-optimization/80153
23809 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
23810 remove POINTER_PLUS_EXPR's base part directly, rather than through
23813 2017-04-10 Richard Biener <rguenther@suse.de>
23814 Bin Cheng <bin.cheng@arm.com>
23816 PR tree-optimization/80153
23817 * tree-affine.c (aff_combination_to_tree): Get base pointer from
23818 the first element of pointer type aff_tree. Build result expr in
23820 (add_elt_to_tree): Convert to type unconditionally. Remove other
23821 fold_convert calls.
23822 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
23823 (rewrite_use_nonlinear_expr): Check invariant using iv information.
23825 2017-04-10 Richard Biener <rguenther@suse.de>
23827 * tree-ssa-structalias.c (find_func_aliases): Properly handle
23830 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
23832 PR rtl-optimization/70478
23833 * lra-constraints.c (curr_small_class_check): New.
23834 (update_and_check_small_class_inputs): New.
23835 (process_alt_operands): Update curr_small_class_check. Disfavor
23836 alternative insn memory operands. Check available regs for small
23839 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
23842 * config/mips/mips.opt (-mvirt): Update description.
23843 * doc/invoke.texi (-mvirt): Likewise.
23845 2017-04-10 Richard Biener <rguenther@suse.de>
23847 PR middle-end/80362
23848 * fold-const.c (fold_binary_loc): Look at unstripped ops when
23849 looking for NEGATE_EXPR in -A / -B to A / B folding.
23851 2017-04-10 Martin Liska <mliska@suse.cz>
23853 PR gcov-profile/80224
23854 * gcov.c (print_usage): Fix usage string.
23855 (get_gcov_intermediate_filename): Remove.
23856 (output_gcov_file): Use both for normal and intermediate format.
23857 (generate_results): Do not initialize special file for
23858 intermediate format.
23860 2017-04-10 Richard Biener <rguenther@suse.de>
23862 PR tree-optimization/80304
23863 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
23866 2017-04-10 Nathan Sidwell <nathan@acm.org>
23869 * config/rs6000/rs6000.c (rs6000_vector_type): New.
23870 (rs6000_init_builtins): Use it.
23872 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23874 * config/arm/arm.md (<mrc>): Add mode to SET source.
23875 (<mrrc>): Likewise.
23877 2017-04-10 Richard Biener <rguenther@suse.de>
23879 PR middle-end/80344
23880 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
23882 2017-04-10 Jakub Jelinek <jakub@redhat.com>
23885 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
23886 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
23887 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
23888 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
23889 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
23890 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
23891 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
23892 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
23893 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
23894 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
23895 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
23896 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
23897 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
23898 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
23899 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
23900 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
23901 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
23902 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
23903 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
23904 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
23905 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
23906 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
23907 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
23909 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
23911 PR rtl-optimization/70478
23912 * lra-constraints.c: Reverse the last patch.
23914 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
23916 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
23917 Add comment for WCHAR_T.
23919 2017-04-08 Martin Liska <mliska@suse.cz>
23922 2017-04-07 Martin Liska <mliska@suse.cz>
23925 * ipa-split.c (split_function): Add function part to a same comdat
23928 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
23931 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
23933 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
23935 * rs6000/rs6000.c (vec_load_pendulum): Rename...
23936 (vec_pairing): ...to this.
23937 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
23938 (rs6000_sched_init): Adjust for name change.
23939 (struct rs6000_sched_context): Likewise.
23940 (rs6000_init_sched_context): Likewise.
23941 (rs6000_set_sched_context): Likewise.
23943 2017-04-07 Jakub Jelinek <jakub@redhat.com>
23949 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
23951 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
23952 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
23953 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
23955 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
23957 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
23959 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
23961 PR rtl-optimization/70703
23962 * ira-color.c (update_conflict_hard_regno_costs): Use
23963 int64_t instead of HOST_WIDE_INT.
23965 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
23967 PR rtl-optimization/70478
23968 * lra-constraints.c (process_alt_operands): Disfavor alternative
23969 insn memory operands.
23971 2017-04-07 Jeff Law <law@redhat.com>
23973 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
23974 CALL and NOTE_INSN_CALL_ARG_LOCATION.
23976 2017-04-07 Martin Liska <mliska@suse.cz>
23979 * config/aarch64/aarch64.c (aarch64_process_target_attr):
23980 Show error message instead of an ICE.
23982 2017-04-07 Martin Liska <mliska@suse.cz>
23985 * ipa-split.c (split_function): Add function part to a same comdat
23988 2017-04-07 Richard Biener <rguenther@suse.de>
23990 PR middle-end/80341
23991 * tree.c (get_unwidened): Also handle ! for_type case for
23993 * convert.c (do_narrow): Split out from ...
23994 (convert_to_integer_1): ... here. Do not pass final truncation
23995 type to get_unwidened for TRUNC_DIV_EXPR.
23997 2017-04-07 Richard Biener <rguenther@suse.de>
23999 * tree-affine.c (wide_int_ext_for_comb): Take type rather
24001 (aff_combination_const): Adjust.
24002 (aff_combination_scale): Likewise.
24003 (aff_combination_add_elt): Likewise.
24004 (aff_combination_add_cst): Likewise.
24005 (aff_combination_convert): Likewise.
24006 (add_elt_to_tree): Likewise. Remove unused argument.
24007 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
24009 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
24011 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
24013 * config/arm/arm.c (arm_default_short_enums): Use
24014 ARM_DEFAULT_SHORT_ENUMS.
24015 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
24017 2017-04-06 Jakub Jelinek <jakub@redhat.com>
24020 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
24021 members with redundant out-of-class redeclaration.
24023 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
24026 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
24027 * config/i386/i386.md (*zero_extendsidi2):
24028 Add (?*x,*x) and (?*v,*v) alternatives.
24030 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
24033 * config/i386/i386.c (ix86_expand_builtin)
24034 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
24035 mode from insn data. Convert operands to insn operand mode.
24036 Copy operands that don't satisfy insn predicate to a register.
24038 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
24040 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
24043 2017-04-06 Richard Biener <rguenther@suse.de>
24045 PR tree-optimization/80334
24046 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
24047 preserve alignment of accesses.
24049 2017-04-06 Richard Biener <rguenther@suse.de>
24051 PR tree-optimization/80262
24052 * tree-sra.c (build_ref_for_offset): Preserve address-space
24054 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
24055 Drop useless address-space information on MEM_REF offsets.
24057 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
24059 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
24061 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
24063 PR rtl-optimization/70703
24064 * ira-color.c (update_conflict_hard_regno_costs): Use
24065 HOST_WIDE_INT instead of long.
24067 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
24070 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
24071 not defined for x86_64 target. Add -mmmx target option when __SSE2__
24073 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
24074 for x86_64 target. Handle -m3dnowa option.
24076 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
24078 PR rtl-optimization/70703
24079 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
24080 (update_conflict_hard_regno_costs): Use long instead of unsigned
24081 arithmetic for cost calculation.
24083 2017-04-05 Jakub Jelinek <jakub@redhat.com>
24084 Bernd Edlinger <bernd.edlinger@hotmail.de>
24087 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
24090 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
24093 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
24094 ptr_mode with Pmode throughout.
24095 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
24096 into probe_stack_range and use DImode.
24098 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
24101 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
24102 call_eh_return is true.
24104 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24106 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
24107 Initialize last_match_fntype_index.
24109 2017-04-05 Jakub Jelinek <jakub@redhat.com>
24112 * tree-nvr.c: Include internal-fn.h.
24113 (pass_return_slot::execute): Ignore internal calls without
24116 2017-04-04 Jakub Jelinek <jakub@redhat.com>
24117 Richard Biener <rguenther@suse.de>
24120 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
24121 captures used multiple times, except for the last use.
24122 * generic-match-head.c: Include gimplify.h.
24124 2017-04-04 Jakub Jelinek <jakub@redhat.com>
24126 PR tree-optimization/79390
24127 * target.h (struct noce_if_info): Declare.
24128 * targhooks.h (default_noce_conversion_profitable_p): Declare.
24129 * target.def (noce_conversion_profitable_p): New target hook.
24130 * ifcvt.h (struct noce_if_info): New type, moved from ...
24131 * ifcvt.c (struct noce_if_info): ... here.
24132 (noce_conversion_profitable_p): Renamed to ...
24133 (default_noce_conversion_profitable_p): ... this. No longer
24135 (noce_try_store_flag_constants, noce_try_addcc,
24136 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
24137 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
24138 instead of noce_conversion_profitable_p.
24139 * config/i386/i386.c: Include ifcvt.h.
24140 (ix86_option_override_internal): Don't override
24141 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
24142 (ix86_noce_conversion_profitable_p): New function.
24143 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
24144 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
24145 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
24146 * doc/tm.texi: Regenerated.
24148 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24150 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
24153 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
24156 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
24157 instructions for small multiply cores.
24159 2017-04-04 Jeff Law <law@redhat.com>
24161 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
24163 (mips_expand_vec_perm_const): Initialize elements in orig_perm
24164 that are not set by the loop over the elements.
24166 2017-04-04 Jakub Jelinek <jakub@redhat.com>
24169 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
24170 int mode, convert_modes it to mode as unsigned, otherwise use
24171 lowpart_subreg to mode rather than SImode.
24172 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
24173 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
24174 Use DImode instead of SImode for the shift count operand.
24175 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
24178 2017-04-04 Richard Biener <rguenther@suse.de>
24180 PR middle-end/80281
24181 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
24182 arithmetic done for the negate or the plus. Simplify.
24183 (A - (-B) -> A + B): Likewise.
24184 * fold-const.c (split_tree): Make sure to not negate pointers.
24186 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
24188 PR rtl-optimization/60818
24189 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
24190 a compare of comparisons with the thing compared if this results
24191 in a different machine mode.
24193 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
24195 * alias.c (base_alias_check): Fix typo in comment.
24196 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
24197 * cgraphunit.c (symbol_table::compile): Likewise.
24198 * collect2.c (maybe_run_lto_and_relink): Likewise.
24199 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
24200 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
24201 * config/avr/avr.c (avr_map_op_t): Likewise.
24202 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
24203 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
24204 * config/epiphany/epiphany.md (movcc): Likewise.
24205 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
24206 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
24208 * config/mips/mips.c (mips_save_restore_reg): Likewise.
24209 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
24210 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
24211 * config/sh/sh.c (sh_rtx_costs): Likewise.
24212 * fold-const.c (fold_truth_andor): Likewise.
24213 * genautomata.c (collapse_flag): Likewise.
24214 * gengtype.h (struct type::u::s): Likewise.
24215 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
24216 * input.c (FORMAT_AMOUNT): Likewise.
24217 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
24218 (known_aggs_to_agg_replacement_list): Likewise.
24219 * ipa-inline-analysis.c: Likewise.
24220 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
24221 * ipa-polymorphic-call.c
24222 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
24223 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
24224 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
24226 * modulo-sched.c (apply_reg_moves): Likewise.
24227 * omp-expand.c (build_omp_regions_1): Likewise.
24228 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
24229 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
24230 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
24231 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
24232 * value-prof.c: Likewise.
24233 * var-tracking.c (val_reset): Likewise.
24235 2017-04-03 Richard Biener <rguenther@suse.de>
24237 PR tree-optimization/80275
24238 * fold-const.c (split_address_to_core_and_offset): Handle
24241 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
24243 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
24244 descriptors is at least equal to that of functions.
24246 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
24248 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
24250 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
24253 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
24254 (mov<IMOD4:mode>): New expander.
24255 (*mov<IMOD4:mode>_internal): New insn and split pattern.
24257 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
24259 PR rtl-optimization/79405
24260 * fwprop.c (propagations_left): New variable.
24261 (forward_propagate_into): Decrement it.
24262 (fwprop_init): Initialize it.
24263 (fw_prop): If the variable has reached zero, stop propagating.
24264 (fwprop_addr): Ditto.
24266 2017-03-31 Jakub Jelinek <jakub@redhat.com>
24269 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
24270 a FUNCTION_DECL, pass it as decl instead of origin to
24273 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
24275 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
24278 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
24281 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
24282 TARGET_VSX_SMALL_INTEGER.
24284 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24286 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
24287 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
24289 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
24291 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
24292 extraction from odd-numbered MSA register.
24294 2017-03-31 Jakub Jelinek <jakub@redhat.com>
24296 PR middle-end/80173
24297 * expmed.c (store_bit_field_1): Don't attempt to create
24298 a word subreg out of hard registers wider than word if they
24299 have HARD_REGNO_NREGS of 1 for their mode.
24301 PR middle-end/80163
24302 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
24303 conversions to integer types wider than word and pointer.
24306 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
24307 (rtx_equal_for_cselib_p): Pass 0 to it.
24308 * cselib.c (cselib_hasher::equal): Likewise.
24309 (rtx_equal_for_cselib_1): Add depth argument. If depth
24310 is 128, don't look up VALUE locs and punt. Increment
24311 depth in recursive calls when walking VALUE locs.
24313 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
24315 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
24316 (make_gcov_file_name): Use the canonical path name for generating
24318 (read_line): Fix handling of files with ascii null bytes.
24320 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
24322 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
24323 to initialise a vector register instead
24324 of using a const_int.
24326 2017-03-30 Jakub Jelinek <jakub@redhat.com>
24328 PR translation/80189
24329 * gimplify.c (omp_default_clause): Use %qs instead of %s in
24330 diagnostic messages.
24332 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
24335 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
24336 (dfp_diex_<mode>): Update mode of operand 1.
24337 * doc/extend.texi (dxex, dxexq): Document change to return type.
24338 (diex, diexq): Document change to argument type.
24340 2017-03-30 Martin Jambor <mjambor@suse.cz>
24343 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
24344 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
24345 it reflects the signature changes performed at the callee side.
24346 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
24347 to cgraph_build_function_type_skip_args.
24348 (build_function_decl_skip_args): Adjust call to the above function.
24350 2017-03-30 Jakub Jelinek <jakub@redhat.com>
24353 * config/i386/sse.md
24354 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
24355 register as dest whenever it is a MEM not rtx_equal_p to the
24356 corresponding dup operand, and when forcing into reg move the
24357 reg into the memory afterwards.
24358 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
24359 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
24360 for the force_reg mode.
24361 (avx512vl_vextractf128<mode>): Use register as dest either
24362 always when a MEM, or when it is a MEM not rtx_equal_p to the
24363 corresponding dup operand, or even not when it is a CONST_VECTOR
24364 depending on the mode and lo vs. hi.
24365 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
24367 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
24368 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
24369 Likewise. Require that operands[2] is even.
24370 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
24371 Remove extraneous parens. Require that operands[2] is a multiple
24373 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
24374 operands[0] is a MEM if <mask_applied>, the predicates/constraints
24375 disallow memory then.
24377 2017-03-30 Richard Biener <rguenther@suse.de>
24379 PR tree-optimization/77498
24380 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
24381 to non-constants over backedges.
24383 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
24385 PR rtl-optimization/80233
24386 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
24387 as last_combined_insn. Do not test for BARRIER_P separately.
24389 2017-03-29 Andreas Schwab <schwab@suse.de>
24392 * calls.c (prepare_call_address): Convert funexp to Pmode before
24393 copying to temp reg.
24395 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24397 PR tree-optimization/80158
24398 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
24399 Handle possible future case of more than one alternate
24401 (replace_rhs_if_not_dup): Likewise.
24402 (replace_one_candidate): Likewise.
24404 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
24406 PR rtl-optimization/80193
24407 * ira.c (ira): Do not check allocation for LRA.
24409 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
24411 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
24412 (nvptx_output_simt_exit): Declare.
24413 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
24414 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
24415 (init_softstack_frame): Move initialization of crtl->is_leaf to...
24416 (nvptx_declare_function_name): ...here. Emit declaration of local
24417 memory space buffer for omp_simt_enter insn.
24418 (nvptx_output_unisimt_switch): New.
24419 (nvptx_output_softstack_switch): New.
24420 (nvptx_output_simt_enter): New.
24421 (nvptx_output_simt_exit): New.
24422 * config/nvptx/nvptx.h (struct machine_function): New fields
24423 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
24424 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
24425 (UNSPECV_SIMT_EXIT): Ditto.
24426 (omp_simt_enter_insn): New insn.
24427 (omp_simt_enter): New expansion.
24428 (omp_simt_exit): New insn.
24429 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
24431 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
24432 (expand_GOMP_SIMT_ENTER_ALLOC): New.
24433 (expand_GOMP_SIMT_EXIT): New.
24434 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
24435 (GOMP_SIMT_ENTER_ALLOC): Ditto.
24436 (GOMP_SIMT_EXIT): Ditto.
24437 * target-insns.def (omp_simt_enter): New insn.
24438 (omp_simt_exit): Ditto.
24439 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
24441 (lower_rec_simd_input_clauses): Implement SIMT privatization.
24442 (lower_rec_input_clauses): Likewise.
24443 (lower_lastprivate_clauses): Handle SIMT privatization.
24445 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
24446 (ompdevlow_adjust_simt_enter): New.
24447 (find_simtpriv_var_op): New.
24448 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
24449 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
24451 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
24452 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
24453 (copy_decl_for_dup_finish): Ditto.
24455 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
24457 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
24460 * config/i386/i386.c (ix86_option_override_internal): Always
24461 allow -mpreferred-stack-boundary=3 for 64-bit targets.
24463 2017-03-28 Bin Cheng <bin.cheng@arm.com>
24465 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
24467 2017-03-28 Bin Cheng <bin.cheng@arm.com>
24469 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
24470 mark new edge's irreducible flag accordign to it.
24471 (vect_do_peeling): Check loop preheader edge's irreducible flag
24472 and pass it to function slpeel_add_loop_guard.
24474 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
24476 PR tree-optimization/80218
24477 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
24478 Update block frequencies and counts.
24480 2017-03-28 Richard Biener <rguenther@suse.de>
24482 PR tree-optimization/78644
24483 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
24484 of a simplification result we may not use it at all.
24486 2017-03-28 Richard Biener <rguenther@suse.de>
24489 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
24490 without arguments, generate default definition of a SSA name.
24492 2017-03-28 Richard Biener <rguenther@suse.de>
24494 PR middle-end/80222
24495 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
24496 TYPE_REF_CAN_ALIAS_ALL references.
24497 * fold-const.c (fold_indirect_ref_1): Likewise.
24499 2017-03-28 Martin Liska <mliska@suse.cz>
24502 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
24503 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
24505 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
24506 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
24508 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
24509 (EXTRA_SPECS): Define.
24510 (SUBTARGET_EXTRA_SPECS): Likewise.
24511 (SUBTARGET_CPP_SPEC): Likewise.
24512 * config/arc/elf.h (EXTRA_SPECS): Renamed to
24513 SUBTARGET_EXTRA_SPECS.
24514 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
24516 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
24518 * config/arc/simdext.md (vst64_insn): Update pattern.
24519 (vld32wh_insn): Likewise.
24520 (vld32wl_insn): Likewise.
24521 (vld64_insn): Likewise.
24522 (vld32_insn): Likewise.
24524 2017-03-28 Marek Polacek <polacek@redhat.com>
24527 * fold-const.c (fold_comparison): Use protected_set_expr_location
24528 instead of SET_EXPR_LOCATION.
24530 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
24532 * tree.c (add_expr): Avoid name lookup warning.
24534 2017-03-27 Jeff Law <law@redhat.com>
24536 PR tree-optimization/80216
24537 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
24538 function name. Limit recursion depth.
24539 (record_temporary_equivalences): Corresponding changes.
24541 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
24543 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
24546 2017-03-27 Jakub Jelinek <jakub@redhat.com>
24549 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
24551 * cfgcleanup.c (reg_note_cfa_p): New array.
24552 (insns_have_identical_cfa_notes): New function.
24553 (old_insns_match_p): Don't cross-jump in between /f
24554 and non-/f instructions. If both i1 and i2 are frame related,
24555 verify all CFA notes, their order and content.
24557 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
24560 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
24561 HImode and SImode with zero extend to DImode to one insn.
24562 (bswap<mode>2_extenddi): Likewise.
24563 (bswapsi2_extenddi): Likewise.
24564 (bswaphi2_extendsi): Likewise.
24565 (bswaphi2): Combine bswap HImode and SImode into one insn.
24566 Separate memory insns from swapping register.
24567 (bswapsi2): Likewise.
24568 (bswap<mode>2): Likewise.
24569 (bswaphi2_internal): Delete, no longer used.
24570 (bswapsi2_internal): Likewise.
24571 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
24572 store, and gpr<-gpr swap insns.
24573 (bswap<mode>2_store): Likewise.
24574 (bswaphi2_reg): Register only splitter, combine with the splitter.
24575 (bswaphi2 splitter): Likewise.
24576 (bswapsi2_reg): Likewise.
24577 (bswapsi2 splitter): Likewise.
24578 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
24579 the insns into load, store, and register/register insns.
24580 (bswapdi2_ldbrx): Likewise.
24581 (bswapdi2_load): Likewise.
24582 (bswapdi2_store): Likewise.
24583 (bswapdi2_reg): Likewise.
24585 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
24587 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
24588 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
24590 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
24593 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
24595 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
24596 special handling for target option conflicts between dform
24597 options (-mpower9-dform, -mpower9-dform-vector,
24598 -mpower9-dform-scalar) and -mno-direct-move.
24600 2017-03-27 Richard Biener <rguenther@suse.de>
24602 PR tree-optimization/80181
24603 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
24605 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
24607 * config/arc/predicates.md (move_double_src_operand): Replace the
24608 call to move_double_src_operand with a call to address_operand.
24610 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
24612 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
24613 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
24614 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
24616 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
24618 * config/arc/predicates.md (long_immediate_loadstore_operand):
24619 Consider scaled addresses cases.
24621 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
24623 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
24624 restored when in interrupt.
24625 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
24626 doesn't have delay slot.
24628 2017-03-27 Richard Biener <rguenther@suse.de>
24631 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
24632 inlined thunk clones.
24634 2017-03-27 Jakub Jelinek <jakub@redhat.com>
24637 * asan.c (instrument_derefs): Copy over last operand from
24638 original COMPONENT_REF to the new COMPONENT_REF with
24639 DECL_BIT_FIELD_REPRESENTATIVE.
24640 * ubsan.c (instrument_object_size): Likewise.
24642 2017-03-27 Richard Biener <rguenther@suse.de>
24644 PR tree-optimization/80170
24645 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
24646 sure DR/SCEV didnt fold in constants we do not see when looking
24647 at the reference base alignment.
24649 2017-03-27 Richard Biener <rguenther@suse.de>
24651 PR middle-end/80171
24652 * gimple-fold.c (fold_ctor_reference): Properly guard against
24653 NULL return value from canonicalize_constructor_val.
24655 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
24658 * config/i386/i386.c (ix86_expand_builtin)
24659 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
24660 flags reg setting and flags reg using instructions.
24661 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
24662 clobbering instructions to zero extend op2.
24664 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
24666 * doc/install.texi (Configuration) <--with-aix-soname>:
24667 Update link to AIX ld.
24669 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
24671 PR rtl-optimization/80160
24672 PR rtl-optimization/80159
24673 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
24674 reg_alternate_class into account.
24676 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
24679 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
24680 to consider in curr_insn_transform.
24682 2017-03-24 Jakub Jelinek <jakub@redhat.com>
24684 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
24685 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
24686 and emit_mode_inner.
24688 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24690 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
24691 argument to the overloaded builtin variants. Use the new flag to
24692 deprecate certain builtin variants.
24693 * config/s390/s390-builtin-types.def: Add new builtin types.
24694 * config/s390/s390-builtins.h: Support new flags field for
24695 overloaded builtins.
24696 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
24697 (s390_macro_to_expand): Enable vector float data type.
24698 (s390_cpu_cpp_builtins_internal): Indicate support of the new
24699 builtins by incrementing the __VEC__ version number.
24700 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
24702 (s390_resolve_overloaded_builtin): Emit error messages depending
24703 on the builtin flags.
24704 * config/s390/s390.c (s390_expand_builtin): Support additional
24705 flags argument. Change error message to match the messages
24706 emitted in s390-c.c.
24707 * config/s390/s390.md: New UNSPEC_* constants.
24708 (op_type): Add new instruction types.
24709 * config/s390/vecintrin.h: Add new builtins and test data class
24711 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
24712 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
24713 (VEC_INEXACT, VEC_NOINEXACT): New constants.
24714 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
24715 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
24716 ("vec_mergel<mode>"): V_HW -> VEC_HW.
24718 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
24719 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
24720 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
24721 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
24723 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
24724 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
24725 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
24726 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
24728 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
24729 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
24730 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
24731 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
24732 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
24733 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
24734 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
24736 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
24737 ("vec_scatter_element<V_HW_4:mode>_DI")
24738 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
24739 ("vec_fpint<mode>", "vflls")
24740 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
24741 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
24742 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
24743 ("*vec_cmphe<mode>_cc"): ... these.
24745 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
24746 mode constant instead of magic value.
24748 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24750 * config/s390/s390.c (s390_expand_vec_compare): Support other
24751 vector floating point modes than just V2DF.
24752 (s390_expand_vcond): Likewise.
24753 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
24754 (s390_cannot_change_mode_class): Prevent mode changes between TF
24755 and V1TF in vector registers.
24756 * config/s390/s390.md (DF, SF): New mode attributes.
24757 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
24758 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
24759 SFmode support for VRs.
24760 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
24762 (VFT, VF_HW): New mode iterators.
24763 (vw, sdx): New mode attributes.
24764 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
24765 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
24766 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
24767 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
24768 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
24769 also the new vector floating point modes. Renaming to ...
24771 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
24772 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
24773 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
24774 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
24775 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
24776 ("vec_unordered<mode>"): ... these.
24778 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
24779 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
24780 ("*vec_extendv2df"): New insn definitions.
24782 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24784 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
24785 ("mulditi3_2", "*muldi3_sign"): New patterns.
24786 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
24787 rename the pattern definition.
24789 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24791 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
24793 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
24795 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24797 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
24798 instruction if possible.
24799 * config/s390/vector.md (vec_halfnumelts): New mode
24801 ("*vec_vllezlf<mode>"): New pattern.
24803 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24805 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
24806 ("popcountv4si2", "popcountv2di2"): Rename to ...
24807 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
24808 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
24810 ("popcount<mode>2_vxe"): New pattern.
24812 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24814 * common/config/s390/s390-common.c (processor_flags_table): Add
24816 * config.gcc: Add arch12.
24817 * config/s390/driver-native.c (s390_host_detect_local_cpu):
24818 Default to arch12 for unknown CPU model numbers.
24819 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
24820 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
24821 PROCESSOR_max sanity check.
24822 * config/s390/s390-opts.h (enum processor_type): Add
24824 * config/s390/s390.c (processor_table): Add arch12.
24825 (s390_expand_builtin): Add check for B_VXE flag.
24826 (s390_issue_rate): Add PROCESSOR_ARCH12.
24827 (s390_get_sched_attrmask): Likewise.
24828 (s390_get_unit_mask): Likewise.
24829 (s390_sched_score): Enable z13 scheduling for arch12.
24830 (s390_sched_reorder): Likewise.
24831 (s390_sched_variable_issue): Likewise.
24832 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
24834 (s390_tune_attr): Use z13 scheduling also for arch12.
24835 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
24836 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
24837 (TARGET_VXE_P): New macros.
24838 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
24839 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
24840 * config/s390/s390.opt: Add arch12 as processor_type.
24842 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24844 * config/s390/s390.md
24845 ("fixuns_truncdddi2", "fixuns_trunctddi2")
24846 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
24847 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
24849 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
24850 Rename expanders to ...
24852 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
24853 ("fixuns_truncdddi2_emu"): ... these.
24855 ("fixuns_trunc<mode>si2_emu"): New expander.
24857 ("*fixuns_truncdfdi2_z13"): Rename to ...
24858 ("*fixuns_truncdfdi2_vx"): ... this.
24860 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24862 * config/s390/2964.md: Remove the single element vector compare
24863 instructions which are no longer used.
24864 * config/s390/s390.c (s390_select_ccmode): Remove handling of
24866 (s390_canonicalize_comparison): Remove handling of DFmode
24868 (s390_expand_vec_compare_scalar): Remove function.
24869 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
24870 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
24872 ("*cmp<mode>_ccs"): Add wfcdb instruction.
24874 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24876 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
24878 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
24879 will anyway by matched by mov<mode>_64dfp.
24881 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24883 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
24884 vlef/vstef. Add missing operand to vleif.
24886 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24888 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
24889 pair for all vector types with 64 bit elements.
24890 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
24891 * config/s390/vector.md (V_HW_64): ... here.
24892 (V_128_NOSINGLE): New mode iterator.
24893 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
24894 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
24895 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
24896 ("*vec_load_pairv2di"): Change to ...
24897 ("*vec_load_pair<mode>"): ... this one.
24899 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24901 * config/s390/constraints.md: Add comments.
24902 (jKK): Reject element sizes > 8 bytes.
24903 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
24905 * config/s390/s390.md: Add the s_operand checks formerly in
24906 s390_split_ok_p to various splitters where they are still
24908 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
24909 for 128 bit vectors. Plus two splitters.
24911 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24913 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
24916 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24919 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
24920 error if the boundary argument is not constant.
24922 2017-03-24 Jakub Jelinek <jakub@redhat.com>
24924 PR rtl-optimization/80112
24925 * loop-doloop.c (doloop_condition_get): Don't check condition
24926 if cmp isn't SET with IF_THEN_ELSE src.
24928 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24930 PR tree-optimization/80158
24931 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
24932 replacing a candidate statement, also replace it for the
24933 candidate's alternate interpretation.
24934 (replace_rhs_if_not_dup): Likewise.
24935 (replace_one_candidate): Likewise.
24937 2017-03-24 Richard Biener <rguenther@suse.de>
24939 PR tree-optimization/80167
24940 * graphite-isl-ast-to-gimple.c
24941 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
24943 (translate_isl_ast_to_gimple::get_rename): Likewise.
24945 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
24947 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
24948 handling of certain combinations of target options, including the
24949 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
24950 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
24952 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24955 * config/arm/arm.md (*load_multiple): Add reload_completed to
24956 matching condition.
24958 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24959 Richard Biener <rguenth@suse.de>
24961 PR tree-optimization/79908
24962 PR tree-optimization/80136
24963 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
24964 been cast away, gimplify_and_add suffices.
24966 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
24968 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
24970 2017-03-23 Richard Biener <rguenther@suse.de>
24972 PR tree-optimization/80032
24973 * gimplify.c (gimple_push_cleanup): Forced unconditional
24974 cleanups still have to go to the conditional_cleanups
24977 2017-03-22 Jakub Jelinek <jakub@redhat.com>
24979 PR tree-optimization/80072
24980 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
24982 (next_operand_entry_id): Change type to unsigned int.
24983 (sort_by_operand_rank): Make sure to return the right return value
24984 even if unsigned fields are bigger than INT_MAX.
24985 (struct oecount): Change cnt and id type to unsigned int.
24986 (oecount_hasher::equal): Formatting fix.
24987 (oecount_cmp): Make sure to return the right return value
24988 even if unsigned fields are bigger than INT_MAX.
24989 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
24992 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
24993 TREE_READONLY on result if writing it more than once.
24996 * doc/invoke.texi (-fsanitize=thread): Document that with
24997 -fnon-call-exceptions atomics are not able to throw
25001 * tsan.c: Include tree-eh.h.
25002 (instrument_builtin_call): Call maybe_clean_eh_stmt or
25003 maybe_clean_or_replace_eh_stmt where needed.
25004 (instrument_memory_accesses): Add cfg_changed argument.
25005 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
25006 if it returned true.
25007 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
25009 PR rtl-optimization/63191
25010 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
25011 wrapper function, moved the whole old content into ...
25012 (ix86_delegitimize_address_1): ... this. New inline function.
25013 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
25014 true as last argument instead of ix86_delegitimize_address.
25016 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
25018 * config/aarch64/aarch64.c (generic_branch_cost): Copy
25019 cortexa57_branch_cost.
25021 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
25023 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
25025 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
25028 * doc/md.texi (Constraints): Document wA constraint.
25029 * config/rs6000/constraints.md (wA): New.
25030 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
25031 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
25032 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
25033 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
25035 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
25038 * gimplify.c (is_oacc_declared): New function.
25039 (oacc_default_clause): Use it to set default flags for acc declared
25040 variables inside parallel regions.
25041 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
25042 declared variables.
25043 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
25044 declare attribute to any decl as necessary.
25046 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
25049 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
25050 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
25051 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
25052 (arm_arch_lpae): This.
25053 * config/arm/arm.c (arm_arch7ve): Rename into ...
25054 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
25055 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
25058 2017-03-22 Martin Liska <mliska@suse.cz>
25061 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
25062 error message instead of an ICE.
25064 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25066 * doc/extend.texi (6.11 Additional Floating Types): Revise.
25068 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
25070 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
25072 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
25075 2017-03-21 Martin Sebor <msebor@redhat.com>
25077 * doc/extend.texi: Use "cannot" instead of "can't."
25078 * doc/hostconfig.texi: Same.
25079 * doc/install.texi: Same.
25080 * doc/invoke.texi: Same.
25081 * doc/loop.texi: Same.
25082 * doc/md.texi: Same.
25083 * doc/objc.texi: Same.
25084 * doc/rtl.texi: Same.
25085 * doc/tm.texi: Same.
25086 * doc/tm.texi.in: Same.
25087 * doc/trouble.texi: Same.
25089 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
25092 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
25093 (collect_checksum_attributes): Set it.
25094 (die_checksum_ordered): Use it.
25096 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25098 PR tree-optimization/79908
25099 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
25100 change: For a VA_ARG whose LHS has been cast away, use
25101 force_gimple_operand to construct the side effects.
25103 2017-03-21 David Malcolm <dmalcolm@redhat.com>
25105 PR translation/80001
25106 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
25107 more amenable to translation.
25108 (oacc_loop_auto_partitions): Likewise.
25110 2017-03-21 Marek Polacek <polacek@redhat.com>
25111 Martin Sebor <msebor@redhat.com>
25113 PR tree-optimization/80109
25114 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
25115 on INTEGRAL_TYPE_P.
25117 2017-03-21 Jakub Jelinek <jakub@redhat.com>
25118 Segher Boessenkool <segher@kernel.crashing.org>
25121 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
25122 check reg_used_between_p between insn and one of succ or succ2
25123 depending on if succ is artificial insn not inserted into insn
25126 2017-03-21 Martin Liska <mliska@suse.cz>
25128 PR gcov-profile/80081
25129 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
25130 * doc/gcc.texi: Include gcov-dump stuff.
25131 * doc/gcov-dump.texi: New file.
25133 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
25135 PR rtl-optimization/79150
25136 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
25137 conditional jump, if the jump is the last insn of the loop.
25139 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25140 Richard Biener <rguenth@suse.de>
25142 PR tree-optimization/79908
25143 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
25144 been cast away, use force_gimple_operand to construct the side
25147 2017-03-21 Martin Liska <mliska@suse.cz>
25149 PR libfortran/79956
25150 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
25153 2017-03-21 Brad Spengler <spender@grsecurity.net>
25156 * plugin.c (htab_hash_plugin): New function.
25157 (add_new_plugin): Use it and adjust.
25158 (parse_plugin_arg_opt): Adjust.
25159 (init_one_plugin): Likewise.
25161 2017-03-21 Richard Biener <rguenther@suse.de>
25163 PR tree-optimization/80032
25164 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
25165 if set force the cleanup to happen unconditionally.
25166 (gimplify_target_expr): Push inserted clobbers with force_uncond
25167 to avoid them being removed by control-dependent DCE.
25169 2017-03-21 Richard Biener <rguenther@suse.de>
25171 PR tree-optimization/80122
25172 * tree-inline.c (copy_bb): Do not expans va-arg packs or
25173 va_arg_pack_len when the inlined call stmt requires pack
25175 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
25177 2017-03-21 Jakub Jelinek <jakub@redhat.com>
25180 * tsan.c (instrument_builtin_call): If the memory model argument
25181 is not a constant, assume it is valid.
25184 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
25187 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
25189 PR rtl-optimization/79910
25190 * combine.c (can_combine_p): Do not allow combining an I0 or I1
25191 if its dest is used by an insn before I2 (other than the combined
25192 insns themselves, which are properly handled already).
25194 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
25197 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
25199 * combine.c (record_used_regs): New static function.
25200 (try_combine): Handle situations where there is an additional
25201 instruction between I2 and I3 which needs to have a LOG_LINK
25205 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
25207 * combine.c (try_combine): Delete redundant i1 test. Call
25208 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
25210 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
25213 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
25214 alternatives 13/14.
25216 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25218 PR tree-optimization/80054
25219 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
25220 the optimization if a PHI or any of its arguments is not dominated
25221 by the candidate's basis. Use gphi* rather than gimple* as
25223 (replace_profitable_candidates): Clean up a gimple* variable that
25224 should be a gphi* variable.
25226 2017-03-20 Martin Sebor <msebor@redhat.com>
25229 * doc/extend.texi (attribute constructor): Document present limitation.
25231 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
25234 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
25235 __POWER9_VECTOR__ #ifdef control, change template definition to
25236 use Power9-specific built-in function.
25237 (vec_any_eq): Likewise.
25238 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
25239 to control outcomes from this test.
25240 (vector_ae_<mode>p): For VEC_F modes, likewise.
25242 2017-03-20 Ian Lance Taylor <iant@google.com>
25244 * config/i386/i386.c (ix86_function_regparm): Save an extra
25245 register for -fsplit-stack with DECL_STATIC_CHAIN.
25247 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
25250 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
25251 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
25253 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
25255 * config/riscv/riscv.c (riscv_print_operand): Use "fence
25257 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
25260 2017-03-20 Marek Polacek <polacek@redhat.com>
25263 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
25265 2017-03-20 Richard Biener <rguenther@suse.de>
25267 PR tree-optimization/80113
25268 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
25269 allocate extra SSA name for PHI def.
25270 (add_close_phis_to_outer_loops): Likewise.
25271 (add_close_phis_to_merge_points): Likewise.
25272 (copy_loop_close_phi_args): Likewise.
25273 (copy_cond_phi_nodes): Likewise.
25275 2017-03-20 Martin Liska <mliska@suse.cz>
25277 PR middle-end/79753
25278 * tree-chkp.c (chkp_build_returned_bound): Do not build
25279 returned bounds for a LHS that's not a BOUNDED_P type.
25281 2017-03-20 Martin Liska <mliska@suse.cz>
25285 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
25286 COMPLEX_CST and VECTOR_CST.
25288 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25291 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
25292 target operand. A new splitter adds the clobber statement in case
25293 the target operand is dead anyway.
25295 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
25297 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
25298 to age-old versions of binutils and glibc.
25300 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
25302 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
25304 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
25306 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
25308 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
25310 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
25311 requirement for binutils 2.13.
25313 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
25315 * combine.c (try_combine): Delete redundant i1 test. Call
25316 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
25318 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
25320 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
25321 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
25323 <riscv64-*-elf>: Re-arrange section
25324 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
25325 <riscv32-*-linux>: Likewise.
25326 <riscv64-*-elf>: Likewise
25327 <riscv64-*-linux>: Likewise.
25329 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
25332 * aarch64.opt(verbose-cost-dump): Fix typo.
25334 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
25337 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
25338 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
25340 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
25342 * reload.c (find_reloads): When reloading a nonoffsettable address,
25343 use RELOAD_OTHER for it and its address reloads.
25345 PR rtl-optimization/79910
25346 * combine.c (record_used_regs): New static function.
25347 (try_combine): Handle situations where there is an additional
25348 instruction between I2 and I3 which needs to have a LOG_LINK
25351 2017-03-17 Jeff Law <law@redhat.com>
25353 PR tree-optimization/71437
25354 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
25355 conditional in the hash table first.
25356 (vrp_dom_walker::before_dom_children): Extract condition from
25357 ASSERT_EXPR. Record condition, its inverion and any implied
25358 conditions as well.
25360 2017-03-17 Marek Polacek <polacek@redhat.com>
25361 Markus Trippelsdorf <markus@trippelsdorf.de>
25363 PR tree-optimization/80079
25364 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
25367 2017-03-17 Richard Biener <rguenther@suse.de>
25369 PR middle-end/80075
25370 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
25371 Properly verify the LHS before the RHS possibly claims to be
25373 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
25376 2017-03-17 Martin Jambor <mjambor@suse.cz>
25378 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
25379 (List of -O2 options): Likewise.
25380 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
25383 2017-03-17 Tom de Vries <tom@codesourcery.com>
25385 * gcov-dump.c (print_usage): Print bug_report_url.
25387 2017-03-17 Richard Biener <rguenther@suse.de>
25389 PR middle-end/80050
25390 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
25391 (parser::peek): Likewise.
25393 2017-03-17 Richard Biener <rguenther@suse.de>
25395 PR tree-optimization/80048
25396 * sese.c (free_sese_info): Properly release rename_map and
25397 copied_bb_map elements.
25399 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
25401 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
25402 Add linked-list forward and backlinks. Insert on
25403 construction, remove on destruction.
25404 (class pass_store_merging): Add m_stores_head field.
25405 (pass_store_merging::terminate_and_process_all_chains):
25406 Iterate over m_stores_head list.
25407 (pass_store_merging::terminate_all_aliasing_chains):
25409 (pass_store_merging::execute): Check for debug stmts first.
25410 Push new chains onto the m_stores_head stack.
25412 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
25415 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
25416 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
25417 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
25419 2017-03-16 Jeff Law <law@redhat.com>
25421 PR tree-optimization/71437
25422 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
25423 member function. Implementation moved into after_dom_children
25424 member function and into the threader's thread_outgoing_edges
25426 (dom_opt_dom_walker::after_dom_children): Simplify by moving
25427 some code into new thread_outgoing_edges.
25428 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
25429 definition. Simplify marker handling (do it here). Assume we always
25430 have the available expression and the const/copies tables.
25431 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
25433 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
25434 * tree-vrp.c (equiv_stack): No longer file scoped.
25435 (vrp_dom_walker): New class.
25436 (vrp_dom_walker::before_dom_children): New member function.
25437 (vrp_dom_walker::after_dom_children): Likewise.
25438 (identify_jump_threads): Setup domwalker. Use it rather than
25439 walking edges in a random order by hand. Simplify setup/finalization.
25440 (finalize_jump_threads): Remove.
25441 (vrp_finalize): Do not call identify_jump_threads here.
25442 (execute_vrp): Do it here instead and call thread_through_all_blocks
25445 PR tree-optimization/71437
25446 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
25448 (simplify_stmt_for_jump_threading): Add basic_block argument. All
25450 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
25451 (dom_opt_dom_walker::thread_across_edge): Remove
25452 handle_dominating_asserts argument. All callers changed.
25453 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
25454 changes. Remove calls to lhs_of_dominating_assert. Other
25455 uses of handle_dominating_asserts turn into unconditional code
25456 (simplify_control_stmt_condition_1): Likewise.
25457 (simplify_control_stmt_condition): Likewise.
25458 (thread_through_normal_block, thread_across_edge): Likewise.
25459 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
25460 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
25461 object if it is not an SSA_NAME.
25462 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
25463 before calling into the VRP specific simplifiers.
25464 (identify_jump_threads): Remove handle_dominating_asserts
25467 2017-03-16 Jakub Jelinek <jakub@redhat.com>
25470 * tree-diagnostic.c (default_tree_printer): No longer static.
25471 * tree-diagnostic.h (default_tree_printer): New prototype.
25473 2017-03-16 Tamar Christina <tamar.christina@arm.com>
25475 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
25476 Change ins into fmov.
25478 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25480 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
25481 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
25482 Use h_con constraint for operand 1.
25483 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
25484 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
25486 2017-03-15 Jeff Law <law@redhat.com>
25488 PR tree-optimization/71437
25489 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
25490 (record_temporary_equivalences): Use it.
25492 PR tree-optimization/71437
25493 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
25494 tree-ssa-scopedtables.
25495 (lookup_avail_expr, build_and_record_new_cond): Likewise.
25496 (record_conditions, record_cond, vuse_eq): Likewise.
25497 (record_edge_info): Adjust to API tweak of record_conditions.
25498 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
25499 (record_temporary_equivalences, optimize_stmt): Likewise.
25500 (eliminate_redundant_computations): Likewise.
25501 (record_equivalences_from_stmt): Likewise.
25502 * tree-ssa-scopedtables.c: Include options.h and params.h.
25503 (vuse_eq): New function, moved from tree-ssa-dom.c
25504 (build_and_record_new_cond): Likewise.
25505 (record_conditions): Likewise. Accept vector of conditions rather
25506 than edge_equivalence structure for first argument.
25507 for the first argument.
25508 (avail_exprs_stack::lookup_avail_expr): New member function, moved
25509 from tree-ssa-dom.c.
25510 (avail_exprs_stack::record_cond): Likewise.
25511 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
25512 from tree-ssa-dom.c.
25513 (avail_exprs_stack): Add new member functions lookup_avail_expr
25515 (record_conditions): Declare.
25517 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
25520 * lra-constraints.c (process_alt_operands): Increase reject for
25521 reloading an input/output operand.
25523 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
25526 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
25527 insns to convert from signed/unsigned char/short to IEEE 128-bit
25529 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
25531 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
25534 * config/i386/i386.c (ix86_vector_duplicate_value): Create
25535 subreg of inner mode for values already in registers.
25537 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
25539 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
25540 iteration reg is used after the loop.
25542 2017-03-14 Martin Sebor <msebor@redhat.com>
25544 PR tree-optimization/79800
25545 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
25546 precision in negative-positive range.
25547 (format_floating): Call non-const overload with adjusted precision.
25549 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
25552 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
25555 2017-03-14 Martin Sebor <msebor@redhat.com>
25557 PR middle-end/80020
25558 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
25559 * builtins.def (aligned_alloc): Use it.
25562 * Makefile.in (GTFILES): Add calls.c.
25563 * calls.c: Include "gt-calls.h".
25565 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
25567 PR rtl-optimization/79728
25568 * regs.h (struct target_regs): New field
25569 x_contains_allocatable_regs_of_mode.
25570 (contains_allocatable_regs_of_mode): New macro.
25571 * reginfo.c (init_reg_sets_1): Initialize it, and change
25572 contains_reg_of_mode so it includes global regs as well.
25573 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
25574 rather than contains_regs_of_mode.
25576 2017-03-14 Martin Liska <mliska@suse.cz>
25578 * doc/invoke.texi: Document options that can't be combined with
25579 -fcheck-pointer-bounds.
25581 2017-03-14 Martin Liska <mliska@suse.cz>
25583 PR middle-end/79831
25584 * doc/invoke.texi (-Wchkp): Document the option.
25586 2017-03-14 Martin Liska <mliska@suse.cz>
25588 * Makefile.in: Install gcov-dump.
25590 2017-03-14 Martin Liska <mliska@suse.cz>
25592 * multiple_target.c (expand_target_clones): Bail out for
25593 an invalid attribute.
25595 2017-03-14 Richard Biener <rguenther@suse.de>
25597 * alias.c (struct alias_set_entry): Pack properly.
25598 * cfgloop.h (struct loop): Likewise.
25599 * cse.c (struct set): Likewise.
25600 * ipa-utils.c (struct searchc_env): Likewise.
25601 * loop-invariant.c (struct invariant): Likewise.
25602 * lra-remat.c (struct cand): Likewise.
25603 * recog.c (struct change_t): Likewise.
25604 * rtl.h (struct address_info): Likewise.
25605 * symbol-summary.h (function_summary): Likewise.
25606 * tree-loop-distribution.c (struct partition): Likewise.
25607 * tree-object-size.c (struct object_size_info): Likewise.
25608 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
25609 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
25610 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
25611 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
25612 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
25613 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
25614 (struct _stmt_vec_info): Likewise.
25616 2017-03-14 Martin Liska <mliska@suse.cz>
25619 * multiple_target.c (create_dispatcher_calls): Check that
25620 a target can create a function dispatcher.
25622 2017-03-14 Martin Liska <mliska@suse.cz>
25625 * multiple_target.c (expand_target_clones): Drop local.local
25626 flag for default implementation.
25628 2017-03-14 Richard Biener <rguenther@suse.de>
25630 PR tree-optimization/80030
25631 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
25633 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
25635 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
25636 gcc_fallthrough() instead of __attribute__((fallthrough));
25638 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
25640 * doc/gcc.texi: Remove "up" link to (DIR).
25641 * doc/gccint.texi: Ditto.
25643 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
25645 * doc/install.texi (Specific) <avr>: Remove reference to
25648 2017-03-13 Jeff Law <law@redhat.com>
25650 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
25651 attribute rather than comments.
25653 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
25654 match_scratch operand is highest.
25656 2017-03-13 Martin Liska <mliska@suse.cz>
25658 PR middle-end/78339
25659 * ipa-pure-const.c (warn_function_noreturn): If the declarations
25660 is a CHKP clone, use original declaration.
25662 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
25664 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
25665 (arc_conditional_register_usage): Use a different allocation order
25666 when optimizing for size.
25667 * common/config/arc/arc-common.c (arc_option_optimization_table):
25668 Section anchors default on when optimizing for size.
25670 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
25672 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
25674 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
25676 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
25677 * config/arc/arc.md (cpu_facility): Add cd variant.
25678 (*movqi_insn): Add code density variant.
25679 (*movhi_insn): Likewise.
25680 (*movqi_insn): Likewise.
25681 (*addsi3_mixed): Likewise.
25682 (subsi3_insn): Likewise.
25684 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
25686 * config/arc/arc.md (movsi_cond_exec): Update constraint.
25688 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
25690 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
25691 expressions with MINUS and UNARY ops.
25693 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25696 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
25698 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
25699 between vec_select and vector argument.
25700 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
25701 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
25702 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
25703 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
25704 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
25705 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
25707 2017-03-13 Richard Biener <rguenther@suse.de>
25710 * params.def (vect-max-peeling-for-alignment): Fix typo.
25712 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
25714 * doc/install.texi (Specific) <mips-*-*>: Remove description of
25715 issue that only occurred with binutils below 2.18.
25717 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
25719 * doc/install.texi (Specific) <cris-axis-elf>: No longer
25720 refer to binutils 2.11/2.12 minimum.
25722 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
25724 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
25725 ftp.kernel.org and simplify binutils requirement.
25727 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
25729 * doc/invoke.texi (Warning Options): Fix spelling of link-time
25731 (Optimize Options): Ditto. Also remove redundancy.
25733 2017-03-10 David Malcolm <dmalcolm@redhat.com>
25735 PR translation/79848
25736 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
25738 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
25739 to G_ to avoid double translation.
25741 2017-03-10 David Malcolm <dmalcolm@redhat.com>
25743 PR translation/79923
25744 * auto-profile.c (get_combined_location): Convert leading
25745 character of diagnostics to lower case and remove trailing period.
25746 (read_profile): Likewise for various diagnostics.
25747 * config/arm/arm.c (arm_option_override): Remove trailing period
25748 from various diagnostics.
25749 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
25750 (msp430_expand_delay_cycles): Likewise.
25752 2017-03-10 David Malcolm <dmalcolm@redhat.com>
25755 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
25756 full command-line argument, rather than just "str".
25757 (aarch64_validate_march): Likewise.
25758 (aarch64_validate_mtune): Likewise.
25760 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
25762 PR rtl-optimization/78911
25763 * lra-assigns.c (must_not_spill_p): New function.
25764 (spill_for): Use it.
25766 2017-03-10 Jakub Jelinek <jakub@redhat.com>
25768 PR tree-optimization/79981
25769 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
25770 ATOMIC_COMPARE_EXCHANGE ifn result.
25771 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
25772 IFN_ATOMIC_COMPARE_EXCHANGE.
25774 2017-03-10 David Malcolm <dmalcolm@redhat.com>
25777 * opts.c (parse_sanitizer_options): Add missing question mark to
25778 "did you mean" message.
25780 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25782 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
25784 (VMULEUH_UNS): Likewise.
25785 (VMULOUB_UNS): Likewise.
25786 (VMULOUH_UNS): Likewise.
25787 * config/rs6000/rs6000.c (builtin_function_type): Remove
25788 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
25790 2017-03-10 David Malcolm <dmalcolm@redhat.com>
25793 * read-rtl-function.c (function_reader::read_rtx_operand): Update
25794 x with result of extra_parsing_for_operand_code_0.
25795 (function_reader::extra_parsing_for_operand_code_0): Convert
25796 return type from void to rtx, returning x. When reading
25797 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
25798 larger size containing struct block_symbol.
25800 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
25802 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
25803 -mfloat128-hardware without -m64.
25805 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
25808 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
25809 entries to the case statement that marks unsigned arguments to
25810 overloaded functions.
25812 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
25814 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
25815 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
25817 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
25820 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
25821 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
25823 2017-03-10 Martin Liska <mliska@suse.cz>
25827 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
25828 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
25831 2017-03-10 Olivier Hainque <hainque@adacore.com>
25833 * tree-switch-conversion (array_value_type): Start by resetting
25834 candidate type to it's main variant.
25836 2017-03-10 Jakub Jelinek <jakub@redhat.com>
25838 PR rtl-optimization/79909
25839 * combine.c (try_combine): Use simplify_replace_rtx on individual
25840 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
25841 of the whole CALL_INSN_FUNCTION_USAGE.
25843 PR tree-optimization/79972
25844 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
25845 get_range_info on SSA_NAMEs. Formatting fixes.
25847 2017-03-10 Richard Biener <rguenther@suse.de>
25848 Jakub Jelinek <jakub@redhat.com>
25850 PR tree-optimization/77975
25851 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
25852 edge to be constant.
25853 (get_val_for): For constant x return it. Formatting fix.
25854 (loop_niter_by_eval): Avoid pointless looping if the next iteration
25855 would use the same bases as the current one.
25857 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25859 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
25860 instead of vec_select for V1TImode.
25861 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
25863 (VSX_LE_128): Add V1TI to this mode iterator.
25864 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
25865 (*vsx_le_perm_store_<mode>): Likewise.
25866 (pre-reload splitter for VSX stores): Likewise.
25867 (post-reload splitter for VSX stores): Likewise.
25868 (*vsx_xxpermdi2_le_<mode>): Likewise.
25869 (*vsx_lxvd2x2_le_<mode>): Likewise.
25870 (*vsx_stxvd2x2_le_<mode>): Likewise.
25872 2017-03-09 Michael Eager <eager@eagercon.com>
25874 Correct failures with --enable-checking=yes,rtl.
25876 * config/microblaze/microblaze.c (microblaze_expand_shift):
25877 Replace GET_CODE test with CONST_INT_P and INTVAL test with
25878 test for const0_rtx.
25879 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
25880 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
25882 2017-03-09 Richard Biener <rguenther@suse.de>
25884 PR tree-optimization/79977
25885 * graphite-scop-detection.c (scop_detection::merge_sese):
25886 Handle the case of extra exits to blocks dominating the entry.
25888 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
25890 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
25893 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
25895 PR rtl-optimization/79949
25896 * lra-constraints.c (process_alt_operands): Check memory when
25897 trying to predict a cycle. Print about the overall increase.
25899 2017-03-09 Richard Biener <rguenther@suse.de>
25901 PR middle-end/79971
25902 * gimple-expr.c (useless_type_conversion_p): Preserve
25903 TYPE_SATURATING for fixed-point types.
25905 2017-03-09 Richard Biener <rguenther@suse.de>
25908 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
25909 alignment of BLKmode params.
25911 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25914 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
25915 (VALL_NO_V2Q): Likewise.
25917 * config/aarch64/aarch64-simd.md
25918 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
25920 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
25921 VALL_NO_V2Q mode iterator.
25922 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
25924 2017-03-09 Martin Liska <mliska@suse.cz>
25926 PR tree-optimization/79631
25927 * tree-chkp-opt.c (chkp_is_constant_addr): Call
25928 tree_int_cst_sign_bit just for INTEGER constants.
25930 2017-03-09 Martin Liska <mliska@suse.cz>
25934 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
25937 2017-03-09 Marek Polacek <polacek@redhat.com>
25940 * tree.c (inchash::add_expr): Handle TREE_VEC.
25942 2017-03-09 Martin Liska <mliska@suse.cz>
25945 (chkp_narrow_size_and_offset): New function.
25946 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
25947 (void chkp_parse_bit_field_ref): New function.
25948 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
25949 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
25951 2017-03-09 Martin Liska <mliska@suse.cz>
25954 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
25955 (chkp_find_bounds_1): Remove gcc_unreachable.
25957 2017-03-09 Jakub Jelinek <jakub@redhat.com>
25960 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
25961 BUILT_IN_SYNC*, determine the access type from the size suffix and
25962 always build a MEM_REF with that type. Handle forgotten
25963 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
25966 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
25967 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
25968 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
25969 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
25970 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
25971 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
25972 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
25973 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
25974 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
25975 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
25976 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
25977 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
25978 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
25979 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
25980 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
25981 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
25982 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
25983 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
25984 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
25985 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
25986 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
25987 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
25988 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
25989 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
25990 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
25991 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
25992 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
25993 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
25994 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
25995 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
25996 definitions outside of __OPTIMIZE__ guarded section.
25999 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
26000 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
26001 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
26002 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
26005 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26007 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
26008 ("vfenez<mode>"): Add missing constraints.
26010 2017-03-08 Martin Sebor <msebor@redhat.com>
26013 * config/nds32/nds32.c (nds32_option_override):
26014 Fix misspelled diagnostic.
26016 2017-03-08 Jakub Jelinek <jakub@redhat.com>
26019 * gimplify.c (gimplify_omp_for): Replace index var in outer
26020 taskloop statement with an artificial variable and add
26021 OMP_CLAUSE_PRIVATE clause for it.
26023 2017-03-08 Richard Biener <rguenther@suse.de>
26025 PR tree-optimization/79955
26026 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
26027 for accesses that are completely outside of the variable.
26029 2017-03-08 Andrew Haley <aph@redhat.com>
26031 PR tree-optimization/79943
26032 * tree-ssa-loop-split.c (compute_new_first_bound): When
26033 calculating the new upper bound, (END-BEG) should be added, not
26036 2017-03-08 Jakub Jelinek <jakub@redhat.com>
26038 * config/avr/avr.md (setmemhi): Make sure match_dup
26039 operand number comes before match_scratch.
26041 2017-03-08 Richard Biener <rguenther@suse.de>
26043 PR tree-optimization/79920
26044 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
26045 with ncopies == 1 to ...
26046 (vect_transform_slp_perm_load): ... here. Properly compute
26047 all element loads by iterating VF times over the group. Do
26048 not handle ncopies (computed in a broken way) in
26049 vect_create_mask_and_perm.
26051 2017-03-08 Jakub Jelinek <jakub@redhat.com>
26054 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
26055 is a uniform vector, use uniform_vector_p return value instead of
26056 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
26058 2017-03-07 Marek Polacek <polacek@redhat.com>
26060 PR middle-end/79809
26061 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
26062 (alloca_call_type): Likewise.
26064 2017-03-07 Martin Liska <mliska@suse.cz>
26066 * gcov.c (process_args): Put comment to correct location.
26068 2017-03-07 Martin Liska <mliska@suse.cz>
26070 PR middle-end/68270
26071 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
26072 Use array_at_struct_end_p instead of DECL_CHAIN (field).
26073 (chkp_narrow_bounds_for_field): Likewise.
26074 (chkp_parse_array_and_component_ref): Pass one more argument to
26077 2017-03-07 Richard Biener <rguenther@suse.de>
26079 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
26082 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
26084 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
26085 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
26087 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26090 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
26091 to end of description.
26092 (PARAM_MAX_STORES_TO_MERGE): Likewise.
26094 2017-03-07 Jakub Jelinek <jakub@redhat.com>
26096 PR rtl-optimization/79901
26097 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
26099 (*avx512f_<code><mode>3<mask_name>): ... this.
26100 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
26101 iterator instead of VI8_AVX2_AVX512BW.
26103 PR rtl-optimization/79901
26104 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
26105 min/max expander, expand it using expand_vec_cond_expr.
26108 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
26111 2017-03-06 Jakub Jelinek <jakub@redhat.com>
26114 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
26115 to void * for PCH reasons.
26116 * dwarf2out.c (output_loc_operands, output_die): Cast
26117 v.val_vec.array to unsigned char *.
26119 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
26122 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
26125 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
26127 PR rtl-optimization/79571
26128 * lra-constraints.c (process_alt_operands): Calculate static
26129 reject and subtract it from overall when only addresses will be
26132 2017-03-06 Julia Koval <julia.koval@intel.com>
26135 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
26136 incoming stack boundary to 128 for 64-bit targets.
26138 2017-03-06 Richard Biener <rguenther@suse.de>
26140 PR tree-optimization/79894
26141 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
26142 to NULL after folding it.
26144 2017-03-06 Richard Biener <rguenther@suse.de>
26146 PR tree-optimization/79824
26147 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
26148 check disabling peeling for gaps.
26150 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
26152 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
26153 attributes): Document gettimeofday.
26155 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
26157 * config/s390/s390.c (s390_option_override_internal): Set
26158 PARAM_MIN_VECT_LOOP_BOUND
26160 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
26162 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
26163 * config/s390/s390.md: Likewise.
26165 2017-03-06 Jakub Jelinek <jakub@redhat.com>
26168 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
26169 (<avx2_avx512>_perm<mode>): Rename to ...
26170 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
26172 (<avx512>_perm<mode>_mask): Rename to ...
26173 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
26175 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
26176 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
26177 instead of VI8F_256_512.
26178 (avx512f_perm<mode>): New define_expand.
26179 (avx512f_perm<mode>_mask): Likewise.
26180 (avx512f_perm<mode>_1<mask_name>): New define_insn.
26181 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
26183 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
26185 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
26186 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
26188 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
26190 2017-03-06 Martin Liska <mliska@suse.cz>
26193 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
26194 when having a SSA NAME w/o VAR_DECL assigned to it.
26196 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
26198 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
26199 msa_dpsub_<su>_d): Fix MODE for vec_select.
26201 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
26203 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
26205 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
26207 2017-03-06 Richard Biener <rguenther@suse.de>
26209 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
26210 * plugin.c (register_plugin_info): Likewise.
26211 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
26213 2017-03-05 Jakub Jelinek <jakub@redhat.com>
26215 * config/i386/sse.md (sse_storehps, sse_storelps,
26216 avx_<castmode><avxsizesuffix>_<castmode>,
26217 avx512f_<castmode><avxsizesuffix>_<castmode>,
26218 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
26219 in condition that at least one operand is not a MEM.
26221 2017-03-03 Jakub Jelinek <jakub@redhat.com>
26223 PR middle-end/79805
26224 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
26225 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
26227 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
26228 gimple_call_nothrow_p flag based on whether original builtin can throw.
26229 If it can, emit following stmts on the fallthrough edge.
26230 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
26231 don't create new bb if inserting just debug stmts on the edge, try to
26232 insert them on the fallthru bb or just reset debug stmts.
26234 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
26237 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
26238 restore recog_data (including the operand rtxes inside it) around
26239 the call to get_insn_template.
26241 2017-03-03 Martin Sebor <msebor@redhat.com>
26243 PR tree-optimization/79699
26244 * context.c (context::~context): Free MPFR caches to avoid
26245 a memory leak on program exit.
26247 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26249 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
26250 Use wide_int::ulow () instead of .elt (0).
26252 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
26254 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
26255 (*pushxf): Limit oF constraint to 32bit targets and add oC
26256 constraint for 64bit targets.
26257 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
26258 (*pushdf): Change rmF constraint to rmC.
26260 2017-03-03 Martin Liska <mliska@suse.cz>
26262 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
26263 Remove unused variable.
26265 2017-03-03 Jakub Jelinek <jakub@redhat.com>
26268 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
26269 is a memory operand, increase num_memory.
26270 (ix86_expand_args_builtin): Likewise.
26272 2017-03-03 Jan Hubicka <jh@suse.cz>
26275 * ipa-devirt.c (maybe_record_node): Properly handle
26276 __cxa_pure_virtual visibility.
26278 2017-03-03 Martin Liska <mliska@suse.cz>
26280 PR tree-optimization/79803
26281 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
26283 (pass_loop_prefetch::execute): Disabled optimization if an
26284 assumption about L1 cache size is not met.
26286 2017-03-03 Martin Liska <mliska@suse.cz>
26288 PR rtl-optimization/79574
26289 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
26290 (hash_scan_set): Likewise.
26291 (dump_hash_table): Likewise.
26292 (hoist_code): Likewise.
26294 2017-03-03 Richard Biener <rguenther@suse.de>
26296 * fixed-value.c (fixed_from_string): Restore use of elt (1)
26297 in place of uhigh ().
26298 (fixed_convert_from_real): Likewise.
26300 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
26303 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
26305 2017-03-03 Richard Biener <rguenther@suse.de>
26307 PR middle-end/79818
26308 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
26309 TYPE_OVERFLOW_UNDEFINED check.
26311 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26313 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
26315 (vector_ae_<mode>_p): Likewise.
26316 (vector_nez_<mode>_p): Likewise.
26317 (vector_ne_v2di_p): Likewise.
26318 (vector_ae_v2di_p): Likewise.
26319 (vector_ne_<mode>_p): Likewise.
26320 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
26322 (vsx_tsqrt<mode>2_fe): Likewise.
26324 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
26327 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
26329 2017-03-02 Jakub Jelinek <jakub@redhat.com>
26331 PR rtl-optimization/79780
26332 * cprop.c (one_cprop_pass): When second and further conditional trap
26333 in a single basic block is turned into an unconditional trap, turn it
26334 into a deleted note to avoid RTL verification failures.
26336 2017-03-02 Richard Biener <rguenther@suse.de>
26338 * fold-const.c (const_binop): Use ulow () instead of elt (0).
26340 2017-03-02 Richard Biener <rguenther@suse.de>
26342 PR tree-optimization/79345
26344 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
26345 param and abort the walk, returning -1 if it is hit.
26346 (walk_aliased_vdefs): Take a limit param and pass it on.
26347 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
26348 defaulting to 0 and return a signed int.
26349 * tree-ssa-uninit.c (struct check_defs_data): New struct.
26350 (check_defs): New helper.
26351 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
26352 about uninitialized memory.
26353 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
26354 bogus uninitialized warning.
26355 (fixed_convert_from_real): Likewise.
26357 2017-03-02 Bin Cheng <bin.cheng@arm.com>
26359 PR tree-optimization/66768
26360 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
26361 iv_use if base object can't be determined.
26363 2017-03-02 Jakub Jelinek <jakub@redhat.com>
26365 PR tree-optimization/79345
26366 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
26367 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
26368 (get_pattern_stats): Initialize it.
26369 * genemit.c (gen_expand): Verify match_scratch numbers come after
26370 match_operand/match_dup numbers.
26371 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
26372 match_scratch numbers.
26373 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
26375 * config/s390/s390.md (trunctdsd2): Likewise.
26377 2017-03-02 Richard Biener <rguenther@suse.de>
26379 * wide-int.h (wide_int_storage::operator=): Implement in terms
26382 2017-03-02 Richard Biener <rguenther@suse.de>
26384 PR tree-optimization/79777
26385 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
26386 the to insert expression to sth existing.
26388 2017-03-01 Martin Sebor <msebor@redhat.com>
26390 PR middle-end/79692
26391 * gimple-ssa-sprintf.c
26392 (directive::known_width_and_precision): New function.
26393 (format_integer): Use it.
26394 (get_mpfr_format_length): Consider the full range of precision
26395 when computing %g output with the # flag. Set the likely byte
26396 count to 3 rather than 1 when precision is indeterminate.
26397 (format_floating): Correct the lower bound of precision.
26399 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26401 * doc/invoke.texi: Document default code model for 64-bit Linux.
26403 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
26406 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
26407 udiv rather than div since input pattern is unsigned.
26409 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
26411 * config/i386/i386.c (print_reg): Warn for values of
26412 unsupported size in integer register.
26414 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
26417 * config/rs6000/predicates.md (current_file_function_operand): Do
26418 not allow self calls to be local if the function is replaceable.
26420 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
26423 * config/rs6000/altivec.h (vec_ctz and others): Change the
26424 preprocessor macro that controls conditional compilation from
26425 _ARCH_PWR9 to __POWER9_VECTOR__.
26426 (vec_all_ne): Change parameterization of __altivec_scalar_pred
26427 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
26428 control (instead of _ARCH_PWR9 control) so that template
26429 definition uses power9-specific function.
26430 (vec_any_eq): Likewise.
26431 (vec_all_ne): Change macro definition to use a power9-specific
26432 expansion under #ifdef __POWER9_VECTOR__ control (instead of
26433 _ARCH_PWR9 control).
26434 (vec_any_eq) Likewise.
26435 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
26436 expansion for CMPNEF to remove support for xvcmpnesp instruction.
26437 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
26438 support for xvcmpnedp instruction.
26439 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
26440 macro expansion so that Power9 implementation of vec_all_ne does
26441 not use the AltiVec predicate framework.
26442 (VCMPNEH_P): Likewise.
26443 (VCMPNEW_P): Likewise.
26444 (VCMPNED_P): Likewise.
26445 (VCMPNEFP_P): Likewise.
26446 (VCMPNEDP_P): Likewise.
26447 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
26448 implementation of vec_any_eq to not use AltiVec predicate
26450 (VCMPAEH_P): Likewise.
26451 (VCMPAEW_P): Likewise.
26452 (VCMPAED_P): Likewise.
26453 (VCMPAEFP_P): Likewise.
26454 (VCMPAEDP_P): Likewise.
26455 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
26456 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
26457 not use the AltiVec predicate framework.
26458 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
26459 of vec_any_eq to not use AltiVec predicate framework.
26460 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
26461 support for predefined __POWER9_VECTOR__ macro to indicate that
26462 Power9 instruction selection is enabled.
26463 (altivec_overloaded_builtins): Remove extraneous
26464 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
26465 function argument types RS6000_BTI_bool_V16QI and
26466 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
26467 entry for overloaded function argument types RS6000_BTI_bool_V4SI
26468 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
26469 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
26470 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
26471 Power9 for implementations of vec_cmpne. Change the signature for
26472 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
26473 (representing vec_all_ne) to remove the previously described first
26474 argument of type RS6000_BTI_INTSI, as this was an artifact of
26475 reliance on the AltiVec predicate framework, which is no longer
26476 used in the implementation of these functions. Add
26477 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
26478 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
26479 since, unlike the AltiVec predicate framework implementation, we
26480 do not share function descriptors between vec_alle and vec_anyeq.
26481 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
26482 set of modes that receive special treatment even when
26483 TARGET_P9_VECTOR is true. The special treatment emits code that
26484 does not depend on Power9 instructions.
26485 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
26486 define_expand to not rely on AltiVec predicate framework.
26487 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
26489 (vector_ne_v2di_p): Change this define_expand to not rely on
26490 AltiVec predicate framework.
26491 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
26493 (vector_ne_<mode>_p): Change this define_expand to not rely on
26494 AltiVec predicate framework.
26495 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
26497 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
26498 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
26499 define_insn pattern.
26500 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
26501 define_insn pattern because the xvcmpne<VSs>. instruction is not
26503 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
26504 instruction is not supported.
26506 2017-03-01 Jakub Jelinek <jakub@redhat.com>
26508 * config/nvptx/nvptx.c: Include intl.h.
26510 2017-03-01 Martin Jambor <mjambor@suse.cz>
26513 * ipa-prop.h (ipa_bits): Removed field known.
26514 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
26515 to pointers. Adjusted their comments to warn about their sharing.
26516 (ipcp_transformation_summary): Change bits to a vector of pointers.
26517 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
26518 (ipa_get_ipa_bits_for_value): Declare.
26519 * tree-vrp.h (value_range): Mark as GTY((for_user)).
26520 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
26521 (ipa_bits_hash_table): Likewise.
26522 (ipa_vr_ggc_hash_traits): Likewise.
26523 (ipa_vr_hash_table): Likewise.
26524 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
26525 being pointers and vr_known being removed.
26526 (ipa_set_jf_unknown): Likewise.
26527 (ipa_get_ipa_bits_for_value): New function.
26528 (ipa_set_jfunc_bits): Likewise.
26529 (ipa_get_value_range): New overloaded functions.
26530 (ipa_set_jfunc_vr): Likewise.
26531 (ipa_compute_jump_functions_for_edge): Use the above functions to
26532 construct bits and vr parts of jump functions.
26533 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
26534 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
26536 (ipcp_grow_transformations_if_necessary): Also allocate
26537 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
26539 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
26540 them. Fix too long lines.
26541 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
26542 vr_known being removed.
26543 (ipa_read_jump_function): Use new setter functions to construct bits
26544 and vr parts of jump functions or set them to NULL.
26545 (write_ipcp_transformation_info): Adjust for bits being pointers.
26546 (read_ipcp_transformation_info): Likewise.
26547 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
26549 Include gt-ipa-prop.h.
26550 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
26552 (ipcp_store_bits_results): Likewise.
26553 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
26554 Do not write to existing jump functions but use a temporary instead.
26556 2017-03-01 Jakub Jelinek <jakub@redhat.com>
26559 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
26560 attempt to use its first operand as BIT_FIELD_REF base.
26562 2017-03-01 Richard Biener <rguenther@suse.de>
26564 PR middle-end/79721
26565 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
26566 interpolating formula in wrapping arithmetic.
26567 (chrec_apply): Convert chrec_evaluate return value to wanted type.
26569 2017-03-01 Jakub Jelinek <jakub@redhat.com>
26571 PR tree-optimization/79734
26572 * tree-vect-generic.c (expand_vector_condition): Optimize
26573 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
26574 Handle VEC_COND_EXPR where comparison has different inner width from
26575 type's inner width.
26577 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
26579 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
26580 markup, and similar issues. Remove @opindex entries for things
26581 that aren't options. Add missing -mmpy-option entries.
26583 2017-02-28 Jakub Jelinek <jakub@redhat.com>
26585 PR tree-optimization/79737
26586 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
26587 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
26588 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
26589 instead of byte_size. Formatting fix.
26590 (shift_bytes_in_array_right): Formatting fix.
26592 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
26595 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
26596 condition on optimize for the leaf function test.
26598 2017-02-28 Martin Liska <mliska@suse.cz>
26601 * read-rtl-function.c (function_reader::handle_unknown_directive):
26602 Bail out when one uses -flto.
26604 2017-02-28 Martin Liska <mliska@suse.cz>
26606 * common.opt: Replace space with tabular for options of <number>
26608 * config/i386/i386.opt: Show <number> value for
26609 -mlarge-data-threshold.
26610 * opts.c (print_filtered_help): Do not display number in hexadecimal
26613 2017-02-28 Martin Liska <mliska@suse.cz>
26615 * common.opt: Fix --help=option -Q for options which are of
26618 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
26620 * config/i386/i386.c (print_reg): Error out for values
26621 of 8-bit size in invalid integer register.
26623 2017-02-28 Martin Sebor <msebor@redhat.com>
26625 PR tree-optimization/79691
26626 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
26628 2017-02-28 Jakub Jelinek <jakub@redhat.com>
26631 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
26632 gcc_unreachable with output_operand_lossage.
26634 2017-02-28 Richard Biener <rguenther@suse.de>
26636 PR tree-optimization/79740
26637 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
26639 (visit_nary_op): Insert the nary into the hashtable if we
26640 pattern-matched sth.
26641 * tree-ssa-pre.c (eliminate_insert): Robustify.
26643 2017-02-28 Richard Biener <rguenther@suse.de>
26645 PR middle-end/79731
26646 * fold-const.c (decode_field_reference): Reject out-of-bound
26649 2017-02-28 Jakub Jelinek <jakub@redhat.com>
26651 * config/i386/i386.c: Include intl.h.
26652 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
26653 instead of just cond ? "..." : "...".
26654 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
26655 * coverage.c (read_counts_file): Likewise.
26656 * omp-offload.c: Include intl.h.
26657 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
26658 of just cond ? "..." : "...".
26659 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
26660 of just cond ? "..." : "...".
26662 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
26665 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
26667 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
26668 'tune for' CPU name.
26669 * config/arm/arm-cpu-data.h: Regenerated.
26671 2017-02-28 Richard Biener <rguenther@suse.de>
26673 PR tree-optimization/79732
26674 * tree-inline.c (expand_call_inline): Do not shadow var.
26676 2017-02-28 Richard Biener <rguenther@suse.de>
26678 PR tree-optimization/79723
26679 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
26680 address-space properly.
26682 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
26684 * doc/optinfo.texi (Optimization groups): Fix option used for
26686 * doc/invoke.texi (-fopt-info): Document "omp".
26687 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
26688 (OPTGROUP_ALL): Add OPTGROUP_OMP.
26689 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
26690 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
26691 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
26693 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
26695 * dumpfile.c (optgroup_options): Instead of "openmp", associate
26696 OPTGROUP_OMP with "omp".
26698 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
26701 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
26702 for arithmetic shift of unsigned V2DI.
26704 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
26706 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
26707 arc/linux.h headers.
26708 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
26709 (LINK_SPEC): Likewise.
26710 (ARC_TLS_EXTRA_START_SPEC): Likewise.
26711 (EXTRA_SPECS): Likewise.
26712 (STARTFILE_SPEC): Likewise.
26713 (ENDFILE_SPEC): Likewise.
26714 (LIB_SPEC): Likewise.
26715 (TARGET_SDATA_DEFAULT): Likewise.
26716 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
26717 (MULTILIB_DEFAULTS): Likewise.
26718 (DWARF2_UNWIND_INFO): Likewise.
26719 * config/arc/big.h: New file.
26720 * config/arc/elf.h: Likewise.
26721 * config/arc/linux.h: Likewise.
26722 * config/arc/t-uClibc: Remove.
26724 2017-02-27 Bin Cheng <bin.cheng@arm.com>
26726 PR tree-optimization/77536
26727 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
26728 (tree_transform_and_unroll_loop): Use above function to compute the
26729 estimated niter of unrolled loop and use it when scaling profile.
26730 Also use count info rather than frequency if it's non-zero.
26731 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
26732 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
26733 (vect_transform_loop): Call above function.
26735 2017-02-27 Richard Biener <rguenther@suse.de>
26737 PR tree-optimization/45397
26738 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
26739 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
26740 (visit_nary_op): Add pattern matching for CSEing sign-changed
26741 or truncated operations with wider ones.
26743 2017-02-27 Richard Biener <rguenther@suse.de>
26745 PR tree-optimization/79690
26746 * tree-vect-stmts.c (vectorizable_store): Use vector type
26747 built from the DR with address-space.
26749 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
26751 * doc/invoke.texi (Optimize Options): Refine the description
26752 of asan-use-after-return.
26754 2017-02-25 Alan Modra <amodra@gmail.com>
26756 PR rtl-optimization/79584
26757 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
26758 base, not ad->base_term, the reg within base. Remove assertion
26759 that ad->base == ad->base_term. Replace gen_int_mode using
26760 bogus mode with const0_rtx.
26762 2017-02-25 Jakub Jelinek <jakub@redhat.com>
26764 PR middle-end/79396
26765 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
26766 FMA_EXPR like tcc_binary or tcc_unary.
26768 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
26771 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
26773 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
26774 (output_loc_operands): Handle DW_OP_call_ref and
26775 DW_OP_GNU_variable_value.
26776 (struct variable_value_struct): New type.
26777 (struct variable_value_hasher): Likewise.
26778 (variable_value_hash): New variable.
26779 (string_types): Remove.
26780 (copy_loc_descr): New function.
26781 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
26782 (prepend_loc_descr_to_each): New function.
26783 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
26784 instead of add_loc_descr_to_each if the first argument is single
26785 location list and the second has multiple.
26786 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
26787 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
26788 when looking for variable value which doesn't have other location info.
26789 (loc_list_from_tree): Formatting fix.
26790 (gen_array_type_die): Simplify DW_AT_string_length handling.
26791 (adjust_string_types): Remove.
26792 (gen_subprogram_die): Don't call adjust_string_types nor test/set
26793 string_types. Call resolve_variable_values.
26794 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
26795 (resolve_addr_in_expr): Likewise. Add A argument.
26796 (copy_deref_exprloc): Remove deref argument. Adjust for the
26797 original expression being DW_OP_GNU_variable_value with optionally
26798 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
26799 optionally after it.
26800 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
26801 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
26802 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
26803 (variable_value_hasher::hash, variable_value_hasher::equal): New
26805 (resolve_variable_value_in_expr, resolve_variable_value,
26806 resolve_variable_values, note_variable_value_in_expr,
26807 note_variable_value): New functions.
26808 (dwarf2out_early_finish): Call note_variable_value on all toplevel
26811 2017-02-24 Jakub Jelinek <jakub@redhat.com>
26814 * opts.h (handle_generated_option): Add GENERATED_P argument.
26815 * opts-common.c (handle_option): Adjust function comment.
26816 (handle_generated_option): Add GENERATED_P argument, pass it to
26818 (control_warning_option): Pass false to handle_generated_option
26820 * opts.c (maybe_default_option): Pass true to handle_generated_option
26822 * optc-gen.awk: Likewise.
26824 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
26826 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
26827 a REG, look at the REG it is a SUBREG of.
26828 (splitter for cmpeqsi_t): Ditto.
26830 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
26832 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
26833 the special USEs with the pattern of the insn, not the insn itself.
26835 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
26838 * doc/invoke.texi: Document -mload-store-pairs.
26840 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
26841 Sandra Loosemore <sandra@codesourcery.com>
26843 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
26844 argument isn't a CONST_INT.
26845 (nios2_alternate_compare_const): Assert op is a CONST_INT.
26846 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
26847 (nios2_validate_compare): Bypass alternate compare logic if *op2
26848 is not a CONST_INT.
26849 (ldstwm_operation_p): Return false if first_base is not a REG or
26850 if first_offset is not a CONST_INT.
26852 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
26854 * config/cris/cris.md: Use correct operand in a define_peephole2.
26856 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
26858 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
26860 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
26862 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
26863 this_insn if it is an INSN or JUMP_INSN.
26864 (force_offsettable): Look at base, not at addr.
26865 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
26866 on things that aren't necessarily CONST_INTs.
26868 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
26870 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
26871 -mfpmath=sse is the default also for x86-32 targets with SSE2
26872 instruction set when @option{-ffast-math} is enabled
26874 2017-02-24 Jeff Law <law@redhat.com>
26876 PR rtl-optimizatoin/79286
26877 * ira.c (update_equiv_regs): Drop may_trap_p exception to
26880 2017-02-24 Richard Biener <rguenther@suse.de>
26882 PR tree-optimization/79389
26883 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
26886 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
26888 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
26889 function comment to reflect reality.
26890 (loop_exits_before_overflow): Fix typo in function description.
26892 2017-02-24 Richard Biener <rguenther@suse.de>
26894 PR tree-optimization/79389
26895 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
26896 properly that a threading opportunity exists. Detect conditional
26897 copy/constant propagation opportunities.
26899 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
26901 * config/visium/visium.md (type): Add trap.
26902 (b): New mode attribute.
26903 (*btst): Rename into...
26904 (*btst<mode>): ...this and adjust.
26905 (*cbranchsi4_btst_insn): Rename into...
26906 (*cbranch<mode>4_btst_insn): ...this and adjust.
26907 (trap): New define_insn.
26909 2017-02-23 Jakub Jelinek <jakub@redhat.com>
26911 PR tree-optimization/79389
26912 * ifcvt.c (struct noce_if_info): Add rev_cond field.
26913 (noce_reversed_cond_code): New function.
26914 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
26915 reversed_comparison_code. Formatting fix.
26916 (noce_try_store_flag): Test rev_cond != NULL in addition to
26917 reversed_comparison_code.
26918 (noce_try_store_flag_constants): Likewise.
26919 (noce_try_store_flag_mask): Likewise.
26920 (noce_try_addcc): Use rev_cond if non-NULL instead of
26921 reversed_comparison_code.
26922 (noce_try_cmove_arith): Likewise. Formatting fixes.
26923 (noce_try_minmax, noce_try_abs): Clear rev_cond.
26924 (noce_find_if_block): Initialize rev_cond.
26925 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
26926 instead of false as last argument never attempt to reverse it
26929 2017-02-23 Bin Cheng <bin.cheng@arm.com>
26931 PR tree-optimization/79663
26932 * tree-predcom.c (combine_chains): Process refs in reverse order
26933 only for ZERO length chains, and add explaining comment.
26935 2017-02-23 Jeff Law <law@redhat.com>
26937 PR tree-optimization/79578
26938 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
26939 in call to operand_equal_p.
26941 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
26944 * config/i386/cpuid.h: Fix another undefined behavior.
26946 2017-02-23 Richard Biener <rguenther@suse.de>
26948 PR tree-optimization/79683
26949 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
26950 vector types for data-refs.
26952 2017-02-23 Martin Liska <mliska@suse.cz>
26954 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
26956 2017-02-23 Jakub Jelinek <jakub@redhat.com>
26958 PR middle-end/79665
26959 * internal-fn.c (get_range_pos_neg): Moved to ...
26960 * tree.c (get_range_pos_neg): ... here. No longer static.
26961 * tree.h (get_range_pos_neg): New prototype.
26962 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
26963 are known to be in between 0 and signed maximum inclusive, try to
26964 expand both unsigned and signed divmod and use the cheaper one from
26967 2017-02-22 Jeff Law <law@redhat.com>
26969 PR tree-optimization/79578
26970 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
26971 to compare base operands.
26973 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
26976 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
26977 gpc_reg_operand instead of fpr_reg_operand.
26979 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
26981 * config/mips/mips.c (mips_return_in_memory): Force FP
26982 vector types to be returned in memory for o32 ABI.
26984 2017-02-22 Jakub Jelinek <jakub@redhat.com>
26986 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
26987 instead of DW_TAG_member for static data member declarations and don't
26988 set no_linkage_name for static inline data members.
26989 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
26992 2017-02-22 Martin Liska <mliska@suse.cz>
26994 * doc/invoke.texi: Replace inequality signs with square brackets
26997 2017-02-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26999 PR tree-optimization/68644
27000 * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
27002 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
27005 * lra-constraints.c (simplify_operand_subreg): Handle
27006 WORD_REGISTER_OPERATIONS targets.
27008 2017-02-22 Jakub Jelinek <jakub@redhat.com>
27011 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
27012 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
27013 elimination by swapping fld*.
27015 2017-02-22 Richard Biener <rguenther@suse.de>
27017 PR tree-optimization/79673
27018 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
27019 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
27020 irrelevant address-space qualifiers and avoiding a
27021 ADDR_SPACE_CONVERT_EXPR from fold_convert.
27023 2017-02-22 Richard Biener <rguenther@suse.de>
27025 PR tree-optimization/79666
27026 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
27027 to not symbolically negate if that may introduce undefined
27030 2017-02-22 Martin Liska <mliska@suse.cz>
27033 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
27034 * data-streamer-out.c (streamer_write_gcov_count_stream):
27036 * value-prof.c (stream_out_histogram_value): Make assert more
27037 precise based on type of counter.
27039 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
27042 * config/i386/i386.md (standard_x87sse_constant_load splitter):
27043 Use nonimmediate_operand instead of memory_operand for operand 1.
27044 (float-extend standard_x87sse_constant_load splitter): Ditto.
27046 2017-02-21 Jeff Law <law@redhat.com>
27048 PR tree-optimization/79621
27049 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
27050 blocks with edges to themselves.
27052 2017-02-21 Jakub Jelinek <jakub@redhat.com>
27055 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
27056 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
27057 Use gimple_call_builtin_p.
27060 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
27061 on temporarily removed DEBUG_INSNs.
27063 PR tree-optimization/79649
27064 * tree-loop-distribution.c (classify_partition): Give up on
27065 non-generic address space loads/stores.
27067 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
27069 * doc/loop.texi (Loop manipulation): Remove nonexistent
27070 tree_ssa_loop_version from the documentation.
27071 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
27073 2017-02-21 Jakub Jelinek <jakub@redhat.com>
27076 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
27077 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
27078 * config/rs6000/rs6000.c: Include except.h.
27079 (rs6000_expand_split_stack_prologue): Call
27080 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
27082 2017-02-21 Martin Jambor <mjambor@suse.cz>
27085 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
27086 have been analyzed.
27088 2017-02-21 Martin Jambor <mjambor@suse.cz>
27090 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
27091 for backward compatibility only.
27092 * doc/invoke.texi (Option Summary): Remove all references to
27093 -fipa-cp-alignment.
27095 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
27099 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
27101 * lra-constraints.c (curr_insn_transform): Handle
27102 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
27104 2017-02-21 Martin Liska <mliska@suse.cz>
27106 * config/i386/i386.opt: Replace -masm-dialect with -masm.
27108 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
27110 PR translation/79638
27111 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
27113 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
27116 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
27117 (arm_function_ok_for_sibcall): Return false for an indirect call by
27118 descriptor if all the argument registers are used.
27119 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
27120 alignment of the function.
27122 2017-02-21 Jakub Jelinek <jakub@redhat.com>
27124 PR tree-optimization/61441
27125 * simplify-rtx.c (simplify_const_unary_operation): For
27126 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
27127 the sNaN unmodified.
27129 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
27131 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
27132 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
27133 instead of SYSTEM_HEADER_DIR.
27135 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
27136 Martin Liška <mliska@suse.cz>
27138 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
27139 Fix typos and grammar, use active voice, and clarify.
27141 2017-02-20 Marek Polacek <polacek@redhat.com>
27143 PR middle-end/79537
27144 * gimplify.c (gimplify_expr): Handle unused *&&L;.
27147 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
27149 2017-02-20 Jakub Jelinek <jakub@redhat.com>
27152 * config/i386/i386.c (ix86_expand_builtin): Handle
27153 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
27154 ix86_builtins_isa[fcode].isa as a requirement of those
27155 flags and any other flag in the bitmask.
27156 (ix86_init_mmx_sse_builtins): Use 0 instead of
27157 ~OPTION_MASK_ISA_64BIT as mask.
27158 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
27159 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
27160 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
27161 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
27163 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
27166 * lra-constraints.c (split_reg): Check requested split mode
27167 is supported by the register.
27169 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
27171 * lra-constraints.c (simplify_operand_subreg): Remove early
27174 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
27177 * lra-constraints.c (curr_insn_transform): Tighten condition
27178 for converting SUBREG reloads from OP_OUT to OP_INOUT.
27180 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
27183 * lra-constraints.c (curr_insn_transform): Handle
27184 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
27186 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
27189 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
27191 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
27193 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
27196 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
27199 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
27201 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
27204 2017-02-18 Jakub Jelinek <jakub@redhat.com>
27206 * final.c (last_columnnum, override_columnnum): New variables.
27207 (final_start_function): Set last_columnnum, pass it to begin_prologue
27208 hook and pass 0 to dwarf2out_begin_prologue.
27209 (final_scan_insn): Update override_columnnum. Pass last_columnnum
27210 to source_line debug hook.
27211 (notice_source_line): Compute last_columnnum and for debug_column_info
27212 return true on column changes.
27213 * debug.h (struct gcc_debug_hooks): Add column argument to
27214 source_line and begin_prologue hooks.
27215 (debug_nothing_int_charstar_int_bool): Remove prototype.
27216 (debug_nothing_int_int_charstar,
27217 debug_nothing_int_int_charstar_int_bool): New prototypes.
27218 (dwarf2out_begin_prologue): Add column argument.
27219 * debug.c (do_nothing_debug_hooks): Adjust source_line and
27220 begin_prologue hooks.
27221 (debug_nothing_int_charstar_int_bool): Remove.
27222 (debug_nothing_int_int_charstar,
27223 debug_nothing_int_int_charstar_int_bool): New functions.
27224 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
27225 through to dwarf2out_source_line.
27226 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
27227 (dwarf2out_source_line): Add column argument, emit it if requested.
27228 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
27230 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
27231 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
27232 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
27233 through to dwarf2out_begin_prologue.
27234 (vmsdbgout_source_line): Add column argument, pass it through to
27235 dwarf2out_source_line.
27236 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
27237 dbxout_source_line caller.
27238 (dbxout_source_line): Add column argument.
27240 * common.opt (gno-column-info, gcolumn-info): New options.
27241 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
27242 (check_die): Also test for multiple DW_AT_decl_column attributes.
27243 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
27244 DW_AT_decl_column if requested.
27245 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
27247 (gen_variable_die): Likewise.
27248 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
27249 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
27252 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
27253 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
27254 (ix86_handle_option): Handle OPT_m3dnowa.
27255 * doc/invoke.texi (-m3dnowa): Document.
27256 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
27257 -m3dnowa instead of -m3dnow -march=athlon.
27260 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
27261 instead of gcc_assert for K, r and R code checks. Formatting fixes.
27263 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27266 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
27267 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
27268 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
27269 generator for vsx_xxpermdi_<mode>_be.
27270 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
27271 force big-endian semantics.
27272 (vsx_xxpermdi_<mode>_be): New define_expand with same
27273 implementation as previous version of vsx_xxpermdi_<mode>.
27275 2017-02-17 Jakub Jelinek <jakub@redhat.com>
27277 PR tree-optimization/79327
27278 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
27279 variable, its initialization and use.
27281 2017-02-17 Julia Koval <julia.koval@intel.com>
27283 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
27284 (OPTION_MASK_ISA_PKU_UNSET): New.
27285 (ix86_handle_option): Handle -mrdpid.
27286 * config/i386/cpuid.h (bit_RDPID): New.
27287 * config/i386/driver-i386.c (host_detect_local_cpu):
27288 Detect RDPID feature.
27289 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
27290 * config/i386/i386-c.c (ix86_target_macros_internal):
27292 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
27293 (ix86_valid_target_attribute_inner_p): Add "rdpid".
27294 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
27295 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
27296 * config/i386/i386.md (define_insn "rdpid"): New.
27297 * config/i386/i386.opt Add -mrdpid.
27298 * config/i386/immintrin.h (_rdpid_u32): New.
27300 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
27302 PR rtl-optimization/79541
27303 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
27304 instead of transforming it into USE.
27306 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
27308 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
27309 If HONOR_SNANS (SFmode) force the input to a register.
27310 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
27311 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
27312 an frsp or similar insn.
27314 2017-02-17 Martin Liska <mliska@suse.cz>
27316 PR rtl-optimization/79577
27317 * params.def (selsched-max-sched-times): Increase minimum to 1.
27319 2017-02-17 Martin Liska <mliska@suse.cz>
27321 PR rtl-optimization/79574
27322 * gcse.c (want_to_gcse_p): Prevent integer overflow.
27324 2017-02-17 Martin Liska <mliska@suse.cz>
27326 PR tree-optimization/79529
27327 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
27328 ssa_defined_default_def_p to handle cases which are implicitly
27330 * tree-ssa.c (ssa_defined_default_def_p): New function.
27331 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
27332 which are implicitly defined.
27333 * tree-ssa.h (ssa_defined_default_def_p): Declare.
27335 2017-02-17 Richard Biener <rguenther@suse.de>
27337 PR middle-end/79576
27338 * params.def (max-ssa-name-query-depth): Limit to 10.
27340 2017-02-17 Richard Biener <rguenther@suse.de>
27342 PR tree-optimization/79552
27343 * tree-ssa-structalias.c (visit_loadstore): Properly verify
27346 2017-02-17 Richard Biener <rguenther@suse.de>
27349 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
27351 2017-02-17 Marek Polacek <polacek@redhat.com>
27353 PR middle-end/79536
27354 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
27355 (fold_negate_expr): New wrapper.
27357 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
27359 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
27360 Correct terminology and de-emphasize pre-standard behavior.
27362 2017-02-16 Alan Modra <amodra@gmail.com>
27364 PR rtl-optimization/79286
27365 * ira.c (def_dominates_uses): New function.
27366 (update_equiv_regs): Don't create an equivalence for insns that
27367 may trap where the register def does not dominate the use.
27369 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
27371 PR rtl-optimization/78127
27372 * lra.c (lra): Call lra_eliminate before finish the loop after
27375 2017-02-16 Richard Biener <rguenther@suse.de>
27377 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
27379 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
27380 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
27381 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
27382 (isl_val_int_from_wi): New function.
27383 (extract_affine_gmp): Rename to ...
27384 (extract_affine_wi): ... this, take a widest_int.
27385 (extract_affine_int): Just wrap extract_affine_wi.
27386 (add_param_constraints): Use isl_val_int_from_wi.
27387 (add_loop_constraints): Likewise, and extract_affine_wi.
27389 2017-02-15 Jeff Law <law@redhat.com>
27391 PR middle-end/79521
27392 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
27393 ira_init_register_move_cost_if_necessary.
27395 2017-02-15 Martin Sebor <msebor@redhat.com>
27397 PR middle-end/32003
27398 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
27399 removed in a prior commit.
27401 2017-02-15 Bin Cheng <bin.cheng@arm.com>
27403 PR tree-optimization/79347
27404 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
27405 counters during peeling.
27407 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
27409 * Makefile.in (site.exp): Remove "set ISLVER".
27411 2017-02-15 Jakub Jelinek <jakub@redhat.com>
27414 * real.c (real_from_integer): Call real_convert even for decimal.
27416 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
27419 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
27421 2017-02-14 Andrew Pinski <apinski@cavium.com>
27423 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
27424 cores and change the partno/implementer to be correct.
27425 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
27426 the 'B" as the implementer.
27427 * config/aarch64/aarch64-tune.md: Regenerate.
27429 2017-02-14 Carl Love <cel@us.ibm.com>
27431 * config/rs6000/rs6000.c: Add case statement entry to make the
27432 xvcvuxdsp built-in argument unsigned.
27433 * config/rs6000/vsx.md: Fix the source and return operand types so they
27434 match the instruction definitions from the ISA document. Fix typo
27435 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
27438 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
27441 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
27442 member early_clobber_alts.
27443 * lra-lives.c (reg_early_clobber_p): New.
27444 (process_bb_lives): Use it.
27445 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
27446 (debug_operand_data): Initialize early_clobber_alts.
27447 (setup_operand_alternative): Set up early_clobber_alts.
27448 (collect_non_operand_hard_regs): Ditto. Pass early clobber
27449 alternatives to new_insn_reg.
27450 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
27452 (lra_update_insn_regno_info): Pass the new arg.
27454 2017-02-14 Jakub Jelinek <jakub@redhat.com>
27456 PR middle-end/79505
27457 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
27458 (new_oacc_loop_raw): Don't clear already cleared fields.
27461 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
27462 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
27463 _mm512_prefetch_i64gather_ps): New inline functions and macros.
27465 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
27468 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
27470 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
27473 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
27474 the extra instruction to the right place to store 128-bit constant
27477 2017-02-14 Martin Sebor <msebor@redhat.com>
27479 PR middle-end/79448
27480 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
27481 warning for strings of unknown length.
27483 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
27485 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
27487 2017-02-14 Jeff Law <law@redhat.com>
27490 * ira-costs.c (scan_one_insn): Initialize register move costs
27491 for pseudos seen in USE/CLOBBER insns.
27493 PR tree-optimization/79095
27494 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
27495 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
27496 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
27497 if the operands are known to be not equal, then the resulting range
27499 (intersect_ranges): If the new range is ~[0,0] and the old range is
27500 wide, then prefer ~[0,0].
27501 * tree-vrp.c (overflow_comparison_p_1): New function.
27502 (overflow_comparison_p): New function.
27503 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
27504 if NAME is used in an overflow test.
27505 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
27506 overflow check that can be expressed as an equality test, then adjust
27507 ops to be that equality test.
27509 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27511 * config/s390/s390-builtin-types.def: Remove flags argument.
27512 * config/s390/s390.c (s390_init_builtins): Likewise.
27514 2017-02-14 Martin Liska <mliska@suse.cz>
27516 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
27517 vector. Fix trailing white spaces.
27519 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
27521 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
27524 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27526 PR rtl-optimization/68664
27527 * config/arm/arm.c (arm_sched_can_speculate_insn):
27528 New function. Declare prototype.
27529 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
27531 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27533 PR rtl-optimization/68664
27534 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
27536 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
27538 2017-02-14 Amit Pawar <amit.pawar@amd.com>
27540 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
27541 max skip bytes for function, loop and jump.
27543 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
27545 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
27546 ABS_EXPR for gimple dump.
27548 2017-02-14 Jakub Jelinek <jakub@redhat.com>
27551 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
27553 PR tree-optimization/79408
27554 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
27555 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
27556 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
27557 also if rhs1 is INTEGER_CST.
27559 2017-02-14 Richard Biener <rguenther@suse.de>
27561 PR middle-end/79432
27562 * tree-into-ssa.c (insert_phi_nodes): When the function can
27563 have abnormal edges rewrite SSA names with broken use-def
27564 dominance out of SSA and register them for PHI insertion.
27566 2017-02-13 Martin Sebor <msebor@redhat.com>
27568 PR middle-end/79496
27569 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
27570 clearing info.nowrite flag when snprintf size argument is a range.
27572 2017-02-13 Jakub Jelinek <jakub@redhat.com>
27574 * cprop.c (cprop_jump): Add missing space in string literal.
27575 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
27576 (get_constraint_for_component_ref): Likewise.
27577 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
27578 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
27579 * lra-constraints.c (process_alt_operands): Likewise.
27580 * ipa-inline.c (inline_small_functions): Likewise.
27581 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
27582 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
27583 * trans-mem.c (diagnose_tm_1_op): Likewise.
27584 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
27585 (grid_parallel_clauses_gridifiable): Likewise.
27587 * config/nvptx/mkoffload.c (process): Add space in between
27590 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
27591 "MOD4_SSE_REGS" and "ALL_REGS".
27593 * spellcheck.c (test_data): Add , in between "foo" and "food".
27595 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
27598 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
27599 boundary crossing check and subsequent code generation agree.
27601 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27603 * config/aarch64/aarch64.c (has_memory_op): Delete.
27604 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
27607 2017-02-13 Jakub Jelinek <jakub@redhat.com>
27609 PR rtl-optimization/79388
27610 PR rtl-optimization/79450
27611 * combine.c (distribute_notes): When removing TEM_INSN for which
27612 corresponding dest has last value recorded, invalidate that last
27615 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27617 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
27618 of explicit '@'. Add missing assembly comment marker on branch costs
27621 2017-02-13 Nathan Sidwell <nathan@acm.org>
27623 * gengtype-lex.l (<in_struct>): Add '/'.
27625 2017-02-13 Martin Liska <mliska@suse.cz>
27628 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
27630 2017-02-13 Richard Biener <rguenther@suse.de>
27632 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
27634 * configure: Re-generate.
27635 * config.in: Likewise.
27636 * graphite-dependences.c: Simplify as if
27637 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
27638 * graphite-isl-ast-to-gimple.c: Likewise.
27639 * graphite-optimize-isl.c: Likewise.
27640 * graphite-poly.c: Likewise.
27641 * graphite-sese-to-poly.c: Likewise.
27642 * graphite.h: Likewise.
27643 * toplev.c: Include isl/version.h and use isl_version () for
27644 printing the ISL version.
27645 * doc/install.texi: Update ISL requirement.
27647 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
27649 * doc/standards.texi (Standards): Update reference to
27652 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
27654 * doc/extend.texi (Named Address Spaces): sourceware.org now
27656 * doc/install.texi (Binaries): Ditto.
27659 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
27661 * doc/cpp.texi: Replace "stringify"/"stringification" with C
27662 standard terminology "stringize"/"stringizing" throughout.
27663 * doc/cppinternals.texi: Likewise.
27665 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
27667 * doc/extend.texi: Fix some spelling mistakes and typos.
27668 * doc/invoke.texi: Likewise.
27670 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
27673 * params.def (inline-min-speedup) Change from 10 to 8.
27675 2017-02-11 Jakub Jelinek <jakub@redhat.com>
27677 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
27680 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
27683 * ipa-inline-analysis.c (get_minimal_bb): New function.
27684 (record_modified): Use it.
27685 (remap_edge_change_prob): Handle also ancestor functions.
27687 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
27689 * doc/contrib.texi (Contributors): Remove broken link into
27690 the Mauve CVS repository.
27692 2017-02-11 Jakub Jelinek <jakub@redhat.com>
27694 PR middle-end/79454
27695 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
27696 result computation whenever lhs doesn't have vector mode, not
27697 just when it has BLKmode.
27699 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
27701 * doc/makefile.texi (profiledbootstrap): Refer to the
27702 installation instructions only in textual form.
27704 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
27707 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
27709 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
27711 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
27712 (Specific): Update mingw-w64 reference.
27714 (Specific): Remove broken link to Renesas RX processor.
27716 2017-02-10 Richard Biener <rguenther@suse.de>
27718 * toplev.c (process_options): Do not mention obsolete graphite
27719 options when printing sorry message about missing graphite support.
27720 Mention -floop-nest-optimize.
27722 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
27724 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
27725 (vtst_p16): Likewise.
27726 (vtstq_p8): Likewise.
27727 (vtstq_p16): Likewise.
27729 (vtstq_p64): Likewise.
27730 * config/arm/arm_neon.h (vgetq_lane_p64): New.
27731 (vset_lane_p64): New.
27732 (vsetq_lane_p64): New.
27734 2017-02-10 Jakub Jelinek <jakub@redhat.com>
27736 PR tree-optimization/79411
27737 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
27738 stmt operands are SSA_NAMEs used in abnormal phis.
27739 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
27742 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
27745 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
27748 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
27750 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
27752 2017-02-09 Jakub Jelinek <jakub@redhat.com>
27754 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
27758 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
27759 not arbitrary TREE_CONSTANT.
27762 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
27763 "omp declare target link" attribute unless is_global_var.
27764 * omp-offload.c (find_link_var_op): Likewise.
27766 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
27767 Chung-Lin Tang <cltang@codesourcery.com>
27769 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
27771 (gimplify_adjust_omp_clauses): Don't delete TILE.
27772 (gimplify_omp_for): Deal with TILE.
27773 * internal-fn.c (expand_GOACC_TILE): New function.
27774 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
27776 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
27777 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
27779 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
27780 avoid DIV for outermost collapse var.
27781 (expand_oacc_for): Insert tile element loop as needed. Adjust.
27782 Remove out of date comments, fix whitespace.
27783 * omp-general.c (omp_extract_for_data): Deal with tiling.
27784 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
27785 adjust OLF_DIM_BASE value.
27786 (struct omp_for_data): Add tiling field.
27787 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
27788 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
27789 for auto loops. Remove default auto determining, moved to
27790 oacc_loop_fixed_partitions.
27791 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
27792 stmts, add e_mask field.
27793 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
27794 (oacc_thread_numbers): Use oacc_dim_call.
27795 (oacc_xform_tile): New.
27796 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
27797 (finish_oacc_loop): Adjust for ifns vector.
27798 (oacc_loop_discover_walk): Append loop abstraction sites to list,
27799 add case for GOACC_TILE fns.
27800 (oacc_loop_xform_loop): Delete.
27801 (oacc_loop_process): Iterate over call list directly, and add
27802 handling for GOACC_TILE fns.
27803 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
27805 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
27806 vector partitioning to outer loops. Assign 2 partitions to loops
27807 when available. Add TILE handling.
27808 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
27809 (execite_oacc_device_lower): Process GOACC_TILE fns,
27810 ignore unknown specs.
27811 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
27812 * tree.c (omp_clause_num_ops): Adjust TILE ops.
27813 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
27815 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
27817 * configure.ac (ACX_BUGURL): Update.
27818 * configure: Regenerate.
27820 2017-02-09 Richard Biener <rguenther@suse.de>
27822 PR tree-optimization/69823
27823 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
27824 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
27826 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
27828 * config/arc/arc-c.def: Add __NPS400__ definition.
27829 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
27830 (TARGET_NPS400): Define.
27832 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
27834 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
27836 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
27837 pointer, arch_info.
27838 (arc_cpu_types): Fill the arch_info field with a pointer into the
27839 arc_arch_types table.
27840 (arc_selected_cpu): Declare.
27841 * config/arc/arc.c (arc_selected_cpu): Make global.
27842 (arc_selected_arch): Delete.
27843 (arc_base_cpu): Delete.
27844 (arc_override_options): Remove references to deleted variables,
27845 update access to arch information.
27846 (ARC_OPT): Update access to arch information.
27847 (ARC_OPTX): Likewise.
27848 * config/arc/arc.h (arc_base_cpu): Remove declaration.
27849 (TARGET_ARC600): Update access to arch information.
27850 (TARGET_ARC601): Likewise.
27851 (TARGET_ARC700): Likewise.
27852 (TARGET_EM): Likewise.
27853 (TARGET_HS): Likewise.
27854 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
27857 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
27860 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
27861 condition/operands for integer GE/LE/GEU/LEU operations.
27863 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
27865 PR translation/79397
27866 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
27869 2017-02-08 Martin Jambor <mjambor@suse.cz>
27872 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
27873 whether allocation happened.
27874 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
27875 nothing was allocated.
27877 2017-02-08 Jakub Jelinek <jakub@redhat.com>
27879 PR tree-optimization/79408
27880 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
27881 constant, but SSA_NAME with a known integer range, use the minimum
27882 of that range instead of op1 to determine if modulo can be replaced
27883 with its first operand.
27885 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27887 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
27889 2017-02-08 Richard Biener <rguenther@suse.de>
27891 PR tree-optimization/71824
27892 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
27893 Check all loops contained in the merged region.
27895 2017-02-07 Andrew Pinski <apinski@cavium.com>
27897 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
27899 2017-02-07 Andrew Pinski <apinski@cavium.com>
27901 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
27902 (thunderxt88): Likewise.
27903 (thunderxt81): Disable LSE and change v8.1 to v8.
27904 (thunderxt83): Likewise.
27906 2017-02-07 Jakub Jelinek <jakub@redhat.com>
27907 Richard Biener <rguenther@suse.de>
27909 PR middle-end/79399
27910 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
27911 type from int to size_t.
27912 * ira-costs.c (struct_costs_size): Change type from int to size_t.
27914 2017-02-07 Jakub Jelinek <jakub@redhat.com>
27916 PR rtl-optimization/79386
27917 * cprop.c (bypass_conditional_jumps): Initialize
27918 bypass_last_basic_block already before splitting bbs after
27919 unconditional traps...
27920 (bypass_conditional_jumps): ... rather than here.
27923 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
27924 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
27925 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
27926 fix -masm=intel patterns.
27928 2017-02-07 Richard Biener <rguenther@suse.de>
27930 PR tree-optimization/79256
27931 PR middle-end/79278
27932 * builtins.c (get_object_alignment_2): Use min_align_of_type
27933 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
27934 and ADJUST_FIELD_ALIGN.
27936 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
27938 * doc/tm.texi: Regenerate.
27939 * stor-layout.c (layout_decl): Adjust.
27940 (update_alignment_for_field): Likewise.
27941 (place_field): Likewise.
27942 (min_align_of_type): Likewise.
27943 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
27944 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
27945 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
27946 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
27947 * config/frv/frv.c (frv_adjust_field_align): Likewise.
27948 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
27949 * config/i386/i386.c (x86_field_alignment): Likewise.
27950 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
27951 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
27952 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
27953 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
27954 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
27955 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
27959 2017-01-30 Richard Biener <rguenther@suse.de>
27961 PR tree-optimization/79256
27962 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
27963 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
27966 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
27968 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
27969 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
27970 builtins to SImode and emit a zero-extend, if necessary.
27972 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
27974 * docs/invoke.texi (RISC-V Options): Alphabetize.
27976 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
27978 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
27981 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
27983 * config/riscv/riscv.c: New file.
27984 * common/config/riscv/riscv-common.c: Likewise.
27985 * config.gcc: Likewise.
27986 * config/riscv/constraints.md: Likewise.
27987 * config/riscv/elf.h: Likewise.
27988 * config/riscv/generic.md: Likewise.
27989 * config/riscv/linux.h: Likewise.
27990 * config/riscv/multilib-generator: Likewise.
27991 * config/riscv/peephole.md: Likewise.
27992 * config/riscv/pic.md: Likewise.
27993 * config/riscv/predicates.md: Likewise.
27994 * config/riscv/riscv-builtins.c: Likewise.
27995 * config/riscv/riscv-c.c: Likewise.
27996 * config/riscv/riscv-ftypes.def: Likewise.
27997 * config/riscv/riscv-modes.def: Likewise.
27998 * config/riscv/riscv-opts.h: Likewise.
27999 * config/riscv/riscv-protos.h: Likewise.
28000 * config/riscv/riscv.h: Likewise.
28001 * config/riscv/riscv.md: Likewise.
28002 * config/riscv/riscv.opt: Likewise.
28003 * config/riscv/sync.md: Likewise.
28004 * config/riscv/t-elf-multilib: Likewise.
28005 * config/riscv/t-linux: Likewise.
28006 * config/riscv/t-linux-multilib: Likewise.
28007 * config/riscv/t-riscv: Likewise.
28008 * configure.ac: Likewise.
28009 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
28010 Waterman as RISC-V maintainers.
28011 * doc/install.texi: Add RISC-V entries.
28012 * doc/invoke.texi: Add RISC-V options section.
28013 * doc/md.texi: Add RISC-V constraints section.
28014 * configure: Regenerated.
28016 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
28019 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
28020 false values to be constant vectors with all 0 or all 1 bits set.
28021 (vcondu<mode><mode>): Likewise.
28022 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
28024 (fpmask_comparison_operator): Update comment.
28025 (vecint_comparison_operator): New predicate.
28026 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
28027 vector conditionals when the true and false values are constant
28028 vectors with all 0 bits or all 1 bits set.
28030 2017-02-06 Martin Sebor <msebor@redhat.com>
28032 PR tree-optimization/79376
28033 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
28035 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
28037 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
28038 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
28039 to simplify split condition.
28041 2017-02-06 Jakub Jelinek <jakub@redhat.com>
28043 * omp-expand.c (oxpand_omp_atomic_fetch_op,
28044 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
28047 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
28049 PR rtl-optimization/68664
28050 * target.def (can_speculate_insn): New hook.
28051 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
28052 * doc/tm.texi: Regenerate.
28053 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
28054 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
28055 (rs6000_sched_can_speculate_insn): New function.
28057 2017-02-06 Jakub Jelinek <jakub@redhat.com>
28059 PR tree-optimization/79284
28060 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
28061 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
28062 vectorizable_mask_load_store, vectorizable_operation,
28063 vect_is_simple_cond, get_same_sized_vectype): Use it instead
28064 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
28065 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
28066 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
28067 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
28068 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
28069 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
28070 is_gimple_assign (stmt). Replace another such test with
28071 is_gimple_assign (stmt).
28073 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
28076 * config/avr/avr.c (rtl-iter.h): Include it.
28077 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
28078 (avr_legitimate_combined_insn): ...and implementation.
28080 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
28082 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
28083 * config/s390/s390.c (s390_const_operand_ok)
28084 (s390_canonicalize_comparison, s390_extract_part)
28085 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
28086 (s390_contiguous_bitmask_p, s390_rtx_costs)
28087 (legitimize_pic_address): Likewise.
28088 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
28089 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
28090 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
28091 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
28092 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
28094 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
28096 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
28097 REGNO($0) == REGNO($1).
28099 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28101 * config/s390/linux.h(SIZE_TYPE): Add comment.
28103 2017-02-06 Julian Brown <julian@codesourcery.com>
28104 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
28105 Virendra Pathak <virendra.pathak@broadcom.com>
28107 * config/aarch64/aarch64-cores.def: Change the scheduler
28109 * config/aarch64/aarch64.md: Include thunderx2t99.md.
28110 * config/aarch64/thunderx2t99.md: New file.
28112 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
28114 * doc/standards.texi (Go Language): Update link to language
28117 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
28119 * tree-eh.c (lower_resx): Sanitize profile.
28120 (cleanup_empty_eh_move_lp): Likewise.
28122 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
28125 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
28127 * cfgloopmanip.h (loop_version): Update prototype.
28128 * modulo-sched.c (sms_schedule): Update call of loop_version.
28129 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
28130 * tree-parloops.c (gen_parallel_loop): Likewise.
28131 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
28132 * tree-ssa-loop-split.c (split_loop): Likewise.
28133 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
28134 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
28136 2017-02-05 Martin Liska <mliska@suse.cz>
28139 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
28141 (print_operand_address): Initialize a struct to zero.
28143 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
28145 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
28146 garbage collector only in textual form.
28148 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
28150 * doc/extend.texi (x86 specific memory model extensions for
28151 transactional memory): Simplify a phrase.
28153 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
28156 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
28157 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
28158 (atomic_storedi_1): Likewise.
28160 2017-02-04 Jakub Jelinek <jakub@redhat.com>
28162 PR tree-optimization/79338
28163 * tree-parloops.c (gather_scalar_reductions): Don't call
28164 vect_analyze_loop_form for loop->inner before destroying loop's
28167 2017-02-03 Martin Sebor <msebor@redhat.com>
28169 PR tree-optimization/79327
28170 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
28171 when precision has resulted in leading zeros.
28172 (format_integer): Adjust the likely counter to assume an unknown
28173 argument that may be zero is non-zero.
28175 2017-02-03 Jason Merrill <jason@redhat.com>
28178 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
28179 avoid copying non-taken branch.
28181 2017-02-03 Jakub Jelinek <jakub@redhat.com>
28183 PR tree-optimization/79340
28184 * tree-vect-loop.c (vectorizable_reduction): Release
28185 vec_defs elements after safe_splicing them into other vectors.
28188 PR tree-optimization/79327
28189 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
28190 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
28192 (format_integer): Use wide_int_to_tree instead of build_int_cst
28193 + to_?hwi. If argmin is NULL, just set argmin and argmax to
28194 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
28195 of shortest and longest sequence.
28197 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
28199 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
28200 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
28202 2017-02-03 Walter Lee <walt@tilera.com>
28205 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
28206 after initial stackframe link reg save.
28207 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
28209 2017-02-03 Jakub Jelinek <jakub@redhat.com>
28212 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
28213 wu for stxssp alternative.
28215 2017-02-03 Martin Sebor <msebor@redhat.com>
28217 PR tree-optimization/79352
28218 * gimple-fold.c (get_range_strlen): Add argument.
28219 (get_range_strlen): Change return type to bool.
28220 (get_maxval_strlen): Pass in a dummy argument.
28221 * gimple-fold.h (get_range_strlen): Change return type to bool.
28222 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
28223 * tree.h (array_at_struct_end_p): Add argument.
28224 * tree.c (array_at_struct_end_p): Handle it.
28226 2017-02-03 Martin Liska <mliska@suse.cz>
28229 * multiple_target.c (create_dispatcher_calls): Redirect edge
28230 from a caller of a dispatcher.
28231 (expand_target_clones): Make the clones local.
28232 (ipa_target_clone): Do both target clones and resolvers.
28233 (ipa_dispatcher_calls): Remove the pass.
28234 (pass_dispatcher_calls::gate): Likewise.
28235 (make_pass_dispatcher_calls): Likewise.
28236 * passes.def (pass_target_clone): Put as very first IPA early
28239 2017-02-03 Martin Liska <mliska@suse.cz>
28241 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
28242 in case of a function with ifunc attribute.
28244 2017-02-03 Martin Liska <mliska@suse.cz>
28246 * cgraph.c (cgraph_node::dump): Dump function version info.
28247 * symtab.c (symtab_node::dump_base): Add missing new line.
28249 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
28251 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
28252 (ifcombine_ifandif): Use it.
28254 2017-02-03 Martin Liska <mliska@suse.cz>
28256 * doc/invoke.texi: Document default value for
28257 use-after-scope-direct-emission-threshold.
28259 2017-02-03 Martin Liska <mliska@suse.cz>
28261 PR tree-optimization/79339
28262 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
28263 (format_floating): Likewise.
28265 2017-02-03 Martin Liska <mliska@suse.cz>
28268 * ipa-prop.c (ipa_node_params_t::insert): Remove current
28270 (ipa_node_params_t::remove): Likewise.
28271 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
28272 initialization from removed ipa_node_params_t::insert.
28273 (ipa_node_params::~ipa_node_params): Move from removed
28274 ipa_node_params_t::release.
28275 * symbol-summary.h (symbol_summary::m_released): New member.
28276 Do not release a summary twice. Do not allow to call finalizer
28277 for types of a summary that live in GGC memory.
28279 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
28281 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
28284 2017-02-02 Martin Sebor <msebor@redhat.com>
28286 PR middle-end/79275
28287 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
28288 (format_string): Tighten up the range of output for non-constant
28289 strings and correct the expected range for wide non-constant strings.
28291 2017-02-02 Martin Sebor <msebor@redhat.com>
28293 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
28295 PR middle-end/32003
28296 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
28298 (-fdump-tree-@var): Add to index and document how to come up
28299 with pass-specific option and dump file names.
28300 (-fdump-passes): Clarify where to look for output.
28302 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
28304 PR middle-end/77445
28305 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
28306 statistics of the analyzed path; allow threading for speed when
28307 any of BBs along the path are optimized for speed.
28309 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
28311 PR middle-end/78468
28312 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
28313 settings of the virtual registers.
28316 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
28318 * explow.c (get_dynamic_stack_size): Take known alignment of stack
28319 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
28322 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28324 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
28325 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
28327 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28329 * config/s390/s390.md: Add missing comments with the expanded
28331 * config/s390/vector.md: Likewise.
28332 * config/s390/vx-builtins.md: Likewise.
28334 2017-02-02 Jakub Jelinek <jakub@redhat.com>
28337 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
28338 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
28339 conditions on a single line.
28341 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28343 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
28344 __S390_VX__ to __VX__.
28346 2017-02-01 Andrew Pinski <apinski@cavium.com>
28348 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
28349 stmt_info to record_stmt_cost.
28350 (vect_get_known_peeling_cost): Pass stmt_info if known to
28352 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
28353 cpu_vector_cost field into
28354 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
28355 field into vec_int_stmt_cost and vec_fp_stmt_cost.
28356 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
28357 splitting of scalar_stmt_cost and vec_stmt_cost.
28358 (thunderx_vector_cost): Likewise.
28359 (cortexa57_vector_cost): LIkewise.
28360 (exynosm1_vector_cost): Likewise.
28361 (xgene1_vector_cost): Likewise.
28362 (thunderx2t99_vector_cost): Improve after the splitting of the two
28364 (aarch64_builtin_vectorization_cost): Update for the splitting of
28365 scalar_stmt_cost and vec_stmt_cost.
28367 2017-02-01 Torvald Riegel <triegel@redhat.com>
28368 Richard Henderson <rth@redhat.com>
28370 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
28371 conditional on existance of a fast atomic load.
28372 * optabs-query.c (can_atomic_load_p): New function.
28373 * optabs-query.h (can_atomic_load_p): Declare it.
28374 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
28375 no fast atomic load is available for the particular size of access.
28376 (expand_atomic_compare_and_swap): Likewise.
28377 (expand_atomic_load): Likewise.
28378 (expand_atomic_store): Likewise.
28379 (expand_atomic_fetch_op): Likewise.
28380 * testsuite/lib/target-supports.exp
28381 (check_effective_target_sync_int_128): Remove x86 because it provides
28382 no fast atomic load.
28383 (check_effective_target_sync_int_128_runtime): Likewise.
28385 2017-02-01 Richard Biener <rguenther@suse.de>
28387 * graphite.c: Include tree-vectorizer.h for find_loop_location.
28388 (graphite_transform_loops): Provide opt-info for optimized nests.
28389 * tree-parloop.c (parallelize_loops): Provide opt-info for
28390 parallelized loops.
28392 2017-02-01 Richard Biener <rguenther@suse.de>
28394 PR middle-end/79315
28395 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
28396 was not set before.
28398 2017-02-01 Richard Biener <rguenther@suse.de>
28400 PR tree-optimization/71824
28401 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
28402 Verify the loops are valid in the merged SESE region.
28403 (scop_detection::can_represent_loop_1): Check analyzing the
28404 evolution of the number of iterations in the region succeeds.
28406 2017-01-31 Ian Lance Taylor <iant@golang.org>
28408 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
28409 REG_ARGS_SIZE note to 32-bit push insns and call insn.
28411 2017-01-31 David Malcolm <dmalcolm@redhat.com>
28413 PR preprocessor/79210
28414 * input.c (get_substring_ranges_for_loc): Replace line_width
28415 assertion with error-handling.
28417 2017-01-31 Richard Biener <rguenther@suse.de>
28419 PR tree-optimization/77318
28420 * graphite-sese-to-poly.c (extract_affine): Fix assert.
28421 (create_pw_aff_from_tree): Take loop parameter.
28422 (add_condition_to_pbb): Pass loop of the condition to
28423 create_pw_aff_from_tree.
28425 2017-01-31 Jakub Jelinek <jakub@redhat.com>
28427 * config/s390/s390.c (s390_asan_shadow_offset): New function.
28428 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
28430 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
28434 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
28436 (convert_int_to_float128): Likewise.
28437 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
28438 (convert_int_to_float128): Likewise.
28439 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
28440 (UNSPEC_IEEE128_CONVERT): Likewise.
28441 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
28442 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
28443 Use local variables for IBM extended format.
28444 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
28445 (fix_trunc<mode>si2_fprs): Likewise.
28446 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
28447 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
28448 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
28449 to know that we can now have integers of all sizes in vector
28451 (fix<uns>_<mode>di2_hw): Likewise.
28452 (float<uns>_<mode>si2_hw): Likewise.
28453 (fix_<mode>si2_hw): Likewise.
28454 (fixuns_<mode>si2_hw): Likewise.
28455 (float<uns>_<mode>di2_hw): Likewise.
28456 (float_<mode>di2_hw): Likewise.
28457 (float_<mode>si2_hw): Likewise.
28458 (floatuns_<mode>di2_hw): Likewise.
28459 (floatuns_<mode>si2_hw): Likewise.
28460 (xscvqp<su>wz_<mode>): Delete, no longer used.
28461 (xscvqp<su>dz_<mode>): Likewise.
28462 (xscv<su>dqp_<mode>): Likewise.
28463 (ieee128_mfvsrd_64bit): Likewise.
28464 (ieee128_mfvsrd_32bit): Likewise.
28465 (ieee128_mfvsrwz): Likewise.
28466 (ieee128_mtvsrw): Likewise.
28467 (ieee128_mtvsrd_64bit): Likewise.
28468 (ieee128_mtvsrd_32bit): Likewise.
28470 2017-01-31 Martin Liska <mliska@suse.cz>
28473 * ipa-prop.c (ipa_free_all_node_params): Call release method
28474 instead of ~sumbol_summary to not to trigger double times
28477 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
28479 PR tree-optimization/71691
28480 * bitmap.h (class auto_bitmap): New.
28481 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
28482 is_maybe_undefined instead of ssa_undefined_value_p.
28484 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28486 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
28487 __S390_ARCH_LEVEL__ to __ARCH__.
28489 2017-01-31 Jakub Jelinek <jakub@redhat.com>
28491 PR tree-optimization/79267
28492 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
28493 if should_remove_lhs_p is true.
28495 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
28498 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
28499 (add_alignment_attribute): New.
28500 (base_type_die): Add alignment attribute.
28501 (subrange_type_die): Likewise.
28502 (modified_type_die): Likewise.
28503 (gen_array_type_die): Likewise.
28504 (gen_descr_array_type_die: Likewise.
28505 (gen_enumeration_type_die): Likewise.
28506 (gen_subprogram_die): Likewise.
28507 (gen_variable_die): Likewise.
28508 (gen_field_die): Likewise.
28509 (gen_ptr_to_mbr_type_die): Likewise.
28510 (gen_struct_or_union_type_die): Likewise.
28511 (gen_subroutine_type_die): Likewise.
28512 (gen_typedef_die): Likewise.
28513 (base_type_cmp): Compare alignment attribute.
28515 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
28518 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
28519 (setb_unsigned) New pattern for setb with CCUNS.
28520 * config/rs6000/rs6000.c (expand_block_compare): Use a different
28521 subfc./subfe sequence to avoid overflow problems. Generate a
28522 shorter sequence with cmpld/setb for power9.
28523 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
28524 for generating subfc. instruction.
28525 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
28526 now uses this instruction.
28528 2017-01-30 Ian Lance Taylor <iant@google.com>
28531 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
28532 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
28534 2017-01-30 Martin Sebor <msebor@redhat.com>
28536 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
28537 Move constant to the right of a relational operator.
28538 (get_mpfr_format_length, format_character, format_string): Ditto.
28539 (should_warn_p, maybe_warn): Same.
28541 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
28543 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
28546 * asan.c (get_translation_unit_decl): Remove function.
28547 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
28549 2017-01-30 Martin Liska <mliska@suse.cz>
28551 PR gcov-profile/79259
28552 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
28553 -fprofile-generate.
28555 2017-01-30 Martin Liska <mliska@suse.cz>
28558 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
28559 Initialize variables with NULL value.
28561 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
28564 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
28566 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
28568 2017-01-30 Richard Biener <rguenther@suse.de>
28570 PR tree-optimization/79276
28571 * tree-vrp.c (process_assert_insertions): Properly adjust common
28572 when removing a duplicate.
28574 * gcc.dg/torture/pr79276.c: New testcase.
28576 2017-01-30 Richard Biener <rguenther@suse.de>
28578 PR tree-optimization/79256
28579 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
28580 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
28582 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
28584 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
28587 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
28588 ("*r<noxa>sbg_<mode>_sll_bitmask")
28589 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
28590 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
28591 Use contiguous_bitmask_nowrap_operand.
28593 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28596 * config/rs6000/altivec.h (vec_xl): Revise #define.
28597 (vec_xst): Likewise.
28599 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
28601 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
28603 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
28605 PR rtl-optimization/79194
28606 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
28607 traps before call to bypass_conditional_jumps.
28609 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
28611 PR tree-optimization/71374
28612 * lra-constraints.c (check_conflict_input_operands): New.
28613 (match_reload): Use it.
28615 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
28618 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
28619 account to calculate conflict_set.
28621 2017-01-27 Bin Cheng <bin.cheng@arm.com>
28623 PR rtl-optimization/78559
28624 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
28625 other_insn in combine.
28627 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
28629 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
28630 uint16_type_node for BT_UINT16.
28632 2017-01-27 David Malcolm <dmalcolm@redhat.com>
28634 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
28635 "RTL Tests" to menu.
28636 (GIMPLE Tests): New node.
28637 (RTL Tests): New node.
28639 2017-01-27 Richard Biener <rguenther@suse.de>
28641 PR tree-optimization/79245
28642 * tree-loop-distribution.c (distribute_loop): Apply cost
28643 modeling also to detected patterns.
28645 2017-01-27 Richard Biener <rguenther@suse.de>
28647 PR tree-optimization/71433
28648 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
28649 (compare_assert_loc): New function.
28650 (process_assert_insertions): Sort and optimize assert locations
28651 to remove duplicates and push down identical assertions on
28652 edges to their destination block.
28654 2017-01-27 Richard Biener <rguenther@suse.de>
28656 PR tree-optimization/79244
28657 * tree-vrp.c (remove_range_assertions): Forcefully propagate
28658 out SSA names even if abnormal.
28660 2017-01-27 Jakub Jelinek <jakub@redhat.com>
28662 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
28663 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
28664 instead of MPFR_RNDN.
28666 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
28669 * arm.c (arm_option_override): Don't call build_target_option_node
28670 until after doing all option overrides.
28671 (arm_valid_target_attribute_tree): Likewise.
28673 2017-01-27 Martin Liska <mliska@suse.cz>
28675 * doc/invoke.texi (-fprofile-arcs): Document profiling support
28676 for {cd}tors and C++ {cd}tors.
28678 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
28680 * config/s390/s390.md ("*setmem_long_and")
28681 ("*setmem_long_and_31z"): Use zero_extend instead of and.
28683 2017-01-26 Martin Sebor <msebor@redhat.com>
28685 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
28688 2017-01-26 Martin Sebor <msebor@redhat.com>
28690 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
28691 HAVE_DFmode before using XFmode or DFmode.
28692 (parse_directive): Avoid using the z length modifier to avoid
28693 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
28695 PR middle-end/78703
28696 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
28697 to accept adjustment as an array.
28698 (get_int_range): New function.
28699 (struct directive): Make width and prec arrays.
28700 (directive::set_width, directive::set_precision): Call get_int_range.
28701 (format_integer, format_floating): Handle width and precision ranges.
28702 (format_string, parse_directive): Same.
28704 2017-01-26 Jakub Jelinek <jakub@redhat.com>
28707 * dwarf2out.c (generate_skeleton_bottom_up): For children with
28708 comdat_type_p set, just clone them, but keep the children in the
28712 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
28713 which have direct callers with -fvar-tracking-assignments enabled
28715 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
28716 inside of type units.
28718 2017-01-26 Martin Sebor <msebor@redhat.com>
28720 PR middle-end/78703
28721 * gimple-ssa-sprintf.c (struct result_range): Add likely and
28723 (struct format_result): Replace number_chars, number_chars_min,
28724 and number_chars_max with a single member of struct result_range.
28726 (format_result::operator+=): Adjust.
28727 (struct fmtresult): Remove bounded. Handle likely and unlikely
28729 (fmtresult::adjust_for_width_or_precision): New function.
28730 (fmtresult:type_max_digits): New function.
28731 (bytes_remaining): Handle likely and unlikely counters.
28732 (min_bytes_remaining): Remove.
28733 (format_percent): Simplify.
28734 (format_integer, format_floating): Set likely and unlikely counters.
28735 (get_string_length, format_character, format_string): Same.
28736 (format_plain, should_warn_p): New function.
28737 (maybe_warn): Call should_warn_p. Update diagnostic messages
28738 and handle those for all directives, including plain strings.
28739 (format_directive): Handle likely and unlikely counters.
28740 Remove unnecessary quoting from diagnostics. Add an informational
28742 (add_bytes): Remove.
28743 (pass_sprintf_length::compute_format_length): Simplify.
28744 (try_substitute_return_value): Handle likely and unlikely counters.
28746 2017-01-26 Carl Love <cel@us.ibm.com>
28748 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
28749 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
28751 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
28754 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
28755 endianess for subregs into account.
28756 * lra-constraints.c (lra_constraints): Do risky transformations
28757 always on the first iteration.
28758 * lra-lives.c (check_pseudos_live_through_calls): Add arg
28759 last_call_used_reg_set.
28760 (process_bb_lives): Define and use last_call_used_reg_set.
28761 * lra.c (lra): Always continue after lra_constraints on the first
28764 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
28766 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
28768 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
28770 2017-01-26 Jakub Jelinek <jakub@redhat.com>
28772 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
28773 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
28774 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
28775 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
28776 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
28777 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
28778 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
28779 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
28780 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
28782 2017-01-26 Marek Polacek <polacek@redhat.com>
28785 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
28786 for the third operand.
28788 2017-01-26 Jakub Jelinek <jakub@redhat.com>
28790 PR middle-end/79236
28791 * omp-low.c (struct omp_context): Add simt_stmt field.
28792 (scan_omp_for): Return omp_context *.
28793 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
28794 context to the _simt_ SIMD stmt.
28795 (lower_omp_for): For combined SIMD with sibling _simt_
28796 SIMD, make sure to use the same decls in _looptemp_
28797 clauses as in the sibling.
28799 2017-01-26 David Sherwood <david.sherwood@arm.com>
28801 PR middle-end/79212
28802 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
28805 2017-01-26 Jakub Jelinek <jakub@redhat.com>
28808 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
28809 emit fld b; fld a; if possible.
28811 * brig-builtins.def: Update copyright years.
28812 * config/arm/arm_acle_builtins.def: Update copyright years.
28814 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
28817 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
28818 constraint instead of o for the stxsd instruction.
28820 2017-01-25 Carl Love <cel@us.ibm.com>
28822 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
28823 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
28825 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
28827 * doc/invoke.texi (C++ Dialect Options): Fix typo.
28829 2017-01-25 Richard Biener <rguenther@suse.de>
28831 PR tree-optimization/69264
28832 * target.def (vector_alignment_reachable): Improve documentation.
28833 * doc/tm.texi: Regenerate.
28834 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
28836 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
28837 earlier changes with respect to TYPE_USER_ALIGN.
28838 (vector_alignment_reachable_p): Likewise. Improve dumping.
28840 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28843 * config/arm/arm.md (xordi3): Force constant operand into a register
28846 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28848 * doc/invoke.texi (-fstore-merging): Correct default optimization
28849 levels at which it is enabled.
28850 (-O): Move -fstore-merging from list to...
28853 2017-01-25 Richard Biener <rguenther@suse.de>
28856 * omp-expand.c: Include debug.h.
28857 (expand_omp_taskreg): Make sure to generate early debug before
28858 outlining anything from a function.
28859 (expand_omp_target): Likewise.
28860 (grid_expand_target_grid_body): Likewise.
28862 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
28865 * asan.c (get_translation_unit_decl): New function.
28866 (asan_add_global): Extract modules file name from globals
28867 TRANSLATION_UNIT_DECL name.
28869 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
28872 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
28873 for long calls with APCS frame and VFP.
28875 2017-01-24 David Malcolm <dmalcolm@redhat.com>
28877 * cfg.c (original_copy_tables_initialized_p): New function.
28878 * cfg.h (original_copy_tables_initialized_p): New decl.
28879 * cfgrtl.c (relink_block_chain): Guard the call to
28880 free_original_copy_tables with a call to
28881 original_copy_tables_initialized_p.
28882 * cgraph.h (symtab_node::native_rtl_p): New decl.
28883 * cgraphunit.c (symtab_node::native_rtl_p): New function.
28884 (symtab_node::needed_p): Don't assert for early assembly output
28885 for __RTL functions.
28886 (cgraph_node::finalize_function): Set "force_output" for __RTL
28888 (cgraph_node::analyze): Bail out early for __RTL functions.
28889 (analyze_functions): Update assertion to support __RTL functions.
28890 (cgraph_node::expand): Bail out early for __RTL functions.
28891 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
28893 * function.h (struct function): Update comment for field
28895 * gimple-expr.c: Include "tree-pass.h".
28896 (gimple_has_body_p): Return false for __RTL functions.
28897 * Makefile.in (OBJS): Add run-rtl-passes.o.
28898 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
28900 (gcc::pass_manager::get_clean_slate): New accessor.
28901 * passes.c: Include "insn-addr.h".
28902 (should_skip_pass_p): Add logging. Update logic for running
28903 "expand" to be compatible with both __GIMPLE and __RTL. Guard
28904 property-provider override so it is only done for gimple passes.
28906 (skip_pass): New function.
28907 (execute_one_pass): Call skip_pass when skipping passes.
28908 * read-md.c (md_reader::read_char): Support filtering
28909 the input to a subset of line numbers.
28910 (md_reader::md_reader): Initialize fields
28911 m_first_line and m_last_line.
28912 (md_reader::read_file_fragment): New function.
28913 * read-md.h (md_reader::read_file_fragment): New decl.
28914 (md_reader::m_first_line): New field.
28915 (md_reader::m_last_line): New field.
28916 * read-rtl-function.c (function_reader::create_function): Only
28917 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
28918 curr_properties. Set DECL_INITIAL to a dummy block.
28919 (read_rtl_function_body_from_file_range): New function.
28920 * read-rtl-function.h (read_rtl_function_body_from_file_range):
28922 * run-rtl-passes.c: New file.
28923 * run-rtl-passes.h: New file.
28925 2017-01-24 Jeff Law <law@redhat.com>
28927 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
28930 2017-01-24 Bin Cheng <bin.cheng@arm.com>
28932 PR tree-optimization/79159
28933 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
28934 (record_nonwrapping_iv): Improve boundary using above function if no
28935 value range information.
28937 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
28938 Martin Jambor <mjambor@suse.cz>
28940 * brig-builtins.def: New file.
28941 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
28942 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
28943 (DEF_HSAIL_SAT_BUILTIN): Likewise.
28944 (DEF_HSAIL_INTR_BUILTIN): Likewise.
28945 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
28946 * builtin-types.def (BT_INT8): New.
28947 (BT_INT16): Likewise.
28948 (BT_UINT8): Likewise.
28949 (BT_UINT16): Likewise.
28950 (BT_FN_ULONG): Likewise.
28951 (BT_FN_UINT_INT): Likewise.
28952 (BT_FN_UINT_ULONG): Likewise.
28953 (BT_FN_UINT_LONG): Likewise.
28954 (BT_FN_UINT_PTR): Likewise.
28955 (BT_FN_ULONG_PTR): Likewise.
28956 (BT_FN_INT8_FLOAT): Likewise.
28957 (BT_FN_INT16_FLOAT): Likewise.
28958 (BT_FN_UINT32_FLOAT): Likewise.
28959 (BT_FN_UINT16_FLOAT): Likewise.
28960 (BT_FN_UINT8_FLOAT): Likewise.
28961 (BT_FN_UINT64_FLOAT): Likewise.
28962 (BT_FN_UINT16_UINT32): Likewise.
28963 (BT_FN_UINT32_UINT16): Likewise.
28964 (BT_FN_UINT16_UINT16_UINT16): Likewise.
28965 (BT_FN_INT_PTR_INT): Likewise.
28966 (BT_FN_UINT_PTR_UINT): Likewise.
28967 (BT_FN_LONG_PTR_LONG): Likewise.
28968 (BT_FN_ULONG_PTR_ULONG): Likewise.
28969 (BT_FN_VOID_UINT64_UINT64): Likewise.
28970 (BT_FN_UINT8_UINT8_UINT8): Likewise.
28971 (BT_FN_INT8_INT8_INT8): Likewise.
28972 (BT_FN_INT16_INT16_INT16): Likewise.
28973 (BT_FN_INT_INT_INT): Likewise.
28974 (BT_FN_UINT_FLOAT_UINT): Likewise.
28975 (BT_FN_FLOAT_UINT_UINT): Likewise.
28976 (BT_FN_ULONG_UINT_UINT): Likewise.
28977 (BT_FN_ULONG_UINT_PTR): Likewise.
28978 (BT_FN_ULONG_ULONG_ULONG): Likewise.
28979 (BT_FN_UINT_UINT_UINT): Likewise.
28980 (BT_FN_VOID_UINT_PTR): Likewise.
28981 (BT_FN_UINT_UINT_PTR: Likewise.
28982 (BT_FN_UINT32_UINT64_PTR): Likewise.
28983 (BT_FN_INT_INT_UINT_UINT): Likewise.
28984 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
28985 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
28986 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
28987 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
28988 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
28989 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
28990 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
28991 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
28992 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
28993 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
28994 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
28995 * doc/frontends.texi: List BRIG FE.
28996 * doc/install.texi (Testing): Add BRIG tesring requirements.
28997 * doc/invoke.texi (Overall Options): Mention BRIG.
28998 * doc/standards.texi (Standards): Doucment BRIG HSA version.
29000 2017-01-24 Richard Biener <rguenther@suse.de>
29002 PR translation/79208
29003 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
29005 2017-01-24 Martin Jambor <mjambor@suse.cz>
29008 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
29009 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
29010 and known_contexts.
29012 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
29014 PR middle-end/79123
29015 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
29016 casts from signed to unsigned really don't have a range.
29018 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
29020 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
29021 GMP_RNDx for compatiblity.
29023 2017-01-24 Martin Liska <mliska@suse.cz>
29026 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
29027 that would prevent us to call alloca with -1 as argument.
29029 2017-01-24 Jakub Jelinek <jakub@redhat.com>
29031 * dwarf2out.c (output_compilation_unit_header, output_file_names):
29032 Avoid -Wformat-security warning.
29034 2017-01-23 Andrew Pinski <apinski@cavium.com>
29036 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
29039 2017-01-23 Martin Sebor <msebor@redhat.com>
29041 PR middle-end/78703
29042 * gimple-ssa-sprintf.c (warn_level): New global.
29043 (format_integer): Use it here and throughout the rest of the file.
29044 Use the same switch to compute sign as base.
29045 (maybe_warn): New function.
29046 (format_directive): Factor out warnings into maybe_warn.
29047 Add debugging output. Use warn_level.
29048 (add_bytes): Use warn_level.
29049 (pass_sprintf_length::compute_format_length): Add debugging output.
29050 (try_substitute_return_value): Same.
29051 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
29053 PR middle-end/78703
29054 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
29055 (struct fmtresult, format_integer, format_floating): Adjust.
29056 (fmtresult::fmtresult): Set max correctly in two argument ctor.
29057 (get_string_length, format_string,format_directive): Same.
29058 (pass_sprintf_length::compute_format_length): Same.
29059 (try_substitute_return_value): Simplify slightly.
29061 PR middle-end/78703
29062 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
29063 (fmtresult::operator+=): Outlined.
29064 (struct fmtresult): Add ctors.
29065 (struct conversion_spec): Rename...
29066 (struct directive): ...to this. Add and remove data members.
29067 (directive::set_width, directive::set_precision): New functions.
29068 (format_percent): Use fmtresult ctor.
29069 (get_width_and_precision): Remove.
29070 (format_integer): Make naming changes. Avoid computing width and
29072 (format_floating): Same. Adjust indentation.
29073 (format_character, format_none): New functions.
29074 (format_string): Moved character handling to format_character.
29075 (format_directive): Remove arguments, change return type.
29076 (parse_directive): New function.
29077 (pass_sprintf_length::compute_format_length): Move directive
29078 parsing to parse_directive.
29080 2017-01-23 Jakub Jelinek <jakub@redhat.com>
29082 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
29083 (assign_assembler_name_if_needed): ... this.
29084 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
29085 (assign_assembler_name_if_needed): ... this.
29086 (free_lang_data_in_cgraph): Adjust callers.
29087 * cgraphunit.c (cgraph_node::analyze): Likewise.
29088 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
29091 2017-01-23 Richard Biener <rguenther@suse.de>
29093 PR tree-optimization/79088
29094 PR tree-optimization/79188
29095 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
29096 resetting loop bounds after last path deletion. Reset loop
29097 bounds of the target loop, make code match the comments.
29098 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
29099 Make sure loops need no fixups.
29101 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
29103 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
29104 exponent support with double type for first argument.
29105 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
29106 type returned by __builtin_vec_extract_sig,
29107 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
29108 functions from "vector int" to "vector unsigned int" or from
29109 "vector long long int" to "vector unsigned long long int".
29110 Changed type returned by __builtin_vec_extract_exp,
29111 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
29112 functions from "vector int" to "vector unsigned int" or from
29113 "vector long long int" to "vector unsigned long long int".
29114 Changed return type of __builtin_vec_test_data_class,
29115 __builtin_vec_test_data_class_sp, and
29116 __builtin_vec_test_data_class_dp from "vector int" to
29117 "vector bool int" or from "vector long long int" to "vector bool
29118 long long int" and changed second argument type from "unsigned
29119 int" to "int". Added new overloaded function forms "vector float
29120 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
29121 "vector float __builtin_vec_insert_exp_sp (vector float, vector
29122 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
29123 double, vector unsigned long long int)" and "vector double
29124 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
29125 long int)". Changed return type of
29126 __builtin_scalar_test_data_class and
29127 __builtin_scalar_test_data_class_sp and
29128 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
29129 int" and changed second argument from "unsigned int" to "int".
29130 Changed type returned by __builtin_scalar_test_neg,
29131 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
29132 from "int" to "bool int". Added new overloaded function form
29133 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
29134 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
29135 exponent double-precision with floating point first argument.
29136 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
29137 documentation of scalar_test_data_class, scalar_test_neg,
29138 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
29139 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
29140 vec_test_data_class built-in functions to reflect refinements in
29141 their type signatures.
29143 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
29145 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
29147 (aarch64_elf_asm_destructor): Likewise.
29149 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
29151 PR rtl-optimization/78634
29152 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
29153 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
29154 * ifcvt.c (noce_try_cmove): Add missing cost check.
29156 PR rtl-optimization/71724
29157 * combine.c (if_then_else_cond): Look for situations where it is
29158 beneficial to undo the work of one of the recursive calls.
29160 2017-01-23 Bin Cheng <bin.cheng@arm.com>
29162 PR tree-optimization/70754
29163 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
29164 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
29165 combined stmt before it if not NULL.
29166 (combine_chains): Process refs reversely and compute dominance point
29169 2017-01-23 Martin Liska <mliska@suse.cz>
29171 PR tree-optimization/79196
29172 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
29173 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
29175 (strlen_optimize_stmt): Call the renamed function.
29177 2017-01-23 Michael Matz <matz@suse.de>
29179 PR tree-optimization/78384
29180 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
29182 2017-01-23 Richard Biener <rguenther@suse.de>
29184 PR tree-optimization/79186
29185 * tree-vrp.c (register_new_assert_for): Make sure we've seen
29186 both incoming edges before moving an assert.
29188 2017-01-23 Martin Jambor <mjambor@suse.cz>
29190 * ipa-prop.c (load_from_param_1): Removed.
29191 (load_from_unmodified_param): Bits from load_from_param_1 put back
29193 (load_from_param): Removed.
29194 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
29195 with stmt. Reverted back to use of load_from_unmodified_param.
29197 2017-01-23 Martin Jambor <mjambor@suse.cz>
29200 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
29201 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
29202 field a pointer to garbage collected vector, mark lattices and
29203 ipcp_orig_node with GTY((skip)).
29204 (ipa_get_param_count): Adjust to descriptors being a pointer.
29205 (ipa_get_param): Likewise.
29206 (ipa_get_type): Likewise.
29207 (ipa_get_param_move_cost): Likewise.
29208 (ipa_set_param_used): Likewise.
29209 (ipa_get_controlled_uses): Likewise.
29210 (ipa_set_controlled_uses): Likewise.
29211 (ipa_is_param_used): Likewise.
29212 (ipa_node_params_t): Move into garbage collector. New methods insert
29214 (ipa_node_params_sum): Annotate wth GTY(()).
29215 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
29217 (ipa_load_from_parm_agg): Adjust declaration.
29218 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
29219 * ipa-profile.c (ipa_profile): Likewise.
29220 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
29221 (ipa_populate_param_decls): Make descriptors parameter garbage
29223 (ipa_dump_param): Adjust to descriptors being a pointer.
29224 (ipa_alloc_node_params): Likewise.
29225 (ipa_initialize_node_params): Likewise.
29226 (load_from_param_1): Make descriptors parameter garbage collected.
29227 (load_from_unmodified_param): Likewise.
29228 (load_from_param): Likewise.
29229 (ipa_load_from_parm_agg): Likewise.
29230 (ipa_node_params::~ipa_node_params): Removed.
29231 (ipa_free_all_node_params): Remove call to delete operator.
29232 (ipa_node_params_t::insert): New.
29233 (ipa_node_params_t::remove): Likewise.
29234 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
29235 copy known_csts and known_contexts vectors.
29236 (ipa_read_node_info): Adjust to descriptors being a pointer.
29237 (ipcp_modif_dom_walker): Make m_descriptors field garbage
29239 (ipcp_transform_function): Make descriptors variable garbage
29242 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
29244 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
29245 * config/i386/avx512dqintrin.h: Ditto.
29246 * config/i386/avx512fintrin.h: Ditto.
29247 * config/i386/i386.c: Handle new builtins.
29248 * config/i386/i386-builtin.def: Add new builtins.
29249 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
29250 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
29252 2017-01-23 Jakub Jelinek <jakub@redhat.com>
29253 Martin Liska <mliska@suse.cz>
29255 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
29256 * asan.c (asan_expand_poison_ifn): Support stores and use
29257 appropriate ASAN report function.
29258 * internal-fn.c (expand_ASAN_POISON_USE): New function.
29259 * internal-fn.def (ASAN_POISON_USE): Declare.
29260 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
29261 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
29262 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
29263 ASAN_POISON calls w/o LHS.
29264 * tree-ssa.c (execute_update_addresses_taken): Create clobber
29265 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
29266 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
29267 * gimplify.c (asan_poison_variables): Add attribute
29268 use_after_scope_memory to variables that really needs to live
29270 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
29271 having the attribute.
29273 2017-01-23 Martin Liska <mliska@suse.cz>
29275 * asan.c (create_asan_shadow_var): New function.
29276 (asan_expand_poison_ifn): Likewise.
29277 * asan.h (asan_expand_poison_ifn): New declaration.
29278 * internal-fn.c (expand_ASAN_POISON): Likewise.
29279 * internal-fn.def (ASAN_POISON): New builtin.
29280 * sanopt.c (pass_sanopt::execute): Expand
29281 asan_expand_poison_ifn.
29282 * tree-inline.c (copy_decl_for_dup_finish): Make function
29284 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
29285 * tree-ssa.c (is_asan_mark_p): New function.
29286 (execute_update_addresses_taken): Rewrite local variables
29287 (identified just by use-after-scope as addressable) into SSA.
29289 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
29291 * doc/install.texi (Specific): opensource.apple.com uses https
29292 now. Remove trailing slash.
29294 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
29296 * README.Portability: Remove note on an Irix compatibility issue.
29298 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
29300 * gcov.c (INCLUDE_ALGORITHM): Define.
29301 (INCLUDE_VECTOR): Define.
29302 No longer include <vector> and <algorithm> directly.
29304 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
29306 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
29308 * doc/invoke.texi (Code Gen Options): Ditto.
29310 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
29313 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
29315 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
29317 rtl-optimization/79125
29318 * cprop.c (local_cprop_pass): Handle cases where we make an
29319 unconditional trap.
29321 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
29325 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
29326 read from, for big endian.
29328 2017-01-20 Jiong Wang <jiong.wang@arm.com>
29330 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
29331 register pauth builtins for LP64 only.
29333 2017-01-20 Marek Polacek <polacek@redhat.com>
29336 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
29339 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
29341 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
29343 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
29344 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
29345 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
29347 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29350 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
29351 in big-endian mode when they are not a single duplicated value.
29353 2017-01-20 Richard Biener <rguenther@suse.de>
29355 * BASE-VER: Bump to 7.0.1.
29357 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
29359 * omp-low.c (omplow_simd_context): New struct. Use it...
29360 (lower_rec_simd_input_clauses): ...here and...
29361 (lower_rec_input_clauses): ...here to hold common data. Adjust all
29362 references to idx, lane, max_vf, is_simt.
29364 2017-01-20 Graham Markall <graham.markall@embecosm.com>
29366 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
29369 2017-01-20 Martin Jambor <mjambor@suse.cz>
29371 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
29372 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
29374 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
29375 (GTFILES): Rename hsa.c to hsa-common.c.
29376 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
29377 * hsa-dump.c: Likewise.
29378 * hsa-gen.c: Likewise.
29379 * hsa-regalloc.c: Likewise.
29380 * ipa-hsa.c: Likewise.
29381 * omp-expand.c: Likewise.
29382 * omp-low.c: Likewise.
29383 * toplev.c: Likewise.
29385 2017-01-20 Marek Polacek <polacek@redhat.com>
29388 * doc/invoke.texi: Document -Wduplicated-branches.
29389 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
29390 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
29391 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
29392 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
29393 return 0 only when not OEP_LEXICOGRAPHIC.
29394 (fold_build_cleanup_point_expr): Use the expression
29395 location when building CLEANUP_POINT_EXPR.
29396 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
29397 * tree.c (add_expr): Handle error_mark_node.
29399 2017-01-20 Martin Liska <mliska@suse.cz>
29402 * tree-profile.c (init_ic_make_global_vars): Do not call
29404 (gimple_init_gcov_profiler): Likewise.
29406 2017-01-20 Martin Liska <mliska@suse.cz>
29409 * cgraph.h (maybe_create_reference): Remove argument and
29411 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
29413 * ipa-cp.c (create_specialized_node): Likewise.
29414 * symtab.c (symtab_node::maybe_create_reference): Handle
29415 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
29417 2017-01-20 Martin Liska <mliska@suse.cz>
29419 * read-rtl-function.c (function_reader::create_function): Use
29420 build_decl instread of build_decl_stat.
29422 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
29424 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
29425 * config/i386/avx512dqintrin.h: Ditto.
29426 * config/i386/avx512fintrin.h: Ditto.
29427 * config/i386/i386-builtin-types.def: Add new types.
29428 * config/i386/i386.c: Handle new types.
29429 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
29430 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
29431 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
29432 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
29433 (__builtin_ia32_kshiftridi): New.
29434 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
29436 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
29440 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
29441 define to rs6000_init_stack_protect_guard.
29442 (rs6000_init_stack_protect_guard): New function.
29444 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
29445 Yunqiang Su <yunqiang.su@imgtec.com>
29447 * config.gcc (supported_defaults): Add madd4.
29448 (with_madd4): Add validation.
29449 (all_defaults): Add madd4.
29450 * config/mips/mips.opt (mmadd4): New option.
29451 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
29453 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
29455 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
29456 (ISA_HAS_FUSED_MADD4): Likewise.
29457 * doc/invoke.texi (-mmadd4): Document the new option.
29458 * doc/install.texi (--with-madd4): Document the new option.
29460 2017-01-19 Jiong Wang <jiong.wang@arm.com>
29462 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
29463 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
29464 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
29465 (aarch64_init_pauth_hint_builtins): New.
29466 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
29467 (aarch64_expand_builtin): Expand new builtins.
29469 2017-01-19 Jiong Wang <jiong.wang@arm.com>
29471 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
29472 * combine-stack-adj.c (no_unhandled_cfa): Handle
29473 REG_CFA_TOGGLE_RA_MANGLE.
29474 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
29475 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
29476 info for return address signing.
29477 (aarch64_expand_epilogue): Likewise.
29479 2017-01-19 Jiong Wang <jiong.wang@arm.com>
29481 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
29482 * config/aarch64/aarch64-protos.h
29483 (aarch64_return_address_signing_enabled): New declaration.
29484 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
29486 (aarch64_expand_prologue): Sign return address before it's pushed onto
29488 (aarch64_expand_epilogue): Authenticate return address fetched from
29490 (aarch64_override_options): Sanity check for ILP32 and ISA level.
29491 (aarch64_attributes): New function attributes for "sign-return-address".
29492 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
29493 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
29494 ("*do_return"): Generate combined instructions according to key index.
29495 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
29496 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
29498 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
29499 * config/aarch64/aarch64.opt (msign-return-address=): New.
29500 * doc/extend.texi (AArch64 Function Attributes): Documents
29501 "sign-return-address=".
29502 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
29504 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
29506 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
29507 overall option summary.
29509 2017-01-19 Jiong Wang <jiong.wang@arm.com>
29511 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
29512 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
29513 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
29514 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
29516 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
29518 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
29519 -mpower9-minmax by default for -mcpu=power9.
29520 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
29521 128-bit floating point.
29523 2017-01-20 Alan Modra <amodra@gmail.com>
29525 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
29526 optimizing for size.
29528 2017-01-20 Alan Modra <amodra@gmail.com>
29531 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
29532 for strcmp and strncmp from corresponding builtin decl.
29534 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
29536 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
29537 instead of i386/rtems-64.h.
29538 * config/i386/rtems-64.h: Remove.
29540 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
29544 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
29546 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
29548 2017-01-19 Tamar Christina <tamar.christina@arm.com>
29550 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
29551 Change int to HOST_WIDE_INT.
29552 * config/aarch64/aarch64-protos.h
29553 (aarch64_simd_gen_const_vector_dup): Likewise.
29554 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
29556 2017-01-19 David Malcolm <dmalcolm@redhat.com>
29558 * langhooks-def.h (lhd_type_for_size): New decl.
29559 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
29560 * langhooks.c (lhd_type_for_size): New function, taken from
29563 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
29565 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
29566 define_bypass for CR latency.
29567 (power9-cracked-alu): Update bypass latency and remove power9-branch.
29568 (power9-alu2): Add define_bypass for CR latency.
29570 (power9-mul): Update insn latency.
29571 (power9-mul-compare): Update insn latency, bypass latency and remove
29574 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29576 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
29578 * config/aarch64/aarch64.md
29579 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
29580 aarch64_nopcrelative_literal_loads.
29581 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
29583 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
29585 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
29586 TARGET_LOONGSON_3A.
29587 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
29589 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
29592 * config.gcc (supported_defaults): Add lxc1-sxc1.
29593 (with_lxc1_sxc1): Add validation.
29594 (all_defaults): Add lxc1-sxc1.
29595 * config/mips/mips.opt (mlxc1-sxc1): New option.
29596 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
29598 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
29599 __mips_no_lxc1_sxc1.
29600 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
29601 * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
29602 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
29604 2017-01-19 Richard Biener <rguenther@suse.de>
29606 PR tree-optimization/72488
29607 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
29608 sure to restore SSA info.
29609 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
29611 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
29613 PR rtl-optimization/79121
29614 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
29615 of the inner type when shifting an extended value.
29617 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
29620 * symtab.c (symtab_node::equal_address_to): Fix comparing of
29621 interposable aliases.
29623 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
29626 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
29627 Use the evmergelohi instruction.
29628 (mov_si<mode>_e500_subreg4_2_le): Likewise.
29629 (mov_sitf_e500_subreg8_2_be): Likewise.
29630 (mov_sitf_e500_subreg12_2_le): Likewise.
29631 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
29632 (mov_si<mode>_e500_subreg4_2_be): Likewise.
29633 (mov_sitf_e500_subreg8_2_le): Likewise.
29634 (mov_sitf_e500_subreg12_2_be): Likewise.
29636 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29638 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
29639 attribute from vecsimple to vecperm.
29640 (altivec_vbpermq2): Likewise.
29642 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29645 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
29647 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
29648 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
29649 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
29650 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
29651 case where N arg is SIZE_MAX.
29652 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
29653 (cmpstrsi): Add pattern.
29655 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
29657 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
29658 __builtin_vec_revb builtins.
29659 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
29660 built-in functions to support generation of the ISA 3.0 XXBR<x>
29661 vector byte reverse instructions.
29662 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
29663 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
29664 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
29665 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
29666 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
29667 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
29668 (P9V_BUILTIN_VEC_REVB): Likewise.
29669 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
29670 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
29671 (p9_xxbrq_v16qi): Likewise.
29672 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
29673 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
29674 (p9_xxbrh_v8hi): Likewise.
29675 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
29676 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
29677 vec_revb built-in functions.
29679 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
29681 PR rtl-optimization/78952
29682 * config/i386/i386.md (any_extract): New code iterator.
29683 (*insvqi_2): Use any_extract for source operand.
29684 (*insvqi_3): Use any_shiftrt for source operand.
29686 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
29688 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
29690 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
29692 2017-01-18 Matthias Klose <doko@ubuntu.com>
29694 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
29696 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29698 * config/rs6000/altivec.h (vec_bperm): Change #define.
29699 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
29700 (altivec_vbpermq2): New define_insn.
29701 (altivec_vbpermd): Likewise.
29702 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
29703 function interface.
29704 (VBPERMD): Likewise.
29705 (VBPERM): New polymorphic function interface.
29706 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
29707 Add entries for P9V_BUILTIN_VEC_VBPERM.
29708 * doc/extend.texi: Add interfaces for vec_bperm.
29710 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29712 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
29713 first letter of error messages.
29714 (s390_resolve_overloaded_builtin): Likewise.
29715 * config/s390/s390.c (s390_expand_builtin): Likewise.
29716 (s390_invalid_arg_for_unprototyped_fn): Likewise.
29717 (s390_valid_target_attribute_inner_p): Likewise.
29718 * config/s390/s390.md ("tabort"): Likewise.
29720 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
29722 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
29723 (ISA_AVOID_DIV_HILO): New macro.
29724 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
29725 (ISA_HAS_DDIV): Likewise.
29727 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
29729 * doc/invoke.texi (fabi-version): Correct number of occurrences.
29731 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
29733 * doc/invoke.texi (fabi-version): Spelling fix.
29735 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
29738 * doc/invoke.texi (fabi-version): Mention mangling fix for
29741 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
29744 * doc/invoke.texi (fabi-version): Document discriminator mangling.
29746 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
29749 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
29750 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
29752 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
29754 (stack_protect_test): Ditto.
29755 * config/rs6000/rs6000.opt (mstack-protector-guard=,
29756 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
29758 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
29759 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
29760 -mstack-protector-guard-offset=.
29761 (RS/6000 and PowerPC Options): Ditto.
29763 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
29765 * config/i386/i386.h (MASK_CLASS_P): New define.
29766 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
29767 there are no registers from different register sets also when
29768 mask registers are used. Update function comment.
29769 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
29770 to (*k/*r) and (*k/*km) alternatives.
29772 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
29774 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
29775 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
29776 (EH_RETURN_HANDLER_RTX): New define.
29777 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
29778 Force frame pointer in EH return functions.
29779 (aarch64_expand_epilogue): Add barrier for eh_return.
29780 (aarch64_final_eh_return_addr): Remove.
29781 (aarch64_eh_return_handler_rtx): New function.
29782 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
29784 (aarch64_eh_return_handler_rtx): New prototype.
29786 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29788 * config/rs6000/altivec.h (vec_rlmi): New #define.
29789 (vec_vrlnm): Likewise.
29790 (vec_rlnm): Likewise.
29791 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
29792 (UNSPEC_VRLNM): Likewise.
29793 (VIlong): New mode iterator.
29794 (altivec_vrl<VI_char>mi): New define_insn.
29795 (altivec_vrl<VI_char>nm): Likewise.
29796 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
29798 (VRLDNM): Likewise.
29799 (RLNM): New polymorphic function entry.
29800 (VRLWMI): New monomorphic function entry.
29801 (VRLDMI): Likewise.
29802 (RLMI): New polymorphic function entry.
29803 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
29804 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
29805 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
29808 2017-01-17 Jakub Jelinek <jakub@redhat.com>
29811 * dwarf2out.c (field_byte_offset): Restore the
29812 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
29813 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
29814 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
29817 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
29820 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
29822 2017-01-17 Jakub Jelinek <jakub@redhat.com>
29825 * dwarf2out.c (add_data_member_location_attribute): For constant
29826 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
29827 instead of DW_AT_data_member_location, DW_AT_bit_offset and
29828 DW_AT_byte_size attributes.
29830 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
29832 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
29833 after forcing to constant memory when the code model is medium.
29835 2017-01-17 Julia Koval <julia.koval@intel.com>
29838 * config/i386/avx512fintrin.h
29839 (_mm512_i32gather_ps): Change __addr type to void const*.
29840 (_mm512_mask_i32gather_ps): Ditto.
29841 (_mm512_i32gather_pd): Ditto.
29842 (_mm512_mask_i32gather_pd): Ditto.
29843 (_mm512_i64gather_ps): Ditto.
29844 (_mm512_mask_i64gather_ps): Ditto.
29845 (_mm512_i64gather_pd): Ditto.
29846 (_mm512_mask_i64gather_pd): Ditto.
29847 (_mm512_i32gather_epi32): Ditto.
29848 (_mm512_mask_i32gather_epi32): Ditto.
29849 (_mm512_i32gather_epi64): Ditto.
29850 (_mm512_mask_i32gather_epi64): Ditto.
29851 (_mm512_i64gather_epi32): Ditto.
29852 (_mm512_mask_i64gather_epi32): Ditto.
29853 (_mm512_i64gather_epi64): Ditto.
29854 (_mm512_mask_i64gather_epi64): Ditto.
29855 (_mm512_i32scatter_ps): Change __addr type to void*.
29856 (_mm512_mask_i32scatter_ps): Ditto.
29857 (_mm512_i32scatter_pd): Ditto.
29858 (_mm512_mask_i32scatter_pd): Ditto.
29859 (_mm512_i64scatter_ps): Ditto.
29860 (_mm512_mask_i64scatter_ps): Ditto.
29861 (_mm512_i64scatter_pd): Ditto.
29862 (_mm512_mask_i64scatter_pd): Ditto.
29863 (_mm512_i32scatter_epi32): Ditto.
29864 (_mm512_mask_i32scatter_epi32): Ditto.
29865 (_mm512_i32scatter_epi64): Ditto.
29866 (_mm512_mask_i32scatter_epi64): Ditto.
29867 (_mm512_i64scatter_epi32): Ditto.
29868 (_mm512_mask_i64scatter_epi32): Ditto.
29869 (_mm512_i64scatter_epi64): Ditto.
29870 (_mm512_mask_i64scatter_epi64): Ditto.
29871 * config/i386/avx512pfintrin.h
29872 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
29873 (_mm512_mask_prefetch_i32gather_ps): Ditto.
29874 (_mm512_mask_prefetch_i64gather_pd): Ditto.
29875 (_mm512_mask_prefetch_i64gather_ps): Ditto.
29876 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
29877 (_mm512_prefetch_i32scatter_ps): Ditto.
29878 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
29879 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
29880 (_mm512_prefetch_i64scatter_pd): Ditto.
29881 (_mm512_prefetch_i64scatter_ps): Ditto.
29882 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
29883 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
29884 * config/i386/avx512vlintrin.h
29885 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
29886 (_mm_mmask_i32gather_ps): Ditto.
29887 (_mm256_mmask_i32gather_pd): Ditto.
29888 (_mm_mmask_i32gather_pd): Ditto.
29889 (_mm256_mmask_i64gather_ps): Ditto.
29890 (_mm_mmask_i64gather_ps): Ditto.
29891 (_mm256_mmask_i64gather_pd): Ditto.
29892 (_mm_mmask_i64gather_pd): Ditto.
29893 (_mm256_mmask_i32gather_epi32): Ditto.
29894 (_mm_mmask_i32gather_epi32): Ditto.
29895 (_mm256_mmask_i32gather_epi64): Ditto.
29896 (_mm_mmask_i32gather_epi64): Ditto.
29897 (_mm256_mmask_i64gather_epi32): Ditto.
29898 (_mm_mmask_i64gather_epi32): Ditto.
29899 (_mm256_mmask_i64gather_epi64): Ditto.
29900 (_mm_mmask_i64gather_epi64): Ditto.
29901 (_mm256_i32scatter_ps): Change __addr type to void*.
29902 (_mm256_mask_i32scatter_ps): Ditto.
29903 (_mm_i32scatter_ps): Ditto.
29904 (_mm_mask_i32scatter_ps): Ditto.
29905 (_mm256_i32scatter_pd): Ditto.
29906 (_mm256_mask_i32scatter_pd): Ditto.
29907 (_mm_i32scatter_pd): Ditto.
29908 (_mm_mask_i32scatter_pd): Ditto.
29909 (_mm256_i64scatter_ps): Ditto.
29910 (_mm256_mask_i64scatter_ps): Ditto.
29911 (_mm_i64scatter_ps): Ditto.
29912 (_mm_mask_i64scatter_ps): Ditto.
29913 (_mm256_i64scatter_pd): Ditto.
29914 (_mm256_mask_i64scatter_pd): Ditto.
29915 (_mm_i64scatter_pd): Ditto.
29916 (_mm_mask_i64scatter_pd): Ditto.
29917 (_mm256_i32scatter_epi32): Ditto.
29918 (_mm256_mask_i32scatter_epi32): Ditto.
29919 (_mm_i32scatter_epi32): Ditto.
29920 (_mm_mask_i32scatter_epi32): Ditto.
29921 (_mm256_i32scatter_epi64): Ditto.
29922 (_mm256_mask_i32scatter_epi64): Ditto.
29923 (_mm_i32scatter_epi64): Ditto.
29924 (_mm_mask_i32scatter_epi64): Ditto.
29925 (_mm256_i64scatter_epi32): Ditto.
29926 (_mm256_mask_i64scatter_epi32): Ditto.
29927 (_mm_i64scatter_epi32): Ditto.
29928 (_mm_mask_i64scatter_epi32): Ditto.
29929 (_mm256_i64scatter_epi64): Ditto.
29930 (_mm256_mask_i64scatter_epi64): Ditto.
29931 (_mm_i64scatter_epi64): Ditto.
29932 (_mm_mask_i64scatter_epi64): Ditto.
29933 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
29934 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
29935 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
29936 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
29937 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
29938 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
29939 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
29940 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
29941 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
29942 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
29943 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
29944 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
29945 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
29946 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
29947 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
29948 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
29949 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
29950 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
29951 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
29952 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
29953 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
29954 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
29955 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
29956 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
29957 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
29958 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
29959 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
29960 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
29961 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
29962 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
29963 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
29964 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
29965 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
29966 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
29967 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
29968 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
29969 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
29970 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
29971 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
29972 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
29973 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
29974 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
29975 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
29976 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
29977 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
29978 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
29979 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
29980 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
29981 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
29982 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
29983 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
29984 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
29985 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
29986 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
29987 definitions accordingly.
29989 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
29990 Kuan-Lin Chen <kuanlinchentw@gmail.com>
29993 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
29996 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
29999 * ira-conflicts.c (ira_build_conflicts): Update total conflict
30000 hard regs for inner regno.
30002 2017-01-17 Martin Liska <mliska@suse.cz>
30005 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
30006 assumption and add comment.
30008 2017-01-17 Nathan Sidwell <nathan@acm.org>
30010 * ipa-visibility.c (localize_node): New function, broken out of ...
30011 (function_and_variable_visibility): ... here. Call it.
30013 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
30015 PR middle-end/77445
30016 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
30017 correctly set frequency of oudgoing edge.
30018 (duplicate_thread_path): Fix profile updating.
30020 2017-01-17 Jakub Jelinek <jakub@redhat.com>
30023 * configure.ac: Add GCC_BASE_VER.
30024 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
30025 version from BASE-VER file.
30026 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
30027 (gcc.o): Depend on $(BASEVER).
30028 * common.opt (dumpfullversion): New option.
30029 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
30030 * doc/invoke.texi: Document -dumpfullversion.
30031 * doc/install.texi: Document --with-gcc-major-version-only.
30032 * configure: Regenerated.
30034 2017-01-17 Richard Biener <rguenther@suse.de>
30036 PR tree-optimization/71433
30037 * tree-vrp.c (register_new_assert_for): Merge same asserts
30038 on all incoming edges.
30039 (process_assert_insertions_for): Handle insertions at the
30042 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
30044 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
30045 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
30047 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
30050 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
30053 2017-01-17 Alan Modra <amodra@gmail.com>
30056 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
30057 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
30058 symbolic stack limit when pic.
30060 2017-01-16 Martin Sebor <msebor@redhat.com>
30062 PR tree-optimization/78608
30063 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
30065 2017-01-16 Jeff Law <law@redhat.com>
30068 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
30069 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
30070 for several include directories that may be relative to sysroot.
30071 * config/i386/x-mingw32 (gplus_includedir): Define.
30072 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
30073 (native_system_includedir): Likewise.
30074 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
30075 override if TARGET_SYSTEM_ROOT is defined.
30076 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
30078 PR tree-optimization/79090
30079 PR tree-optimization/33562
30080 PR tree-optimization/61912
30081 PR tree-optimization/77485
30082 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
30083 and computed trims into the dump file.
30085 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
30087 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
30089 2017-01-16 Jakub Jelinek <jakub@redhat.com>
30092 * gimplify.c (gimplify_init_constructor): If want_value and
30093 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
30097 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
30098 sequence. Formatting fixes.
30099 (doloop_optimize): Formatting fixes.
30102 * gcc.c (debug_level_greater_than_spec_func): New function.
30103 (static_spec_functions): Add debug-level-gt spec function.
30104 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
30106 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
30107 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
30108 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
30109 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
30110 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
30111 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
30113 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
30115 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
30116 QImode fixups to general and mask registers only.
30118 2017-01-16 Carl Love <cel@us.ibm.com>
30120 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
30121 for built-in functions
30122 vector signed char vec_nabs (vector signed char)
30123 vector signed short vec_nabs (vector signed short)
30124 vector signed int vec_nabs (vector signed int)
30125 vector signed long long vec_nabs (vector signed long long)
30126 vector float vec_nabs (vector float)
30127 vector double vec_nabs (vector double)
30128 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
30130 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
30131 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
30132 * doc/extend.texi: Update the documentation file for the new built-in
30135 2017-01-16 Martin Sebor <msebor@redhat.com>
30137 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
30140 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30142 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
30143 UNSPEC_VSX__XXSPLTD to require special splat handling.
30145 2017-01-16 David Malcolm <dmalcolm@redhat.com>
30148 * system.h: Poison strndup.
30150 2017-01-16 Alan Modra <amodra@gmail.com>
30153 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
30156 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
30158 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
30160 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
30162 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
30163 call recog here. Assert that INSN_CODE (insn) is non-negative.
30165 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
30168 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
30170 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
30171 in the currently scheduled RTL fragment.
30173 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
30175 PR rtl-optimization/78751
30176 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
30179 2017-01-14 Jeff Law <law@redhat.com>
30181 PR tree-optimization/79090
30182 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
30183 variable length stores.
30184 (compute_trims): Delete dead assignment to *trim_tail.
30185 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
30188 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
30190 PR rtl-optimization/78626
30191 PR rtl-optimization/78727
30192 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
30193 of a block, and split such blocks after everything else is finished.
30195 2017-01-14 Alan Modra <amodra@gmail.com>
30198 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
30199 target legitimate_combined_insn.
30200 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
30201 (rs6000_legitimate_combined_insn): New function.
30202 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
30204 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
30205 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
30206 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
30208 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
30210 * doc/frontends.texi (G++ and GCC): Remove references to Java.
30212 2017-01-13 Jeff Law <law@redhat.com>
30214 PR tree-optimization/33562
30215 PR tree-optimization/61912
30216 PR tree-optimization/77485
30217 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
30219 (delete_dead_assignment): Likewise.
30220 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
30221 statement to delete_dead_call and delete_dead_assignment.
30223 2017-01-13 David Malcolm <dmalcolm@redhat.com>
30226 * substring-locations.c (format_warning_va): Strengthen case 1 so
30227 that both endpoints of the substring must be within the format
30228 range for just the substring to be printed.
30230 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
30232 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
30233 * config/i386/i386.c (ix86_target_string): Add missing options
30234 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
30235 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
30236 flags_other and ix86_target_other to flags2_other. Display unknown
30238 (ix86_valid_target_attribute_inner_p): Add missing options and
30239 reorder options by implied ISAs, as in ix86_target_string.
30241 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
30243 * hash-table.h (hash_table::too_empty_p): New function.
30244 (hash_table::expand): Use it.
30245 (hash_table::traverse): Likewise.
30246 (hash_table::empty_slot): Use sizeof (value_type) instead of
30247 sizeof (PTR) to convert bytes to elements. Shrink the table
30248 if the current size is excessive for the current number of
30251 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
30253 * ira-costs.c (record_reg_classes): Break from the inner loop
30254 early once alt_fail is known to be true. Update outer loop
30255 handling accordingly.
30257 2017-01-13 Jeff Law <law@redhat.com>
30259 * tree-ssa-dse.c (decrement_count): New function.
30260 (increment_start_addr, maybe_trim_memstar_call): Likewise.
30261 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
30262 when we know the partially dead statement is a mem* function.
30264 PR tree-optimization/61912
30265 PR tree-optimization/77485
30266 * tree-ssa-dse.c: Include expr.h.
30267 (maybe_trim_constructor_store): New function.
30268 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
30270 PR tree-optimization/33562
30271 PR tree-optimization/61912
30272 PR tree-optimization/77485
30273 * doc/invoke.texi: Document new dse-max-object-size param.
30274 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
30275 * tree-ssa-dse.c: Include params.h.
30276 (dse_store_status): New enum.
30277 (initialize_ao_ref_for_dse): New, partially extracted from
30279 (valid_ao_ref_for_dse, normalize_ref): New.
30280 (setup_live_bytes_from_ref, compute_trims): Likewise.
30281 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
30282 (maybe_trim_partially_dead_store): Likewise.
30283 (maybe_trim_complex_store): Likewise.
30284 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
30285 Track what bytes live from the original store. Return tri-state
30286 for dead, partially dead or live.
30287 (dse_dom_walker): Add constructor, destructor and new private members.
30288 (delete_dead_call, delete_dead_assignment): New extracted from
30290 (dse_optimize_stmt): Make a member of dse_dom_walker.
30291 Use initialize_ao_ref_for_dse.
30293 PR tree-optimization/33562
30294 PR tree-optimization/61912
30295 PR tree-optimization/77485
30296 * sbitmap.h (bitmap_count_bits): Prototype.
30297 (bitmap_clear_range, bitmap_set_range): Likewise.
30298 * sbitmap.c (bitmap_clear_range): New function.
30299 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
30301 2017-01-13 Martin Liska <mliska@suse.cz>
30304 * function.c (set_cfun): Add new argument force.
30305 * function.h (set_cfun): Likewise.
30306 * ipa-inline-transform.c (inline_call): Use the function when
30307 strict alising from is dropped for function we inline to.
30309 2017-01-13 Richard Biener <rguenther@suse.de>
30311 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
30312 for dumping GIMPLE INTEGER_CSTs.
30314 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30316 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
30317 to 201112L since C++17.
30319 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
30322 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
30323 if -fsanitize=kernel-address is present.
30325 2017-01-13 Richard Biener <rguenther@suse.de>
30327 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
30328 as _Literal ( type ) number in case usual suffixes do not
30329 preserve all information.
30331 2017-01-13 Richard Biener <rguenther@suse.de>
30333 PR tree-optimization/77283
30334 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
30335 and ssa-iterators.h.
30336 (is_feasible_trace): Implement a cost model based on joiner
30339 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
30342 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
30343 char or short to __float128/_Float128 directly.
30345 2017-01-12 Martin Sebor <msebor@redhat.com>
30347 to -Wformat-overflow.
30348 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
30349 (min_bytes_remaining): Same.
30350 (get_string_length): Same.
30351 (format_string): Same.
30352 (format_directive): Same.
30354 (pass_sprintf_length::handle_gimple_call): Same.
30356 2017-01-12 Jakub Jelinek <jakub@redhat.com>
30358 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
30359 info.nowrite calls with no lhs that can't throw. Return bool
30360 whether gsi_remove has been called or not.
30361 (pass_sprintf_length::handle_gimple_call): Return bool whether
30362 try_substitute_return_value called gsi_remove. Formatting fix.
30363 (pass_sprintf_length::execute): Don't use gsi_remove if
30364 handle_gimple_call returned true.
30367 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
30368 be removed due to side-effects, don't remove following barrier nor
30369 turn the successor edge into fallthru edge.
30371 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30374 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
30375 element-reversing loads and stores as not swappable.
30377 2017-01-12 Nathan Sidwell <nathan@acm.org>
30378 Nicolai Stange <nicstange@gmail.com>
30380 * combine.c (try_combine): Don't ignore result of overlap checking
30381 loop. Combine overlap & asm check into single loop.
30383 2017-01-12 Richard Biener <rguenther@suse.de>
30385 * tree-pretty-print.c (dump_generic_node): Provide -gimple
30386 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
30388 2017-01-12 Richard Biener <rguenther@suse.de>
30390 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
30391 and TS_TARGET_OPTION directly derive from TS_BASE.
30392 * tree-core.h (tree_optimization_option): Derive from tree_base.
30393 (tree_target_option): Likewise.
30395 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
30397 * config/i386/i386.c (memory_address_length): Increase len
30398 only when rip_relative_addr_p returns false.
30400 2017-01-11 Julia Koval <julia.koval@intel.com>
30402 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
30403 (OPTION_MASK_ISA_SGX_SET): New.
30404 (ix86_handle_option): Handle OPT_msgx.
30405 * config.gcc: Added sgxintrin.h.
30406 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
30407 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
30408 * config/i386/i386.c (ix86_target_string): Add -msgx.
30410 (ix86_option_override_internal): Handle new options.
30411 (ix86_valid_target_attribute_inner_p): Add sgx.
30412 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
30413 * config/i386/i386.opt: Add msgx.
30414 * config/i386/sgxintrin.h: New file.
30415 * config/i386/x86intrin.h: Add sgxintrin.h.
30417 2017-01-11 Jakub Jelinek <jakub@redhat.com>
30420 * fold-const.c (maybe_nonzero_address): Return 1 for function
30422 (tree_single_nonzero_warnv_p): Don't handle function local objects
30426 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
30429 2017-01-11 David Malcolm <dmalcolm@redhat.com>
30432 * opts.c: Include "spellcheck.h"
30433 (struct string_fragment): New struct.
30434 (struct edit_distance_traits<const string_fragment &>): New
30436 (get_closest_sanitizer_option): New function.
30437 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
30439 2017-01-11 Jakub Jelinek <jakub@redhat.com>
30441 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
30443 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
30444 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
30445 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
30446 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
30447 for initial die_offset if dwarf_split_debug_info.
30448 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
30449 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
30451 (output_skeleton_debug_sections): Formatting fix. Use
30452 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
30453 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
30455 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
30457 * config/arm/cortex-a53.md: Add bypasses for
30458 cortex_a53_r2f_cvt.
30459 (cortex_a53_r2f): Only use for transfers.
30460 (cortex_a53_f2r): Likewise.
30461 (cortex_a53_r2f_cvt): Add reservation for conversions.
30462 (cortex_a53_f2r_cvt): Likewise.
30464 2017-01-11 Tamar Christina <tamar.christina@arm.com>
30466 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
30467 to all inlined functions, change static to extern.
30469 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
30472 * config/arm/arm.c (legitimize_pic_address): Handle reference to
30474 (arm_assemble_integer): Likewise.
30476 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
30478 * config.gcc: Use new awk script to check CPU, FPU and architecture
30479 parameters for --with-... options.
30480 * config/arm/parsecpu.awk: New file
30481 * config/arm/arm-cpus.in: New file.
30482 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
30484 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
30486 * config/arm/t-arm: Update dependency rules.
30487 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
30488 of processing .def files.
30489 * config/arm/genopt.sh: Deleted.
30490 * config/arm/gentune.sh: Deleted.
30491 * config/arm/arm-cores.def: Deleted.
30492 * config/arm/arm-arches.def: Deleted.
30493 * config/arm/arm-fpus.def: Deleted.
30494 * config/arm/arm-tune.md: Regenerated.
30495 * config/arm/arm-tables.opt: Regenerated.
30496 * config/arm/arm-cpu.h: New generated file.
30497 * config/arm/arm-cpu-data.h: New generated file.
30498 * config/arm/arm-cpu-cdata.h: New generated file.
30500 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
30503 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
30505 (input_varpool_node): Unpack dynamically_initialized bit.
30507 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
30509 PR rtl-optimization/79032
30510 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
30511 the alignment of the adjusted memory reference against that of MODE,
30512 instead of the alignment of the original memory reference.
30514 2017-01-11 Martin Jambor <mjambor@suse.cz>
30516 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
30518 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
30519 decorated functions.
30521 2017-01-11 Richard Biener <rguenther@suse.de>
30523 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
30524 set range/nonnull info for PHI results. Do not set it on
30525 stmts marked for removal.
30527 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
30529 * expr.c (store_field): In the bitfield case, fetch the return value
30530 from the registers before applying a single big-endian adjustment.
30531 Always do a final load for a BLKmode value not larger than a word.
30533 2017-01-10 David Malcolm <dmalcolm@redhat.com>
30536 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
30537 that we correctly handle column numbers greater than
30538 LINE_MAP_MAX_COLUMN_NUMBER.
30540 2017-01-10 Martin Sebor <msebor@redhat.com>
30542 PR middle-end/78245
30543 * gimple-ssa-sprintf.c (get_destination_size): Call
30544 {init,fini}object_sizes.
30545 * tree-object-size.c (addr_object_size): Adjust.
30546 (pass_through_call): Adjust.
30547 (pass_object_sizes::execute): Adjust.
30548 * tree-object-size.h (fini_object_sizes): Declare.
30550 2017-01-10 Martin Sebor <msebor@redhat.com>
30552 PR tree-optimization/78775
30553 * builtins.c (get_size_range): Move...
30554 * calls.c: ...to here.
30555 (alloc_max_size): Accept zero argument.
30556 (operand_signed_p): Remove.
30557 (maybe_warn_alloc_args_overflow): Call get_size_range.
30558 * calls.h (get_size_range): Declare.
30560 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
30562 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
30563 from TI's devices.csv file as of September 2016.
30564 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
30566 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
30568 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
30569 * doc/invoke.texi: Likewise.
30570 * doc/md.texi: Likewise.
30571 * doc/objc.texi: Likewise.
30573 2017-01-10 Joshua Conner <joshconner@google.com>
30575 * config/arm/fuchsia-elf.h: New file.
30576 * config/fuchsia.h: New file.
30577 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
30578 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
30580 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
30582 2016-01-10 Richard Biener <rguenther@suse.de>
30584 PR tree-optimization/79034
30585 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
30586 Propagate out degenerate PHIs in the joiner.
30588 2017-01-10 Martin Liska <mliska@suse.cz>
30590 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
30591 (sort_congruence_classes_by_decl_uid): Likewise.
30592 (sort_congruence_class_groups_by_decl_uid): Likewise.
30593 (sem_item_optimizer::merge_classes): Sort class, groups in these
30594 classes and members in the groups by DECL_UID of declarations.
30595 This would make merge operations stable.
30597 2017-01-10 Martin Liska <mliska@suse.cz>
30599 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
30600 usage of m_classes_vec.
30601 (sem_item_optimizer::~sem_item_optimizer): Likewise.
30602 (sem_item_optimizer::get_group_by_hash): Likewise.
30603 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
30604 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
30605 (sem_item_optimizer::verify_classes): Likewise.
30606 (sem_item_optimizer::process_cong_reduction): Likewise.
30607 (sem_item_optimizer::dump_cong_classes): Likewise.
30608 (sem_item_optimizer::merge_classes): Likewise.
30609 * ipa-icf.h (congruence_class_hash): Rename from
30610 congruence_class_group_hash. Remove declaration of m_classes_vec.
30612 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
30614 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
30615 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
30616 * config.gcc: Add avx512vpopcntdqintrin.h.
30617 * config/i386/avx512vpopcntdqintrin.h: New.
30618 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
30619 * config/i386/i386-builtin-types.def: Add new types.
30620 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
30621 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
30622 __builtin_ia32_vpopcountq_v8di_mask): New.
30623 * config/i386/i386-c.c (ix86_target_macros_internal): Define
30624 __AVX512VPOPCNTDQ__.
30625 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
30626 (PTA_AVX512VPOPCNTDQ): Define.
30627 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
30628 TARGET_AVX512VPOPCNTDQ_P): Define.
30629 * config/i386/i386.opt: Add mavx512vpopcntdq.
30630 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
30631 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
30633 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
30635 PR middle-end/77484
30636 * predict.def (PRED_CALL): Set to 67.
30638 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
30640 * expr.c (store_field): In the bitfield case, if the value comes from
30641 a function call and is of an aggregate type returned in registers, do
30642 not modify the field mode; extract the value in all cases if the mode
30643 is BLKmode and the size is not larger than a word.
30645 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
30648 * config/i386/cpuid.h: Fix undefined behavior.
30650 2017-01-04 Jeff Law <law@redhat.com>
30652 PR tree-optimization/79007
30653 PR tree-optimization/67955
30654 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
30655 conservative for pt.null when flag_non_call_exceptions is on.
30657 2017-01-09 Jakub Jelinek <jakub@redhat.com>
30659 PR translation/79019
30660 PR translation/79020
30661 * params.def (PARAM_INLINE_MIN_SPEEDUP,
30662 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
30663 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
30665 * config/avr/avr.opt (maccumulate-args): Likewise.
30666 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
30667 * common.opt (freport-bug): Likewise.
30668 * cif-code.def (CIF_FINAL_ERROR): Likewise.
30669 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
30670 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
30671 translatable string.
30672 * config/i386/i386.c (function_value_32): Likewise.
30673 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
30674 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
30676 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
30677 * common/config/msp430/msp430-common.c (msp430_handle_option):
30679 * symtab.c (symtab_node::verify_base): Likewise.
30680 * opts.c (set_debug_level): Likewise.
30681 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
30682 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
30683 missing whitespace to translatable strings.
30684 * config/avr/avr.md (bswapsi2): Fix typo in comment.
30685 * config/sh/superh.h: Likewise.
30686 * config/i386/xopintrin.h: Likewise.
30687 * config/i386/znver1.md: Likewise.
30688 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
30689 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
30690 * double-int.h (struct double_int): Likewise.
30691 * double-int.c (div_and_round_double): Likewise.
30692 * wide-int.cc: Likewise.
30693 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
30694 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
30695 * cfgcleanup.c (crossjumps_occured): Renamed to ...
30696 (crossjumps_occurred): ... this.
30697 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
30700 PR tree-optimization/78899
30701 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
30702 returning bool return struct loop *, NULL for failure and the new
30704 (versionable_outer_loop_p): Don't version outer loop if it has
30705 dont_vectorized bit set.
30706 (tree_if_conversion): When versioning outer loop, ensure
30707 tree_if_conversion is performed also on the inner loop of the
30708 non-vectorizable outer loop copy.
30709 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
30710 LOOP_VECTORIZED in inner loop of the scalar outer loop and
30711 prevent vectorization of it.
30712 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
30713 the outer loop vectorization of the non-scalar version is attempted
30714 before vectorization of the inner loop in scalar version. If
30715 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
30716 vectorization of its inner loop.
30717 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
30718 has 2 inner loops, rename also on edges from bb whose single pred
30719 is outer_loop->header. Fix typo in function comment.
30721 2017-01-09 Martin Sebor <msebor@redhat.com>
30724 * asan.c (asan_emit_stack_protection): Increase local buffer size
30725 to avoid snprintf truncation warning.
30727 2017-01-09 Andrew Pinski <apinski@cavium.com>
30729 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
30730 to reference thunderx2t99 for the tuning structure
30731 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
30733 (thunderx2t99_extra_costs): This.
30734 * config/aarch64/aarch64-tune.md: Regenerate.
30735 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
30736 (vulcan_addrcost_table): This.
30737 (vulcan_regmove_cost): Rename to ...
30738 (thunderx2t99_regmove_cost): This.
30739 (vulcan_vector_cost): Rename to ...
30740 (thunderx2t99_vector_cost): this.
30741 (vulcan_branch_cost): Rename to ...
30742 (thunderx2t99_branch_cost): This.
30743 (vulcan_tunings): Rename to ...
30744 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
30745 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
30747 2017-01-09 Martin Jambor <mjambor@suse.cz>
30751 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
30752 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
30753 (propagate_vr_accross_jump_function): Use the above function for all
30754 value range computations for pass-through jump functions and type
30755 converasion from explicit value range values.
30756 (ipcp_propagate_stage): Do not attempt to deduce types of formal
30757 parameters from TYPE_ARG_TYPES.
30758 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
30759 (ipa_write_node_info): Stream type of the actual argument.
30760 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
30762 2017-01-09 Martin Liska <mliska@suse.cz>
30765 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
30766 (lookup_compiler): Do not show error message with have_E.
30768 2017-01-09 Jakub Jelinek <jakub@redhat.com>
30770 PR tree-optimization/78938
30771 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
30772 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
30773 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
30774 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
30777 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30779 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
30782 2017-01-09 Richard Biener <rguenther@suse.de>
30784 PR tree-optimization/78997
30785 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
30786 name condition properly.
30788 2017-01-09 Richard Biener <rguenther@suse.de>
30791 * dwarf2out.c (is_cxx): New overload with context.
30792 (is_naming_typedef_decl): Use it.
30794 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
30796 * invoke.texi (Option Summary): Correct spacing in option lists
30797 and add line breaks to fix over-long lines.
30799 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
30801 PR middle-end/17660
30803 * extend.texi (Common Variable Attributes): Add xref to GCC
30804 Internals manual to explain mode attribute keywords.
30806 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
30809 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
30810 and Preprocessor Options.
30811 (Options for Linking): Document -pthread here....
30812 (RS/6000 and PowerPC Options): ...not here.
30813 (Solaris 2 Options): ...or here.
30814 * doc/cppopts.texi: Document -pthread.
30816 2017-01-08 Martin Sebor <msebor@redhat.com>
30818 PR middle-end/77708
30819 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
30820 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
30821 New member functions.
30822 (format_directive): Used them.
30824 (pass_sprintf_length::handle_gimple_call): Same.
30825 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
30826 to avoid truncation for any argument.
30827 (extract_affine_mul): Same.
30828 * tree.c (get_file_function_name): Same.
30830 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
30832 PR middle-end/77484
30833 * predict.def (PRED_INDIR_CALL): Set to 86.
30835 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
30837 PR preprocessor/54124
30838 * doc/cppopts.texi: Reformat -d subtable to list the full name
30839 of the options. Add cross-reference to the docs for the general
30840 compiler -d options.
30841 * doc/invoke.texi (Developer Options): Add cross-reference to the
30842 preprocessor-specific -d option documentation.
30844 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
30846 PR preprocessor/13498
30847 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
30848 redudant material, and reflect new command-line options.
30849 (System Headers): Likewise.
30851 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
30853 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
30854 -isystem, and -idirafter. Copy-edit.
30855 * doc/cppopts.texi: Copy-edit. Remove contradiction about
30856 default for -ftrack-macro-expansion. Delete obsolete and
30857 badly-formatted implementation details about -fdebug-cpp output.
30858 * doc/cppwarnopts.texi: Copy-edit.
30860 2017-01-07 David Malcolm <dmalcolm@redhat.com>
30863 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
30864 that the transition from a max line width >= 1<<10 to narrower
30865 lines works correctly.
30867 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
30869 * doc/options.texi (PerFunction): New.
30870 * opt-functions.awk (switch_flags): Map both Optimization and
30871 PerFunction to CL_OPTIMIZATION.
30872 * opth-gen.awk: Test for PerFunction flag along with
30874 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
30875 it only when the latter is present. Skip those that don't in
30876 the hash function generator.
30877 * common.opt (fvar-tracking): Mark as PerFunction instead of
30879 (fvar-tracking-assignments): Likewise.
30880 (fvar-tracking-assignments-toggle): Likewise.
30881 (fvar-tracking-uninit): Likewise.
30883 2017-01-07 Jakub Jelinek <jakub@redhat.com>
30885 PR translation/79018
30886 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
30889 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
30892 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
30893 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
30894 TARGET_LONG_JUMP_TABLE_OFFSETS.
30895 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
30896 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
30897 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
30898 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
30899 * config/m68k/m68k.md (tablejump expander): Likewise.
30900 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
30901 TARGET_LONG_JUMP_TABLE_OFFSETS.
30902 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
30903 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
30905 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
30906 David Holsgrove <david.holsgrove@xilinx.com>
30908 * common/config/microblaze/microblaze-common.c
30909 (TARGET_EXCEPT_UNWIND_INFO): Remove.
30910 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
30912 * config/microblaze/microblaze.c (microblaze_must_save_register)
30913 (microblaze_expand_epilogue, microblaze_return_addr): Handle
30915 (microblaze_eh_return): New function.
30916 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
30917 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
30918 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
30919 * config/microblaze/microblaze.md (eh_return): New pattern.
30921 2017-01-06 Jakub Jelinek <jakub@redhat.com>
30923 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
30924 GCC_DIAGNOSTIC_STRINGIFY): Define.
30926 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
30928 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
30930 * config/arm/arm.md (<mcrr>): New.
30932 * config/arm/arm.c (arm_arch5te): New.
30933 (arm_option_override): Set arm_arch5te.
30934 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
30936 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
30937 (arm_mcrr_qualifiers): ... this. New.
30938 (MRRC_QUALIFIERS): Define to...
30939 (arm_mrrc_qualifiers): ... this. New.
30940 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
30942 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
30943 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
30944 (MRRCI, mrrc, MRRC): New.
30945 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
30946 VUNSPEC_MRRC2): New.
30948 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
30950 * config/arm/arm.md (<mcr>): New.
30952 * config/arm/arm.c (arm_coproc_builtin_available): Add
30953 support for mcr, mrc, mcr2 and mrc2.
30954 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
30955 (arm_mcr_qualifiers): ... this. New.
30956 (MRC_QUALIFIERS): Define to ...
30957 (arm_mrc_qualifiers): ... this. New.
30958 (MCR_QUALIFIERS): Define to ...
30959 (arm_mcr_qualifiers): ... this. New.
30960 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
30962 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
30963 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
30964 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
30965 VUNSPEC_MRC2): New.
30967 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
30969 * config/arm/arm.md (*ldc): New.
30973 * config/arm/arm.c (arm_coproc_builtin_available): Add
30974 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
30975 (arm_coproc_ldc_stc_legitimate_address): New.
30976 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
30977 'qualifier_const_pointer'.
30978 (LDC_QUALIFIERS): Define to...
30979 (arm_ldc_qualifiers): ... this. New.
30980 (STC_QUALIFIERS): Define to...
30981 (arm_stc_qualifiers): ... this. New.
30982 * config/arm/arm-protos.h
30983 (arm_coproc_ldc_stc_legitimate_address): New.
30984 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
30985 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
30986 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
30987 stc2, stcl, stc2l): New.
30988 * config/arm/constraints.md (Uz): New.
30989 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
30990 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
30991 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
30992 VUNSPEC_STC2L): New.
30994 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
30996 * config/arm/arm.md (<cdp>): New.
30997 * config/arm/arm.c (neon_const_bounds): Rename this ...
30998 (arm_const_bounds): ... this.
30999 (arm_coproc_builtin_available): New.
31000 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
31001 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
31002 (CDP_QUALIFIERS): Define to...
31003 (arm_cdp_qualifiers): ... this. New.
31005 (arm_expand_builtin_args): Add case for 6 arguments.
31006 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
31007 (arm_const_bounds): ... this.
31008 (arm_coproc_builtin_available): New.
31009 * config/arm/arm_acle.h (__arm_cdp): New.
31011 * config/arm/arm_acle_builtins.def (cdp): New.
31013 * config/arm/iterators.md (CDPI,CDP,cdp): New.
31014 * config/arm/neon.md: Rename all 'neon_const_bounds' to
31015 'arm_const_bounds'.
31016 * config/arm/types.md (coproc): New.
31017 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
31018 * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
31019 * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
31020 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
31022 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
31024 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
31025 (UBINOP_QUALIFIERS): New.
31027 (acle_builtin_data): New. Change comment.
31028 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
31029 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
31030 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
31031 arm_acle_builtins.def.
31032 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
31033 (arm_init_acle_builtins): New.
31034 (CRC32_BUILTIN): Remove.
31035 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
31036 crc32cb, crc32ch and crc32cw.
31037 (arm_init_crc32_builtins): Remove.
31038 (arm_init_builtins): Use arm_init_acle_builtins rather
31039 than arm_init_crc32_builtins.
31040 (arm_expand_acle_builtin): New.
31041 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
31042 * config/arm/arm_acle_builtins.def: New.
31044 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
31046 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
31047 (arm_builtin_datum): ... this.
31048 (arm_init_neon_builtin): Rename to ...
31049 (arm_init_builtin): ... this. Add a new parameters PREFIX
31050 and USE_SIG_IN_NAME.
31051 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
31052 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
31053 'arm_builtin_datum'.
31054 (arm_init_vfp_builtins): Likewise.
31055 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
31056 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
31057 (arm_expand_neon_args): Rename to ...
31058 (arm_expand_builtin_args): ... this. Rename builtin_arg
31059 enum values and differentiate between ARG_BUILTIN_MEMORY
31060 and ARG_BUILTIN_NEON_MEMORY.
31061 (arm_expand_neon_builtin_1): Rename to ...
31062 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
31063 values, arm_expand_builtin_args and add bool parameter NEON.
31064 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
31065 (arm_expand_vfp_builtin): Likewise.
31066 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
31068 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
31070 PR middle-end/77484
31071 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
31072 * predict.c (tree_estimate_probability_bb): Reverse direction of
31073 polymorphic call predictor.
31075 2017-01-06 David Malcolm <dmalcolm@redhat.com>
31077 * passes.c (execute_one_pass): Split out pass-skipping logic into...
31078 (determine_pass_name_match): ...this new function and...
31079 (should_skip_pass_p): ...this new function.
31081 2017-01-06 Nathan Sidwell <nathan@acm.org>
31083 * ipa-visibility.c (function_and_variable_visibility): Reformat
31084 comments and long lines. Remove extrneous if.
31085 * symtab.c (symtab_node::make_decl_local): Fix code format.
31086 (symtab_node::set_section_for_node): Fix comment typo.
31088 2017-01-06 Martin Liska <mliska@suse.cz>
31091 * lra-constraints.c: Rename invariant to lra_invariant.
31092 * predict.c (set_even_probabilities): Initialize e to NULL.
31094 2017-01-05 Martin Sebor <msebor@redhat.com>
31096 PR tree-optimization/78910
31097 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
31098 (format_integer): Correct off-by-one error in the handling
31099 of precision with negative numbers in signed conversions..
31101 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
31103 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
31105 2017-01-05 Jakub Jelinek <jakub@redhat.com>
31107 PR tree-optimization/71016
31108 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
31109 factor_out_conditional_conversion. Formatting fix.
31110 (factor_out_conditional_conversion): Add cond_stmt argument.
31111 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
31112 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
31115 2017-01-05 David Malcolm <dmalcolm@redhat.com>
31117 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
31118 read-rtl-function.o, and selftest-rtl.o.
31119 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
31120 (selftest::aarch64_test_loading_full_dump): New function.
31121 (selftest::aarch64_run_selftests): New function.
31122 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
31123 selftest::aarch64_run_selftests.
31124 * config/i386/i386.c
31125 (selftest::ix86_test_loading_dump_fragment_1): New function.
31126 (selftest::ix86_test_loading_call_insn): New function.
31127 (selftest::ix86_test_loading_full_dump): New function.
31128 (selftest::ix86_test_loading_unspec): New function.
31129 (selftest::ix86_run_selftests): Call the new functions.
31130 * emit-rtl.c (maybe_set_max_label_num): New function.
31131 * emit-rtl.h (maybe_set_max_label_num): New decl.
31132 * function.c (instantiate_decls): Guard call to
31133 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
31134 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
31136 * gensupport.c (gen_reader::gen_reader): Pass "false"
31137 for new "compact" param of rtx_reader.
31138 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
31139 rather than an empty string for NULL strings.
31140 * read-md.c: Potentially include config.h rather than bconfig.h.
31141 Wrap include of errors.h with #ifdef GENERATOR_FILE.
31142 (have_error): New global, copied from errors.c.
31143 (md_reader::read_name): Rename to...
31144 (md_reader::read_name_1): ...this, adding "out_loc" param,
31145 and converting "missing name or number" to returning false, rather
31147 (md_reader::read_name): Reimplement in terms of read_name_1.
31148 (md_reader::read_name_or_nil): New function.
31149 (md_reader::read_string): Handle "(nil)" by returning NULL.
31150 (md_reader::md_reader): Add new param "compact".
31151 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
31152 (md_reader::read_file): New method.
31153 * read-md.h (md_reader::md_reader): Add new param "compact".
31154 (md_reader::read_file): New method.
31155 (md_reader::is_compact): New accessor.
31156 (md_reader::read_name): Convert return type from void to file_location.
31157 (md_reader::read_name_or_nil): New decl.
31158 (md_reader::read_name_1): New decl.
31159 (md_reader::m_compact): New field.
31160 (noop_reader::noop_reader): Pass "false" for new "compact" param
31162 (rtx_reader::rtx_reader): Add new "compact" param.
31163 (rtx_reader::read_rtx_operand): Make virtual and convert return
31164 type from void to rtx.
31165 (rtx_reader::read_until): New decl.
31166 (rtx_reader::handle_any_trailing_information): New virtual function.
31167 (rtx_reader::postprocess): New virtual function.
31168 (rtx_reader::finalize_string): New virtual function.
31169 (rtx_reader::m_in_call_function_usage): New field.
31170 (rtx_reader::m_reuse_rtx_by_id): New field.
31171 * read-rtl-function.c: New file.
31172 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
31173 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
31174 (selftest::verify_three_block_rtl_cfg): New decl.
31175 * read-rtl-function.h: New file.
31176 * read-rtl.c: Potentially include config.h rather than bconfig.h.
31177 For host, include function.h, memmodel.h, and emit-rtl.h.
31178 (one_time_initialization): New function.
31179 (struct compact_insn_name): New struct.
31180 (compact_insn_names): New array.
31181 (find_code): Handle insn codes in compact dumps.
31182 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
31183 (bind_subst_iter_and_attr): Likewise.
31184 (add_condition_to_string): Likewise.
31185 (add_condition_to_rtx): Likewise.
31186 (apply_attribute_uses): Likewise.
31187 (add_current_iterators): Likewise.
31188 (apply_iterators): Likewise.
31189 (initialize_iterators): Guard usage of apply_subst_iterator with
31190 #ifdef GENERATOR_FILE.
31191 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
31192 (md_reader::read_mapping): Likewise.
31193 (add_define_attr_for_define_subst): Likewise.
31194 (add_define_subst_attr): Likewise.
31195 (read_subst_mapping): Likewise.
31196 (check_code_iterator): Likewise.
31197 (rtx_reader::read_rtx): Likewise. Move one-time initialization
31199 (one_time_initialization): New function.
31200 (rtx_reader::read_until): New method.
31201 (read_flags): New function.
31202 (parse_reg_note_name): New function.
31203 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
31204 Handle reuse_rtx ids.
31205 Wrap iterator lookup within #ifdef GENERATOR_FILE.
31206 Add parsing support for RTL dumps, mirroring the special-cases in
31207 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
31208 values, and calling handle_any_trailing_information.
31209 (rtx_reader::read_rtx_operand): Convert return type from void
31210 to rtx, returning return_rtx. Handle case 'e'. Call
31211 finalize_string on XSTR and XTMPL fields.
31212 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
31213 "(nil)" values were omitted. Call the postprocess vfunc on the
31215 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
31216 class ctor. Initialize m_in_call_function_usage. Call
31217 one_time_initialization.
31218 * rtl-tests.c (selftest::test_uncond_jump): Call
31219 set_new_first_and_last_insn.
31220 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
31221 * selftest-rtl.c: New file.
31222 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
31223 (selftest::get_insn_by_uid): New decl.
31224 * selftest-run-tests.c (selftest::run_tests): Call
31225 read_rtl_function_c_tests.
31226 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
31227 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
31230 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
31232 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
31233 operands in a special way. Assert that pos+len <= mode precision.
31235 2017-01-05 Jakub Jelinek <jakub@redhat.com>
31237 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
31238 3 argument Alias with unlimited for the negative form.
31239 (fno-vect-cost-model): Removed.
31241 2017-01-05 Martin Liska <mliska@suse.cz>
31243 * hsa-gen.c (gen_hsa_divmod): New function.
31244 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
31246 2017-01-05 Martin Liska <mliska@suse.cz>
31249 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
31252 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31254 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
31255 small constant length operands.
31257 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31259 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
31260 between loop iterations.
31262 2017-01-05 Martin Liska <mliska@suse.cz>
31265 * gimplify.c (gimplify_decl_expr): Compare to
31266 asan_poisoned_variables instread of checking flags.
31267 (gimplify_target_expr): Likewise.
31268 (gimplify_expr): Likewise.
31269 (gimplify_function_tree): Conditionally initialize
31270 asan_poisoned_variables.
31272 2017-01-04 Jeff Law <law@redhat.com>
31274 PR tree-optimizatin/78812
31275 * rtl.h (contains_mem_rtx_p): Prototype.
31276 * ifcvt.c (containts_mem_rtx_p): Move from here to...
31277 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
31278 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
31279 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
31280 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
31282 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
31284 * input.c (assert_char_at_range): Default-initialize actual_range.
31286 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
31288 * df-scan.c (df_ref_create_structure): Make regno unsigned,
31289 to match the caller.
31291 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
31293 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
31294 insns after final jump in test to emit dummy move.
31296 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
31298 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
31299 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
31301 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
31303 * multiple_target.c (create_dispatcher_calls): Init e_next.
31304 * tree-ssa-loop-split.c (split_loop): Init border.
31305 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
31308 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
31313 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
31314 (altivec_register_operand): Do not return true if the operand
31315 contains a SUBREG mixing SImode and SFmode.
31316 (vsx_register_operand): Likewise.
31317 (vsx_reg_sfsubreg_ok): New predicate.
31318 (vfloat_operand): Do not return true if the operand contains a
31319 SUBREG mixing SImode and SFmode.
31320 (vint_operand): Likewise.
31321 (vlogical_operand): Likewise.
31322 (gpc_reg_operand): Likewise.
31323 (int_reg_operand): Likewise.
31324 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
31325 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
31326 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
31328 (rs6000_emit_move_si_sf_subreg): New helper function.
31329 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
31330 fixup SUBREGs involving SImode and SFmode.
31331 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
31332 numbers for the new peephole2 optimization.
31333 (peephole2 for SFmode unions): New peephole2 to optimize cases in
31334 the GLIBC math library that do AND/IOR/XOR operations on single
31335 precision floating point.
31336 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
31337 target macros to say whether we need to avoid SUBREGs mixing
31339 (TARGET_ALLOW_SF_SUBREG): Likewise.
31340 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
31341 (UNSPEC_SI_FROM_SF): Likewise.
31342 (iorxor): Change spacing.
31343 (and_ior_xor): New iterator for AND, IOR, and XOR.
31344 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
31345 (movdi_from_sf_zero_ext): Likewise.
31346 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
31347 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
31348 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
31349 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
31350 (fms<mode>4): Likewise.
31351 (fnma<mode>4): Likewise.
31352 (fnms<mode>4): Likewise.
31353 (nfma<mode>4): Likewise.
31354 (nfms<mode>4): Likewise.
31356 2017-01-04 Marek Polacek <polacek@redhat.com>
31359 * doc/invoke.texi: Document -Wpointer-compare.
31361 2017-01-04 Jakub Jelinek <jakub@redhat.com>
31363 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
31366 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
31367 descriptions for -gdwarf-5 and emit them as uleb128 instead of
31370 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
31373 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
31374 documentation of the powerpc_popcntb_ok attribute.
31375 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
31376 code to issue warning messages if a requested CPU configuration is
31377 not supported by the binary (assembler and loader) toolchain.
31378 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
31379 made to define a built-in function that has been disabled.
31380 (paired_init_builtins): Add assertion to prevent ICE if attempt is
31381 made to define a built-in function that has been disabled.
31382 (altivec_init_builtins): Add comment explaining why definition
31383 of the DST built-in functions is not preceded by an assertion
31384 check. Add assertions to prevent ICE if attempts are made to
31385 define an altivec predicate or an abs* built-in function that has
31387 (htm_init_builtins): Add comment explaining why definition of the
31388 htm built-in functions is not preceded by an assertion check.
31390 2017-01-04 Jeff Law <law@redhat.com>
31392 PR tree-optimizatin/67955
31393 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
31394 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
31395 the points-to solution does not include pt_null. Use DECL_PT_UID
31398 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
31400 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
31401 Use gen_int_mode instead of gen_lopwart for const_int operands.
31403 2017-01-04 Jakub Jelinek <jakub@redhat.com>
31405 PR tree-optimization/71563
31406 * match.pd: Simplify X << Y into X if Y is known to be 0 or
31407 out of range value - has low bits known to be zero.
31409 2017-01-04 Alan Modra <amodra@gmail.com>
31411 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
31412 * configure: Regenerate.
31413 * config.in: Regenerate.
31415 2017-01-04 Jakub Jelinek <jakub@redhat.com>
31418 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
31419 a substring of the message, but strcmp with the whole message. Ifdef
31420 ENABLE_NLS, translate the message first using dgettext.
31422 2017-01-03 Jeff Law <law@redhat.com>
31424 PR tree-optimizatin/78856
31425 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
31426 (mark_threaded_blocks): Remove code to truncate thread paths that
31427 cross multiple loop headers. Instead invalidate the cached loop
31428 iteration information and handle case of a thread path walking
31429 into an irreducible region.
31431 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
31434 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
31435 assertions. Add support for doing the signbit if the IEEE 128-bit
31436 floating point value is in a GPR.
31437 * config/rs6000/rs6000.md (Fsignbit): Delete.
31438 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
31439 Update the length attribute if the value is in a GPR.
31440 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
31441 the sign or zero extension instruction, since the value is always 0/1.
31442 (signbit<mode>2_dm2): Delete using <Fsignbit>.
31445 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
31446 extracting SImode to a GPR register so that we can generate a
31447 store, limit the vector to be in a traditional Altivec register
31448 for the vextuwrx instruction.
31450 2017-01-03 Ian Lance Taylor <iant@google.com>
31452 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
31454 2017-01-03 Martin Sebor <msebor@redhat.com>
31456 PR tree-optimization/78696
31457 * gimple-ssa-sprintf.c (format_floating): Correct handling of
31458 precision. Use MPFR for %f for greater fidelity. Correct handling
31460 (pass_sprintf_length::compute_format_length): Set width and precision
31461 specified by asrerisk to void_node for vararg functions.
31462 (try_substitute_return_value): Adjust dump output.
31464 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
31466 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
31468 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
31470 * doc/invoke.texi (SPARC options): Document -mlra as the default.
31471 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
31472 -mlra/-mno-lra was passed to the compiler.
31474 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
31476 PR rtl-optimization/65618
31477 * emit-rtl.c (try_split): Move initialization of "before" and
31478 "after" to just before the call to emit_insn_after_setloc.
31480 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
31482 * doc/md.texi (Standard Names): Remove reference to Java frontend.
31484 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
31486 * dwarf2out.c (gen_enumeration_type_die): When
31487 -gno-strict-dwarf, add a DW_AT_encoding attribute.
31489 2017-01-03 Jakub Jelinek <jakub@redhat.com>
31491 PR tree-optimization/78965
31492 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
31493 Change first argument from const call_info & to call_info &. For %n
31494 set info.nowrite to false.
31496 PR middle-end/78901
31497 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
31498 possibly throwing calls.
31500 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
31501 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
31502 and fns handling, rather than in a separate case SSA_NAME.
31504 2017-01-02 Jeff Law <law@redhat.com>
31506 * config/darwin-driver.c (darwin_driver_init): Const-correctness
31507 fixes for first_period and second_period variables.
31509 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
31512 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
31513 (*insvqi_1): New insn pattern.
31514 (*insvqi_1_mem_rex64): Ditto.
31515 (*insvqi_2): Ditto.
31516 (*insvqi_3): Rename from *insvqi.
31518 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
31520 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
31522 * doc/cfg.texi (Edges): Remove reference to Java.
31523 (Maintaining the CFG): Ditto.
31525 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
31527 PR middle-end/77674
31528 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
31529 transparent aliases.
31531 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
31533 PR middle-end/77484
31534 * predict.def (PRED_CALL): Update hitrate.
31535 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
31536 * predict.c (tree_estimate_probability_bb): Split CALL predictor
31537 into direct/indirect/polymorphic variants.
31539 2017-01-01 Jakub Jelinek <jakub@redhat.com>
31541 Update copyright years.
31543 * gcc.c (process_command): Update copyright notice dates.
31544 * gcov-dump.c (print_version): Ditto.
31545 * gcov.c (print_version): Ditto.
31546 * gcov-tool.c (print_version): Ditto.
31547 * gengtype.c (create_file): Ditto.
31548 * doc/cpp.texi: Bump @copying's copyright year.
31549 * doc/cppinternals.texi: Ditto.
31550 * doc/gcc.texi: Ditto.
31551 * doc/gccint.texi: Ditto.
31552 * doc/gcov.texi: Ditto.
31553 * doc/install.texi: Ditto.
31554 * doc/invoke.texi: Ditto.
31556 Copyright (C) 2017 Free Software Foundation, Inc.
31558 Copying and distribution of this file, with or without modification,
31559 are permitted in any medium without royalty provided the copyright
31560 notice and this notice are preserved.