PR debug/82630
[official-gcc.git] / gcc / ChangeLog
blobb9be7254ff79b8b2a2a2a67efaba773cf48180f6
1 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
3         PR debug/82630
4         * target.def (const_not_ok_for_debug_p): Default to
5         default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
6         * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
7         * targhooks.c (default_const_not_ok_for_debug_p): New function.
8         * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
9         which targetm.const_not_ok_for_debug_p returned true.
10         * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
11         for UNSPECs.
12         * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
13         Likewise.
14         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
15         * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
16         UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
17         if !base_term_p.
18         (ix86_const_not_ok_for_debug_p): New function.
19         (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
20         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
22 2017-10-23  David Malcolm  <dmalcolm@redhat.com>
24         PR bootstrap/82610
25         * system.h: Conditionally include "unique-ptr.h" if
26         INCLUDE_UNIQUE_PTR is defined.
27         * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
28         of defining INCLUDE_UNIQUE_PTR before including "system.h".
30 2017-10-23  Sebastian Perta  <sebastian.perta@renesas.com>
32         * config/rl78/rl78.md: New define_expand "subdi3".
34 2017-10-23  H.J. Lu  <hongjiu.lu@intel.com>
36         PR target/82673
37         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
38         DF_REF_INSN if DF_REF_INSN_INFO is false.
40 2017-10-23  Jan Hubicka  <hubicka@ucw.cz>
42         * i386.c (dimode_scalar_chain::compute_convert_gain): Use
43         xmm_move instead of sse_move.
44         (sse_store_index): New function.
45         (ix86_register_move_cost): Be more sensible about mismatch stall;
46         model AVX moves correctly; make difference between sse->integer and
47         integer->sse.
48         (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
49         moves; make difference between SSE and AVX.
50         * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
51         and zmm_move. Increase size of sse load and store tables;
52         add unaligned load and store tables; add ssemmx_to_integer.
53         * x86-tune-costs.h: Update all entries according to real 
54         move latencies from Agner Fog's manual and chip documentation.
56 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
58         PR target/82628
59         * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
60         * config/i386/constraints.md (Wf): New constraint.
61         * config/i386/i386.md (UNSPEC_SBB): New unspec.
62         (cmp<dwi>_doubleword): Removed.
63         (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
64         (sub<mode>3_carry_ccgz): Use unspec instead of compare.
65         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
66         expand with cmp<dwi>_doubleword.  For LTU and GEU use
67         sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
69         * common.opt (gcolumn-info): Enable by default.
70         * doc/invoke.texi (gcolumn-info): Document new default.
72 2017-10-23  Richard Biener  <rguenther@suse.de>
74         PR tree-optimization/82672
75         * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
76         Fold the stmt if we propagated into it.
78 2017-10-23  Richard Biener  <rguenther@suse.de>
80         * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
81         (bitmap_remove_expr_from_set): ... this.  All callers call this
82         for non-constant values.
83         (bitmap_set_subtract): Rename to...
84         (bitmap_set_subtract_expressions): ... this.  Adjust and
85         optimize.
86         (bitmap_set_contains_value): Remove superfluous check.
87         (bitmap_set_replace_value): Inline into single caller ...
88         (bitmap_value_replace_in_set): ... here and simplify.
89         (dependent_clean): Merge into ...
90         (clean): ... this using an overload.  Adjust.
91         (prune_clobbered_mems): Adjust.
92         (compute_antic_aux): Likewise.
93         (compute_partial_antic_aux): Likewise.
95 2017-10-23  Richard Biener  <rguenther@suse.de>
97         PR tree-optimization/82129
98         Revert
99         2017-08-01  Richard Biener  <rguenther@suse.de>
101         PR tree-optimization/81181
102         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
103         (compute_antic): ... end of iteration here.
105 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
107         * target.def (starting_frame_offset): New hook.
108         * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
109         (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
110         * doc/tm.texi.in: Regenerate.
111         * hooks.h (hook_hwi_void_0): Declare.
112         * hooks.c (hook_hwi_void_0): New function.
113         * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
114         STARTING_FRAME_OFFSET.
115         * builtins.c (expand_builtin_setjmp_receiver): Likewise.
116         * reload1.c (reload): Likewise.
117         * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
118         instead of STARTING_FRAME_OFFSET.
119         * function.c (try_fit_stack_local): Likewise.
120         (assign_stack_local_1): Likewise
121         (instantiate_virtual_regs): Likewise.
122         * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
123         * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
124         * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
125         * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
126         * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
127         * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
128         * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
129         * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
130         * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
131         * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
132         * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
133         * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
134         * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
135         * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
136         * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
137         * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
138         * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
139         * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
140         * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
141         * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
142         * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
143         * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
144         * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
145         * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
146         * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
147         * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
148         * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
149         * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
150         * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
151         * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
152         * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
153         * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
154         * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
155         * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
156         * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
157         * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
158         * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
159         * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
160         * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
161         * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
162         * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
163         * config/avr/avr.c (avr_starting_frame_offset): Make static and
164         return a HOST_WIDE_INT.
165         (avr_builtin_setjmp_frame_value): Use it instead of
166         STARTING_FRAME_OFFSET.
167         (TARGET_STARTING_FRAME_OFFSET): Redefine.
168         * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
169         * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
170         New function.
171         (TARGET_STARTING_FRAME_OFFSET): Redefine.
172         * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
173         * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
174         (TARGET_CONSTANT_ALIGNMENT): Redefine.
175         * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
176         * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
177         (TARGET_STARTING_FRAME_OFFSET): Redefine.
178         * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
179         * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
180         (TARGET_STARTING_FRAME_OFFSET): Redefine.
181         * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
182         * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
183         New function.
184         (TARGET_STARTING_FRAME_OFFSET): Redefine.
185         * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
186         * config/mips/mips.c (mips_compute_frame_info): Refer to
187         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
188         (mips_starting_frame_offset): New function.
189         (TARGET_STARTING_FRAME_OFFSET): Redefine.
190         * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
191         * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
192         * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
193         and return a HOST_WIDE_INT.
194         (TARGET_STARTING_FRAME_OFFSET): Redefine.
195         (mmix_initial_elimination_offset): Refer to
196         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
197         * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
198         * config/pa/pa.c (pa_starting_frame_offset): New function.
199         (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
200         (pa_expand_prologue): Likewise.
201         (TARGET_STARTING_FRAME_OFFSET): Redefine.
202         * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
203         !FRAME_GROWS_DOWNWARD handling to...
204         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
205         * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
206         !FRAME_GROWS_DOWNWARD handling to...
207         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
208         * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
209         !FRAME_GROWS_DOWNWARD handling to...
210         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
211         * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
212         Redefine.
213         (rs6000_starting_frame_offset): New function.
214         * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
215         !FRAME_GROWS_DOWNWARD handling to...
216         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
217         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
218         !FRAME_GROWS_DOWNWARD handling to...
219         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
220         * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
221         !FRAME_GROWS_DOWNWARD handling to...
222         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
223         * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
224         (rs6000_starting_frame_offset): New function.
225         * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
226         * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
227         * config/vax/vax.c (vax_starting_frame_offset): New function.
228         (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
229         (TARGET_STARTING_FRAME_OFFSET): Redefine.
230         * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
231         * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
232         (TARGET_STARTING_FRAME_OFFSET): Redefine.
233         * system.h (STARTING_FRAME_OFFSET): Poison.
235 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
237         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
238         SCALAR_TYPE_MODE instead of TYPE_MODE.
240 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
241             Alan Hayward  <alan.hayward@arm.com>
242             David Sherwood  <david.sherwood@arm.com>
244         * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
246 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
247             Alan Hayward  <alan.hayward@arm.com>
248             David Sherwood  <david.sherwood@arm.com>
250         * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
252 2017-10-23  Richard Biener  <rguenther@suse.de>
254         PR tree-optimization/82129
255         * tree-ssa-pre.c (bitmap_set_and): Remove.
256         (compute_antic_aux): Compute ANTIC_OUT intersection in a way
257         canonicalizing expressions in the set to those with lowest
258         ID rather than taking that from the first edge.
260 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
262         * combine.c (rtx_equal_for_field_assignment_p): Use
263         byte_lowpart_offset.
265 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
266             Alan Hayward  <alan.hayward@arm.com>
267             David Sherwood  <david.sherwood@arm.com>
269         * internal-fn.c (expand_direct_optab_fn): Don't assign directly
270         to a SUBREG_PROMOTED_VAR.
272 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
273             Alan Hayward  <alan.hayward@arm.com>
274             David Sherwood  <david.sherwood@arm.com>
276         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
277         (expand_debug_source_expr): Likewise.
278         * combine.c (combine_simplify_rtx): Likewise.
279         * cse.c (fold_rtx): Likewise.
280         * optabs.c (expand_float): Likewise.
281         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
282         (simplify_binary_operation_1): Likewise.
284 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
285             Alan Hayward  <alan.hayward@arm.com>
286             David Sherwood  <david.sherwood@arm.com>
288         * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
289         (record_promoted_value): Likewise.
290         * expr.c (expand_expr_real_2): Likewise.
291         * ree.c (update_reg_equal_equiv_notes): Likewise.
292         (combine_set_extension): Likewise.
293         * rtlanal.c (low_bitmask_len): Likewise.
294         * simplify-rtx.c (neg_const_int): Likewise.
295         (simplify_binary_operation_1): Likewise.
297 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
298             Alan Hayward  <alan.hayward@arm.com>
299             David Sherwood  <david.sherwood@arm.com>
301         * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
302         * regcprop.c (maybe_mode_change): Likewise.
303         * reload1.c (alter_reg): Likewise.
305 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
307         * inchash.h (inchash::hash::add_wide_int): New function.
308         * lto-streamer-out.c (hash_tree): Use it.
310 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
312         * inchash.h (inchash::hash::add_wide_int): Rename to...
313         (inchash::hash::add_hwi): ...this.
314         * ipa-devirt.c (hash_odr_vtable): Update accordingly.
315         (polymorphic_call_target_hasher::hash): Likewise.
316         * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
317         (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
318         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
319         * lto-streamer-out.c (hash_tree): Likewise.
320         * optc-save-gen.awk: Likewise.
321         * tree.c (add_expr): Likewise.
323 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
325         PR target/52451
326         * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
327         for ordered inequality comparisons even with TARGET_IEEE_FP.
329 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
331         PR target/82628
332         * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
333         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
334         Expand with cmp<dwi>_doubleword.
336 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
338         * extend.texi: Add x86 specific to 'nocf_check' attribute.
339         List CET intrinsics.
340         * invoke.texi: Add -mcet, -mibt, -mshstk options.  Add x86
341         specific to -fcf-protection option.
343 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
345         * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
346         (OPTION_MASK_ISA_SHSTK_SET): Likewise.
347         (OPTION_MASK_ISA_IBT_UNSET): Likewise.
348         (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
349         (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
350         * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
351         (extra_objs): Add cet.o for Linux/x86 targets.
352         (tmake_file): Add i386/t-cet for Linux/x86 targets.
353         * config/i386/cet.c: New file.
354         * config/i386/cetintrin.h: Likewise.
355         * config/i386/t-cet: Likewise.
356         * config/i386/cpuid.h (bit_SHSTK): New.
357         (bit_IBT): Likewise.
358         * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
359         pass IBT and SHSTK bits.
360         * config/i386/i386-builtin-types.def
361         (VOID_FTYPE_UNSIGNED_PVOID): New.
362         (VOID_FTYPE_UINT64_PVOID): Likewise.
363         * config/i386/i386-builtin.def: Add CET intrinsics.
364         * config/i386/i386-c.c (ix86_target_macros_internal): Add
365         OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
366         * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
367         * config/i386/i386-protos.h (make_pass_insert_endbranch): New
368         prototype.
369         * config/i386/i386.c (rest_of_insert_endbranch): New.
370         (pass_data_insert_endbranch): Likewise.
371         (pass_insert_endbranch): Likewise.
372         (make_pass_insert_endbranch): Likewise.
373         (ix86_notrack_prefixed_insn_p): Likewise.
374         (ix86_target_string): Add -mibt, -mshstk flags.
375         (ix86_option_override_internal): Add flag_cf_protection
376         processing.
377         (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
378         (ix86_print_operand): Add 'notrack' prefix output.
379         (ix86_init_mmx_sse_builtins): Add CET intrinsics.
380         (ix86_expand_builtin): Expand CET intrinsics.
381         (x86_output_mi_thunk): Add 'endbranch' instruction.
382         * config/i386/i386.h (TARGET_IBT): New.
383         (TARGET_IBT_P): Likewise.
384         (TARGET_SHSTK): Likewise.
385         (TARGET_SHSTK_P): Likewise.
386         * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
387         UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
388         UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
389         (builtin_setjmp_setup): New pattern.
390         (builtin_longjmp): Likewise.
391         (rdssp<mode>): Likewise.
392         (incssp<mode>): Likewise.
393         (saveprevssp): Likewise.
394         (rstorssp): Likewise.
395         (wrss<mode>): Likewise.
396         (wruss<mode>): Likewise.
397         (setssbsy): Likewise.
398         (clrssbsy): Likewise.
399         (nop_endbr): Likewise.
400         * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
401         options.
402         * config/i386/immintrin.h: Include <cetintrin.h>.
403         * config/i386/linux-common.h
404         (file_end_indicate_exec_stack_and_cet): New prototype.
405         (TARGET_ASM_FILE_END): New.
407 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
409         * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
410         latencies instead of having separate table; make difference between
411         integer and float costs.
412         * i386.h (processor_costs): Remove scalar_stmt_cost,
413         scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
414         scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
415         vec_store_cost.
416         * x86-tune-costs.h: Remove entries which has been removed in
417         procesor_costs from all tables; make cond_taken_branch_cost
418         and cond_not_taken_branch_cost COST_N_INSNS based.
420 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
422         * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
424 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
426         * config/i386/i386.md (isa): Remove fma_avx512f.
427         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
428         <avx512>_fmadd_<mode>_mask3<round_name>,
429         <avx512>_fmsub_<mode>_mask<round_name>,
430         <avx512>_fmsub_<mode>_mask3<round_name>,
431         <avx512>_fnmadd_<mode>_mask<round_name>,
432         <avx512>_fnmadd_<mode>_mask3<round_name>,
433         <avx512>_fnmsub_<mode>_mask<round_name>,
434         <avx512>_fnmsub_<mode>_mask3<round_name>,
435         <avx512>_fmaddsub_<mode>_mask<round_name>,
436         <avx512>_fmaddsub_<mode>_mask3<round_name>,
437         <avx512>_fmsubadd_<mode>_mask<round_name>,
438         <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
439         (*vec_widen_umult_even_v16si<mask_name>,
440         *vec_widen_smult_even_v16si<mask_name>): Likewise.
441         (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
443 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
445         * extend.texi: Add 'nocf_check' documentation.
446         * gimple.texi: Add second parameter to
447         gimple_build_call_from_tree.
448         * invoke.texi: Add -fcf-protection documentation.
449         * rtl.texi: Add REG_CALL_NOTRACK documenation.
451 2017-10-20  Richard Biener  <rguenther@suse.de>
453         PR tree-optimization/82473
454         * tree-vect-loop.c (vectorizable_reduction): Properly get at
455         the largest input type.
457 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
459         * c-attribs.c (handle_nocf_check_attribute): New function.
460         (c_common_attribute_table): Add 'nocf_check' handling.
461         * gimple-parser.c: Add second argument NULL to
462         gimple_build_call_from_tree.
463         * attrib.c (comp_type_attributes): Check nocf_check attribute.
464         * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
465         call insn.
466         * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
467         * common.opt: Add fcf-protection flag.
468         * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
469         * flag-types.h: Add enum cf_protection_level.
470         * gimple.c (gimple_build_call_from_tree): Add second parameter.
471         Add 'nocf_check' attribute propagation to gimple call.
472         * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
473         (gimple_build_call_from_tree): Update prototype.
474         (gimple_call_nocf_check_p): New function.
475         (gimple_call_set_nocf_check): Likewise.
476         * gimplify.c: Add second argument to gimple_build_call_from_tree.
477         * ipa-icf.c: Add nocf_check attribute in statement hash.
478         * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
479         * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
480         * toplev.c (process_options): Add flag_cf_protection handling.
482 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
484         * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
486 2017-10-20  Richard Biener  <rguenther@suse.de>
488         PR tree-optimization/82603
489         * tree-if-conv.c (predicate_mem_writes): Make sure to only
490         remove false predicated stores.
492 2017-10-20  Richard Biener  <rguenther@suse.de>
494         * graphite-isl-ast-to-gimple.c
495         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
496         Remove return value and simplify, dump copied stmt after lhs
497         adjustment.
498         (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
499         Reduce dump verbosity.
500         (gsi_insert_earliest): Likewise.
501         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
502         * graphite.c (print_global_statistics): Adjust dumping.
503         (print_graphite_scop_statistics): Likewise.
504         (print_graphite_statistics): Do not dump loops here.
505         (graphite_transform_loops): But here.
507 2017-10-20  Nicolas Roche  <roche@adacore.com>
509         * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
510         * configure: Regenerate.
512 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
514         PR target/82158
515         * tree-cfg.c (pass_warn_function_return::execute): In noreturn
516         functions when optimizing replace GIMPLE_RETURN stmts with
517         calls to __builtin_unreachable ().
519         PR sanitizer/82595
520         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
521         for -fsanitize=thread link of executables.
522         (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
523         link of executables.
525         PR target/82370
526         * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
527         New mode iterators.
528         (<shift_insn><mode>3<mask_name>): Change the last of the 3
529         define_insns for logical vector shifts to use VI248_AVX512BW
530         iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
531         condition, useless isa and prefix attributes.  Change the first
532         2 of these define_insns to ...
533         (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
534         define_insn for avx512vl.
535         (<shift_insn><mode>3): ... and this, new define_insn without
536         masking for non-avx512vl.
538         PR target/82370
539         * config/i386/sse.md (*andnot<mode>3,
540         <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
541         (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
542         and 256-bit vectors, the (=x,x,xm) alternative and when mask is
543         not applied use empty suffix even for TARGET_AVX512VL.
544         * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
545         is applied, supply evex,evex or evex,evex,evex instead of just
546         evex.
548 2017-10-20  Julia Koval  <julia.koval@intel.com>
550         * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
551         (OPTION_MASK_ISA_GFNI_UNSET): New.
552         (ix86_handle_option): Handle OPT_mgfni.
553         * config/i386/cpuid.h (bit_GFNI): New.
554         * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
555         * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
556         * config/i386/i386.c (ix86_target_string): Add -mgfni.
557         (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
558         * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
559         * config/i386/i386.opt: Add mgfni.
561 2017-10-20  Orlando Arias  <oarias@knights.ucf.edu>
563         * config/msp430/msp430.c (msp430_option_override): Disable
564         -fdelete-null-pointer-checks.
565         * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
567 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
569         * x86-tune-costs.h (generic_cost, core_cost): Correct costs
570         of x87 and SSE instructions.
572 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
574         * asan.c (create_cond_insert_point): Do not update edge count.
575         * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
576         (afdo_propagate_circuit): Likewise.
577         (afdo_calculate_branch_prob): Likewise.
578         (afdo_annotate_cfg): Likewise.
579         * basic-block.h (struct edge_def): Remove count.
580         (edge_def::count): New accessor.
581         * bb-reorder.c (rotate_loop): Update.
582         (find_traces_1_round): Update.
583         (connect_traces): Update.
584         (sanitize_hot_paths): Update.
585         * cfg.c (unchecked_make_edge): Update.
586         (make_single_succ_edge): Update.
587         (check_bb_profile): Update.
588         (dump_edge_info): Update.
589         (update_bb_profile_for_threading): Update.
590         (scale_bbs_frequencies_int): Update.
591         (scale_bbs_frequencies_gcov_type): Update.
592         (scale_bbs_frequencies_profile_count): Update.
593         (scale_bbs_frequencies): Update.
594         * cfganal.c (connect_infinite_loops_to_exit): Update.
595         * cfgbuild.c (compute_outgoing_frequencies): Update.
596         (find_many_sub_basic_blocks): Update.
597         * cfgcleanup.c (try_forward_edges): Update.
598         (try_crossjump_to_edge): Update
599         * cfgexpand.c (expand_gimple_cond): Update
600         (expand_gimple_tailcall): Update
601         (construct_exit_block): Update
602         * cfghooks.c (verify_flow_info): Update
603         (redirect_edge_succ_nodup): Update
604         (split_edge): Update
605         (make_forwarder_block): Update
606         (duplicate_block): Update
607         (account_profile_record): Update
608         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
609         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
610         * cfgloopmanip.c (scale_loop_profile): Update.
611         (loopify): Update.
612         (lv_adjust_loop_entry_edge): Update.
613         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
614         (force_nonfallthru_and_redirect): Update.
615         (purge_dead_edges): Update.
616         (rtl_flow_call_edges_add): Update.
617         * cgraphunit.c (init_lowered_empty_function): Update.
618         (cgraph_node::expand_thunk): Update.
619         * gimple-pretty-print.c (dump_probability): Update.
620         (dump_edge_probability): Update.
621         * gimple-ssa-isolate-paths.c (isolate_path): Update.
622         * haifa-sched.c (sched_create_recovery_edges): Update.
623         * hsa-gen.c (convert_switch_statements): Update.
624         * ifcvt.c (dead_or_predicable): Update.
625         * ipa-inline-transform.c (inline_transform): Update.
626         * ipa-split.c (split_function): Update.
627         * ipa-utils.c (ipa_merge_profiles): Update.
628         * loop-doloop.c (add_test): Update.
629         * loop-unroll.c (unroll_loop_runtime_iterations): Update.
630         * lto-streamer-in.c (input_cfg): Update.
631         (input_function): Update.
632         * lto-streamer-out.c (output_cfg): Update.
633         * modulo-sched.c (sms_schedule): Update.
634         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
635         * predict.c (maybe_hot_edge_p): Update.
636         (unlikely_executed_edge_p): Update.
637         (probably_never_executed_edge_p): Update.
638         (dump_prediction): Update.
639         (drop_profile): Update.
640         (propagate_unlikely_bbs_forward): Update.
641         (determine_unlikely_bbs): Update.
642         (force_edge_cold): Update.
643         * profile.c (compute_branch_probabilities): Update.
644         * reg-stack.c (better_edge): Update.
645         * shrink-wrap.c (handle_simple_exit): Update.
646         * tracer.c (better_p): Update.
647         * trans-mem.c (expand_transaction): Update.
648         (split_bb_make_tm_edge): Update.
649         * tree-call-cdce.c: Update.
650         * tree-cfg.c (gimple_find_sub_bbs): Update.
651         (gimple_split_edge): Update.
652         (gimple_duplicate_sese_region): Update.
653         (gimple_duplicate_sese_tail): Update.
654         (gimple_flow_call_edges_add): Update.
655         (insert_cond_bb): Update.
656         (execute_fixup_cfg): Update.
657         * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
658         * tree-complex.c (expand_complex_div_wide): Update.
659         * tree-eh.c (lower_resx): Update.
660         (unsplit_eh): Update.
661         (cleanup_empty_eh_move_lp): Update.
662         * tree-inline.c (copy_edges_for_bb): Update.
663         (freqs_to_counts): Update.
664         (copy_cfg_body): Update.
665         * tree-ssa-dce.c (remove_dead_stmt): Update.
666         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
667         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
668         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
669         (unloop_loops): Update.
670         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
671         * tree-ssa-loop-split.c (connect_loops): Update.
672         (split_loop): Update.
673         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
674         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
675         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
676         * tree-ssa-reassoc.c (branch_fixup): Update.
677         * tree-ssa-tail-merge.c (replace_block_by): Update.
678         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
679         (compute_path_counts): Update.
680         (update_profile): Update.
681         (recompute_probabilities): Update.
682         (update_joiner_offpath_counts): Update.
683         (estimated_freqs_path): Update.
684         (freqs_to_counts_path): Update.
685         (clear_counts_path): Update.
686         (ssa_fix_duplicate_block_edges): Update.
687         (duplicate_thread_path): Update.
688         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
689         (case_bit_test_cmp): Update.
690         (collect_switch_conv_info): Update.
691         (gen_inbound_check): Update.
692         (do_jump_if_equal): Update.
693         (emit_cmp_and_jump_insns): Update.
694         * tree-tailcall.c (decrease_profile): Update.
695         (eliminate_tail_call): Update.
696         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
697         (vect_do_peeling): Update.
698         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
699         * ubsan.c (ubsan_expand_null_ifn): Update.
700         (ubsan_expand_ptr_ifn): Update.
701         * value-prof.c (gimple_divmod_fixed_value): Update.
702         (gimple_mod_pow2): Update.
703         (gimple_mod_subtract): Update.
704         (gimple_ic): Update.
705         (gimple_stringop_fixed_value): Update.
707 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
709         PR target/82618
710         * config/i386/i386.md (sub to cmp): New peephole2 pattern.
712 2017-10-19  Alexander Monakov  <amonakov@ispras.ru>
714         PR rtl-optimization/82395
715         * ira-color.c (allocno_priority_compare_func): Fix comparison step
716         based on non_spilled_static_chain_regno_p.
718 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
720         * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
721         (ix86_emit_mode_set): Rewrite insn mnemonic construction.
722         (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
724 2017-10-19  Martin Sebor  <msebor@redhat.com>
726         PR tree-optimization/82596
727         * tree.c (array_at_struct_end_p): Handle STRING_CST.
729 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
731         * asan.c (handle_builtin_alloca): Deal with all alloca variants.
732         (get_mem_refs_of_builtin_call): Likewise.
733         * builtins.c (expand_builtin_apply): Adjust call to
734         allocate_dynamic_stack_space.
735         (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
736         the third argument to allocate_dynamic_stack_space, otherwise -1.
737         (expand_builtin): Deal with all alloca variants.
738         (is_inexpensive_builtin): Likewise.
739         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
740         * calls.c (special_function_p): Deal with all alloca variants.
741         (initialize_argument_information): Adjust call to
742         allocate_dynamic_stack_space.
743         (expand_call): Likewise.
744         * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
745         * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
746         * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
747         use it for the stack usage computation.
748         * explow.h (allocate_dynamic_stack_space): Adjust prototype.
749         * function.c (gimplify_parameters): Call build_alloca_call_expr.
750         * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
751         Take into account 3rd argument of __builtin_alloca_with_align_and_max.
752         (in_loop_p): Remove first argument and useless check.
753         (pass_walloca::execute): Remove useless test and adjust call to above.
754         * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
755         * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
756         (gimplify_call_expr): Deal with all alloca variants.
757         * hsa-gen.c (gen_hsa_alloca): Likewise.
758         (gen_hsa_insns_for_call): Likewise.
759         * ipa-pure-const.c (special_builtin_state): Likewise.
760         * tree-chkp.c (chkp_build_returned_bound): Likewise.
761         * tree-object-size.c (alloc_object_size): Likewise.
762         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
763         (call_may_clobber_ref_p_1): Likewise.
764         * tree-ssa-ccp.c (evaluate_stmt): Likewise.
765         (ccp_fold_stmt): Likewise.
766         (optimize_stack_restore): Likewise.
767         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
768         (mark_all_reaching_defs_necessary_1): Likewise.
769         (propagate_necessity): Likewise.
770         (eliminate_unnecessary_stmts): Likewise.
771         * tree.c (build_common_builtin_nodes): Build
772         BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
773         (build_alloca_call_expr): New function.
774         * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
775         (CASE_BUILT_IN_ALLOCA): Likewise.
776         (build_alloca_call_expr): Declare.
777         * varasm.c (incorporeal_function_p): Deal with all alloca variants.
779 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
781         PR debug/82509
782         * dwarf2out.c (new_die_raw): New static inline function.
783         (new_die): Use it to create the DIE.
784         (add_AT_external_die_ref): Likewise.
785         (clone_die): Likewise.
786         (clone_as_declaration): Likewise.
787         (dwarf2out_vms_debug_main_pointer): Likewise.
788         (base_type_die): Likewise.  Remove early return for corner cases.
789         Do not call add_pubtype on the DIE here.
790         (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
791         (modified_type_die): Adjust the lookup for reverse order DIEs.  Skip
792         typedefs for base types with DW_AT_endianity.  Make sure a DIE with
793         native order exists for base types, attach the DIE manually and call
794         add_pubtype on it.  Do not equate a reverse order DIE to the type.
796 2017-10-19  Richard Earnshaw  <rearnsha@arm.com>
798         * config/arm/arm.c (align_ok_ldrd_strd): New function.
799         (mem_ok_for_ldrd_strd): New parameter align.  Extract the alignment of
800         the mem into it.
801         (gen_operands_ldrd_strd): Validate the alignment of the accesses.
803 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
805         * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.  Or
806         SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
807         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
808         BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
809         * opts.c (sanitizer_opts): Add builtin.
810         * ubsan.c (instrument_builtin): New function.
811         (pass_ubsan::execute): Call it.
812         (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
813         * doc/invoke.texi: Document -fsanitize=builtin.
815         * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
816         builtins, store max (log2 (align), 0) into uchar field instead of
817         align into uptr field.
818         (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
819         store uchar 0 field instead of uptr 0 field.
820         (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
821         instead of passing one address of struct with 2 locations pass
822         two addresses of structs with 1 location each.
823         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
824         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
825         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
826         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
827         (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
828         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
829         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
830         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
832 2017-10-19  Martin Liska  <mliska@suse.cz>
834         PR driver/81829
835         * file-find.c (remove_prefix): Remove.
836         * file-find.h (remove_prefix): Likewise.
837         * gcc-ar.c: Remove smartness of lookup.
839 2017-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
841         * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
842         *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
843         *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
845 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
847         PR target/82580
848         * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
849         (setcc + and to xor + setcc): New peephole2.
851 2017-10-19  Tom de Vries  <tom@codesourcery.com>
853         * doc/sourcebuild.texi (Test Directives, Variants of
854         dg-require-support): Add dg-require-stack-size.
856 2017-10-19  Martin Liska  <mliska@suse.cz>
858         PR sanitizer/82517
859         * gimplify.c (gimplify_decl_expr): Do not instrument variables
860         that have a large alignment.
861         (gimplify_target_expr): Likewise.
863 2017-10-18  Segher Boessenkool  <segher@kernel.crashing.org>
865         PR rtl-optimization/82602
866         * ira.c (rtx_moveable_p): Return false for volatile asm.
868 2017-10-18  Uros Bizjak  <ubizjak@gmail.com>
870         PR target/82580
871         * config/i386/i386-modes.def (CCGZ): New CC mode.
872         * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
873         * config/i386/predicates.md (ix86_comparison_operator):
874         Handle CCGZmode.
875         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
876         Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
877         with double-word subtraction.
878         (put_condition_code): Handle CCGZmode.
880 2017-10-18  Aldy Hernandez  <aldyh@redhat.com>
882         * wide-int.cc (debug (const wide_int &)): New.
883         (debug (const wide_int *)): New.
884         (debug (const widest_int &)): New.
885         (debug (const widest_int *)): New.
887 2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>
889         PR middle-end/82556
890         * lra-constraints.c (curr_insn_transform): Use non-input operand
891         instead of output one for matched reload.
893 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
895         * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
896         (tree-ssa-loop-ivopts.h): New header file.
897         (struct builtin_info): New fields.
898         (classify_builtin_1): Compute and record base and offset parts for
899         memset builtin partition by calling strip_offset.
900         (offset_cmp, fuse_memset_builtins): New functions.
901         (finalize_partitions): Fuse adjacent memset partitions by calling
902         above function.
903         * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
904         Expose the interface.
905         * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
907 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
909         PR tree-optimization/82574
910         * tree-loop-distribution.c (find_single_drs): New parameter.  Check
911         that data reference must be executed exactly once per iteration
912         against the outermost loop in nest.
913         (classify_partition): Update call to above function.
915 2017-10-18  Richard Biener  <rguenther@suse.de>
917         PR tree-optimization/82591
918         * graphite.c (graphite_transform_loops): Move code gen message
919         printing ...
920         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
921         Here.  Handle scop_to_isl_ast failing.
922         (scop_to_isl_ast): Limit the number of ISL operations.
924 2017-10-18  Richard Biener  <rguenther@suse.de>
926         * graphite-isl-ast-to-gimple.c
927         (translate_isl_ast_to_gimple::set_rename): Simplify.
928         (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
929         (graphite_copy_stmts_from_block): ... here.
930         (copy_bb_and_scalar_dependences): Simplify.
931         (add_parameters_to_ivs_params): Canonicalize.
932         (generate_entry_out_of_ssa_copies): Simplify.
933         * graphite-sese-to-poly.c (extract_affine_name): Simplify
934         by passing in ISL dimension.
935         (parameter_index_in_region_1): Rename to ...
936         (parameter_index_in_region): ... this.
937         (extract_affine): Adjust assert, pass down parameter index.
938         (add_param_constraints): Use range-info when available.
939         (build_scop_context): Adjust.
940         * sese.c (new_sese_info): Adjust.
941         (free_sese_info): Likewise.
942         * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
943         Remove unused typedefs.
944         (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
946 2017-10-18  Martin Liska  <mliska@suse.cz>
948         * combine.c (simplify_compare_const): Add gcc_fallthrough.
950 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
952         * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
953         (s390_sched_init): Do not reset s390_sched_state if we entered the
954         current basic block via a fallthru edge and all others are unlikely.
956 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
958         * config/s390/s390.c (NUM_SIDES): New variable.
959         (LONGRUNNING_THRESHOLD): New variable.
960         (LATENCY_FACTOR): New variable.
961         (s390_sched_score): Decrease score for long-running instructions on
962         wrong side.
963         (s390_sched_variable_issue): Perform bookkeeping for long-running
964         instructions.
966 2017-10-18  Richard Biener  <rguenther@suse.de>
968         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
969         Simplify with removal of the parameter rename map.
970         (set_rename): Likewise.
971         (should_copy_to_new_region): Likewise.
972         (graphite_copy_stmts_from_block): Likewise.
973         (copy_bb_and_scalar_dependences): Remove initialization of
974         unused copied_bb_map.
975         (copy_def): Remove.
976         (copy_internal_parameters): Likewise.
977         (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
978         * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
979         Use INTEGRAL_TYPE_P.
980         (parameter_index_in_region_1): Rename to ...
981         (assign_parameter_index_in_region): ... this.  Assert we have
982         a parameter we handle.
983         (scan_tree_for_params): Adjust.
984         * sese.h (parameter_rename_map_t): Remove.
985         (struct sese_info_t): Remove unused parameter_rename_map and
986         copied_bb_map members.
987         * sese.c (new_sese_info): Adjust.
988         (free_sese_info): Likewise.
990 2017-10-18  Martin Liska  <mliska@suse.cz>
992         PR sanitizer/82545
993         * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
994         on an abnormal edge.
996 2017-10-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
998         * doc/invoke.texi (ffunction-sections and fdata-sections):
999         Update.
1001 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1003         * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
1004         the use statement can throw internally.
1006 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1008         * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
1009         any RTX present on the RHS of a SET.
1010         * compare-elim.c (try_eliminate_compare): Restore comment.
1012 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
1014         * langhooks.h (struct lang_hooks): Document that tree_size langhook
1015         may be also called on tcc_type nodes.
1016         * langhooks.c (lhd_tree_size): Likewise.
1018 2017-10-17  David Malcolm  <dmalcolm@redhat.com>
1020         * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
1021         format_warning_at_substring.
1022         (maybe_warn): Convert source_range * param to a location_t.  Pass
1023         UNKNOWN_LOCATION rather than NULL to fmtwarn.
1024         (format_directive): Remove code to extract source_ranges and
1025         source_range * in favor of just a location_t.
1026         (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
1027         fmtwarn.
1028         * substring-locations.c (format_warning_va): Convert
1029         source_range * param to a location_t.
1030         (format_warning_at_substring): Likewise.
1031         * substring-locations.h (format_warning_va): Likewise.
1032         (format_warning_at_substring): Likewise.
1034 2017-10-17  Jan Hubicka  <hubicka@ucw.cz>
1036         * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
1037         vec_scatter_store
1038         * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
1039         and scatter/gather ops.
1041         * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
1042         vec_gather_load and vec_scatter_store.
1043         * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
1044         * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
1045         * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
1046         * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
1047         * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
1048         * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
1050 2017-10-17  Uros Bizjak  <ubizjak@gmail.com>
1052         * reg-stack.c (compare_for_stack_reg): Add bool argument.
1053         Detect FTST instruction and handle its register pops.  Only pop
1054         second operand if can_pop_second_op is true.
1055         (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
1056         set can_pop_second_op to false in the compare_for_stack_reg call.
1058         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
1059         output_fp_compare for stack register operands.
1060         * config/i386/i386.c (output_fp_compare): Do not output SSE compare
1061         instructions here.  Do not emit stack register pops here.  Assert
1062         that FCOMPP pops next to top stack register.  Rewrite function.
1064 2017-10-17  Nathan Sidwell  <nathan@acm.org>
1066         PR middle-end/82577
1067         * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
1068         use DECL_ASSEMBLER_NAME_RAW.
1070         PR middle-end/82546
1071         * tree.c (tree_code_size): Reformat.  Punt to lang hook for unknown
1072         TYPE nodes.
1074 2017-10-17  Qing Zhao <qing.zhao@oracle.com>
1075             Wilco Dijkstra <wilco.dijkstra@arm.com>
1077         * builtins.c (expand_builtin_update_setjmp_buf): Add a
1078         converstion to Pmode from the buf_addr.
1080 2017-10-17  Richard Biener  <rguenther@suse.de>
1082         * graphite-dependences.c (scop_get_reads_and_writes): Change
1083         output parameters to references.
1085 2017-10-17  Jackson Woodruff  <jackson.woodruff@arm.com>
1087         PR 71026/tree-optimization
1088         * fold-const.c (distribute_real_division): Removed.
1089         (fold_binary_loc): Remove calls to distribute_real_divison.
1091 2017-10-17  Richard Biener  <rguenther@suse.de>
1093         * graphite-scop-detection.c
1094         (scop_detection::stmt_has_simple_data_refs_p): Always use
1095         the full nest as region.
1096         (try_generate_gimple_bb): Likewise.
1097         * sese.c (scalar_evolution_in_region): Simplify now that
1098         SCEV can handle instantiation in regions.
1099         * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
1100         in the non-loop part of a function if requested.
1102 2017-10-17  Richard Biener  <rguenther@suse.de>
1104         PR tree-optimization/82563
1105         * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
1106         New function.
1107         (graphite_regenerate_ast_isl): Call it.
1108         * graphite-scop-detection.c (build_scops): Remove entry edge split.
1110 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
1112         PR tree-optimization/82549
1113         * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
1114         Formatting fixes.  Instead of calling make_bit_field_ref with negative
1115         bitpos return 0.
1117 2017-10-17  Olga Makhotina  <olga.makhotina@intel.com>
1119         * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
1120         _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
1121         _mm_maskz_reduce_ss): New.
1122         * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
1123         __builtin_ia32_reducess_mask): Ditto..
1124         (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
1125         * config/i386/sse.md (reduces<mode>): Renamed to ...
1126         (reduces<mode><mask_scalar_name>): ... this.
1127         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}): Changed
1128         to ...
1129         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
1130         %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
1132 2017-10-16  David Malcolm  <dmalcolm@redhat.com>
1134         * Makefile.in (OBJS): Add unique-ptr-tests.o.
1135         * selftest-run-tests.c (selftest::run_tests): Call
1136         selftest::unique_ptr_tests_cc_tests.
1137         * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
1138         * unique-ptr-tests.cc: New file.
1140 2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>
1142         PR sanitizer/82353
1143         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
1144         locations.
1145         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
1146         (make_hard_regno_born, make_hard_regno_dead): Update
1147         bb_killed_pseudos and bb_gen_pseudos for fixed regs.
1149 2017-10-16  Jeff Law  <law@redhat.com>
1151         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
1153 2017-10-16  Jan Hubicka  <hubicka@ucw.cz>
1155         * x86-tune-costs.h (znver1_cost): Fix move cost tables.
1157 2017-10-16  Olivier Hainque  <hainque@adacore.com>
1159         * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
1160         with_cpu if we were configured for an e500v2 target cpu name.
1162 2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1164         * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
1165         * doc/invoke.texi: Document +nodsp as a valid extension for
1166         -mcpu=cortex-m33.
1168 2017-10-16  Martin Liska  <mliska@suse.cz>
1170         * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
1171         (test_set_range): Likewise.
1172         (test_range_functions): Rename to ...
1173         (test_bit_in_range): ... this.
1174         (sbitmap_c_tests): Add new test.
1176 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
1178         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): New.
1179         (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
1180         (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
1182 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
1184         * config/aarch64/aarch64-builtins.c
1185         (aarch64_types_quadopu_lane_qualifiers): New.
1186         (TYPES_QUADOPU_LANE): New.
1187         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
1188         (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
1189         (aarch64_<sur>dot_laneq<vsi2qi>): New.
1190         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
1191         (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
1192         * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
1193         (Vdottype, DOTPROD): New.
1194         (sur): Add SDOT and UDOT.
1196 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
1198         * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
1199         (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
1200         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add TARGET_DOTPROD.
1201         * config/aarch64/aarch64-option-extensions.def (dotprod): New.
1202         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75): Enable TARGET_DOTPROD.
1203         (cortex-a75.cortex-a55): Likewise.
1204         * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
1206 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
1208         * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
1209         (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS): New.
1210         * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane): new.
1211         * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
1212         (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
1213         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
1214         (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
1215         * config/arm/types.md (neon_dot, neon_dot_q): New.
1216         * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
1218 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
1220         * config/arm/arm.h (TARGET_DOTPROD): New.
1221         * config/arm/arm.c (arm_arch_dotprod): New.
1222         (arm_option_reconfigure_globals): Add arm_arch_dotprod.
1223         * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
1224         * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
1225         (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
1226         (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
1227         * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
1228         * doc/invoke.texi (armv8.2-a): Document dotprod
1230 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
1232         * i386.c (ix86_vec_cost): New function.
1233         (ix86_rtx_costs): Handle vector operations better.
1234         * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
1235         * x86-tune-costs.h: Add new costs to all tables.
1237 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
1239         * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
1240         operations.
1241         * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
1242         divsd, sqrtss and sqrtsd
1243         * x86-tune-costs.h: Add new entries to all costs.
1244         (znver1_cost): Fix to match real instruction latencies.
1246 2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1247             Michael Collison <michael.collison@arm.com>
1249         * compare-elim.c: Include emit-rtl.h.
1250         (can_merge_compare_into_arith): New function.
1251         (try_validate_parallel): Likewise.
1252         (try_merge_compare): Likewise.
1253         (try_eliminate_compare): Call the above when no previous clobber
1254         is available.
1255         (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
1256         dataflow problems.
1258 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
1260         PR middle-end/62263
1261         PR middle-end/82498
1262         * tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
1263         up to 2 preparation statements for ASSIGN in MIDDLE_BB.
1265         PR middle-end/62263
1266         PR middle-end/82498
1267         * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
1268         to be any operand_equal_p operands.  For & (B - 1) require
1269         B to be power of 2.  Recognize
1270         (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
1272 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
1274         PR bootstrap/82553
1275         * optabs.c (expand_memory_blockage): Fix call of
1276         targetm.have_memory_blockage.
1278 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
1280         PR bootstrap/82548
1281         * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
1282         x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
1283         objects to extra_objs instead of overwriting it.
1285 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
1287         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
1288         Use any_fp_register_operand as operand[3] predicate.  Simplify
1289         equality test for operands[2] and operands[4] memory location.
1290         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
1291         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
1292         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
1293         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
1294         any_fp_register_operand as operand[1] predicate.  Simplify
1295         equality test for operands[0] and operands[3] memory location.
1296         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
1297         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
1298         (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
1300 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
1302         * target-insns.def: Add memory_blockage.
1303         * optabs.c (expand_memory_blockage): New function.
1304         (expand_asm_memory_barrier): Rename ...
1305         (expand_asm_memory_blockage): ... to this.
1306         (expand_mem_thread_fence): Call expand_memory_blockage
1307         instead of expand_asm_memory_barrier.
1308         (expand_mem_singnal_fence): Ditto.
1309         (expand_atomic_load): Ditto.
1310         (expand_atomic_store): Ditto.
1311         * doc/md.texi (Standard Pattern Names For Generation):
1312         Document memory_blockage instruction pattern.
1314 2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
1316         * config/rl78/rl78.c (rl78_emit_libcall): New function.
1317         * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
1318         * config/rl78/rl78.md: New define_expand "adddi3".
1320 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
1322         * cfghooks.c (verify_flow_info): Disable check that all probabilities
1323         are set correctly.
1325 2017-10-13  Jeff Law  <law@redhat.com>
1327         * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
1329 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
1331         PR target/82274
1332         * internal-fn.c (expand_mul_overflow): If both operands have
1333         the same highpart of -1 or 0 and the topmost bit of lowpart
1334         is different, overflow is if res <= 0 rather than res < 0.
1336 2017-10-13  Pat Haugen  <pthaugen@us.ibm.com>
1338         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
1339         TARGET_P9_VECTOR code for unaligned_load case.
1341 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
1343         * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
1345 2017-10-13  Nathan Sidwell  <nathan@acm.org>
1347         * tree-core.h (tree_contains_struct): Make bool.
1348         * tree.c (tree_contains_struct): Likewise.
1349         * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
1350         (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
1351         MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
1352         MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
1353         MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
1355 2017-10-13  Richard Biener  <rguenther@suse.de>
1357         * graphite-isl-ast-to-gimple.c
1358         (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
1359         parameters and dominance check.
1360         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
1361         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
1362         (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
1363         Do not update SSA form here or do intermediate IL verification.
1364         * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
1365         (graphite_initialize): Remove check on the number of loops in
1366         the function and inline into graphite_transform_loops.
1367         (graphite_finalize): Inline into graphite_transform_loops.
1368         (graphite_transform_loops): Perform SSA update and IL verification
1369         here.
1370         * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
1372 2017-10-13  Richard Biener  <rguenther@suse.de>
1374         * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
1375         graphite_expression_type_precision): Avoid global constructor
1376         by moving ...
1377         (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
1378         (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
1379         (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
1380         (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
1381         (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
1382         * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
1384 2017-10-13  H.J. Lu  <hongjiu.lu@intel.com>
1386         PR target/82499
1387         * config/i386/i386.h (ix86_red_zone_size): New.
1388         * config/i386/i386.md (push peephole2s): Replace
1389         "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
1391 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
1392             Alan Hayward  <alan.hayward@arm.com>
1393             David Sherwood  <david.sherwood@arm.com>
1395         * combine.c (can_change_dest_mode): Reject changes in
1396         REGMODE_NATURAL_SIZE.
1398 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
1399             Alan Hayward  <alan.hayward@arm.com>
1400             David Sherwood  <david.sherwood@arm.com>
1402         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
1403         (expand_debug_source_expr): Likewise.
1404         * combine.c (combine_simplify_rtx): Likewise.
1405         * cse.c (fold_rtx): Likewise.
1406         * fwprop.c (canonicalize_address): Likewise.
1407         * targhooks.c (default_shift_truncation_mask): Likewise.
1409 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
1410             Alan Hayward  <alan.hayward@arm.com>
1411             David Sherwood  <david.sherwood@arm.com>
1413         * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
1414         (widened_mode): Likewise.
1415         (expand_unop): Likewise.
1416         * ree.c (transform_ifelse): Likewise.
1417         (merge_def_and_ext): Likewise.
1418         (combine_reaching_defs): Likewise.
1419         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1421 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
1422             Alan Hayward  <alan.hayward@arm.com>
1423             David Sherwood  <david.sherwood@arm.com>
1425         * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
1426         * combine.c (gen_lowpart_for_combine): Likewise.
1427         * dwarf2out.c (rtl_for_decl_location): Likewise.
1428         * final.c (alter_subreg): Likewise.
1429         * rtlhooks.c (gen_lowpart_general): Likewise.
1430         (gen_lowpart_if_possible): Likewise.
1432 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
1433             Alan Hayward  <alan.hayward@arm.com>
1434             David Sherwood  <david.sherwood@arm.com>
1436         * calls.c (expand_call): Use subreg_lowpart_offset.
1437         * cse.c (cse_insn): Likewise.
1438         * regcprop.c (copy_value): Likewise.
1439         (copyprop_hardreg_forward_1): Likewise.
1441 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
1443         PR target/82524
1444         * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
1445         *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
1446         =Q constraints to +Q and into insn condition add check
1447         that operands[0] and operands[1] are equal.
1448         (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
1449         =Q constraints to +Q and into insn condition add check
1450         that operands[0] is equal to either operands[1] or operands[2].
1452         PR target/82498
1453         * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
1454         instead of handling MINUS_EXPR twice (once for each argument),
1455         canonicalize operand order and handle just once, use rtype where
1456         possible.  Handle (A << B) | (A >> (-B & (Z - 1))).
1458         PR target/82498
1459         * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
1460         any values of __C while still being pattern recognizable as a simple
1461         rotate instruction.
1463 2017-10-13  Richard Biener  <rguenther@suse.de>
1465         PR tree-optimization/82451
1466         Revert
1467         2017-10-02  Richard Biener  <rguenther@suse.de>
1469         PR tree-optimization/82355
1470         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
1471         a mapping for the enclosing loop but avoid generating one for
1472         the loop tree root.
1473         (copy_bb_and_scalar_dependences): Remove premature codegen
1474         error on PHIs in blocks duplicated into multiple places.
1475         * graphite-scop-detection.c
1476         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
1477         in the region use it as loop and nest to analyze the DR in.
1478         (try_generate_gimple_bb): Likewise.
1479         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
1480         (add_loop_constraints): For blocks in a loop not in the region
1481         create a dimension with a single iteration.
1482         * sese.h (gbb_loop_at_index): Remove assert.
1484         * cfgloop.c (loop_preheader_edge): For the loop tree root
1485         return the single successor of the entry block.
1486         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
1487         Reset the SCEV hashtable and niters.
1488         * graphite-scop-detection.c
1489         (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
1490         assert that we only have POLYNOMIAL_CHREC that vary in loops
1491         contained in the region.
1492         (scop_detection::graphite_can_represent_expr): Adjust.
1493         (scop_detection::stmt_has_simple_data_refs_p): For loops
1494         not in the region set loop to NULL.  The nest is now the
1495         entry edge to the region.
1496         (try_generate_gimple_bb): Likewise.
1497         * sese.c (scalar_evolution_in_region): Adjust for
1498         instantiate_scev change.
1499         * tree-data-ref.h (graphite_find_data_references_in_stmt):
1500         Make nest parameter the edge into the region.
1501         (create_data_ref): Likewise.
1502         * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
1503         entry edge into a region and adjust instantiate_scev calls.
1504         (create_data_ref): Likewise.
1505         (graphite_find_data_references_in_stmt): Likewise.
1506         (find_data_references_in_stmt): Pass the loop preheader edge
1507         from the nest argument.
1508         * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
1509         parameter the edge into the region.
1510         (instantiate_parameters): Use the loop preheader edge as entry.
1511         * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
1512         NULL loop.
1513         (get_instantiated_value_entry): Make instantiate_below parameter
1514         the edge into the region.
1515         (instantiate_scev_name): Likewise.  Adjust dominance checks,
1516         when we cannot use loop-based instantiation instantiate by
1517         walking use-def chains.
1518         (instantiate_scev_poly): Adjust.
1519         (instantiate_scev_binary): Likewise.
1520         (instantiate_scev_convert): Likewise.
1521         (instantiate_scev_not): Likewise.
1522         (instantiate_array_ref): Remove.
1523         (instantiate_scev_3): Likewise.
1524         (instantiate_scev_2): Likewise.
1525         (instantiate_scev_1): Likewise.
1526         (instantiate_scev_r): Do not blindly handle N-operand trees.
1527         Do not instantiate array-refs.  Handle all constants and invariants.
1528         (instantiate_scev): Make instantiate_below parameter
1529         the edge into the region.
1530         (resolve_mixers): Use the loop preheader edge for the region
1531         parameter to instantiate_scev_r.
1532         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
1534 2017-10-13  Richard Biener  <rguenther@suse.de>
1536         PR tree-optimization/82525
1537         * graphite-isl-ast-to-gimple.c
1538         (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
1539         out from ...
1540         (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
1541         Fail code generation when we cannot represent the isl integer.
1542         (binary_op_to_tree): Elide modulo operations that are no-ops
1543         in the type we code generate.  Remove now superfluous code
1544         generation errors.
1546 2017-10-13  Richard Biener  <rguenther@suse.de>
1548         * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
1549         (scop_detection::harmful_loop_in_region): Remove premature
1550         IV type restriction.
1551         (scop_detection::graphite_can_represent_scev): We can handle
1552         pointer IVs just fine.
1554 2017-10-13  Alan Modra  <amodra@gmail.com>
1556         * doc/extend.texi (Extended Asm <Clobbers>): Rename to
1557         "Clobbers and Scratch Registers".  Add paragraph on
1558         alternative to clobbers for scratch registers and OpenBLAS
1559         example.
1561 2017-10-13  Alan Modra  <amodra@gmail.com>
1563         * doc/extend.texi (Clobbers): Correct vax example.  Delete old
1564         example of a memory input for a string of known length.  Move
1565         commentary out of table.  Add a number of new examples
1566         covering array memory inputs.
1568 2017-10-12  Martin Liska  <mliska@suse.cz>
1570         PR tree-optimization/82493
1571         * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
1572         (test_range_functions): New function.
1573         (sbitmap_c_tests): Likewise.
1574         * selftest-run-tests.c (selftest::run_tests): Run new tests.
1575         * selftest.h (sbitmap_c_tests): New function.
1577         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
1579 2017-10-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
1581         * config/rs6000/amo.h: Fix spacing issue.
1583 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
1585         PR target/82498
1586         * config/i386/i386.md (*ashl<mode>3_mask_1,
1587         *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
1588         *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
1589         patterns.
1591 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
1593         * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
1594         (profile_probability): Set max_probability
1595         to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
1596         in temporaries.
1597         * profile-count.c (profile_probability::differs_from_p): Do not
1598         rely on max_probaiblity == 10000
1600 2017-10-12  Jeff Law  <law@redhat.com>
1602         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
1603         negative offsets.
1605 2017-10-12  Martin Sebor  <msebor@redhat.com>
1607         PR other/82301
1608         PR c/82435
1609         * cgraphunit.c (maybe_diag_incompatible_alias): New function.
1610         (handle_alias_pairs): Call it.
1611         * common.opt (-Wattribute-alias): New option.
1612         * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
1613         * doc/invoke.texi (-Wattribute-alias): Document.
1615 2017-10-12  Vladimir Makarov  <vmakarov@redhat.com>
1617         Revert
1618         2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
1619         PR sanitizer/82353
1620         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
1621         locations.
1622         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
1623         (make_hard_regno_born, make_hard_regno_dead): Update
1624         bb_killed_pseudos and bb_gen_pseudos.
1626 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
1628         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
1630 2017-10-12  Uros Bizjak  <ubizjak@gmail.com>
1632         * config/alpha/alpha.c (alpha_split_conditional_move):
1633         Use std::swap instead of manually swapping.
1634         (alpha_stdarg_optimize_hook): Ditto.
1635         (alpha_canonicalize_comparison): Ditto.
1637 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
1639         * tree-loop-distribution.c (struct builtin_info): New struct.
1640         (struct partition): Refactor fields into struct builtin_info.
1641         (partition_free): Free struct builtin_info.
1642         (build_size_arg_loc, build_addr_arg_loc): Delete.
1643         (generate_memset_builtin, generate_memcpy_builtin): Get memory range
1644         information from struct builtin_info.
1645         (find_single_drs): New function refactored from classify_partition.
1646         Also moved builtin validity checks to this function.
1647         (compute_access_range, alloc_builtin): New functions.
1648         (classify_builtin_st, classify_builtin_ldst): New functions.
1649         (classify_partition): Refactor code into functions find_single_drs,
1650         classify_builtin_st and classify_builtin_ldst.
1651         (distribute_loop): Don't do runtime alias check when distributing
1652         loop nest.
1653         (find_seed_stmts_for_distribution): New function.
1654         (pass_loop_distribution::execute): Refactor code finding seed
1655         stmts into above function.  Support distribution for the innermost
1656         two-level loop nest.  Adjust dump information.
1658 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
1660         * tree-loop-distribution.c: Adjust the general comment.
1661         (NUM_PARTITION_THRESHOLD): New macro.
1662         (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
1663         (classify_partition): Skip builtin pattern of loop nest's inner loop.
1664         (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
1665         in call to build_partition_graph.
1666         (finalize_partitions): New parameter.  Make loop distribution more
1667         conservative by fusing more partitions.
1668         (distribute_loop): Don't do runtime alias check in case of loop nest
1669         distribution.
1670         (find_seed_stmts_for_distribution): New function.
1671         (prepare_perfect_loop_nest): New function.
1672         (pass_loop_distribution::execute): Refactor code finding seed stmts
1673         and loop nest into above functions.  Support loop nest distribution.
1674         Adjust dump information accordingly.
1676 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
1678         * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
1679         and set PTYPE_SEQUENTIAL for merged partition.
1681 2017-10-12  Richard Biener  <rguenther@suse.de>
1683         PR tree-optimization/69728
1684         Revert
1685         2017-09-19  Richard Biener  <rguenther@suse.de>
1687         PR tree-optimization/69728
1688         * graphite-sese-to-poly.c (schedule_error): New global.
1689         (add_loop_schedule): Handle empty domain by failing the
1690         schedule.
1691         (build_original_schedule): Handle schedule_error.
1693         * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
1694         domain by returning an unchanged schedule.
1696 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
1698         * genrecog.c (validate_pattern): For VEC_SELECT verify that
1699         CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
1701 2017-10-12  Aldy Hernandez  <aldyh@redhat.com>
1703         * Makefile.in (TAGS): Merge all the *.def files into one pattern.
1704         Handle params.def.
1706 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
1708         PR c++/82159
1709         * expr.c (store_field): Don't optimize away bitsize == 0 store
1710         from CALL_EXPR with addressable return type.
1712 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
1714         * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
1715         * config/rs6000/rs6000.md (sel): Delete mode attribute.
1716         (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
1717         *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
1718         TARGET_ISEL instead of TARGET_ISEL<sel>.
1720 2017-10-11  David Edelsohn  <dje.gcc@gmail.com>
1722         * config/rs6000/rs6000.c
1723         (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
1725 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
1727         * config/rs6000/predicates.md (zero_constant, all_ones_constant):
1728         Move up in file.
1729         (reg_or_cint_operand): Fix comment.
1730         (reg_or_zero_operand): New predicate.
1731         * config/rs6000/rs6000-protos.h (output_isel): Delete.
1732         * config/rs6000/rs6000.c (output_isel): Delete.
1733         * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
1734         instead of reg_or_cint_operand.  Output instruction directly (not via
1735         output_isel).
1736         (isel_unsigned_<mode>): Ditto.
1737         (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
1738         gpc_reg_operand.  Add an instruction alternative for this.  Output
1739         instruction directly.
1740         (*isel_reversed_unsigned_<mode>): Ditto.
1742 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
1744         * config/i386/i386.c (ix86_canonicalize_comparison): New function.
1745         (TARGET_CANONICALIZE_COMPARISON): Define.
1747 2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
1749         PR target/81422
1750         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1751         Check whether the dest is REG before adding REG_EQUIV note.
1753 2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
1755         PR sanitizer/82353
1756         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
1757         locations.
1758         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
1759         (make_hard_regno_born, make_hard_regno_dead): Update
1760         bb_killed_pseudos and bb_gen_pseudos.
1762 2017-10-11  Nathan Sidwell  <nathan@acm.org>
1764         * incpath.h (enum incpath_kind): Name enum, prefix values.
1765         (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
1766         * incpath.c (heads, tails): Use INC_MAX.
1767         (add_env_var_paths, add_standard_paths): Use incpath_kind.
1768         (merge_include_chains, split_quote_chain,
1769         register_include_chains): Update incpath_kind names.
1770         (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
1771         * config/darwin-c.c (add_system_framework_path): Update incpath_kind
1772         names.
1773         (add_framework_path, darwin_register_objc_includes): Likewise.
1774         * config/vms/vms-c.c (vms_c_register_includes): Likewise.
1776 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
1778         * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
1779         Do not use float_operator operator predicate.
1780         (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
1781         * config/i386/predicates.md (float_operator): Remove predicate.
1783 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
1785         * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
1786         (*jccxf_i387): Ditto.
1787         (*jcc<mode>_i387): Ditto.
1788         (*jccu<mode>_i387): Ditto.
1789         (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
1790         (*jcc_*_i387 splitters): Remove.
1791         * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
1792         * config/i386/i386.c (ix86_split_fp_branch): Remove.
1793         * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
1794         Remove predicate.
1796 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
1798         * profile-count.h (slow_safe_scale_64bit): New function.
1799         (safe_scale_64bit): New inline.
1800         (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
1801         * profile-count.c: Include wide-int.h
1802         (slow_safe_scale_64bit): New.
1804 2017-10-11  Nathan Sidwell  <nathan@acm.org>
1806         * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
1807         HAS_DECL_ASSEMBLER_NAME_P.
1808         * gimple-expr.c (gimple_decl_printable_name: Check
1809         HAS_DECL_ASSEMBLER_NAME_P too.
1810         * ipa-utils.h (type_in_anonymous_namespace_p): Check
1811         DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
1812         (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
1813         * passes.c (rest_of_decl_compilation): Check
1814         HAS_DECL_ASSEMBLER_NAME_P too.
1815         * recog.c (verify_changes): Likewise.
1816         * tree-pretty-print.c (dump_decl_name): Likewise.
1817         * tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.
1819         * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
1820         (SET_DECL_ASSEMBLER_NAME): Use it.
1821         (DECL_ASSEMBLER_NAME_SET_P): Likewise.
1822         (COPY_DECL_ASSEMBLER_NAME): Likewise.
1823         * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
1825 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
1827         * config.gcc (i386, x86_64): Add extra objects.
1828         * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
1829         (ix86_min_insn_size): Declare.
1830         (ix86_issue_rate): Declare.
1831         (ix86_adjust_cost): Declare.
1832         (ia32_multipass_dfa_lookahead): Declare.
1833         (ix86_macro_fusion_p): Declare.
1834         (ix86_macro_fusion_pair_p): Declare.
1835         (ix86_bd_has_dispatch): Declare.
1836         (ix86_bd_do_dispatch): Declare.
1837         (ix86_core2i7_init_hooks): Declare.
1838         (ix86_atom_sched_reorder): Declare.
1839         * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
1840         (COSTS_N_BYTES): Move to x86-tune-costs.h.
1841         (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
1842         (rip_relative_addr_p): Rename to ...
1843         (ix86_rip_relative_addr_p): ... this one; export.
1844         (memory_address_length): Update.
1845         (ix86_issue_rate): Move to x86-tune-sched.c.
1846         (ix86_flags_dependent): Move to x86-tune-sched.c.
1847         (ix86_agi_dependent): Move to x86-tune-sched.c.
1848         (exact_dependency_1): Move to x86-tune-sched.c.
1849         (exact_store_load_dependency): Move to x86-tune-sched.c.
1850         (ix86_adjust_cost): Move to x86-tune-sched.c.
1851         (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
1852         (ix86_macro_fusion_p): Move to x86-tune-sched.c.
1853         (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
1854         (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
1855         (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
1856         (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
1857         (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
1858         (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
1859         (min_insn_size): Rename to ...
1860         (ix86_min_insn_size): ... this one; export.
1861         (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
1862         (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
1863         (core2i7_first_cycle_multipass_backtrack): Move to
1864         x86-tune-sched-core.c.
1865         (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
1866         (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
1867         (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
1868         (ix86_avoid_jump_mispredicts): Update.
1869         (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
1870         (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
1871         (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
1872         (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
1873         (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
1874         (MAX_INSN): Move to ix86-tune-sched-bd.c.
1875         (MAX_IMM): Move to ix86-tune-sched-bd.c.
1876         (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
1877         (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
1878         (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
1879         (MAX_LOAD): Move to ix86-tune-sched-bd.c.
1880         (MAX_STORE): Move to ix86-tune-sched-bd.c.
1881         (BIG): Move to ix86-tune-sched-bd.c.
1882         (enum dispatch_group): Move to ix86-tune-sched-bd.c.
1883         (enum insn_path): Move to ix86-tune-sched-bd.c.
1884         (get_mem_group): Move to ix86-tune-sched-bd.c.
1885         (is_cmp): Move to ix86-tune-sched-bd.c.
1886         (dispatch_violation): Move to ix86-tune-sched-bd.c.
1887         (is_branch): Move to ix86-tune-sched-bd.c.
1888         (is_prefetch): Move to ix86-tune-sched-bd.c.
1889         (init_window): Move to ix86-tune-sched-bd.c.
1890         (allocate_window): Move to ix86-tune-sched-bd.c.
1891         (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
1892         (is_end_basic_block): Move to ix86-tune-sched-bd.c.
1893         (process_end_window): Move to ix86-tune-sched-bd.c.
1894         (allocate_next_window): Move to ix86-tune-sched-bd.c.
1895         (find_constant): Move to ix86-tune-sched-bd.c.
1896         (get_num_immediates): Move to ix86-tune-sched-bd.c.
1897         (has_immediate): Move to ix86-tune-sched-bd.c.
1898         (get_insn_path): Move to ix86-tune-sched-bd.c.
1899         (get_insn_group): Move to ix86-tune-sched-bd.c.
1900         (count_num_restricted): Move to ix86-tune-sched-bd.c.
1901         (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
1902         (add_insn_window): Move to ix86-tune-sched-bd.c.
1903         (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
1904         (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
1905         (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
1906         (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
1907         (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
1908         (do_dispatch): Move to ix86-tune-sched-bd.c.
1909         (has_dispatch): Move to ix86-tune-sched-bd.c.
1910         * config/i386/t-i386: Add new object files.
1911         * config/i386/x86-tune-costs.h: New file.
1912         * config/i386/x86-tune-sched-atom.c: New file.
1913         * config/i386/x86-tune-sched-bd.c: New file.
1914         * config/i386/x86-tune-sched-core.c: New file.
1915         * config/i386/x86-tune-sched.c: New file.
1917 2017-10-11  Liu Hao  <lh_mouse@126.com>
1919         * pretty-print.c [_WIN32] (colorize_init): Remove.  Use
1920         the generic version below instead.
1921         (should_colorize): Recognize Windows consoles as terminals
1922         for MinGW targets.
1923         * pretty-print.c [__MINGW32__] (write_all): New function.
1924         [__MINGW32__] (find_esc_head): Likewise.
1925         [__MINGW32__] (find_esc_terminator): Likewise.
1926         [__MINGW32__] (eat_esc_sequence): Likewise.
1927         [__MINGW32__] (mingw_ansi_fputs): New function that handles
1928         ANSI escape codes.
1929         (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
1930         for MinGW targets.
1932 2017-10-11  Richard Biener  <rguenther@suse.de>
1934         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
1935         Properly call analyze_scalar_evolution with the loop of the stmt.
1937 2017-10-11  Richard Biener  <rguenther@suse.de>
1939         * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
1940         * tree-core.h (tree_base): Add chrec_var union member.
1941         * tree.h (CHREC_VAR): Remove.
1942         (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
1943         * tree-chrec.h (build_polynomial_chrec): Adjust.
1944         * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
1945         * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
1947 2017-10-11  Marc Glisse  <marc.glisse@inria.fr>
1949         * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
1950         * match.pd: ... here.
1951         ((T) X == (T) Y): Relax condition.
1953 2017-10-11  Bin Cheng  <bin.cheng@arm.com>
1955         PR tree-optimization/82472
1956         * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
1957         comment.
1958         (break_alias_scc_partitions): Update postorder number.
1960 2017-10-11  Martin Liska  <mliska@suse.cz>
1962         PR sanitizer/82490
1963         * opts.c (parse_no_sanitize_attribute): Do not use error_value
1964         variable.
1965         * opts.h (parse_no_sanitize_attribute): Remove last argument.
1967 2017-10-11  Martin Liska  <mliska@suse.cz>
1969         * print-rtl.c (print_insn): Move declaration of idbuf
1970         to same scope as name.
1972 2017-10-11  Martin Liska  <mliska@suse.cz>
1974         Revert r253637:
1976         PR sanitizer/82484
1977         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
1978         volatile arguments.
1980 2017-10-11  Martin Liska  <mliska@suse.cz>
1982         PR sanitizer/82484
1983         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
1984         volatile arguments.
1986 2017-10-11  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
1988         * config.gcc (default_gnu_indirect_function): Default to yes for
1989         arm*-*-linux* with glibc.
1991 2017-10-11  Richard Biener  <rguenther@suse.de>
1993         * tree-scalar-evolution.c (get_scalar_evolution): Handle
1994         default-defs and types we do not want to analyze.
1995         (interpret_loop_phi): Replace unreachable code with an assert.
1996         (compute_scalar_evolution_in_loop): Remove and inline ...
1997         (analyze_scalar_evolution_1): ... here, replacing condition with
1998         what makes the intent clearer.  Remove handling of cases
1999         get_scalar_evolution now handles.
2001 2017-10-10  Jim Wilson  <wilson@tuliptree.org>
2003         PR rtl-optimization/81434
2004         * haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
2005         comment for main loop.  In sched_group_found if, also add checks for
2006         pass and min_cost_group.
2008 2017-10-10  Segher Boessenkool  <segher@kernel.crashing.org>
2010         * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
2011         (rs6000_insn_cost): New function.
2012         * config/rs6000/rs6000.md (cost): New attribute.
2014 2017-10-10  Jakub Jelinek  <jakub@redhat.com>
2015             H.J. Lu  <hongjiu.lu@intel.com>
2017         PR target/79565
2018         PR target/82483
2019         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
2020         OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
2021         __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
2022         (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
2023         to OPTION_MASK_ISA_AVX512VL - builtins that have both
2024         OPTION_MASK_ISA_MMX and some other bit set require both
2025         mmx and the ISAs without the mmx bit.
2026         * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
2027         __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
2028         __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
2029         __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
2030         __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
2031         __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
2032         __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
2033         __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
2034         __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
2035         __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
2036         __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
2037         __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
2038         __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
2039         __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
2040         Add OPTION_MASK_ISA_MMX.
2042 2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
2044         * config.gcc (armv7*-*-freebsd*): New target.
2045         (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
2047 2017-10-10  Jan Hubicka  <hubicka@ucw.cz>
2049         * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
2050         X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
2051         spot in the file.
2053 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
2055         * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
2056         a template parameter.
2057         (WIDE_INT_REF_FOR): Update accordingly.
2058         * tree.h (wi::int_traits <const_tree>): Delete.
2059         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
2060         (wi::to_widest, wi::to_offset): Use them.  Expand commentary.
2061         (wi::tree_to_wide_ref): New typedef.
2062         (wi::to_wide): New function.
2063         * calls.c (get_size_range): Use wi::to_wide when operating on
2064         trees as wide_ints.
2065         * cgraph.c (cgraph_node::create_thunk): Likewise.
2066         * config/i386/i386.c (ix86_data_alignment): Likewise.
2067         (ix86_local_alignment): Likewise.
2068         * dbxout.c (stabstr_O): Likewise.
2069         * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
2070         * expr.c (const_vector_from_tree): Likewise.
2071         * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
2072         * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
2073         (fold_negate_expr_1, int_const_binop_1, const_binop)
2074         (fold_convert_const_int_from_real, optimize_bit_field_compare)
2075         (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
2076         (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
2077         (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
2078         (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
2079         (fold_not_const, round_up_loc): Likewise.
2080         * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
2081         * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
2082         (alloca_call_type): Likewise.
2083         * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
2084         * godump.c (go_output_typedef): Likewise.
2085         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
2086         * internal-fn.c (get_min_precision): Likewise.
2087         * ipa-cp.c (ipcp_store_vr_results): Likewise.
2088         * ipa-polymorphic-call.c
2089         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
2090         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
2091         (ipa_modify_call_arguments): Likewise.
2092         * match.pd: Likewise.
2093         * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
2094         * print-tree.c (print_node_brief, print_node): Likewise.
2095         * stmt.c (expand_case): Likewise.
2096         * stor-layout.c (layout_type): Likewise.
2097         * tree-affine.c (tree_to_aff_combination): Likewise.
2098         * tree-cfg.c (group_case_labels_stmt): Likewise.
2099         * tree-data-ref.c (dr_analyze_indices): Likewise.
2100         (prune_runtime_alias_test_list): Likewise.
2101         * tree-dump.c (dequeue_and_dump): Likewise.
2102         * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
2103         * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
2104         * tree-pretty-print.c (dump_generic_node): Likewise.
2105         * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
2106         (simple_iv_with_niters): Likewise.
2107         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
2108         * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
2109         * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
2110         * tree-ssa-loop-niter.c (split_to_var_and_offset)
2111         (refine_value_range_using_guard, number_of_iterations_ne_max)
2112         (number_of_iterations_lt_to_ne, number_of_iterations_lt)
2113         (get_cst_init_from_scev, record_nonwrapping_iv)
2114         (scev_var_range_cant_overflow): Likewise.
2115         * tree-ssa-phiopt.c (minmax_replacement): Likewise.
2116         * tree-ssa-pre.c (compute_avail): Likewise.
2117         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
2118         (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
2119         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
2120         * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
2121         * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
2122         * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
2123         (dump_case_nodes, try_switch_expansion): Likewise.
2124         * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
2125         (vect_do_peeling): Likewise.
2126         * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
2127         * tree-vect-stmts.c (vectorizable_load): Likewise.
2128         * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
2129         (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
2130         (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
2131         (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
2132         (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
2133         (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
2134         (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
2135         (evrp_dom_walker::before_dom_children): Likewise.
2136         * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
2137         (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
2138         (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
2139         (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
2140         (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
2141         (get_range_pos_neg): Likewise.
2142         * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
2143         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
2144         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
2145         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
2146         * config/avr/avr.c (avr_fold_builtin): Likewise.
2147         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
2148         * config/msp430/msp430.c (msp430_attr): Likewise.
2149         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
2150         * config/powerpcspe/powerpcspe-c.c
2151         (altivec_resolve_overloaded_builtin): Likewise.
2152         * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
2153         (rs6000_expand_ternop_builtin): Likewise.
2154         * config/rs6000/rs6000-c.c
2155         (altivec_resolve_overloaded_builtin): Likewise.
2156         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
2157         (rs6000_expand_ternop_builtin): Likewise.
2158         * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
2160 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
2162         * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
2163         when copying loop nest with only one inner loop.
2165 2017-10-10  Richard Biener  <rguenther@suse.de>
2167         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
2168         blocks if SCEV is active.
2169         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
2170         dead code.
2171         (analyze_scalar_evolution): Handle cached evolutions the obvious way.
2172         (scev_initialize): Assert we are not yet initialized.
2174 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
2176         * tree-loop-distribution.c (generate_loops_for_partition): Remove
2177         inner loop's exit stmt by making it always exit the loop, otherwise
2178         we would generate an infinite empty loop.
2180 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
2182         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
2183         renaming variables in new preheader if it's deleted.
2185 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
2187         * tree-loop-distribution.c (struct partition): Remove unused field
2188         loops of the structure.
2189         (partition_alloc, partition_free): Ditto.
2190         (build_rdg_partition_for_vertex): Ditto.
2192 2017-10-09  Jeff Law  <law@redhat.com>
2194         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
2195         return type to match prototype and documentation.
2197 2010-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
2199         * config/rs6000/rs6000.c (processor_costs): Move to ...
2200         * config/rs6000/rs6000.h: ... here.
2201         (rs6000_cost): Declare.
2203 2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
2205         * except.c (setjmp_fn): New global variable.
2206         (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
2207         (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
2208         if DONT_USE_BUILTIN_SETJMP is defined.
2210 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
2212         * target.def (insn_cost): New hook.
2213         * doc/tm.texi.in (TARGET_INSN_COST): New hook.
2214         * doc/tm.texi: Regenerate.
2215         * rtlanal.c (insn_cost): Use the new hook.
2217 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
2219         * combine.c (combine_validate_cost): Compute the new insn_cost,
2220         not just pattern_cost.
2221         (try_combine): Adjust comment.
2223 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
2225         * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
2226         insn_cost.
2227         * combine.c (uid_insn_cost): Adjust comment.
2228         (combine_validate_cost): Adjust comment.  Use pattern_cost instead
2229         of insn_rtx_cost
2230         (combine_instructions): Use insn_cost instead of insn_rtx_cost.
2231         * dse.c (find_shift_sequence): Ditto.
2232         * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
2233         (bb_valid_for_noce_process_p): Use pattern_cost.
2234         * rtl.h (insn_rtx_cost): Delete.
2235         (pattern_cost): New prototype.
2236         (insn_cost): New prototype.
2237         * rtlanal.c (insn_rtx_cost): Rename to...
2238         (pattern_cost): ... this.
2239         (insn_cost): New.
2241 2017-10-09  Uros Bizjak  <ubizjak@gmail.com>
2243         * config/i386/i386.md (*jcc_2): Remove insn pattern.
2244         (*jcc<mode>_0_r_i387): Ditto.
2245         (*jccxf_r_i387): Ditto.
2246         (*jcc<mode>_r_i387): Ditto.
2247         (*jccu<mode>_r_i387): Ditto.
2248         (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
2249         (*jcc): Rename from *jcc_1.
2251 2017-10-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2253         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
2254         deferred rescans after the lvx/stvx recombination pre-pass.
2256 2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2258         * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
2259         memory operation instruction support.
2260         * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
2261         (rs6000-ibm-aix[789]*): Likewise.
2262         * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
2263         Document new functions.
2265 2017-10-09  Richard Biener  <rguenther@suse.de>
2267         PR tree-optimization/82397
2268         * tree-data-ref.c (data_ref_compare_tree): Make sure to return
2269         equality only for semantically equal trees.
2271 2017-10-09  Richard Biener  <rguenther@suse.de>
2273         PR tree-optimization/82449
2274         * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
2275         * tree-chrec.h (evolution_function_is_constant_p): Adjust to
2276         allow constant addresses.
2277         * tree-chrec.c (scev_is_linear_expression): Constant evolutions
2278         are linear.
2280 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2282         * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
2283         flags.
2285 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2287         PR target/82463
2288         * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
2289         definitions.
2291 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2293         PR target/82465
2294         * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
2296 2017-10-09  Jakub Jelinek  <jakub@redhat.com>
2298         PR target/82464
2299         * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
2300         s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
2302 2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>
2304         * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
2305         (WI_BINARY_PREDICATE_RESULT): Likewise.
2306         (wi::binary_traits::operator_result): New type.
2307         (wi::binary_traits::predicate_result): Likewise.
2308         (generic_wide_int::operator~, unary generic_wide_int::operator-)
2309         (generic_wide_int::operator==, generic_wide_int::operator!=)
2310         (generic_wide_int::operator&, generic_wide_int::and_not)
2311         (generic_wide_int::operator|, generic_wide_int::or_not)
2312         (generic_wide_int::operator^, generic_wide_int::operator+
2313         (binary generic_wide_int::operator-, generic_wide_int::operator*):
2314         Delete.
2315         (operator~, unary operator-, operator==, operator!=, operator&)
2316         (operator|, operator^, operator+, binary operator-, operator*): New
2317         functions.
2318         * expr.c (get_inner_reference): Use wi::bit_and_not.
2319         * fold-const.c (fold_binary_loc): Likewise.
2320         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
2321         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
2322         (bit_value_binop): Likewise.
2323         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
2324         * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
2325         (extract_range_from_binary_expr_1): Likewise.
2326         (masked_increment): Likewise.
2327         (simplify_bit_ops_using_ranges): Likewise.
2329 2017-10-09  Martin Jambor  <mjambor@suse.cz>
2331         PR hsa/82416
2332         * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
2333         * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
2334         (hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
2335         COMPLEX types.
2336         (hsa_fixup_mov_insn_type): New function.
2337         (hsa_op_with_type::get_in_type): Use it.
2338         (hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
2339         immediates in an assert.
2340         (hsa_op_with_type::extend_int_to_32bit): New method.
2341         (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
2342         types.  Convert to dest type if necessary.
2343         (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
2344         (reg_for_gimple_ssa): Pass false as min32int to
2345         hsa_type_for_scalar_tree_type.
2346         (gen_hsa_addr): Fixup type when creating addresable temporary.
2347         (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
2348         (gen_hsa_unary_operation): Extend operands and convert to dest type if
2349         necessary.  Call hsa_fixup_mov_insn_type.
2350         (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
2351         extend operands and convert to dest type if necessary.
2352         (gen_hsa_insns_for_operation_assignment): Extend operands and convert
2353         to dest type if necessary.
2354         (set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
2355         if conversion nt necessary and size matches.
2356         (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
2357         to dest type if necessary.
2358         (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
2359         (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
2360         necessary.
2361         (gen_hsa_clrsb): Likewise.
2362         (gen_hsa_ffs): Likewise.
2363         (gen_hsa_divmod): Extend operands and convert to dest type if
2364         necessary.
2365         (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
2367 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
2369         * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
2370         Remove empty default arguments.  Use a brace block as output
2371         statement.
2372         (conditional return): Ditto.
2373         (jump): Ditto.
2374         (indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
2375         (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
2376         Ditto.
2377         (group_ending_nop): Ditto.
2378         (doloop_end): Ditto.
2379         (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
2380         (splitters for those): Ditto.
2382 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
2384         * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
2385         a conditional jump (and the compare for it) so that pc_rtx is the
2386         last operand.
2387         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
2388         for the deleted and renamed ctr<mode>_internal[234] patterns.
2389         * config/rs6000/rs6000.md: Delete second conditional branch pattern.
2390         Delete second conditional return pattern.
2391         (ctr<mode>_internal2): Delete this second bdnz pattern.
2392         (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
2393         (ctr<mode>_internal4): Delete this second bdz pattern.
2395 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
2397         * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
2398         (always_initialized_rtx_for_ssa_name_p): New predicate.
2399         * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
2400         (finish_out_of_ssa): Free new field of SA.
2401         * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
2402         * tree-ssa-coalesce.c: Include tree-ssa.h.
2403         (get_parm_default_def_partitions): Remove extern keyword.
2404         (get_undefined_value_partitions): New function.
2405         * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
2406         not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
2407         uninitialized bits.
2408         * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
2410 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
2412         * builtins.def (BUILT_IN_SETJMP): Revert latest change.
2414 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
2416         * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
2417         for targets that preffer 128bit.
2419 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
2421         * config/i386/i386.c (has_dispatch): Disable for Ryzen.
2423 2017-10-08  Olivier Hainque  <hainque@adacore.com>
2425         * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
2426         on the target mem instead of RTX_FRAME_RELATED_P on the insn to
2427         prevent DSE.
2428         (thumb_set_return_address): Likewise.
2430 2017-10-08  Olivier Hainque  <hainque@adacore.com>
2432         * common/config/arm/arm-common.c (arm_except_unwind_info):
2433         Handle DWARF2_UNWIND_INFO.
2435 2017-10-07  Michael Collison <michael.collison@arm.com>
2437         * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
2438         New pattern.
2440 2017-10-07  Eric Botcazou  <ebotcazou@adacore.com>
2442         * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
2443         of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
2444         * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
2445         defined, force the creation of a new block for a dispatch label.
2447 2017-10-07  Jan Hubicka  <hubicka@ucw.cz>
2449         * invoke.texi (Wsuggest-attribute=cold): Document.
2450         * common.opt (Wsuggest-attribute=cold): New
2451         * ipa-pure-const.c (warn_function_cold): New function.
2452         * predict.c (compute_function_frequency): Use it.
2453         * predict.h (warn_function_cold): Declare.
2455 2017-10-06  Jan Hubicka  <hubicka@ucw.cz>
2457         * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
2458         Update profile.
2460 2017-10-06  Martin Liska  <mliska@suse.cz>
2462         * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
2463         keyword for member functions.
2464         (struct sanopt_tree_couple): New struct.
2465         (struct sanopt_tree_couple_hash): New function.
2466         (struct sanopt_ctx): Add new hash_map.
2467         (has_dominating_ubsan_ptr_check): New function.
2468         (record_ubsan_ptr_check_stmt): Likewise.
2469         (maybe_optimize_ubsan_ptr_ifn): Likewise.
2470         (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
2471         (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
2473 2017-10-06  Sudakshina Das  <sudi.das@arm.com>
2475         PR target/82440
2476         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
2477         aarch64_simd_valid_immediate on CONST_VECTORs.
2478         (aarch64_reg_or_bic_imm): Likewise.
2480 2017-10-06  Wilco Dijkstra  <wdijkstr@arm.com>
2482         PR rtl-optimization/82396
2483         * haifa-sched.c (ready_sort_real): Disable qsort checking.
2485 2017-10-06  Sebastian Pop  <sebpop@gmail.com>
2487         * graphite-dependences.c (scop_get_reads): Move code to...
2488         (scop_get_must_writes): Move code to...
2489         (scop_get_may_writes): Move code to...
2490         (scop_get_reads_and_writes): ... here.
2491         (scop_get_dependences): Call scop_get_reads_and_writes.
2493 2017-10-06  Jakub Jelinek  <jakub@redhat.com>
2495         PR tree-optimization/82434
2496         * fold-const.h (can_native_encode_type_p,
2497         can_native_encode_string_p): Remove.
2498         * fold-const.c (native_encode_int): Formatting fixes.  If ptr is NULL,
2499         don't encode anything, just return what would be otherwise returned.
2500         (native_encode_fixed, native_encode_complex, native_encode_vector):
2501         Likewise.
2502         (native_encode_string): Likewise.  Inline by hand
2503         can_native_encode_string_p.
2504         (can_native_encode_type_p): Remove.
2505         (can_native_encode_string_p): Remove.
2506         * tree-vect-stmts.c (vectorizable_store): Instead of testing just
2507         STRING_CSTs using can_native_encode_string_p, test all
2508         CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
2509         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
2510         argument from native_encode_expr.
2511         (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
2512         (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
2513         but just 2.
2515 2017-10-06  Richard Biener  <rguenther@suse.de>
2517         PR tree-optimization/82397
2518         * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
2519         operand_equal_p but rely on data_ref_compare_tree for detecting
2520         equalities.
2521         (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
2522         to match up with dr_group_sort_cmp.
2524 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2526         PR target/82322
2527         * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
2528         builtin.
2529         * config/s390/s390-builtin-types.def: Regenerate.
2531 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2533         PR target/82317
2534         * config/s390/s390-builtin-types.def: Regenerate.
2535         * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
2536         Change flag from B_VXE to B_VX.
2537         (s390_vec_min_dbl): Remove B_VXE flag.
2539 2017-10-06  Richard Biener  <rguenther@suse.de>
2541         * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
2542         (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
2543         translate_isl_ast_to_gimple::is_valid_rename,
2544         translate_isl_ast_to_gimple::get_rename,
2545         translate_isl_ast_to_gimple::get_def_bb_for_const,
2546         translate_isl_ast_to_gimple::get_new_name,
2547         translate_isl_ast_to_gimple::collect_all_ssa_names,
2548         translate_isl_ast_to_gimple::copy_loop_phi_args,
2549         translate_isl_ast_to_gimple::collect_all_ssa_names,
2550         translate_isl_ast_to_gimple::copy_loop_phi_args,
2551         translate_isl_ast_to_gimple::copy_loop_phi_nodes,
2552         translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
2553         translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
2554         translate_isl_ast_to_gimple::copy_loop_close_phi_args,
2555         translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
2556         translate_isl_ast_to_gimple::copy_cond_phi_args,
2557         translate_isl_ast_to_gimple::copy_cond_phi_nodes,
2558         translate_isl_ast_to_gimple::edge_for_new_close_phis,
2559         translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
2560         translate_isl_ast_to_gimple::rename_uses,
2561         translate_isl_ast_to_gimple::rename_all_uses): Remove.
2562         (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
2563         (set_rename_for_each_def): Likewise.
2564         (graphite_copy_stmts_from_block): Handle debug stmt resetting
2565         here.  Handle rewriting SCEV analyzable uses here.
2566         (copy_bb_and_scalar_dependences): Generate code for PHI
2567         copy-in/outs.
2568         (graphite_regenerate_ast_isl): Adjust.
2569         * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
2570         (add_write, add_read): New functions.
2571         (build_cross_bb_scalars_def): Use it and simplify.
2572         (build_cross_bb_scalars_use): Likewise.
2573         (graphite_find_cross_bb_scalar_vars): Inline into...
2574         (try_generate_gimple_bb): ...here.  Add dependences for PHIs,
2575         simulating out-of-SSA.  Compute liveout and add dependencies.
2576         (build_scops): Force an empty entry block.
2577         * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
2578         members.
2579         (sese_build_liveouts): Declare.
2580         (sese_trivially_empty_bb_p): Likewise.
2581         * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
2582         compute liveout and debug_liveout.
2583         (sese_bad_liveouts_use): Remove.
2584         (sese_reset_debug_liveouts_bb): Likewise.
2585         (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
2586         (sese_build_liveouts): Build liveout and debug_liveout and store
2587         it in region.
2588         (new_sese_info): Adjust.
2589         (free_sese_info): Likewise.
2590         (sese_insert_phis_for_liveouts): Reset debug stmts from here,
2591         do not build liveout here.
2592         (move_sese_in_condition): Adjust region entry.
2593         (scev_analyzable_p): Match up with chrec_apply requirements.
2594         (sese_trivially_empty_bb_p): New.
2595         * tree-into-ssa.c (get_reaching_def): Properly support generating
2596         default-defs for incremental rewrite of anonymous names.
2598 2017-10-06  Richard Biener  <rguenther@suse.de>
2600         * graphite-sese-to-poly.c (extract_affine): For casts increasing
2601         precision do not perform modulo reduction.
2603 2017-10-06  Richard Biener  <rguenther@suse.de>
2605         PR tree-optimization/82436
2606         * tree-vect-slp.c (vect_supported_load_permutation_p): More
2607         conservatively choose the vectorization factor when checking
2608         whether we can perform the required load permutation.
2609         (vect_transform_slp_perm_load): Assert when we may not fail.
2611 2017-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
2613         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
2614         message for incompatible -msdata=* and -mcall-* options.
2616 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
2618         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
2619         rate for post-reload scheduling.
2621 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
2623         * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
2625 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
2627         * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
2628         to improve monte carlo in scimark.
2630 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
2632         * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
2633         pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
2634         athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
2635         pentium4_cost, nocona_cost): Set reassociation width to 1.
2636         (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
2637         width to 2 for fp operations and 1 otherwise.
2638         (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
2639         for int and fp.
2640         (atom_cost): Set reassociation width to 2.
2641         (slm_cost, generic_cost): Set fp reassociation width
2642         to 2 and 1 otherwise.
2643         (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
2644         (core_cost): Set fp reassociation width to 4 and vector to 2.
2645         (ix86_reassociation_width): Rewrite using cost table; special case
2646         plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
2647         and TARGET_AVX128_OPTIMAL.
2648         * config/i386/i386.h (processor_costs): Add
2649         reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
2650         (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
2651         TARGET_REASSOC_FP_TO_PARALLEL): Remove.
2652         * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
2653         (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
2654         (X86_TUNE_VECTOR_PARALLEL_EXECUTION):  Remove.
2656 2017-10-05  Nathan Sidwell  <nathan@acm.org>
2658         * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
2660 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
2662         * config/arm/arm.c (arm_test_fpu_data): New.
2663         (arm_run_selftests): Call arm_test_fpu_data.
2665 2017-10-04  Nathan Sidwell  <nathan@acm.org>
2667         * toplev.c (toplev::main): Remove excess parens on pretty_printer
2668         decl.
2669         * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
2671 2017-10-04  Sudakshina Das  <sudi.das@arm.com>
2673         * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
2674         check type for aarch64_simd_valid_immediate.
2675         (aarch64_output_simd_mov_immediate): Update prototype.
2676         (aarch64_simd_valid_immediate): Update prototype.
2677         * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
2678         support for ORR-immediate.
2679         (and<mode>3): modified pattern to add support for BIC-immediate.
2680         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
2681         now checks for valid immediate for BIC and ORR based on new enum
2682         argument.
2683         (aarch64_output_simd_mov_immediate): Function now used to output
2684         BIC/ORR imm as well based on new enum argument.
2685         * config/aarch64/constraints.md (Do): New vector immediate constraint.
2686         (Db) : Likewise.
2687         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
2688         (aarch64_reg_or_bic_imm): Likewise.
2690 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2692         * config/s390/vx-builtins.md ("vec_mergeh<mode>")
2693         ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
2695 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
2697         Revert r253399:
2699         PR rtl-optimization/82396
2700         * haifa-sched.c (autopref_multipass_init): Simplify
2701         initialization.
2702         (autopref_rank_data): Simplify sort order.
2703         * sched-int.h (autopref_multipass_data_): Remove
2704         multi_mem_insn_p, min_offset and max_offset.
2706 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2708         * doc/sourcebuild.texi: Document vect_peeling_profitable.
2710 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2712         * doc/sourcebuild.texi: Document vect_intdouble_cvt and
2713         vect_doubleint_cvt.
2715 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2717         * doc/sourcebuild.texi: Document vect_long_mult.
2719 2017-10-04  Richard Sandiford  <richard.sandiford@linaro.org>
2721         PR tree-optimization/82413
2722         * fold-const.c (build_range_check): Use widest_int when comparing
2723         the maximum ETYPE value with HIGH.
2725 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
2727         PR rtl-optimization/82396
2728         * haifa-sched.c (autopref_multipass_init): Simplify
2729         initialization.
2730         (autopref_rank_data): Simplify sort order.
2731         * sched-int.h (autopref_multipass_data_): Remove
2732         multi_mem_insn_p, min_offset and max_offset.
2734 2017-10-04  Jakub Jelinek  <jakub@redhat.com>
2736         PR tree-optimization/82381
2737         * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
2738         oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
2739         is not.
2741         PR tree-optimization/82374
2742         * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
2743         DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
2744         DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
2745         current_function_decl to the new decl.
2747 2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
2749         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
2750         helper macro for IEEE float128 hardware built-in functions.
2751         (SQRTF128_ODD): Add built-in functions with the round-to-odd
2752         semantics.
2753         (TRUNCF128_ODD): Likewise.
2754         (ADDF128_ODD): Likewise.
2755         (SUBF128_ODD): Likewise.
2756         (MULF128_ODD): Likewise.
2757         (DIVF128_ODD): Likewise.
2758         (FMAF128_ODD): Likewise.
2759         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
2760         UNSPEC_TRUNC_ROUND_TO_ODD.
2761         (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
2762         (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
2763         floating point round to odd instructions.
2764         (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
2765         (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
2766         (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
2767         (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
2768         (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
2769         (trunc<mode>sf2_hw): Change the truncate with round to odd
2770         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
2771         (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
2772         to odd hardware instructions.
2773         (sub<mode>3_odd): Likewise.
2774         (mul<mode>3_odd): Likewise.
2775         (div<mode>3_odd): Likewise.
2776         (sqrt<mode>2_odd): Likewise.
2777         (fma<mode>4_odd): Likewise.
2778         (fms<mode>4_odd): Likewise.
2779         (nfma<mode>4_odd): Likewise.
2780         (nfms<mode>4_odd): Likewise.
2781         (trunc<mode>df2_odd): Change the truncate with round to odd
2782         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
2783         function.
2784         * doc/extend.texi (PowerPC built-in functions): Update documentation
2785         for existing IEEE float128-bit built-in functions.  Add built-in
2786         functions that generate the IEEE 128-bit floating point round to
2787         odd instructions.
2789 2017-10-03  Segher Boessenkool  <segher@kernel.crashing.org>
2791         PR rtl-optimization/77729
2792         * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
2793         to (X&(C1&~C2))|C2 transformations.
2795 2017-10-03  Martin Jambor  <mjambor@suse.cz>
2797         PR tree-optimization/82363
2798         * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
2799         mismatch, mark lacc written regardless of racc.
2801 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
2803         PR tree-optimization/82381
2804         * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
2805         stmt_to_insert nor wheather SSA_NAMEs are default defs.
2806         Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
2807         fallthrough into reassoc_stmt_dominates_stmt_p.
2809         PR target/82386
2810         * combine.c (combine_instructions): Don't combine in unreachable
2811         basic blocks.
2813 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
2815         PR target/80210
2816         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
2817         function to not use the have_cpu variable.  Do not set cpu_index,
2818         rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
2819         or the default cpu.
2820         (rs6000_valid_attribute_p): Remove duplicate initializations of
2821         old_optimize and func_optimize.
2822         (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
2823         (rs6000_activate_target_options): Make global.
2824         * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
2825         prototype.
2827 2017-10-02  Jakub Jelinek  <jakub@redhat.com>
2829         * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
2830         if *poffset + *pmax_size overflows in HOST_WIDE_INT.
2831         Set *poffset to 0 and *psize and *pmax_size to -1 if
2832         *poffset + *psize overflows in HOST_WIDE_INT.
2834         PR tree-optimization/82387
2835         PR tree-optimization/82388
2836         PR tree-optimization/82389
2837         * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
2838         instead of live_bytes non-NULL.
2840 2017-10-02  Georg-Johann Lay  <avr@gjlay.de>
2842         PR target/41076
2843         * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
2844         alternative.
2846 2017-10-02  Richard Biener  <rguenther@suse.de>
2848         * graphite-isl-ast-to-gimple.c (set_codegen_error): With
2849         -fchecking and --param graphite-allow-codegen-errors=0 ICE.
2850         * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
2852 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
2854         * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
2855         requested precision matches the type's.
2856         * calls.c (alloc_max_size): Calculate the new candidate size as
2857         a widest_int and use wi::to_widest when comparing it with the
2858         current candidate size.
2859         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
2860         zero rather than integer_zero_node.
2861         * match.pd: Check for a no-op conversion before using wi::add
2862         rather than after.  Use tree_to_uhwi when summing small shift
2863         counts into an unsigned int.
2865 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
2866             Alan Hayward  <alan.hayward@arm.com>
2867             David Sherwood  <david.sherwood@arm.com>
2869         PR target/71307
2870         * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
2871         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
2872         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
2873         POINTER_AND_FP_REGS.
2875 2017-10-02  Richard Biener  <rguenther@suse.de>
2877         PR tree-optimization/82355
2878         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
2879         a mapping for the enclosing loop but avoid generating one for
2880         the loop tree root.
2881         (copy_bb_and_scalar_dependences): Remove premature codegen
2882         error on PHIs in blocks duplicated into multiple places.
2883         * graphite-scop-detection.c
2884         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
2885         in the region use it as loop and nest to analyze the DR in.
2886         (try_generate_gimple_bb): Likewise.
2887         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
2888         (add_loop_constraints): For blocks in a loop not in the region
2889         create a dimension with a single iteration.
2890         * sese.h (gbb_loop_at_index): Remove assert.
2892 2017-10-01  Kevin Buettner  <kevinb@redhat.com>
2894         * omp-expand.c (adjust_context_scope): New function.
2895         (expand_parallel_call): Call adjust_context_scope.
2897 2017-10-01  Jeff Law  <law@redhat.com>
2899         * tree-ssa-dom.c (optimize_stmt): Make this a method within the
2900         dom_opt_dom_walker class with direct access to private members.
2901         Add comments.  Call test_for_singularity.
2902         (dom_opt_dom_walker::before_dom_children): Corresponding changes.
2903         (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
2904         m_dummy_cond anymore.
2905         (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
2906         class ctor.
2907         (pass_dominator:execute): Build the dummy_cond here and pass it
2908         to the dom_opt_dom_walker ctor.
2909         (test_for_singularity): New function.
2911 2017-09-30  Krister Walfridsson  <krister.walfridsson@gmail.com>
2912             Maya Rashish  <coypu@sdf.org>
2914         * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
2915         netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
2916         (alpha*-*-netbsd*) Use nbsd_tm_file.
2917         (arm*-*-netbsdelf*) Likewise.
2918         (i[34567]86-*-netbsdelf*) Likewise.
2919         (x86_64-*-netbsd*) Likewise.
2920         (mips*-*-netbsd*) Likewise.
2921         (powerpc-*-netbsd*) Likewise.
2922         (sh*-*-netbsd*) Likewise.
2923         (sparc-*-netbsdelf*) Likewise.
2924         (sparc64-*-netbsd*) Likewise.
2925         (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
2926         to tm_defines.
2927         (vax-*-netbsdelf*) Likewise.
2928         * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
2929         (UINT_FAST8_TYPE) Likewise.
2930         (INT_FAST16_TYPE) Check CHAR_FAST16.
2931         (UINT_FAST16_TYPE) Likewise.
2933 2017-09-30  Jakub Jelinek  <jakub@redhat.com>
2935         PR target/82361
2936         * config/i386/i386.md
2937         (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
2938         (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
2939         *divmodsi4_zext_2): New define_insn_and_split.
2940         (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
2941         (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
2942         (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
2943         *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
2944         New define_insn_and_split.
2945         (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
2946         * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
2947         operands[1] having DImode when mode is SImode.
2949         * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
2950         always SImode for DIV and MOD in REG_EQUAL notes.
2952 2017-09-29  Yury Gribov  <tetra2005@gmail.com>
2954         PR middle-end/82319
2955         * match.pd: Fix handling of NaNs in pattern.
2957 2017-09-29  Jeff Law  <law@redhat.com>
2959         * sbitmap.c (bitmap_bit_in_range_p): New function.
2960         * sbitmap.h (bitmap_bit_in_range_p): Prototype.
2961         * tree-ssa-dse.c (live_bytes_read): New function.
2962         (dse_classify_store): Ignore reads of dead bytes.
2964         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
2965         typos and whitespace errors.
2966         * config/i386/predicates.md (address_no_seg_operand): Likewise.
2967         * config/s390/s390.c (s390_emit_prologue): Likewise.
2969 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
2971         PR target/81481
2972         * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
2973         with a symbol for LRA.
2975 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
2977         PR rtl-optimization/82338
2978         * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
2980 2017-09-29  Alexander Monakov  <amonakov@ispras.ru>
2982         * genmodes.c (calc_wider_mode): Suppress qsort macro.
2983         * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
2984         (qsort_chk): Declare.
2985         * vec.c [CHECKING_P] (qsort_chk_error): New static function.
2986         (qsort_chk): New function.
2988 2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2990         PR tree-optimization/82337
2991         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
2992         phi definition if the PHI result appears in an abnormal PHI.
2993         (find_basis_for_base_expr): Don't record a basis if the LHS of the
2994         basis appears in an abnormal PHI.
2996 2017-09-29  Richard Biener  <rguenther@suse.de>
2998         * graphite-isl-ast-to-gimple.c
2999         (translate_isl_ast_to_gimple::set_codegen_error): New function.
3000         (binary_op_to_tree): Use it.
3001         (get_rename_from_scev): Likewise.
3002         (copy_loop_phi_nodes): Likewise.
3003         (copy_bb_and_scalar_dependences): Likewise.
3004         (translate_pending_phi_nodes): Likewise.
3006 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
3008         PR target/82339
3009         * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
3010         for movabsq $(i32 << shift), r64.
3012 2017-09-28  Uros Bizjak  <ubizjak@gmail.com>
3014         * config/i386/i386.c (ix86_print_operand_address_as): Do not check
3015         index when encoding %esp as %rsp to avoid 0x67 prefix.
3017 2017-09-28  Sergey Shalnov  <Sergey.Shalnov@intel.com>
3019         * config/i386/i386.md (*movsf_internal, *movdf_internal):
3020         Return 256-bit AVX modes for TARGET_PREFER_AVX256.
3022 2017-09-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3024         * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
3025         Extensions with more than 16 double VFP registers.
3026         (cmse_nonsecure_entry_clear_before_return): Remove second entry of
3027         to_clear_mask and all code related to it.  Replace the remaining
3028         entry by a sbitmap and adapt code accordingly.
3030 2017-09-28  Henry Linjamäki  <henry.linjamaki@parmance.com>
3032         * brig-builtins.def: Change pure attributes to const.
3034 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
3036         * config.gcc (default_gnu_indirect_function): Default to yes for
3037         sparc*-*-linux* with glibc.
3039 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
3041         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
3042         (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
3043         when creating .init_array and .fini_array sections with priority
3044         specified.
3046 2017-09-27  Christophe Lyon  <christophe.lyon@linaro.org>
3048         PR target/71727
3049         * config/aarch64/aarch64.c
3050         (aarch64_builtin_support_vector_misalignment): Always return false
3051         when misalignment is unknown.
3053 2017-09-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3055         * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
3056         this function to return false if the definition used by the swap
3057         instruction is artificial, or if the memory address from which the
3058         constant value is loaded is not represented by a base address held
3059         in a register or if the base address register is a frame or stack
3060         pointer.  Additionally, return false if the base address of the
3061         loaded constant is a SYMBOL_REF but is not considered to be a
3062         constant.
3063         (replace_swapped_load_constant): New function.
3064         (rs6000_analyze_swaps): Add a new pass to replace a swap of a
3065         loaded constant vector with a load of a swapped constant vector.
3067 2017-09-27  Carl Love  <cel@us.ibm.com>
3069         * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
3070         (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
3071         * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
3072         fctiw instruction.
3074 2017-09-27  Alexander Monakov  <amonakov@ispras.ru>
3076         * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
3077         first, always call autopref_rank_data otherwise.
3079 2017-09-27  Richard Biener  <rguenther@suse.de>
3081         * graphite-scop-detection.c (find_scop_parameters): Move
3082         loop bound handling ...
3083         (gather_bbs::before_dom_children): ... here, avoiding the need
3084         to build scop_info->loop_nest.
3085         (record_loop_in_sese): Remove.
3086         * sese.h (sese_info_t::loop_nest): Remove.
3087         * sese.c (new_sese_info): Do not allocate loop_nest.
3088         (free_sese_info): Do not free loop_nest.
3090 2017-09-27  Jakub Jelinek  <jakub@redhat.com>
3092         PR c++/82159
3093         * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
3094         lhs from calls if the lhs has addressable type.
3096 2017-09-27  Richard Biener  <rguenther@suse.de>
3098         * graphite.h (scop::max_alias_set): New member.
3099         * graphite-scop-detection.c: Remove references to non-existing
3100         --param in comments.
3101         (build_alias_sets): Record the maximum alias set used for drs.
3102         (build_scops): Support zero as unlimited for
3103         --param graphite-max-arrays-per-scop.
3104         * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
3105         and inline into ...
3106         (build_poly_sr_1): ... here.  Compute alias set based on the
3107         maximum alias set used for drs rather than
3108         PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
3110 2017-09-27  Richard Biener  <rguenther@suse.de>
3112         * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
3113         --param loop-block-tile-size=0 to disable tiling.
3115 2017-09-27  Richard Biener  <rguenther@suse.de>
3117         * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
3118         (graphite-max-nb-scop-params): Document special value zero.
3119         * domwalk.h (dom_walker::STOP): New symbolical constant.
3120         (dom_walker::dom_walker): Add optional parameter for bb to
3121         RPO mapping.
3122         (dom_walker::~dom_walker): Declare.
3123         (dom_walker::before_dom_children): Document STOP return value.
3124         (dom_walker::m_user_bb_to_rpo): New member.
3125         (dom_walker::m_bb_to_rpo): Likewise.
3126         * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
3127         mapping here if not provided by the user.
3128         (dom_walker::~dom_walker): Free bb to RPO mapping if not
3129         provided by the user.
3130         (dom_walker::STOP): Define.
3131         (dom_walker::walk): Do not compute bb to RPO mapping here.
3132         Support STOP return value from before_dom_children to stop
3133         walking.
3134         * graphite-optimize-isl.c (optimize_isl): If the schedule
3135         is the same still generate code if -fgraphite-identity
3136         or -floop-parallelize-all are given.
3137         * graphite-scop-detection.c: Include cfganal.h.
3138         (gather_bbs::gather_bbs): Get and pass through bb to RPO
3139         mapping.
3140         (gather_bbs::before_dom_children): Return STOP for BBs
3141         not in the region.
3142         (build_scops): Compute bb to RPO mapping and pass it to
3143         the domwalk.  Treat --param graphite-max-nb-scop-params=0
3144         as not limiting the number of params.
3145         * graphite.c (graphite_initialize): Remove limit on the
3146         number of basic-blocks in a function.
3147         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
3148         (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
3149         default value of 10.
3151 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3153         * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
3154         Adjust code to eliminate needing to do the shift right 32-bits
3155         operation after XSCVDPSPN.
3157 2017-09-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3159         * match.pd ((X / Y) == 0 -> X < Y): New pattern.
3160         ((X / Y) != 0 -> X >= Y): Likewise.
3162 2017-09-26  Carl Love  <cel@us.ibm.com>
3164         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
3165         P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
3166         vector unsigned char vec_xl_len_r (unsigned char *, size_t);
3167         void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
3168         * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
3169         * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
3170         definitions and overloading.
3171         * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
3172         statement for P9V_BUILTIN_XST_LEN_R.
3173         (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
3174         * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
3175         define_expand and define_insn for the instructions and builtins.
3176         * doc/extend.texi: Update the built-in documentation file for the new
3177         built-in functions.
3178         * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
3179         define_insn for the instructions
3181 2017-09-26  Krister Walfridsson  <krister.walfridsson@gmail.com>
3183         PR target/39570
3184         * gcc/config/netbsd-protos.h: New file.
3185         * gcc/config/netbsd.c: New file.
3186         * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
3187         * gcc/config/t-netbsd: New file.
3188         * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
3189         (tmake_file) Add t-netbsd.
3190         (extra_objs) Add netbsd.o.
3192 2017-09-26  Janus Weil  <janus@gcc.gnu.org>
3194         PR fortran/82143
3195         PR fortran/82324
3196         * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
3198 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3200         * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
3201         sign extension from a vector register to a GPR by doing a 32-bit
3202         direct move and then an EXTSW.
3203         (extendsi<mode>2 splitter): Likewise.
3204         (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
3205         right or vector extract after doing XSCVDPSPN.  Use
3206         zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
3207         the GPRs.
3208         (movdi_from_sf_zero_ext): Likewise.
3209         (reload_gpr_from_vsxsf): Likewise.
3210         (p8_mfvsrd_4_disf): Delete, no longer used.
3211         (movsi_from_df): Optimize converting a DFmode to a SFmode, and
3212         then needing to move the SFmode to a GPR to use the XSCVDPSP
3213         instruction instead of FRSP and XSCVDPSPN.
3214         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
3215         it is adjacent to the other XSCVSPDP insns.
3216         (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
3217         SFmode to be in traditional Altivec registers.
3218         (vsx_xscvdpspn): Eliminate useless alternative constraint.
3219         (vsx_xscvspdpn): Likewise.
3220         (vsx_xscvspdpn_scalar): Likewise.
3222 2017-09-26  Martin Jambor  <mjambor@suse.cz>
3224         * tree-sra.c (compare_access_positions): Put integral types first,
3225         stabilize sorting of integral types, remove conditions putting
3226         non-full-precision integers last.
3227         (sort_and_splice_var_accesses): Disable scalarization if a
3228         non-integert would be represented by a non-full-precision integer.
3230 2017-09-26  Joseph Myers  <joseph@codesourcery.com>
3232         * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
3233         * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
3234         * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
3235         * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
3236         Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
3237         conditionals inside the function instead of around it.  Call
3238         file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
3239         (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
3241 2017-09-26  Richard Biener  <rguenther@suse.de>
3243         * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
3244         fold in ...
3245         (scop_detection::build_scop_breadth): ... this.  Removed.
3246         (scop_detection::loop_is_valid_in_scop): Fold into single caller.
3247         (scop_detection::harmful_stmt_in_bb): Likewise.
3248         (scop_detection::graphite_can_represent_stmt): Likewise.
3249         (scop_detection::loop_body_is_valid_scop): Likewise.  Remove recursion.
3250         (scop_detection::can_represent_loop): Remove recursion, fold in ...
3251         (scop_detection::can_represent_loop_1): ... this.  Removed.
3252         (scop_detection::harmful_loop_in_region): Simplify after inlining
3253         the above and remove more quadraticness.
3254         (build_scops): Adjust.
3255         * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
3256         quadraticness.
3258 2017-09-26  Jakub Jelinek  <jakub@redhat.com>
3260         PR target/82267
3261         * config/i386/i386.c (ix86_print_operand_address_as): Only test
3262         REGNO (base) == SP_REG if base is a REG.
3264         PR middle-end/35691
3265         * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
3266         if it is different SSA_NAME.
3267         (optimize_range_tests_cmp_bitwise): New function.
3268         (optimize_range_tests): Call it.
3270 2017-09-26  Richard Biener  <rguenther@suse.de>
3272         PR tree-optimization/82321
3273         * graphite.c (canonicalize_loop_closed_ssa): Properly check
3274         for the def being inside the loop.
3276 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3278         * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
3279         assembler output.
3280         * config/s390/s390-builtins.def: Fix constraint on op4.
3282 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3284         * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
3285         independent expanders.
3286         * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
3287         ("vec_ordered", "vec_unordered"): New expanders.
3289 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3291         * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
3292         for SFmode.
3294 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3296         * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
3297         vec_unpacks_lo_v16qi.
3298         ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
3300 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3302         * config/s390/vector.md ("vec_unpacks_lo_v4sf")
3303         ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
3304         ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
3306 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3308         * config/s390/predicates.md ("const_shift_by_byte_operand"): New
3309         predicate.
3310         * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
3311         and V16QI.
3312         ("*vec_slb<mode>"): New insn pattern.
3313         ("vec_shr_<mode>"): New expander.
3314         * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
3315         and force the shift count operand to V16QImode.
3316         ("vec_srb<mode>"): Set shift count mode to V16QI.
3318 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3320         * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
3321         ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
3322         ("vec_widen_smult_hi_<mode>"): New expander definitions.
3324 2017-09-26  Richard Earnshaw  <rearnsha@arm.com>
3326         PR target/82175
3327         * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
3329 2017-09-26  Richard Biener  <rguenther@suse.de>
3331         PR tree-optimization/82320
3332         * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
3333         isn't a change.
3335 2017-09-25  Jeff Law  <law@redhat.com>
3337         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
3338         prototype for new argument.
3339         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
3340         mostly extracted from rs6000_emit_allocate_stack.
3341         (rs6000_emit_probe_stack_range_stack_clash): New function.
3342         (rs6000_emit_allocate_stack): Call
3343         rs6000_emit_probe_stack_range_stack_clash as needed.
3344         (rs6000_emit_probe_stack_range): Add additional argument
3345         to call to gen_probe_stack_range{si,di}.
3346         (output_probe_stack_range): New.
3347         (output_probe_stack_range_1): Renamed from output_probe_stack_range.
3348         (output_probe_stack_range_stack_clash): New.
3349         (rs6000_emit_prologue): Emit notes into dump file as requested.
3350         * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
3351         (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
3352         Add additional operand and pass it to output_probe_stack_range.
3354 2017-09-25  Bin Cheng  <bin.cheng@arm.com>
3356         PR tree-optimization/82163
3357         * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
3358         (checking_verify_loop_closed_ssa): New parameter.
3359         * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
3360         (check_loop_closed_ssa_stmt): Delete.
3361         (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
3362         (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
3363         (tree_transform_and_unroll_loop): Check loop closed ssa form only for
3364         changed loops.
3366 2017-09-25  Pekka Jaaskelainen <pekka@parmance.com>
3368         * brig-builtins.def: Treat HSAIL barrier builtins as
3369         setjmp/longjump style functions.
3371 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
3373         * target.def (constant_alignment): New hook.
3374         * defaults.h (CONSTANT_ALIGNMENT): Delete.
3375         * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
3376         (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
3377         * doc/tm.texi: Regenerate.
3378         * targhooks.h (default_constant_alignment): Declare.
3379         (constant_alignment_word_strings): Likewise.
3380         * targhooks.c (default_constant_alignment): New function.
3381         (constant_alignment_word_strings): Likewise.
3382         * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
3383         instead of CONSTANT_ALIGNMENT.
3384         * varasm.c (align_variable, get_variable_align, build_constant_desc)
3385         (force_const_mem): Likewise.
3386         * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
3387         * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
3388         (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
3389         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3390         * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
3391         definition.
3392         * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
3393         * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3394         constant_alignment_word_strings.
3395         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
3396         (CONSTANT_ALIGNMENT): Likewise.
3397         * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3398         (arm_constant_alignment): New function.
3399         * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
3400         * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3401         constant_alignment_word_strings.
3402         * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
3403         * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3404         constant_alignment_word_strings.
3405         * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
3406         * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3407         (cris_constant_alignment): New function.
3408         * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
3409         * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3410         (epiphany_constant_alignment): New function.
3411         * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
3412         * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3413         constant_alignment_word_strings.
3414         * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
3415         * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3416         constant_alignment_word_strings.
3417         * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
3418         * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3419         constant_alignment_word_strings.
3420         * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
3421         * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
3422         * config/i386/i386.c (ix86_constant_alignment): Make static.
3423         Use the same interface as the target hook.
3424         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3425         * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
3426         * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3427         constant_alignment_word_strings.
3428         * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
3429         * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
3430         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3431         * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
3432         * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3433         constant_alignment_word_strings.
3434         * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
3435         * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3436         constant_alignment_word_strings.
3437         * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
3438         * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3439         constant_alignment_word_strings.
3440         * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
3441         * config/microblaze/microblaze.c (microblaze_constant_alignment):
3442         New function.
3443         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3444         * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
3445         * config/mips/mips.c (mips_constant_alignment): New function.
3446         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3447         * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
3448         * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
3449         * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3450         (mmix_constant_alignment): Make static.  Use the same interface
3451         as the target hook.
3452         * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
3453         * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3454         constant_alignment_word_strings.
3455         * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
3456         * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3457         constant_alignment_word_strings.
3458         * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
3459         * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3460         constant_alignment_word_strings.
3461         * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
3462         * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3463         (rs6000_constant_alignment): New function.
3464         * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
3465         * config/riscv/riscv.c (riscv_constant_alignment): New function.
3466         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3467         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
3468         * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3469         (rs6000_constant_alignment): New function.
3470         * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
3471         * config/s390/s390.c (s390_constant_alignment): New function.
3472         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3473         * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
3474         * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3475         constant_alignment_word_strings.
3476         * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
3477         * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3478         (sparc_constant_alignment): New function.
3479         * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
3480         * config/spu/spu.c (spu_constant_alignment): New function.
3481         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3482         * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
3483         * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3484         constant_alignment_word_strings.
3485         * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
3486         * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3487         constant_alignment_word_strings.
3488         * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
3489         * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3490         constant_alignment_word_strings.
3491         * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
3492         * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3493         (visium_constant_alignment): New function.
3494         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
3495         * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3496         (xtensa_constant_alignment): New function.
3497         * system.h (CONSTANT_ALIGNMENT): Poison.
3499 2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
3501         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
3502         for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
3503         (rs6000_builtin_valid_without_lhs): New helper function.
3504         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3505         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
3507 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
3509         * target.h (vec_perm_indices): Use unsigned short rather than
3510         unsigned char.
3511         (auto_vec_perm_indices): Likewise.
3512         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
3513         Use unsigned int rather than unsigned char.
3514         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
3516 2017-09-25  Richard Biener  <rguenther@suse.de>
3518         * cfgloop.h (sort_sibling_loops): Declare.
3519         * cfgloop.c (sort_sibling_loops_cmp): New helper.
3520         (sort_sibling_loops): New function sorting the sibling loop list
3521         in RPO order.
3522         * graphite.c (graphite_transform_loops): Sort sibling loops.
3524 2017-09-25  Richard Sandiford  <richard.sandifird@linaro.org>
3526         * target.def (vec_perm_const_ok): Change sel parameter to
3527         vec_perm_indices.
3528         * optabs-query.c (can_vec_perm_p): Update accordingly.
3529         * doc/tm.texi: Regenerate.
3530         * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
3531         auto_vec_perm_indices and remove separate nelt field.
3532         (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
3533         (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
3534         (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
3535         (aarch64_expand_vec_perm_const): Update accordingly.
3536         (aarch64_vectorize_vec_perm_const_ok): Likewise.  Change sel
3537         to vec_perm_indices.
3538         * config/arm/arm.c (expand_vec_perm_d): Change perm to
3539         auto_vec_perm_indices and remove separate nelt field.
3540         (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
3541         (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
3542         (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
3543         accordingly.
3544         (arm_vectorize_vec_perm_const_ok): Likewise.  Change sel
3545         to vec_perm_indices.
3546         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
3547         sel to vec_perm_indices.
3548         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
3549         * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
3550         * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
3551         Likewise.
3552         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
3553         Likewise.
3555 2017-09-25  Pierre-Marie de Rodat  <derodat@adacore.com>
3557         PR debug/82155
3558         * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
3559         on the FUNCTION_DECL function context if it has a DIE that is a
3560         declaration.
3562 2017-09-25  Richard Biener  <rguenther@suse.de>
3564         PR tree-optimization/82285
3565         * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
3566         enumeral types.
3568 2017-09-25  Tom de Vries  <tom@codesourcery.com>
3570         PR target/80035
3571         PR target/81069
3572         * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
3573         noreturn function.
3575 2017-09-25  Richard Biener  <rguenther@suse.de>
3577         * graphite-optimize-isl.c (optimize_isl): Fail and dump if
3578         ISL errors other than isl_error_quota happen.  Dump if the
3579         schedule is the same.
3580         * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
3581         errors instead of aborting inside ISL.
3583 2017-09-25  Iain Sandoe  <iain@codesourcery.com>
3585         PR target/80556
3586         * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
3587         of libgcc_eh for m64.
3588         * config/i386/darwin64.h: Likewise.
3590 2017-09-25  Richard Biener  <rguenther@suse.de>
3592         PR middle-end/82144
3593         * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
3594         attribute for incomplete types nor twice for complete ones.
3596 2017-09-24  Uros Bizjak  <ubizjak@gmail.com>
3598         PR target/82267
3599         * config/i386/i386.c (ix86_print_operand_address_as): Encode
3600         %esp as %rsp to avoid 0x67 prefix if there is no index or base
3601         register.
3603 2017-09-23  Uros Bizjak  <ubizjak@gmail.com>
3605         PR bootstrap/82306
3606         * config/i386/i386.opt (mprefer-avx256): Use
3607         ix86_target_flags variable.
3608         * config/i386/i386.c (ix86_target_string): Move
3609         -mprefer-avx256 to flag2_opts.
3611 2017-09-22  Jakub Jelinek  <jakub@redhat.com>
3613         PR middle-end/35691
3614         * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
3615         and x != -1 | y != -1 into (x & y) != -1.
3617 2017-09-22  Steve Ellcey  <sellcey@cavium.com>
3619         * config.gcc: Add new case statement to set
3620         default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
3621         i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
3622         s390x-*-linux* case statements.   Added aarch64 to the list of
3623         supported architectures.
3625 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
3627         PR tree-optimization/82289
3628         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
3629         STMT_VINFO_RELEVANT_P.
3631 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
3632             Alan Hayward  <alan.hayward@arm.com>
3633             David Sherwood  <david.sherwood@arm.com>
3635         * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
3636         for VR_RANGE only; don't allow VR_ANTI_RANGE.
3637         (extract_range_from_binary_expr_1): Don't call
3638         extract_range_from_multiplicative_op_1 if !range_int_cst_p.
3640 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
3641             Alan Hayward  <alan.hayward@arm.com>
3642             David Sherwood  <david.sherwood@arm.com>
3644         * target.def (preferred_vector_alignment): New hook.
3645         * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
3646         hook.
3647         * doc/tm.texi: Regenerate.
3648         * targhooks.h (default_preferred_vector_alignment): Declare.
3649         * targhooks.c (default_preferred_vector_alignment): New function.
3650         * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
3651         Expand commentary.
3652         (DR_TARGET_ALIGNMENT): New macro.
3653         (aligned_access_p): Update commentary.
3654         (vect_known_alignment_in_bytes): New function.
3655         * tree-vect-data-refs.c (vect_calculate_required_alignment): New
3656         function.
3657         (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
3658         Calculate the misalignment based on the target alignment rather than
3659         the vector size.
3660         (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
3661         rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
3662         (vect_enhance_data_refs_alignment): Mask the byte misalignment with
3663         the target alignment, rather than masking the element misalignment
3664         with the number of elements in a vector.  Also use the target
3665         alignment when calculating the maximum number of peels.
3666         (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
3667         instead of TYPE_ALIGN_UNIT.
3668         (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
3669         Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
3670         (vect_create_addr_base_for_vector_ref): Update call accordingly.
3671         (vect_create_data_ref_ptr): Likewise.
3672         (vect_setup_realignment): Realign by ANDing with
3673         -DR_TARGET_MISALIGNMENT.
3674         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
3675         the number of peels based on DR_TARGET_ALIGNMENT.
3676         * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
3677         with the guaranteed alignment boundary when deciding whether
3678         overrun is OK.
3679         (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
3680         relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
3681         (ensure_base_align): Remove stmt_info parameter.  Get the
3682         target base alignment from DR_TARGET_ALIGNMENT.
3683         (vectorizable_store): Update call accordingly.   Interpret
3684         DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
3685         TYPE_ALIGN_UNIT.
3686         (vectorizable_load): Likewise.
3688 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
3689             Alan Hayward  <alan.hayward@arm.com>
3690             David Sherwood  <david.sherwood@arm.com>
3692         * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
3693         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
3694         (vect_enhance_data_refs_alignment): Likewise.
3696 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
3698         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
3699         error.  Only quit immediately if parsing is complete.
3700         (BEGIN): Initialize fatal_err and parse_done.
3701         (begin fpu, end fpu): Check number of arguments.
3702         (begin arch, end arch): Likewise.
3703         (begin cpu, end cpu): Likewise.
3704         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
3705         (optalias): Likewise.
3707 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
3709         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
3710         * config/arm/arm-isa.h: Delete.  Move definitions to ...
3711         * arm-cpus.in: ... here.  Use new feature and fgroup values.
3712         * config/arm/arm.c (arm_option_override): Use lower case for feature
3713         bit names.
3714         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
3715         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
3716         * config/arm/parsecpu.awk (END): Add new command 'isa'.
3717         (isa_pfx): Delete.
3718         (print_isa_bits_for): New function.
3719         (gen_isa): New function.
3720         (gen_comm_data): Use print_isa_bits_for.
3721         (define feature): New keyword.
3722         (define fgroup): New keyword.
3723         * config/arm/t-arm (TM_H): Remove.
3724         (GTM_H): Add arm-isa.h.
3725         (arm-isa.h): Add rule to generate file.
3726         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
3727         case for feature bit names.
3729 2017-09-22  Richard Biener  <rguenther@suse.de>
3731         * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
3732         single caller.
3733         (graphite_regenerate_ast_isl): Do not reset SCEV.  Move debug
3734         print of no dependency loops ...
3735         * graphite.c (graphite_transform_loops): ... here.
3736         (canonicalize_loop_closed_ssa_form): Work from inner to outer
3737         loops.
3738         (same_close_phi_node, remove_duplicate_close_phi,
3739         make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
3740         (canonicalize_loop_closed_ssa): ... here and simplify.
3741         * graphite-optimize-isl.c: Include tree-vectorizer.h.
3742         (optimize_isl): Use dump_printf_loc to tell when we stopped
3743         optimizing because of an ISL timeout.
3745 2017-09-22  Richard Biener  <rguenther@suse.de>
3747         PR tree-optimization/82291
3748         * tree-if-conv.c (predicate_mem_writes): Make sure to
3749         remove writes in blocks predicated with false.
3751 2017-09-22  Richard Biener  <rguenther@suse.de>
3753         * sese.c: Include cfganal.h.
3754         (if_region_set_false_region): Remove.
3755         (create_if_region_on_edge): Likewise.
3756         (move_sese_in_condition): Re-implement without destroying
3757         dominators.
3759 2017-09-22  Richard Biener  <rguenther@suse.de>
3761         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
3762         Verify both BBs contain loop PHI nodes before dispatching to
3763         copy_loop_phi_args.
3764         (graphite_regenerate_ast_isl): Do not recompute dominators,
3765         do not verify three times.  Restructure for clarity.
3766         * graphite-scop-detection.c (same_close_phi_node,
3767         remove_duplicate_close_phi, make_close_phi_nodes_unique,
3768         defined_in_loop_p, canonicalize_loop_closed_ssa,
3769         canonicalize_loop_closed_ssa_form): Simplify, remove excess
3770         checking and SSA rewrite, move to ...
3771         * graphite.c: ... here.  Include ssa.h and tree-ssa-loop-manip.h.
3772         (graphite_initialize): Do not pass in ctx, do not reset the
3773         SCEV cache, compute only dominators.
3774         (graphite_transform_loops): Allocate ISL ctx after
3775         graphite_initialize.  Call canonicalize_loop_closed_ssa_form.
3776         Maintain post-dominators only around build_scops.
3777         * sese.c (if_region_set_false_region): Make static.  Free
3778         and recompute dominators.
3779         (move_sese_in_condition): Assert we don't get called with
3780         post-dominators computed.
3781         * sese.h (if_region_set_false_region): Remove.
3783 2017-09-22  Sergey Shalnov  <sergey.shalnov@intel.com>
3785         * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
3786         mode attribute for TARGET_AVX512VL.
3788 2017-09-21  Sergey Shalnov  <sergey.shalnov@intel.com>
3790         * config/i386/i386.opt (mprefer-avx256): New option.
3791         * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
3792         to flag_opts.
3793         (ix86_preferred_simd_mode): Return 256-bit AVX modes
3794         for TARGET_PREFER_AVX256.
3795         * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
3797 2017-09-21  Jeff Law  <law@redhat.com>
3799         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
3800         Fix dump output if the only stack space is for pushed registers.
3802 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
3804         * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
3805         of insn_cost.
3807 2017-09-21  Martin Sebor  <msebor@redhat.com>
3809         PR c/81882
3810         * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
3811         code (in C++) or code that triggers warnings.
3813 2017-09-21  Eric Botcazou  <ebotcazou@adacore.com>
3815         * stor-layout.c (bit_from_pos): Do not distribute the conversion.
3817 2017-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
3819         * haifa-sched.c: Rename insn_cost to insn_sched_cost.
3820         * sched-rgn.c: Ditto.
3821         * sel-sched-ir.c: Ditto.
3823 2017-09-21  Alexander Monakov  <amonakov@ispras.ru>
3825         * toplev.h (set_random_seed): Adjust return type.
3826         * toplev.c (init_local_tick): Move eager initialization of random_seed
3827         to get_random_seed.  Adjust comment.
3828         (init_random_seed): Inline to get_random_seed, delete.
3829         (get_random_seed): Initialize random_seed lazily.
3830         (set_random_seed): Do not return previous value.
3831         (print_switch_value): Do not call get_random_seed.
3833 2017-09-21  Evgeny Kudryashov  <kudryashov@ispras.ru>
3835         * cgraph.c (delete_function_version): New, broken out from...
3836         (cgraph_node::delete_function_version): ...here.  Rename to
3837         cgraph_node::delete_function_version_by_decl.  Update all uses.
3838         (cgraph_node::remove): Call delete_function_version.
3840 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
3842         PR sanitizer/81715
3843         * tree-inline.c (expand_call_inline): Emit clobber stmts for
3844         VAR_DECLs to which addressable non-volatile parameters are mapped
3845         and for id->retvar after the return value assignment.  Clear
3846         id->retval and id->retbnd after inlining.
3848 2017-09-21  Richard Biener  <rguenther@suse.de>
3850         PR tree-optimization/82276
3851         PR tree-optimization/82244
3852         * tree-vrp.c (build_assert_expr_for): Set
3853         SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
3854         has it set.
3855         (remove_range_assertions): Revert earlier change.
3857 2017-09-21  Wilco Dijkstra  <wdijkstr@arm.com>
3859         PR target/71951
3860         * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
3862 2017-09-21  Richard Biener  <rguenther@suse.de>
3864         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
3865         Restore valid IL after code generation errors.
3866         * graphite.c (graphite_transform_loops): Diagnose code
3867         generation issues as MSG_MISSED_OPTIMIZATION and continue
3868         with processing SCOPs.
3870 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
3871             Alan Hayward  <alan.hayward@arm.com>
3872             David Sherwood  <david.sherwood@arm.com>
3874         * calls.c (compute_argument_addresses): Use simplify_gen_binary
3875         rather than choosing between plus_constant and gen_rtx_<CODE>.
3876         * expr.c (emit_push_insn): Likewise.
3877         (expand_expr_real_2): Likewise.
3879 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
3880             Alan Hayward  <alan.hayward@arm.com>
3881             David Sherwood  <david.sherwood@arm.com>
3883         * loop-unroll.c (split_iv): Call copy_rtx on the step.
3885 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
3886             Alan Hayward  <alan.hayward@arm.com>
3887             David Sherwood  <david.sherwood@arm.com>
3889         * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
3890         calling tree_to_uhwi.
3892 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
3893             Alan Hayward  <alan.hayward@arm.com>
3894             David Sherwood  <david.sherwood@arm.com>
3896         * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
3897         INTEGER_CST rather than a negative test for ADDR_EXPR.
3899 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
3900             Alan Hayward  <alan.hayward@arm.com>
3901             David Sherwood  <david.sherwood@arm.com>
3903         * tree-vrp.c (extract_range_from_binary_expr_1): Check
3904         int_cst_rangeN before calling value_range_constant_singleton (&vrN).
3906 2017-09-21  Richard Biener  <rguenther@suse.de>
3908         PR tree-optimization/71351
3909         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
3910         graphite_create_new_loop_guard): Remove, fold remaining parts
3911         into caller ...
3912         (translate_isl_ast_node_for): ... here and simplify.
3914 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
3916         PR target/82260
3917         * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
3918         with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
3919         latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
3920         alternative always use QI mode, for -Os imov (=R,R) alternative
3921         always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
3922         ignore -Os.
3924 2017-09-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3925             Jeff Law  <law@redhat.com>
3927         * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
3928         (allocate_stack_space): New function, partially extracted from
3929         s390_emit_prologue.
3930         (s390_emit_prologue): Track offset to most recent stack probe.
3931         Code to allocate space moved into allocate_stack_space.
3932         Dump actions when no stack is allocated.
3933         (s390_prologue_plus_offset): New function.
3934         (s390_emit_stack_probe): Likewise.
3936 2017-09-20  Alexandre Oliva <aoliva@redhat.com>
3938         * common.opt (Wa, Wl, Wp, g, gz=): Add
3939         RejectNegative.
3940         (gno-column-info): Remove.
3941         (gcolumn-info): Drop RejectNegative.
3942         (gno-): New prefix.
3943         (gno-record-gcc-switches): Remove.
3944         (grecord-gcc-switches): Drop RejectNegative.
3945         (gno-split-dwarf): Remove.
3946         (gsplit-dwarf): Drop RejectNegative.
3947         (gno-strict-dwarf): Remove.
3948         (gstrict-dwarf): Drop RejectNegative.
3949         * config/darwin.opt (gfull, gused): Add RejectNegative.
3950         * dwarf2out.c (gen_producer_string): Drop
3951         gno-record-gcc-switches handler.
3952         * optc-gen.awk: Add g to prefixes with negative forms.
3953         * opts-common.c (remapping_prefix_p): New.
3954         (find_opt): Check it.
3955         (generate_canonical_option): Test g prefix.
3956         (option_map): Add -gno- mapping.
3957         (add_misspelling_candidates): Check remapping_prefix_p.
3959 2017-09-20  Jeff Law  <law@redhat.com>
3961         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
3962         thinko in stack clash protection support.
3964         * explow.c (compute_stack_clash_protection_loop_data): Use
3965         CONST_INT_P instead of explicit test.  Verify object is a
3966         CONST_INT_P before looking at INTVAL.
3967         (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
3968         instead of explicit test.
3970 2017-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
3972         PR target/77687
3973         * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
3974         address instead of to r1 and r11.
3976 2017-09-20  Sebastian Peryt  <sebastian.peryt@intel.com>
3978         * config.gcc: Support "knm".
3979         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
3980         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
3981         PROCESSOR_KNM.
3982         * config/i386/i386.c (m_KNM): Define.
3983         (processor_target_table): Add "knm".
3984         (PTA_KNM): Define.
3985         (ix86_option_override_internal): Add "knm".
3986         (ix86_issue_rate): Add PROCESSOR_KNM.
3987         (ix86_adjust_cost): Ditto.
3988         (ia32_multipass_dfa_lookahead): Ditto.
3989         (get_builtin_code_for_version): Handle PROCESSOR_KNM.
3990         (fold_builtin_cpu): Add M_INTEL_KNM.
3991         * config/i386/i386.h (processor_costs): Define TARGET_KNM.
3992         (processor_type): Add PROCESSOR_KNM.
3993         * config/i386/x86-tune.def: Add m_KNM.
3994         * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
3996 2017-09-20  Richard Biener  <rguenther@suse.de>
3998         PR tree-optimization/80213
3999         * graphite-scop-detection.c (trivially_empty_bb_p): Labels
4000         are allowed in empty BBs as well.
4001         (canonicalize_loop_closed_ssa): Also look for other complex
4002         edges.
4003         (scop_detection::get_sese): Include the loop-closed PHI block
4004         in loop SESEs.
4005         (scop_detection::merge_sese): Remove code adding extra blocks.
4006         (scop_detection::region_has_one_loop): Adjust for get_sese changes.
4007         (build_scops): Assert the final returned scop is invalid.
4009 2017-09-20  Richard Biener  <rguenther@suse.de>
4011         PR tree-optimization/82264
4012         * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
4013         for GIMPLE_CONDs.
4014         (vn_phi_lookup): Likewise.
4015         (vn_phi_insert): Likewise.
4017 2017-09-20  Jakub Jelinek  <jakub@redhat.com>
4019         * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
4020         that fits into uhwi or shwi, add DW_AT_const_value regardless
4021         of early_dwarf without going through RTL, using add_AT_unsigned
4022         or add_AT_int.
4024         * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
4025         (DEBUG_LTO_ABBREV_SECTION): Likewise.
4026         (DEBUG_LTO_MACINFO_SECTION): Likewise.
4027         (DEBUG_MACRO_SECTION): Likewise.
4028         (DEBUG_LTO_MACRO_SECTION): Likewise.
4029         (DEBUG_STR_DWO_SECTION): Likewise.
4030         (DEBUG_LTO_STR_DWO_SECTION): Likewise.
4031         (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
4032         (DEBUG_LTO_DWO_LINE_SECTION): Define.
4033         (DEBUG_LTO_LINE_STR_SECTION): Define.
4034         (init_sections_and_labels): Initialize debug_line_str_section
4035         variable.  Initialize debug_loc_section for -gdwarf-5 to
4036         DEBUG_LOCLISTS_SECTION.  Formatting fixes.
4038 2017-09-20  Richard Biener  <rguenther@suse.de>
4040         * graphite-sese-to-poly.c (extract_affine): Properly handle
4041         POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
4043 2017-09-20  Richard Biener  <rguenther@suse.de>
4045         PR tree-optimization/81373
4046         * graphite-scop-detection.c (build_cross_bb_scalars_def):
4047         Force SESE live-out defs to be handled even if they are
4048         scev_analyzable_p.
4050 2017-09-19  Jeff Law  <law@redhat.com>
4052         * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
4053         nothing for stack adjustments with REG_STACK_CHECK.
4054         * sched-deps.c (parse_add_or_inc): Reject insns with
4055         REG_STACK_CHECK from dependency breaking.
4056         * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
4057         (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
4058         * reg-notes.def (STACK_CHECK): New note.
4060         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
4061         (ix86_expand_prologue): Dump stack clash info as needed.
4062         Call ix86_adjust_stack_and_probe_stack_clash as needed.
4064         * function.c (dump_stack_clash_frame_info): New function.
4065         * function.h (dump_stack_clash_frame_info): Prototype.
4066         (enum stack_clash_probes): New enum.
4068         * config/alpha/alpha.c (alpha_expand_prologue): Also check
4069         flag_stack_clash_protection.
4070         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
4071         (arm_expand_prologue, thumb1_expand_prologue): Likewise.
4072         (arm_frame_pointer_required): Likewise.
4073         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
4074         (ia64_expand_prologue): Likewise.
4075         * config/mips/mips.c (mips_expand_prologue): Likewise.
4076         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
4077         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4078         (sparc_flat_expand_prologue): Likewise.
4079         * config/spu/spu.c (spu_expand_prologue): Likewise.
4081         * explow.c: Include "params.h".
4082         (anti_adjust_stack_and_probe_stack_clash): New function.
4083         (get_stack_check_protect): Likewise.
4084         (compute_stack_clash_protection_loop_data): Likewise.
4085         (emit_stack_clash_protection_loop_start): Likewise.
4086         (emit_stack_clash_protection_loop_end): Likewise.
4087         (allocate_dynamic_stack_space): Use get_stack_check_protect.
4088         Use anti_adjust_stack_and_probe_stack_clash.
4089         * explow.h (compute_stack_clash_protection_loop_data): Prototype.
4090         (emit_stack_clash_protection_loop_start): Likewise.
4091         (emit_stack_clash_protection_loop_end): Likewise.
4092         * rtl.h (get_stack_check_protect): Prototype.
4093         * target.def (stack_clash_protection_final_dynamic_probe): New hook.
4094         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
4095         * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
4096         Prototype.
4097         * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
4098         Add @hook.
4099         * doc/tm.texi: Rebuilt.
4100         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
4101         get_stack_check_protect.
4102         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
4103         * config/arm/arm.c (arm_expand_prologue): Likewise.
4104         (arm_frame_pointer_required): Likewise.
4105         * config/i386/i386.c (ix86_expand_prologue): Likewise.
4106         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
4107         * config/mips/mips.c (mips_expand_prologue): Likewise.
4108         * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
4109         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
4110         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4111         (sparc_flat_expand_prologue): Likewise.
4113         * common.opt (-fstack-clash-protection): New option.
4114         * flag-types.h (enum stack_check_type): Note difference between
4115         -fstack-check= and -fstack-clash-protection.
4116         * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
4117         (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
4118         * toplev.c (process_options): Issue warnings/errors for cases
4119         not handled with -fstack-clash-protection.
4120         * doc/invoke.texi (-fstack-clash-protection): Document new option.
4121         (-fstack-check): Note additional problem with -fstack-check=generic.
4122         Note that -fstack-check is primarily for Ada and refer users
4123         to -fstack-clash-protection for stack-clash-protection.
4124         Document new params for stack clash protection.
4126 2017-09-19  Uros Bizjak  <ubizjak@gmail.com>
4128         * config/i386/i386.c (ix86_split_long_move): Do not handle
4129         address used for LEA in a special way.
4131 2017-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
4133         * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
4135 2017-09-19  Martin Sebor  <msebor@redhat.com>
4137         PR c/81854
4138         * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
4139         of incompatible types.
4141 2017-09-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
4143         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
4144         for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
4145         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4146         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
4148 2017-09-19  Richard Biener  <rguenther@suse.de>
4150         PR tree-optimization/82244
4151         * tree-vrp.c (remove_range_assertions): Do not propagate
4152         a constant to abnormals but replace the assert with a copy.
4154 2017-09-19  Alexander Monakov  <amonakov@ispras.ru>
4156         PR rtl-optimization/57878
4157         PR rtl-optimization/68988
4158         * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
4159         avoidance test involving non_reload_pseudos.  Move frequency test
4160         below the general fragmentation avoidance test.
4162 2017-09-19  Richard Biener  <rguenther@suse.de>
4164         PR tree-optimization/69728
4165         * graphite-sese-to-poly.c (schedule_error): New global.
4166         (add_loop_schedule): Handle empty domain by failing the
4167         schedule.
4168         (build_original_schedule): Handle schedule_error.
4170 2017-09-19  Richard Biener  <rguenther@suse.de>
4172         * graphite-scop-detection.c (scop_detection::can_represent_loop):
4173         Do not iterate to sibling loops but only to siblings of inner
4174         loops.
4176 2017-09-18  Andreas Schwab  <schwab@linux-m68k.org>
4178         PR target/81613
4179         * config/m68k/m68k.md (moveq feeding equality comparison): Check
4180         that the registers are different.
4182 2017-09-18  Uros Bizjak  <ubizjak@gmail.com>
4184         * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
4185         to processor_model and "amdfam17h" to arch_names_table.
4186         * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
4188 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
4190         PR c/82234
4191         * doc/extend.texi: Add @findex entry for __builtin_shuffle.
4193 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
4194             Alan Hayward  <alan.hayward@arm.com>
4195             David Sherwood  <david.sherwood@arm.com>
4197         * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
4198         with a vec_info *.
4199         * tree-vect-loop.c (vect_analyze_loop_operations): Update call
4200         accordingly.
4201         * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
4202         parameter.  Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
4203         vect_schedule_slp_instance.
4204         (vect_slp_analyze_operations): Replace parameters with a vec_info *.
4205         Update call to vect_slp_analyze_node_operations.  Simplify return
4206         value.
4207         (vect_slp_analyze_bb_1): Update call accordingly.
4208         (vect_schedule_slp_instance): Remove vectorization_factor parameter.
4209         Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
4210         (vect_schedule_slp): Update call accordingly.
4212 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
4213             Alan Hayward  <alan.hayward@arm.com>
4214             David Sherwood  <david.sherwood@arm.com>
4216         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
4217         with types that aren't in fact scalar.
4219 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
4221         * tree-vect-slp.c (vect_record_max_nunits): New function,
4222         split out from...
4223         (vect_build_slp_tree_1): ...here.
4224         (vect_build_slp_tree_2): Call it for phis too.
4226 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
4228         * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
4229         to vect_get_vec_def_for_operand when getting the mask operand.
4231 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
4232             Alan Hayward  <alan.hayward@arm.com>
4233             David Sherwood  <david.sherwood@arm.com>
4235         * tree-vect-loop.c (vectorizable_live_operation): Fix type of
4236         bitstart.
4238 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
4239             Alan Hayward  <alan.hayward@arm.com>
4240             David Sherwood  <david.sherwood@arm.com>
4242         * tree-vect-loop.c (vectorizable_live_operation): Fix element size
4243         calculation for vector booleans.
4245 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
4246             Alan Hayward  <alan.hayward@arm.com>
4247             David Sherwood  <david.sherwood@arm.com>
4249         * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
4250         split out from...
4251         (vect_transform_stmt): ...here.
4252         (vect_analyze_stmt): Use it instead of calling
4253         vectorizable_live_operation directly.
4255 2017-09-18  Cesar Philippidis  <cesar@codesourcery.com>
4257         * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
4258         non-SIMT targets in acc vector loops.
4260 2017-09-18  Claudiu Zissulescu  <claziss@synopsys.com>
4262         * configure.ac: Add arc and check if assembler supports gdwarf2.
4263         * configure: Regenerate.
4265 2017-09-18  Richard Biener  <rguenther@suse.de>
4267         PR tree-optimization/82220
4268         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
4269         epilogue niters from the min_profitable_iters compute.
4271 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
4273         PR target/82145
4274         * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
4275         changes.  Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
4276         (ix86_init_pic_reg): Revert 2017-09-01 changes.
4278 2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
4280         PR target/81361
4281         * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
4282         switching to a new text section.
4284 2017-09-18  Richard Biener  <rguenther@suse.de>
4286         * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
4287         Simplify.
4288         (build_alias_set): Reject aliases with no access function.
4290 2017-09-18  Richard Biener  <rguenther@suse.de>
4292         PR tree-optimization/79622
4293         * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
4294         handle PHIs.
4295         (build_cross_bb_scalars_use): Likewise.
4297 2017-09-18  Pierre-Marie de Rodat  <derodat@adacore.com>
4299         * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
4301 2017-09-18  Alan Modra  <amodra@gmail.com>
4303         PR target/81996
4304         * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
4305         stack_pointer_rtx for count 0.  Update comments.  Break up
4306         large rtl expression.
4308 2017-09-17  Daniel Santos  <daniel.santos@pobox.com>
4310         * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
4311         Increase to 20 bytes.
4312         (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
4313         (xlogue_layout::get_stub_name): Modify to select the appropairate sse
4314         or avx version of the stub.
4316 2017-09-17  H.J. Lu  <hongjiu.lu@intel.com>
4318         PR target/82166
4319         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
4320         compute the minimum stack alignment.  Also update preferred stack
4321         boundary for leaf functions.
4323 2017-09-16  Richard Sandiford  <richard.sandiford@linaro.org>
4325         PR tree-optimization/82228
4326         * tree-vect-loop.c (vectorizable_live_operation): Move initialization
4327         of ncopies.
4329 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
4331         * common/config/nds32/nds32-common.c
4332         (nds32_option_optimization_table): Refine formatting.
4333         (nds32_option_optimization_table): Use -fsched-pressure and
4334         -fomit-frame-pointer for specific optimization level.
4336 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
4338         * config/nds32/nds32.c: Refine formatting and comments.
4339         * config/nds32/nds32.h: Likewise.
4340         * config/nds32/nds32.md: Likewise.
4341         * config/nds32/nds32-cost.c: Likewise.
4342         * config/nds32/nds32-isr.c: Likewise.
4343         * config/nds32/nds32-md-auxiliary.c: Likewise.
4344         * config/nds32/nds32-multiple.md: Likewise.
4345         * config/nds32/nds32-predicates.c: Likewise.
4347 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
4348             Jakub Jelinek  <jakub@redhat.com>
4350         Add support for -std=c++2a.
4351         * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
4352         or -std=gnu+2a.
4353         * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
4355 2017-09-15  Steve Ellcey  <sellcey@cavium.com>
4357         PR target/82066
4358         * doc/extend.texi (Common Function Attributes): Add 
4359         references to ARM, AArch64, and S/390 specific attributes.
4360         (Function Specific Option Pragmas): Add AArch64 and S/390
4361         to list of back ends that support the target pragma.
4363 2017-09-15  Nathan Sidwell  <nathan@acm.org>
4365         * doc/standards.texi: Fix C++17 description.  Update URLs for
4366         C++11 & 14.
4368 2017-09-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4370         * common.opt (Wcast-align=strict): New warning option.
4371         * doc/invoke.texi: Document -Wcast-align=strict. 
4373 2017-09-15  Pierre-Marie de Rodat  <derodat@adacore.com>
4375         * cgraph.h (cgraph_thunk_info): Add comments.
4376         * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
4377         assert for VIRTUAL_* arguments stricter.
4379 2017-09-15  Jackson Woodruff  <jackson.woodruff@arm.com>
4381         PR tree-optimization/71026
4382         * match.pd: Move RDIV patterns from fold-const.c
4383         * fold-const.c (distribute_real_division): Removed.
4384         (fold_binary_loc): Remove calls to distribute_real_divison.
4386 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
4388         * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
4389         c++1z and gnu++1z as deprecated.  Change other references to
4390         -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
4391         Change -Wc++1z-compat to -Wc++17-compat.
4392         * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
4393         * dwarf2out.c (highest_c_language): Handle C++17.
4394         (gen_compile_unit_die): Likewise.
4396 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
4398         PR rtl-optimization/82192
4399         * combine.c (make_extraction): Don't look through non-paradoxical
4400         SUBREGs or TRUNCATE if pos + len is or might be bigger than
4401         inner's mode.
4403 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
4404             Alan Hayward  <alan.hayward@arm.com>
4405             David Sherwood  <david.sherwood@arm.com>
4407         * target.def (function_arg_offset): New hook.
4408         * targhooks.h (default_function_arg_offset): Declare.
4409         * targhooks.c (default_function_arg_offset): New function.
4410         * function.c (locate_and_pad_parm): Use
4411         targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
4412         * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
4413         (TARGET_FUNCTION_ARG_OFFSET): ...this.
4414         * doc/tm.texi: Regenerate.
4415         * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
4416         * config/spu/spu.c (spu_function_arg_offset): New function.
4417         (TARGET_FUNCTION_ARG_OFFSET): Redefine.
4418         * system.h (FUNCTION_ARG_OFFSET): Poison.
4420 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
4421             Alan Hayard  <alan.hayward@arm.com>
4422             David Sherwood  <david.sherwood@arm.com>
4424         * target.def (truly_noop_truncation): New hook.
4425         (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
4426         than TRULY_NOOP_TRUNCATION.
4427         * hooks.h (hook_bool_uint_uint_true): Declare.
4428         * hooks.c (hook_bool_uint_uint_true): New function.
4429         * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
4430         (TARGET_TRULY_NOOP_TRUNCATION): ...this.
4431         * doc/tm.texi: Regenerate.
4432         * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
4433         rather than TRULY_NOOP_TRUNCATION in comments.
4434         (simplify_comparison): Likewise.
4435         (record_truncated_value): Likewise.
4436         * expmed.c (extract_bit_field_1): Likewise.
4437         (extract_split_bit_field): Likewise.
4438         * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
4439         instead of TRULY_NOOP_TRUNCATION.
4440         * function.c (assign_parm_setup_block): Likewise.
4441         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
4442         * rtlhooks.c: Include target.h.
4443         * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
4444         * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
4445         * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
4446         * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
4447         * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
4448         * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
4449         * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
4450         * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
4451         * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
4452         * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
4453         * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
4454         * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
4455         * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
4456         * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
4457         * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
4458         * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
4459         * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
4460         * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
4461         * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
4462         * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
4463         * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
4464         * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
4465         * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
4466         * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
4467         * config/mips/mips.c (mips_truly_noop_truncation): New function.
4468         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
4469         * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
4470         rather than TRULY_NOOP_TRUNCATION in comments.
4471         * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
4472         * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
4473         * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
4474         * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
4475         * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
4476         * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
4477         * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
4478         * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
4479         * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
4480         * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
4481         * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
4482         * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
4483         rather than TRULY_NOOP_TRUNCATION in comments.
4484         * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
4485         * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
4486         * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
4487         * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
4488         * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
4489         TRULY_NOOP_TRUNCATION condition.
4490         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4491         (TRULY_NOOP_TRUNCATION): Delete.
4492         * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
4493         * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
4494         * config/spu/spu.c (spu_truly_noop_truncation): New function.
4495         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
4496         * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
4497         * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
4498         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
4499         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
4500         * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
4501         rather than TRULY_NOOP_TRUNCATION in comments.
4502         * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
4503         * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
4504         * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
4505         * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
4506         * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
4507         * system.h (TRULY_NOOP_TRUNCATION): Poison.
4509 2017-09-15  Christophe Lyon  <christophe.lyon@linaro.org>
4511         PR target/67591
4512         * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
4513         (*cmp_ior): Likewise.
4514         (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
4515         (*ior_scc_scc_cmp): Likewise.
4516         (*and_scc_scc): Likewise.
4517         (*and_scc_scc_cmp): Likewise.
4519 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
4520             Alan Hayard  <alan.hayward@arm.com>
4521             David Sherwood  <david.sherwood@arm.com>
4523         * target.def (can_change_mode_class): New hook.
4524         (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
4525         (hard_regno_nregs): Likewise.
4526         * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
4527         * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
4528         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
4529         (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
4530         (LOAD_EXTEND_OP): Update accordingly.
4531         * doc/tm.texi: Regenerate.
4532         * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
4533         CANNOT_CHANGE_MODE_CLASS.
4534         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
4535         (REG_CAN_CHANGE_MODE_P): ...this new macro.
4536         * combine.c (simplify_set): Update accordingly.
4537         * emit-rtl.c (validate_subreg): Likewise.
4538         * recog.c (general_operand): Likewise.
4539         * regcprop.c (mode_change_ok): Likewise.
4540         * reload1.c (choose_reload_regs): Likewise.
4541         (inherit_piecemeal_p): Likewise.
4542         * rtlanal.c (simplify_subreg_regno): Likewise.
4543         * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
4544         instead of CANNOT_CHANGE_MODE_CLASS.
4545         (reload_cse_simplify_operands): Likewise.
4546         * reload.c (push_reload): Use targetm.can_change_mode_class
4547         instead of CANNOT_CHANGE_MODE_CLASS.
4548         (push_reload): Likewise.  Also use REG_CAN_CHANGE_MODE_P instead of
4549         REG_CANNOT_CHANGE_MODE_P.
4550         * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4551         * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
4552         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4553         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4554         * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4555         (arm_can_change_mode_class): New function.
4556         * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
4557         than CANNOT_CHANGE_MODE_CLASS in comments.
4558         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4559         * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
4560         * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
4561         (ix86_can_change_mode_class): ...this new function, inverting the
4562         sense of the return value.
4563         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4564         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4565         * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4566         (ia64_can_change_mode_class): New function.
4567         * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4568         * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
4569         * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
4570         (m32c_can_change_mode_class): ...this new function, inverting the
4571         sense of the return value.
4572         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4573         * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4574         * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
4575         * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
4576         (mips_can_change_mode_class): ...this new function, inverting the
4577         sense of the return value.
4578         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4579         * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4580         * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4581         (msp430_can_change_mode_class): New function.
4582         * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4583         * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
4584         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4585         * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4586         * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4587         * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
4588         * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4589         (pa_cannot_change_mode_class): Replace with...
4590         (pa_can_change_mode_class): ...this new function, inverting the
4591         sense of the return value.
4592         (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
4593         than CANNOT_CHANGE_MODE_CLASS in comments.
4594         * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4595         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
4596         * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4597         (pdp11_cannot_change_mode_class): Replace with...
4598         (pdp11_can_change_mode_class): ...this new function, inverting the
4599         sense of the return value.
4600         * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4601         * config/powerpcspe/powerpcspe-protos.h
4602         (rs6000_cannot_change_mode_class_ptr): Delete.
4603         * config/powerpcspe/powerpcspe.c
4604         (rs6000_cannot_change_mode_class_ptr): Delete.
4605         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4606         (rs6000_option_override_internal): Assign to
4607         targetm.can_change_mode_class instead of
4608         rs6000_cannot_change_mode_class_ptr.
4609         (rs6000_cannot_change_mode_class): Replace with...
4610         (rs6000_can_change_mode_class): ...this new function, inverting the
4611         sense of the return value.
4612         (rs6000_debug_cannot_change_mode_class): Replace with...
4613         (rs6000_debug_can_change_mode_class): ...this new function.
4614         * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4615         * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
4616         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4617         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4618         * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
4619         Delete.
4620         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
4621         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4622         (rs6000_option_override_internal): Assign to
4623         targetm.can_change_mode_class instead of
4624         rs6000_cannot_change_mode_class_ptr.
4625         (rs6000_cannot_change_mode_class): Replace with...
4626         (rs6000_can_change_mode_class): ...this new function, inverting the
4627         sense of the return value.
4628         (rs6000_debug_cannot_change_mode_class): Replace with...
4629         (rs6000_debug_can_change_mode_class): ...this new function.
4630         * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4631         * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
4632         * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
4633         (s390_can_change_mode_class): ...this new function, inverting the
4634         sense of the return value.
4635         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4636         * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4637         * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
4638         * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4639         (sh_cannot_change_mode_class): Replace with...
4640         (sh_can_change_mode_class): ...this new function, inverting the
4641         sense of the return value.
4642         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4643         * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4644         (sparc_can_change_mode_class): New function.
4645         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4646         * config/spu/spu.c (spu_can_change_mode_class): New function.
4647         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4648         * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4649         * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4650         (visium_can_change_mode_class): New function.
4651         * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
4653 2017-09-15  Richard Biener  <rguenther@suse.de>
4655         PR tree-optimization/82217
4656         * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
4657         but not undefined case.
4659 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
4661         PR target/82145
4662         * postreload.c (reload_cse_simplify_operands): Skip
4663         NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
4665 2017-09-15  Richard Biener  <rguenther@suse.de>
4667         PR tree-optimization/68823
4668         * graphite-scop-detection.c (build_alias_set): If we have a
4669         possible dependence check whether we can handle them by just
4670         looking at the DRs DR_ACCESS_FNs.
4671         (build_scops): If build_alias_set fails, fail the SCOP.
4673 2017-09-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4675         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
4676         to support float128 built-in functions that require the ISA 3.0
4677         hardware.
4678         (BU_FLOAT128_3_HW): Likewise.
4679         (SQRTF128): Add support for the IEEE 128-bit square root and fma
4680         built-in functions.
4681         (FMAF128): Likewise.
4682         (FMAQ): Likewise.
4683         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
4684         support for built-in functions that need the ISA 3.0 IEEE 128-bit
4685         floating point instructions.
4686         (rs6000_invalid_builtin): Likewise.
4687         (rs6000_builtin_mask_names): Likewise.
4688         * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
4689         (RS6000_BTM_FLOAT128_HW): Likewise.
4690         (RS6000_BTM_COMMON): Likewise.
4691         * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
4692         function.
4693         * doc/extend.texi (RS/6000 built-in functions): Document the
4694         IEEE 128-bit floating point square root and fused multiply-add
4695         built-in functions.
4697 2017-09-14  Pat Haugen  <pthaugen@us.ibm.com>
4699         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
4700         reg (r2) isn't in the set of registers defined in the prologue.
4702 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4703             Alan Hayward  <alan.hayward@arm.com>
4704             David Sherwood  <david.sherwood@arm.com>
4706         * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
4707         (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
4708         (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
4709         (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
4710         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
4711         accordingly.
4712         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
4713         max_vectorization_factor.
4714         (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
4716 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4717             Alan Hayward  <alan.hayward@arm.com>
4718             David Sherwood  <david.sherwood@arm.com>
4720         * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
4721         (vect_worthwhile_without_simd_p): Declare.
4722         * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
4723         (vectorizable_reduction): Use it.
4724         * tree-vect-stmts.c (vectorizable_shift): Likewise.
4725         (vectorizable_operation): Likewise.
4727 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4728             Alan Hayward  <alan.hayward@arm.com>
4729             David Sherwood  <david.sherwood@arm.com>
4731         * tree-vectorizer.h (vect_get_num_copies): New function.
4732         * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
4733         * tree-vect-loop.c (vectorizable_reduction): Likewise.
4734         (vectorizable_induction): Likewise.
4735         (vectorizable_live_operation): Likewise.
4736         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
4737         (vectorizable_bswap): Likewise.
4738         (vectorizable_call): Likewise.
4739         (vectorizable_conversion): Likewise.
4740         (vectorizable_assignment): Likewise.
4741         (vectorizable_shift): Likewise.
4742         (vectorizable_operation): Likewise.
4743         (vectorizable_store): Likewise.
4744         (vectorizable_load): Likewise.
4745         (vectorizable_condition): Likewise.
4746         (vectorizable_comparison): Likewise.
4747         (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
4749 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4750             Alan Hayward  <alan.hayward@arm.com>
4751             David Sherwood  <david.sherwood@arm.com>
4753         * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
4754         of vect_init_vector.
4756 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4757             Alan Hayward  <alan.hayward@arm.com>
4758             David Sherwood  <david.sherwood@arm.com>
4760         * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
4761         an inline wrapper that provides a location.
4762         (gimple_build_vector): Likewise.
4763         * gimple-fold.c (gimple_build_vector_from_val): New function.
4764         (gimple_build_vector): Likewise.
4765         * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
4766         functions to build the initial value.  Always return a gimple value.
4767         (get_initial_defs_for_reduction): Likewise.  Only compute
4768         neutral_vec once.
4769         (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
4770         vect_init_vector on the results from get_initial_def(s)_for_reduction.
4771         (vectorizable_induction): Use gimple_build_vector rather than
4772         vect_init_vector.
4774 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4775             Alan Hayward  <alan.hayward@arm.com>
4776             David Sherwood  <david.sherwood@arm.com>
4778         * target.h (vec_perm_indices): New typedef.
4779         (auto_vec_perm_indices): Likewise.
4780         * optabs-query.h: Include target.h
4781         (can_vec_perm_p): Take a vec_perm_indices *.
4782         * optabs-query.c (can_vec_perm_p): Likewise.
4783         (can_mult_highpart_p): Update accordingly.  Use auto_vec_perm_indices.
4784         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
4785         * tree-vect-generic.c (lower_vec_perm): Likewise.
4786         * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
4787         (vect_grouped_load_supported): Likewise.
4788         (vect_shift_permute_load_chain): Likewise.
4789         (vect_permute_store_chain): Use auto_vec_perm_indices.
4790         (vect_permute_load_chain): Likewise.
4791         * fold-const.c (fold_vec_perm): Take vec_perm_indices.
4792         (fold_ternary_loc): Update accordingly.  Use auto_vec_perm_indices.
4793         Update uses of can_vec_perm_p.
4794         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
4795         mode with a number of elements.  Take a vec_perm_indices *.
4796         (vect_create_epilog_for_reduction): Update accordingly.
4797         Use auto_vec_perm_indices.
4798         (have_whole_vector_shift): Likewise.  Update call to can_vec_perm_p.
4799         * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
4800         (vect_transform_slp_perm_load): Likewise.
4801         (vect_schedule_slp_instance): Use auto_vec_perm_indices.
4802         * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
4803         (vect_gen_perm_mask_checked): Likewise.
4804         * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
4805         (vect_gen_perm_mask_checked): Likewise.
4806         (vectorizable_mask_load_store): Use auto_vec_perm_indices.
4807         (vectorizable_store): Likewise.
4808         (vectorizable_load): Likewise.
4809         (perm_mask_for_reverse): Likewise.  Update call to can_vec_perm_p.
4810         (vectorizable_bswap): Likewise.
4812 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4813             Alan Hayward  <alan.hayward@arm.com>
4814             David Sherwood  <david.sherwood@arm.com>
4816         * tree.h (build_vector): Take a vec<tree> instead of a tree *.
4817         * tree.c (build_vector): Likewise.
4818         (build_vector_from_ctor): Update accordingly.
4819         (build_vector_from_val): Likewise.
4820         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
4821         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
4822         * tree-vect-generic.c (add_rshift): Likewise.
4823         (expand_vector_divmod): Likewise.
4824         (optimize_vector_constructor): Likewise.
4825         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4826         (vect_transform_slp_perm_load): Likewise.
4827         (vect_schedule_slp_instance): Likewise.
4828         * tree-vect-stmts.c (vectorizable_bswap): Likewise.
4829         (vectorizable_call): Likewise.
4830         (vect_gen_perm_mask_any): Likewise.  Add elements in order.
4831         * expmed.c (make_tree): Likewise.
4832         * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
4833         a vector passed to build_vector.
4834         (fold_convert_const): Likewise.
4835         (exact_inverse): Likewise.
4836         (fold_ternary_loc): Likewise.
4837         (fold_relational_const): Likewise.
4838         (const_binop): Likewise.  Use VECTOR_CST_ELT directly when operating
4839         on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
4840         (const_unop): Likewise.  Store the reduction accumulator in a
4841         variable rather than an array.
4842         (vec_cst_ctor_to_array): Take the number of elements as a parameter.
4843         (fold_vec_perm): Update calls accordingly.  Use auto_vec<tree> for
4844         the new vector, rather than constructing it after the input arrays.
4845         (native_interpret_vector): Use auto_vec<tree> when building
4846         a vector passed to build_vector.  Add elements in order.
4847         * tree-vect-loop.c (get_initial_defs_for_reduction): Use
4848         auto_vec<tree> when building a vector passed to build_vector.
4849         (vect_create_epilog_for_reduction): Likewise.
4850         (vectorizable_induction): Likewise.
4851         (get_initial_def_for_reduction): Likewise.  Fix indentation of
4852         case statements.
4853         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
4854         to a vec<tree> *.
4855         (sparc_fold_builtin): Use auto_vec<tree> when building a vector
4856         passed to build_vector.
4858 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4859             Alan Hayward  <alan.hayward@arm.com>
4860             David Sherwood  <david.sherwood@arm.com>
4862         * tree-core.h (tree_base::u): Add an "nelts" field.
4863         (tree_vector): Use VECTOR_CST_NELTS as the length.
4864         * tree.c (tree_size): Likewise.
4865         (make_vector): Initialize VECTOR_CST_NELTS.
4866         * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
4867         * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
4868         TYPE_VECTOR_SUBPARTS.
4869         * expr.c (const_vector_mask_from_tree): Consistently use "units"
4870         as the number of units, setting it from VECTOR_CST_NELTS.
4871         (const_vector_from_tree): Likewise.
4872         * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
4873         TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
4874         (fold_negate_expr_1): Likewise.
4875         (fold_convert_const): Likewise.
4876         (const_binop): Likewise.  Differentiate the number of output and
4877         input elements.
4878         (const_unop): Likewise.
4879         (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
4880         in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
4881         in cases that did the opposite.
4883 2017-09-14  Richard Biener  <rguenther@suse.de>
4885         * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
4886         to VN_TOP.
4888 2017-09-14  Eric Botcazou  <ebotcazou@adacore.com>
4890         * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
4892 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
4894         PR target/81325
4895         * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
4896         if and where to split a bb, except for splitting before debug insn
4897         sequences followed by non-label real insn.  Delete debug insns
4898         in between basic blocks.
4900         * combine.c (make_compound_operation_int): Formatting fixes.
4902         * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
4903         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4904         * config/netbsd.h (LINK_EH_SPEC): Likewise.
4905         * config/sol2.h (LINK_EH_SPEC): Likewise.
4906         * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4907         * config/s390/linux.h (LINK_SPEC): Likewise.
4908         * config/freebsd.h (LINK_EH_SPEC): Likewise.
4909         * config/openbsd.h (LINK_EH_SPEC): Likewise.
4910         * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4911         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
4912         * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
4913         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4914         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
4915         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
4917 2017-09-13  Jakub Jelinek  <jakub@redhat.com>
4919         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
4920         support.
4921         (ENDFILE_LINUX_SPEC): Likewise.
4922         (LINK_EH_SPEC): Likewise.
4923         * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
4924         (LINK_OS_LINUX_SPEC32): Likewise.
4925         (LINK_OS_LINUX_SPEC64): Likewise.
4926         * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
4927         (LINK_OS_LINUX_SPEC): Likewise.
4929 2017-09-13  Martin Liska  <mliska@suse.cz>
4931         PR middle-end/82154
4932         * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
4933         CASE_HIGH is NULL_TREE.
4935 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
4936             Alan Hayward  <alan.hayward@arm.com>
4937             David Sherwood  <david.sherwood@arm.com>
4939         * target.def (secondary_memory_needed): New hook.
4940         (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
4941         instead of SECONDARY_MEMORY_NEEDED.
4942         (secondary_memory_needed_mode): Likewise.
4943         * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
4944         * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
4945         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
4946         (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
4947         (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
4948         * doc/tm.texi: Regenerate.
4949         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
4950         * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
4951         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4952         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
4953         * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
4954         * config/i386/i386.c (inline_secondary_memory_needed): Put the
4955         mode argument first and change the reg_class arguments to reg_class_t.
4956         (ix86_secondary_memory_needed): Likewise.  Remove the strict parameter.
4957         Make static.  Update the call to inline_secondary_memory_needed.
4958         (ix86_register_move_cost): Update the call to
4959         inline_secondary_memory_needed.
4960         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4961         * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
4962         definition.
4963         * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
4964         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
4965         in comment.
4966         * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
4967         * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
4968         * config/mips/mips.c (mips_secondary_memory_needed): Make static
4969         and match hook interface.  Add comment from mips.h.
4970         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4971         * config/mmix/mmix.md (truncdfsf2): Refer to
4972         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
4973         in comment.
4974         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
4975         (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
4976         * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4977         (pa_secondary_memory_needed): New function.
4978         * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
4979         * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
4980         * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4981         (pdp11_secondary_memory_needed): Make static and match hook interface.
4982         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
4983         * config/powerpcspe/powerpcspe-protos.h
4984         (rs6000_secondary_memory_needed_ptr): Delete.
4985         * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
4986         Delete.
4987         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4988         (rs6000_option_override_internal): Assign to
4989         targetm.secondary_memory_needed rather than
4990         rs6000_secondary_memory_needed_ptr.
4991         (rs6000_secondary_memory_needed): Match hook interface.
4992         (rs6000_debug_secondary_memory_needed): Likewise.
4993         * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
4994         * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
4995         (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
4996         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4997         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
4998         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
4999         Delete.
5000         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
5001         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5002         (rs6000_option_override_internal): Assign to
5003         targetm.secondary_memory_needed rather than
5004         rs6000_secondary_memory_needed_ptr.
5005         (rs6000_secondary_memory_needed): Match hook interface.
5006         (rs6000_debug_secondary_memory_needed): Likewise.
5007         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
5008         * config/s390/s390.c (s390_secondary_memory_needed): New function.
5009         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5010         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
5011         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5012         (sparc_secondary_memory_needed): New function.
5013         * lra-constraints.c (check_and_process_move): Refer to
5014         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
5015         in comment.
5016         (curr_insn_transform): Likewise.
5017         (process_alt_operands): Use targetm.secondary_memory_needed
5018         instead of TARGET_SECONDARY_MEMORY_NEEDED.
5019         (check_secondary_memory_needed_p): Likewise.
5020         (choose_split_class): Likewise.
5021         * reload.c: Unconditionally include code that was previously
5022         conditional on SECONDARY_MEMORY_NEEDED.
5023         (push_secondary_reload): Use targetm.secondary_memory_needed
5024         instead of TARGET_SECONDARY_MEMORY_NEEDED.
5025         (push_reload): Likewise.
5026         * reload1.c: Unconditionally include code that was previously
5027         conditional on SECONDARY_MEMORY_NEEDED.
5028         (choose_reload_regs): Use targetm.secondary_memory_needed
5029         instead of TARGET_SECONDARY_MEMORY_NEEDED.
5030         (gen_reload): Likewise.
5031         * system.h (SECONDARY_MEMORY_NEEDED): Poison.
5033 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
5034             Alan Hayward  <alan.hayward@arm.com>
5035             David Sherwood  <david.sherwood@arm.com>
5037         * target.def (secondary_memory_needed_mode): New hook:
5038         * targhooks.c (default_secondary_memory_needed_mode): Declare.
5039         * targhooks.h (default_secondary_memory_needed_mode): New function.
5040         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
5041         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
5042         * doc/tm.texi: Regenerate.
5043         * lra-constraints.c (check_and_process_move): Use
5044         targetm.secondary_memory_needed_mode instead of
5045         TARGET_SECONDARY_MEMORY_NEEDED_MODE.
5046         (curr_insn_transform): Likewise.
5047         * reload.c (get_secondary_mem): Likewise.
5048         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5049         * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
5050         function.
5051         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5052         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5053         * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
5054         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5055         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
5056         Delete.
5057         * config/powerpcspe/powerpcspe-protos.h
5058         (rs6000_secondary_memory_needed_mode): Delete.
5059         * config/powerpcspe/powerpcspe.c
5060         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5061         (rs6000_secondary_memory_needed_mode): Make static.
5062         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5063         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
5064         Delete.
5065         * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
5066         Redefine.
5067         (rs6000_secondary_memory_needed_mode): Make static.
5068         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5069         * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
5070         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5071         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5072         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
5073         Redefine.
5074         (sparc_secondary_memory_needed_mode): New function.
5075         * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
5077 2017-09-13  Jackson Woodruff  <jackson.woodruff@arm.com>
5079         * config/aarch64/constraints.md (Umq): New constraint.
5080         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
5081         Change to use Umq.
5082         (mov<mode>): Update condition.
5084 2017-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5086         * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
5087         when bitposition is the same.
5089 2017-09-13  Richard Biener  <rguenther@suse.de>
5091         * dwarf2out.c (output_die_symbol): Remove.
5092         (output_die): Do not output a DIEs symbol.
5094 2017-09-13  Richard Biener  <rguenther@suse.de>
5096         PR middle-end/82128
5097         * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
5098         default-def to avoid breaking iterator update with the weird
5099         interaction with cgraph_update_edges_for_call_stmt_node.
5101 2017-09-13  Richard Biener  <rguenther@suse.de>
5103         * tree-cfg.c (verify_gimple_assign_binary): Add verification
5104         for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
5105         VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
5106         (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
5108 2017-09-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
5110         * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
5111         Disable pc relative literal load irrespective of
5112         TARGET_FIX_ERR_A53_84341 for default.
5114 2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>
5116         * config/sparc/sparc.c (output_return): Output the source location of
5117         the insn in the delay slot, if any.
5118         (output_sibcall): Likewise.
5120 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
5122         PR driver/81498
5123         * common.opt (-static-pie): New alias.
5124         (shared): Negate static-pie.
5125         (-no-pie): Update help text.
5126         (-pie): Likewise.
5127         (static-pie): New option.
5128         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
5129         -static-pie support.
5130         (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
5131         (LINK_EH_SPEC): Likewise.
5132         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
5133         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
5134         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
5135         * gcc.c (LINK_COMMAND_SPEC): Likewise.
5136         (init_gcc_specs): Likewise.
5137         (init_spec): Likewise.
5138         (display_help): Update help message for -pie.
5139         * doc/invoke.texi: Update -pie, -no-pie and -static.  Document
5140         -static-pie.
5142 2017-09-12  Wilco Dijkstra  <wdijkstr@arm.com>
5144         * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
5145         (movdi_aarch64): Likewise.
5146         (movti_aarch64): Likewise.
5148 2017-09-12 Simon Wright <simon@pushface.org>
5150         PR target/80204
5151         * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
5152         calculation of the minor version, always output as 0.
5154 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
5156         PR target/82112
5157         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
5158         ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
5159         on it early, rather than manual conversion late.  For
5160         ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
5161         instead of performing manual conversion.
5163 2017-09-12  Carl Love  <cel@us.ibm.com>
5165         * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
5166         vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
5167         vmulouw, vmulosw.
5168         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
5169         VMULOSW): Add definitions.
5170         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5171         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
5172         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
5173         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
5174         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
5176 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
5178         * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
5179         types correctly.
5180         (movti_aarch64): Likewise.
5181         (movdf_aarch64): Likewise.
5182         (movtf_aarch64): Likewise.
5183         (load_pairdi): Likewise.
5184         (store_pairdi): Likewise.
5185         (load_pairdf): Likewise.
5186         (store_pairdf): Likewise.
5187         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
5188         (storewb_pair<GPI:mode>_<P:mode>): Likewise.
5189         (ldr_got_small_<mode>): Likewise.
5190         (ldr_got_small_28k_<mode>): Likewise.
5191         (ldr_got_tiny): Likewise.
5192         * config/aarch64/iterators.md (ldst_sz): New.
5193         (ldpstp_sz): Likewise.
5194         * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
5195         to store_16.
5196         (thunderx_load): Split load_8 to load_16.
5197         * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
5198         load_8 to load_16.
5199         (thunderx2t99_storepair_basic): Split store_8 to store_16.
5200         * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
5201         (xgene1_store_pair): Split store_8 to store_16.
5202         * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
5203         (falkor_st_0_st_sd): Split store_8 to store_16.
5205 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
5207         * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
5208         and store1/2/3/4 to store_4/8/12/16.
5209         * config/aarch64/aarch64.md: Update for rename.
5210         * config/arm/arm.md: Likewise.: Likewise.
5211         * config/arm/arm.c: Likewise.
5212         * config/arm/thumb1.md: Likewise.
5213         * config/arm/thumb2.md: Likewise.
5214         * config/arm/vfp.md: Likewise.
5215         * config/arm/arm-generic.md: Likewise.
5216         * config/arm/arm1020e.md: Likewise.
5217         * config/arm/arm1026ejs.md: Likewise.
5218         * config/arm/arm1136jfs.md: Likewise.
5219         * config/arm/arm926ejs.md: Likewise.
5220         * config/arm/cortex-a15.md: Likewise.
5221         * config/arm/cortex-a17.md: Likewise.
5222         * config/arm/cortex-a5.md: Likewise.
5223         * config/arm/cortex-a53.md: Likewise.
5224         * config/arm/cortex-a57.md: Likewise.
5225         * config/arm/cortex-a7.md: Likewise.
5226         * config/arm/cortex-a8.md: Likewise.
5227         * config/arm/cortex-a9.md: Likewise.
5228         * config/arm/cortex-m4.md: Likewise.
5229         * config/arm/cortex-m7.md: Likewise.
5230         * config/arm/cortex-r4.md: Likewise.
5231         * config/arm/exynos-m1.md: Likewise.
5232         * config/arm/fa526.md: Likewise.
5233         * config/arm/fa606te.md: Likewise.
5234         * config/arm/fa626te.md: Likewise.
5235         * config/arm/fa726te.md: Likewise.
5236         * config/arm/fmp626.md: Likewise.
5237         * config/arm/iwmmxt.md: Likewise.
5238         * config/arm/ldmstm.md: Likewise.
5239         * config/arm/marvell-pj4.md: Likewise.
5240         * config/arm/xgene1.md: Likewise.
5241         * config/aarch64/thunderx.md: Likewise.
5242         * config/aarch64/thunderx2t99.md: Likewise.
5243         * config/aarch64/falkor.md: Likewise.
5245 2017-09-12  Martin Liska  <mliska@suse.cz>
5247         * attribs.c (private_lookup_attribute): New function.
5248         * attribs.h (private_lookup_attribute): Declared here.
5249         (lookup_attribute): Called from this place.
5251 2017-09-12  Richard Biener  <rguenther@suse.de>
5253         PR tree-optimization/82157
5254         * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
5255         stmts with side-effects.
5257 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5258             Alan Hayward  <alan.hayward@arm.com>
5259             David Sherwood <david.sherwood@arm.com>
5261         * target.def (hard_regno_nregs): New hook.
5262         (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
5263         * targhooks.h (default_hard_regno_nregs): Declare.
5264         * targhooks.c (default_hard_regno_nregs): New function.
5265         * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
5266         (TARGET_HARD_REGNO_NREGS): ...this hook.
5267         (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
5268         (CLASS_MAX_NREGS): Likewise.
5269         * doc/tm.texi: Regenerate.
5270         * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
5271         instead of HARD_REGNO_NREGS.
5272         * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
5273         HARD_REGNO_NREGS in the comment.
5274         * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
5275         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
5276         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
5277         Return an unsigned int.
5278         (TARGET_HARD_REGNO_NREGS): Redefine.
5279         * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
5280         * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
5281         * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
5282         (arc_hard_regno_nregs): New function.
5283         * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
5284         * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
5285         (arm_hard_regno_nregs): New function.
5286         * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
5287         * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
5288         * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
5289         (TARGET_HARD_REGNO_NREGS): Redefine.
5290         * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
5291         * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
5292         (HARD_REGNO_NREGS): Delete.
5293         * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
5294         (cr16_hard_regno_nregs): New function.
5295         (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
5296         * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
5297         * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
5298         (cris_hard_regno_nregs): New function.
5299         * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
5300         * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
5301         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
5302         * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
5303         (CLASS_MAX_NREGS): Remove outdated copy of documentation.
5304         * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
5305         * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
5306         (frv_hard_regno_nregs): Make static.  Take and return an
5307         unsigned int.
5308         (frv_class_max_nregs): Remove outdated copy of documentation.
5309         * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
5310         * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
5311         * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
5312         * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
5313         * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
5314         * config/i386/i386.c (ix86_hard_regno_nregs): New function.
5315         (TARGET_HARD_REGNO_NREGS): Redefine.
5316         * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
5317         (CLASS_MAX_NREGS): Update comment.
5318         * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
5319         (ia64_hard_regno_nregs): New function.
5320         * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
5321         * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
5322         * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
5323         * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
5324         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
5325         an unsigned int.
5326         (m32c_hard_regno_nregs): Likewise.  Make static.
5327         (TARGET_HARD_REGNO_NREGS): Redefine.
5328         * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
5329         * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
5330         * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
5331         (m68k_hard_regno_nregs): New function.
5332         * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
5333         * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
5334         * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
5335         * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
5336         * config/mips/mips.c (mips_hard_regno_nregs): Make static.
5337         Take and return an unsigned int.
5338         (TARGET_HARD_REGNO_NREGS): Redefine.
5339         * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
5340         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
5341         * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
5342         * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
5343         * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
5344         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
5345         * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
5346         (msp430_hard_regno_nregs): Make static.  Take and return an
5347         unsigned int.
5348         * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
5349         * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
5350         * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
5351         (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
5352         * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
5353         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
5354         * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
5355         (TARGET_HARD_REGNO_NREGS): Redefine.
5356         * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
5357         (PA_HARD_REGNO_NREGS): ...this.
5358         * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
5359         (PA_HARD_REGNO_NREGS): ...this.
5360         * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
5361         (pa_hard_regno_nregs): New function.
5362         * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
5363         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
5364         (pdp11_hard_regno_nregs): New function.
5365         * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
5366         * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
5367         (rs6000_hard_regno_nregs_hook): New function.
5368         * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
5369         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
5370         * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
5371         Take and return an unsigned int.  Move earlier in file.
5372         (TARGET_HARD_REGNO_NREGS): Redefine.
5373         * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
5374         * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
5375         * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
5376         (rl78_hard_regno_nregs): Make static.  Take and return an
5377         unsigned int.
5378         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
5379         * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
5380         (rs6000_hard_regno_nregs_hook): New function.
5381         * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
5382         * config/rx/rx.c (rx_hard_regno_nregs): New function.
5383         (TARGET_HARD_REGNO_NREGS): Redefine.
5384         * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
5385         * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
5386         instead of HARD_REGNO_NREGS.
5387         (s390_hard_regno_nregs): New function.
5388         (s390_hard_regno_mode_ok): Add comment from s390.h.
5389         (TARGET_HARD_REGNO_NREGS): Redefine.
5390         * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
5391         * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
5392         (sh_hard_regno_nregs): New function.
5393         (sh_pass_in_reg_p): Use it.
5394         * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
5395         * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
5396         (sparc_hard_regno_nregs): New function.
5397         * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
5398         * config/spu/spu.c (spu_hard_regno_nregs): New function.
5399         (spu_function_arg_advance): Use it, supplying a valid register number.
5400         (TARGET_HARD_REGNO_NREGS): Redefine.
5401         * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
5402         * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
5403         * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
5404         * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
5405         * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
5406         * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
5407         (CLASS_MAX_NREGS): Remove copy of old documentation.
5408         * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
5409         (visium_hard_regno_nregs): New function.
5410         (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
5411         * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
5412         * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
5413         xtensa_hard_regno_nregs): New function.
5414         * system.h (HARD_REGNO_NREGS): Poison.
5416 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5418         * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
5419         hard_regno_nregs instead of HARD_REGNO_NREGS.
5420         (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
5421         * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
5422         (c6x_expand_epilogue): Likewise.
5423         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
5424         (frv_read_iacc_argument): Likewise.
5425         * config/sh/sh.c: Include regs.h.
5426         (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
5427         (regs_used): Likewise.
5428         (output_stack_adjust): Likewise.
5429         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
5430         * expmed.c: Include regs.h.
5431         (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
5432         * ree.c: Include regs.h.
5433         (combine_reaching_defs): Use hard_regno_nregs instead of
5434         HARD_REGNO_NREGS.
5435         (add_removable_extension): Likewise.
5437 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5439         * regs.h (hard_regno_nregs): Turn into a function.
5440         (end_hard_regno): Update accordingly.
5441         * caller-save.c (setup_save_areas): Likewise.
5442         (save_call_clobbered_regs): Likewise.
5443         (replace_reg_with_saved_mem): Likewise.
5444         (insert_restore): Likewise.
5445         (insert_save): Likewise.
5446         * combine.c (can_change_dest_mode): Likewise.
5447         (move_deaths): Likewise.
5448         (distribute_notes): Likewise.
5449         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
5450         * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
5451         (rs6000_split_multireg_move): Likewise.
5452         (rs6000_register_move_cost): Likewise.
5453         (rs6000_memory_move_cost): Likewise.
5454         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
5455         (rs6000_split_multireg_move): Likewise.
5456         (rs6000_register_move_cost): Likewise.
5457         (rs6000_memory_move_cost): Likewise.
5458         * cselib.c (cselib_reset_table): Likewise.
5459         (cselib_lookup_1): Likewise.
5460         * emit-rtl.c (set_mode_and_regno): Likewise.
5461         * function.c (aggregate_value_p): Likewise.
5462         * ira-color.c (setup_profitable_hard_regs): Likewise.
5463         (check_hard_reg_p): Likewise.
5464         (calculate_saved_nregs): Likewise.
5465         (assign_hard_reg): Likewise.
5466         (improve_allocation): Likewise.
5467         (calculate_spill_cost): Likewise.
5468         * ira-emit.c (modify_move_list): Likewise.
5469         * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
5470         (ira_hard_reg_in_set_p): Likewise.
5471         * ira.c (setup_reg_mode_hard_regset): Likewise.
5472         (clarify_prohibited_class_mode_regs): Likewise.
5473         (check_allocation): Likewise.
5474         * lra-assigns.c (find_hard_regno_for_1): Likewise.
5475         (lra_setup_reg_renumber): Likewise.
5476         (setup_try_hard_regno_pseudos): Likewise.
5477         (spill_for): Likewise.
5478         (assign_hard_regno): Likewise.
5479         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
5480         * lra-constraints.c (in_class_p): Likewise.
5481         (lra_constraint_offset): Likewise.
5482         (simplify_operand_subreg): Likewise.
5483         (lra_constraints): Likewise.
5484         (split_reg): Likewise.
5485         (split_if_necessary): Likewise.
5486         (invariant_p): Likewise.
5487         (inherit_in_ebb): Likewise.
5488         * lra-lives.c (process_bb_lives): Likewise.
5489         * lra-remat.c (reg_overlap_for_remat_p): Likewise.
5490         (get_hard_regs): Likewise.
5491         (do_remat): Likewise.
5492         * lra-spills.c (assign_spill_hard_regs): Likewise.
5493         * mode-switching.c (create_pre_exit): Likewise.
5494         * postreload.c (reload_combine_recognize_pattern): Likewise.
5495         * recog.c (peep2_find_free_register): Likewise.
5496         * regcprop.c (kill_value_regno): Likewise.
5497         (set_value_regno): Likewise.
5498         (copy_value): Likewise.
5499         (maybe_mode_change): Likewise.
5500         (find_oldest_value_reg): Likewise.
5501         (copyprop_hardreg_forward_1): Likewise.
5502         * regrename.c (check_new_reg_p): Likewise.
5503         (regrename_do_replace): Likewise.
5504         * reload.c (push_reload): Likewise.
5505         (combine_reloads): Likewise.
5506         (find_dummy_reload): Likewise.
5507         (operands_match_p): Likewise.
5508         (find_reloads): Likewise.
5509         (find_equiv_reg): Likewise.
5510         (reload_adjust_reg_for_mode): Likewise.
5511         * reload1.c (count_pseudo): Likewise.
5512         (count_spilled_pseudo): Likewise.
5513         (find_reg): Likewise.
5514         (clear_reload_reg_in_use): Likewise.
5515         (free_for_value_p): Likewise.
5516         (allocate_reload_reg): Likewise.
5517         (choose_reload_regs): Likewise.
5518         (reload_adjust_reg_for_temp): Likewise.
5519         (emit_reload_insns): Likewise.
5520         (delete_output_reload): Likewise.
5521         * rtlanal.c (subreg_get_info): Likewise.
5522         * sched-deps.c (sched_analyze_reg): Likewise.
5523         * sel-sched.c (init_regs_for_mode): Likewise.
5524         (mark_unavailable_hard_regs): Likewise.
5525         (choose_best_reg_1): Likewise.
5526         (verify_target_availability): Likewise.
5527         * valtrack.c (dead_debug_insert_temp): Likewise.
5528         * var-tracking.c (track_loc_p): Likewise.
5529         (emit_note_insn_var_location): Likewise.
5530         * varasm.c (make_decl_rtl): Likewise.
5531         * reginfo.c (choose_hard_reg_mode): Likewise.
5532         (init_reg_modes_target): Refer directly to
5533         this_target_regs->x_hard_regno_nregs.
5535 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5537         * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
5538         instead of hard_regno_nregs.
5540 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5542         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
5543         end_hard_regno instead of hard_regno_nregs.
5544         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
5545         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
5546         * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
5547         * ira-color.c (improve_allocation): Likewise.
5548         * lra-assigns.c (find_hard_regno_for_1): Likewise.
5549         * lra-lives.c (mark_regno_live): Likewise.
5550         (mark_regno_dead): Likewise.
5551         * lra-remat.c (operand_to_remat): Likewise.
5552         * lra.c (collect_non_operand_hard_regs): Likewise.
5553         * postreload.c (reload_combine_note_store): Likewise.
5554         (move2add_valid_value_p): Likewise.
5555         * reload.c (regno_clobbered_p): Likewise.
5557 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5559         * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
5560         hard_regno_nregs.
5561         * config/v850/v850.c (v850_reorg): Likewise.
5562         * reload.c (refers_to_regno_for_reload_p): Likewise.
5563         (find_equiv_reg): Likewise.
5564         * reload1.c (reload_reg_reaches_end_p): Likewise.
5566 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5568         * caller-save.c (add_used_regs): Use REG_NREGS instead of
5569         hard_regno_nregs.
5570         * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
5571         * config/arm/arm.c (output_move_neon): Likewise.
5572         (arm_attr_length_move_neon): Likewise.
5573         (neon_split_vcombine): Likewise.
5574         * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
5575         (c6x_mark_reg_written): Likewise.
5576         (c6x_dwarf_register_span): Likewise.
5577         * config/i386/i386.c (ix86_save_reg): Likewise.
5578         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
5579         (rws_access_reg): Likewise.
5580         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
5581         * mode-switching.c (create_pre_exit): Likewise.
5582         * ree.c (combine_reaching_defs): Likewise.
5583         (add_removable_extension): Likewise.
5584         * regcprop.c (find_oldest_value_reg): Likewise.
5585         (copyprop_hardreg_forward_1): Likewise.
5586         * reload.c (reload_inner_reg_of_subreg): Likewise.
5587         (push_reload): Likewise.
5588         (combine_reloads): Likewise.
5589         (find_dummy_reload): Likewise.
5590         (reload_adjust_reg_for_mode): Likewise.
5591         * reload1.c (find_reload_regs): Likewise.
5592         (forget_old_reloads_1): Likewise.
5593         (reload_reg_free_for_value_p): Likewise.
5594         (reload_adjust_reg_for_temp): Likewise.
5595         (emit_reload_insns): Likewise.
5596         (delete_output_reload): Likewise.
5597         * sel-sched.c (choose_best_reg_1): Likewise.
5598         (choose_best_pseudo_reg): Likewise.
5600 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5601             Alan Hayward  <alan.hayward@arm.com>
5602             David Sherwood <david.sherwood@arm.com>
5604         * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
5605         * target.def (slow_unaligned_access): New hook.
5606         * targhooks.h (default_slow_unaligned_access): Declare.
5607         * targhooks.c (default_slow_unaligned_access): New function.
5608         * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
5609         (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
5610         * doc/tm.texi: Regenerate.
5611         * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
5612         * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
5613         * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
5614         definition.
5615         * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
5616         * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
5617         Redefine.
5618         (rs6000_slow_unaligned_access): New function.
5619         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
5620         (expand_block_compare): Likewise.
5621         (expand_strn_compare): Likewise.
5622         (rs6000_rtx_costs): Likewise.
5623         * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
5624         (riscv_slow_unaligned_access): Likewise.
5625         * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
5626         (riscv_slow_unaligned_access_p): ...this and make static.
5627         (riscv_option_override): Update accordingly.
5628         (riscv_slow_unaligned_access): New function.
5629         (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
5630         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
5631         * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
5632         (rs6000_slow_unaligned_access): New function.
5633         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
5634         (rs6000_rtx_costs): Likewise.
5635         * config/rs6000/rs6000-string.c (expand_block_compare)
5636         (expand_strn_compare): Use targetm.slow_unaligned_access instead
5637         of SLOW_UNALIGNED_ACCESS.
5638         * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
5639         * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
5640         * calls.c (expand_call): Use targetm.slow_unaligned_access instead
5641         of SLOW_UNALIGNED_ACCESS.
5642         * expmed.c (simple_mem_bitfield_p): Likewise.
5643         * expr.c (alignment_for_piecewise_move): Likewise.
5644         (emit_group_load_1): Likewise.
5645         (emit_group_store): Likewise.
5646         (copy_blkmode_from_reg): Likewise.
5647         (emit_push_insn): Likewise.
5648         (expand_assignment): Likewise.
5649         (store_field): Likewise.
5650         (expand_expr_real_1): Likewise.
5651         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
5652         * lra-constraints.c (simplify_operand_subreg): Likewise.
5653         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
5654         * gimple-ssa-store-merging.c: Likewise in block comment at start
5655         of file.
5656         * tree-ssa-strlen.c: Include target.h.
5657         (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
5658         of SLOW_UNALIGNED_ACCESS.
5659         * system.h (SLOW_UNALIGNED_ACCESS): Poison.
5661 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5663         PR rtl-optimization/82185
5664         * expmed.c (emit_store_flag_int): Only test tem if it has been
5665         initialized.
5667 2017-09-12  Richard Biener  <rguenther@suse.de>
5669         PR middle-end/82149
5670         * match.pd ((FTYPE) N CMP CST): Fix typo.
5672 2017-09-12  Simon Atanasyan  <simon.atanasyan@imgtec.com>
5674         * config/mips/mips.c (mips_attribute_table): Add 'short_call'
5675         attribute.
5676         (mips_near_type_p): Add 'short_call' attribute as a synonym
5677         for 'near'.
5678         * doc/extend.texi (short_call): Document new function attribute.
5680 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
5682         PR target/82112
5683         * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
5684         assertion check that in the condition.
5685         (get_atomic_generic_size): Likewise.  Before testing if parameter
5686         has pointer type, if it has array type, call for C++
5687         default_conversion to perform array-to-pointer conversion.
5689 2017-09-12  Richard Biener  <rguenther@suse.de>
5691         * tree-vect-generic.c (expand_vector_operations_1): Do nothing
5692         for operations we cannot scalarize.
5694 2017-09-12  Aldy Hernandez  <aldyh@redhat.com>
5696         * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
5697         vectors heap vectors.  Clean up comments.
5698         Make visited_bbs a reference.
5699         (profitable_jump_thread_path): Make GC
5700         vectors heap vectors.  Clean up comments.
5701         Misc cleanups.
5702         (convert_and_register_jump_thread_path): Make GC vectors heap
5703         vectors.
5704         (check_subpath_and_update_thread_path): Same.  Clean up comments.
5705         Make visited_bbs a reference.
5706         (handle_phi): Abstract common code to to
5707         register_jump_thread_path_if_profitable.
5708         Rename VAR_BB to DEF_BB.
5709         Update comments.
5710         Make GC vectors heap vectors.
5711         Make visited_bbs a reference.
5712         (handle_assignment): Same.
5713         (register_jump_thread_path_if_profitable): New.
5714         (fsm_find_control_statement_thread_paths): Rename VAR_BB to
5715         DEF_BB.
5716         Make GC vectors heap vectors.  Clean up comments.
5717         Make visited_bbs a reference.
5718         (find_jump_threads_backwards): Make visited_bbs live in the stack.
5719         * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
5720         comment.
5722 2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
5724         PR target/82181
5725         * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
5726         words of E_DImode object are reachable by xtensa_uimm8x4 access.
5728 2017-09-11  Vidya Praveen  <vidyapraveen@arm.com>
5730         Revert r251800 and r251799.
5732 2017-09-11  Martin Jambor  <mjambor@suse.cz>
5734         PR hsa/82119
5735         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
5736         arguments in advance.
5737         * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
5738         use it to find predecessor edges.
5739         (naive_outof_ssa): Collect vector of predecessors.
5741 2017-09-08  Jason Merrill  <jason@redhat.com>
5743         PR c++/70029 - ICE with ref-qualifier and -flto
5744         * langhooks.h (struct lang_hooks_for_types): Add
5745         copy_lang_qualifiers.
5746         * attribs.c (build_type_attribute_qual_variant): Use it.
5747         * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
5748         NULL.
5749         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
5750         * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
5752 2017-09-08  Eric Botcazou  <ebotcazou@adacore.com>
5754         PR target/81988
5755         * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
5756         (*mulsi3_sp64): New instruction.
5757         (mulsi3): New expander.
5759 2017-09-08  Uros Bizjak  <ubizjak@gmail.com>
5761         * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
5763 2017-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5765         * sancov.c: Include memmodel.h.
5767 2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
5769         PR target/80897
5770         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
5771         large offsets.
5773 2017-09-07  Carl Love  <cel@us.ibm.com>
5775         * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
5776         the sldi instruction.
5778 2017-09-07  David Edelsohn  <dje.gcc@gmail.com>
5780         * sancov.c: Include tm_p.h.
5782 2017-09-07  Jakub Jelinek  <jakub@redhat.com>
5784         PR target/81979
5785         * output.h (switch_to_other_text_partition): New declaration.
5786         * varasm.c (switch_to_other_text_partition): New function.
5787         * config/rs6000/rs6000.c (uses_TOC): Return 2 if
5788         NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
5789         (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
5790         to the other text partition before emitting LCL label and switch back
5791         after emitting the word after it.
5793 2017-09-07  Richard Biener  <rguenther@suse.de>
5795         * passes.def (pass_split_crit_edges): Remove instance before PRE.
5796         * tree-ssa-pre.c (pass_pre::execute): Instead manually split
5797         critical edges here, after loop init.
5798         (pass_data_pre): Remove PROP_no_crit_edges flags.
5799         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
5800         for valueization of call args to avoid leaking VN_TOP.
5801         (visit_use): Assert we do not visit default defs.
5802         (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
5803         Use error_mark_node to more easily detect leaking VN_TOP.
5804         All default-defs are varying, not VN_TOP.  Mark them visited.
5805         (run_scc_vn): Make code match comment.
5807 2017-09-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
5809         * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
5810         OPTION_MASK_FLOAT128_KEYWORD.
5811         (POWERPC_MASKS): Likewise.
5812         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
5813         support for the -mfloat128-type option, and make -mfloat128
5814         default on PowerPC Linux systems.  Define or undefine
5815         __FLOAT128__ and  __FLOAT128_HARDWARE__ for the current options.
5816         Define __float128 to be __ieee128 if IEEE 128-bit support is
5817         enabled, or undefine it.
5818         (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
5819         Delete defining __FLOAT128_TYPE__.
5820         * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
5821         -mfloat128-type option and make -mfloat128 default on PowerPC
5822         Linux systems.
5823         (TARGET_FLOAT128_TYPE): Likewise.
5824         (-mfloat128-type): Likewise.
5825         * config/rs6000/rs6000.c (rs6000_option_override_internal):
5826         Delete the -mfloat128-type option and make -mfloat128 default on
5827         PowerPC Linux systems.  Always use __ieee128 to be the keyword for
5828         the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
5829         128-bit floating point is enabled.  Change tests from using
5830         -mfloat128-type to -mfloat128.
5831         (rs6000_mangle_type): Use the correct mangling for the __float128
5832         type even if normal long double is restricted to 64-bits.
5833         (floatn_mode): Enable the _Float128 type by default on VSX Linux
5834         systems.
5835         * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
5836         (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
5837         (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
5838         -mfloat128-type.
5839         * doc/invoke.texi (RS/6000 and PowerPC Options): Update
5840         documentation for -mfloat128.
5842 2017-09-06  Olivier Hainque  <hainque@adacore.com>
5844         * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
5846 2017-09-06  Wish Wu  <wishwu007@gmail.com>
5847             Jakub Jelinek  <jakub@redhat.com>
5849         * asan.c (initialize_sanitizer_builtins): Add
5850         BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
5851         BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
5852         BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
5853         BT_FN_VOID_UINT64_PTR variables.
5854         * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
5855         (BT_FN_VOID_UINT16_UINT16): Likewise.
5856         (BT_FN_VOID_UINT32_UINT32): Likewise.
5857         (BT_FN_VOID_FLOAT_FLOAT): Likewise.
5858         (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
5859         (BT_FN_VOID_UINT64_PTR): Likewise.
5860         * common.opt (flag_sanitize_coverage): New variable.
5861         (fsanitize-coverage=trace-pc): Remove.
5862         (fsanitize-coverage=): Add.
5863         * flag-types.h (enum sanitize_coverage_code): New enum.
5864         * fold-const.c (fold_range_test): Disable non-short-circuit
5865         optimization if flag_sanitize_coverage.
5866         (fold_truth_andor): Likewise.
5867         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
5868         * opts.c (COVERAGE_SANITIZER_OPT): Define.
5869         (coverage_sanitizer_opts): New array.
5870         (get_closest_sanitizer_option): Add OPTS argument, handle also
5871         OPT_fsanitize_coverage_.
5872         (parse_sanitizer_options): Adjusted to also handle
5873         OPT_fsanitize_coverage_.
5874         (common_handle_option): Add OPT_fsanitize_coverage_.
5875         * sancov.c (instrument_comparison, instrument_switch): New function.
5876         (sancov_pass): Add trace-cmp support.
5877         * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
5878         BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
5879         BUILT_IN_SANITIZER_COV_TRACE_CMP8,
5880         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
5881         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
5882         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
5883         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
5884         BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
5885         BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
5886         * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
5888 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
5890         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
5891         error.  Only quit immediately if parsing is complete.
5892         (BEGIN): Initialize fatal_err and parse_done.
5893         (begin fpu, end fpu): Check number of arguments.
5894         (begin arch, end arch): Likewise.
5895         (begin cpu, end cpu): Likewise.
5896         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
5897         (optalias): Likewise.
5899 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
5901         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
5902         * config/arm/arm-isa.h: Delete.  Move definitions to ...
5903         * arm-cpus.in: ... here.  Use new feature and fgroup values.
5904         * config/arm/arm.c (arm_option_override): Use lower case for feature
5905         bit names.
5906         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
5907         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
5908         * config/arm/parsecpu.awk (END): Add new command 'isa'.
5909         (isa_pfx): Delete.
5910         (print_isa_bits_for): New function.
5911         (gen_isa): New function.
5912         (gen_comm_data): Use print_isa_bits_for.
5913         (define feature): New keyword.
5914         (define fgroup): New keyword.
5915         * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
5916         (arm-isa.h): Add rule to generate file.
5917         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
5918         case for feature bit names.
5920 2017-09-06  Richard Biener  <rguenther@suse.de>
5922         * tree-ssa-pre.c (NECESSARY): Remove.
5923         (create_expression_by_pieces): Do not touch pass-local flags.
5924         (insert_into_preds_of_block): Likewise.
5925         (do_pre_regular_insertion): Likewise.
5926         (eliminate_insert): Likewise.
5927         (eliminate_dom_walker::before_dom_children): Likewise.
5928         (fini_eliminate): Do not look at inserted_exprs.
5929         (mark_operand_necessary): Remove.
5930         (remove_dead_inserted_code): Replace with simple work-list
5931         algorithm based on inserted_exprs and SSA uses.
5932         (pass_pre::execute): Re-order fini_eliminate and
5933         remove_dead_inserted_code.
5935 2017-09-06  Olivier Hainque  <hainque@adacore.com>
5937         * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
5938         for VxWorks 7.  Adjust surrounding comments.
5940 2017-09-06  Richard Biener  <rguenther@suse.de>
5942         * gimple-ssa-strength-reduction.c
5943         (find_candidates_dom_walker::before_dom_children): Also allow
5944         pointer types.
5946 2017-09-06  Richard Biener  <rguenther@suse.de>
5948         PR tree-optimization/82108
5949         * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
5950         for gap in the non-permutation SLP case.
5952 2017-09-06  Martin Jambor  <mjambor@suse.cz>
5954         PR tree-optimization/82078
5955         * tree-sra.c (sort_and_splice_var_accesses): Move call to
5956         add_access_to_work_queue...
5957         (build_accesses_from_assign): ...here.
5958         (propagate_all_subaccesses): Make sure racc is the group
5959         representative, if there is one.
5961 2017-09-06  Jakub Jelinek  <jakub@redhat.com>
5963         PR middle-end/82095
5964         * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
5965         NULL DECL_INITIAL.
5967 2017-09-06  Richard Biener  <rguenther@suse.de>
5969         * gimple-ssa-strength-reduction.c
5970         (find_candidates_dom_walker::before_doom_children): Use a
5971         type and not a mode check.
5973 2017-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5975         PR target/77308
5976         * config/arm/predicates.md (arm_general_adddi_operand): Create new
5977         non-vfp predicate.
5978         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
5980 2017-09-05  Jeff Law  <law@redhat.com>
5982         PR tree-optimization/64910
5983         * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
5984         cases where we have 3 or more operands.
5986 2017-09-05  Jakub Jelinek  <jakub@redhat.com>
5988         PR middle-end/81768
5989         * omp-low.c (lower_omp_for): Recompute tree invariant if
5990         gimple_omp_for_initial/final is ADDR_EXPR.
5992         PR middle-end/81768
5993         * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
5994         into gimple val before gimplification fo the COND_EXPR.
5996 2017-09-05  Aldy Hernandez  <aldyh@redhat.com>
5998         * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
5999         REGION_COPY argument.
6000         (thread_through_all_blocks): Remove unused argument to
6001         duplicate_thread_path.
6003 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
6004             Alan Hayward  <alan.hayward@arm.com>
6005             David Sherwood  <david.sherwood@arm.com>
6007         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
6008         Take a scalar_mode rather than a machine_mode.
6009         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
6010         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
6011         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
6012         (aarch64_gen_adjusted_ldpstp): Likewise.
6013         (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
6015 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
6016             Alan Hayward  <alan.hayward@arm.com>
6017             David Sherwood  <david.sherwood@arm.com>
6019         * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
6020         Take a scalar_int_mode instead of a machine_mode.
6021         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
6022         (aarch64_output_scalar_simd_mov_immediate): Likewise.
6023         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
6024         (aarch64_simd_attr_length_rglist): Delete.
6025         * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
6026         a scalar_int_mode instead of a machine_mode.
6027         (aarch64_add_offset): Likewise.
6028         (aarch64_internal_mov_immediate): Likewise
6029         (aarch64_add_constant_internal): Likewise.
6030         (aarch64_add_constant): Likewise.
6031         (aarch64_movw_imm): Likewise.
6032         (aarch64_rtx_arith_op_extract_p): Likewise.
6033         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
6034         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
6035         Remove assert that the mode isn't a vector.
6036         (aarch64_output_scalar_simd_mov_immediate): Likewise.
6037         (aarch64_expand_mov_immediate): Update calls after above changes.
6038         (aarch64_output_casesi): Use as_a <scalar_int_mode>.
6039         (aarch64_and_bitmask_imm): Check for scalar integer modes.
6040         (aarch64_move_imm): Likewise.
6041         (aarch64_can_const_movi_rtx_p): Likewise.
6042         (aarch64_strip_extend): Likewise.
6043         (aarch64_extr_rtx_p): Likewise.
6044         (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
6045         a CONST_INT when the mode parameter is VOIDmode.
6046         (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
6048 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
6050         * machmode.h (bitwise_mode_for_mode): Return opt_mode.
6051         * stor-layout.c (bitwise_mode_for_mode): Likewise.
6052         (bitwise_type_for_mode): Update accordingly.
6054 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
6056         * stor-layout.h (mode_for_size_tree): Return an opt_mode.
6057         * stor-layout.c (mode_for_size_tree): Likewise.
6058         (mode_for_array): Update accordingly.
6059         (layout_decl): Likewise.
6060         (compute_record_mode): Likewise.  Only set the mode once.
6062 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
6064         * target.def (get_mask_mode): Change return type to opt_mode.
6065         Expand commentary.
6066         * doc/tm.texi: Regenerate.
6067         * targhooks.h (default_get_mask_mode): Return an opt_mode.
6068         * targhooks.c (default_get_mask_mode): Likewise.
6069         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
6070         * optabs-query.c (can_vec_mask_load_store_p): Update use of
6071         targetm.get_mask_mode.
6072         * tree.c (build_truth_vector_type): Likewise.
6074 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
6076         * machmode.h (mode_for_vector): Return an opt_mode.
6077         * stor-layout.c (mode_for_vector): Likewise.
6078         (mode_for_int_vector): Update accordingly.
6079         (layout_type): Likewise.
6080         * config/i386/i386.c (emit_memmov): Likewise.
6081         (ix86_expand_set_or_movmem): Likewise.
6082         (ix86_expand_vector_init): Likewise.
6083         (ix86_get_mask_mode): Likewise.
6084         * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
6085         Likewise.
6086         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
6087         * expmed.c (extract_bit_field_1): Likewise.
6088         * expr.c (expand_expr_real_2): Likewise.
6089         * optabs-query.c (can_vec_perm_p): Likewise.
6090         (can_vec_mask_load_store_p): Likewise.
6091         * optabs.c (expand_vec_perm): Likewise.
6092         * targhooks.c (default_get_mask_mode): Likewise.
6093         * tree-vect-stmts.c (vectorizable_store): Likewise.
6094         (vectorizable_load): Likewise.
6095         (get_vectype_for_scalar_type_and_size): Likewise.
6097 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
6099         * machmode.h (mode_for_int_vector): New function.
6100         * stor-layout.c (mode_for_int_vector): Likewise.
6101         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
6102         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
6103         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
6104         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
6105         (s390_expand_vcond): Likewise.
6107 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
6109         * machmode.h (opt_machine_mode): New type.
6110         (opt_mode<T>): Allow construction from anything that can be
6111         converted to a T.
6112         (is_a, as_a, dyn_cast): Add overloads for opt_mode.
6113         (mode_for_size): Return an opt_machine_mode.
6114         * stor-layout.c (mode_for_size): Likewise.
6115         (mode_for_size_tree): Update call accordingly.
6116         (bitwise_mode_for_mode): Likewise.
6117         (make_fract_type): Likewise.
6118         (make_accum_type): Likewise.
6119         * caller-save.c (replace_reg_with_saved_mem): Update call
6120         accordingly.
6121         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
6122         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
6123         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
6124         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
6125         * expmed.c (extract_bit_field_1): Likewise.
6126         * reload.c (get_secondary_mem): Likewise.
6127         * varasm.c (assemble_integer): Likewise.
6128         * lower-subreg.c (simplify_subreg_concatn): Likewise.  Move
6129         early-out.
6131 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
6133         * machmode.h (decimal_float_mode_for_size): New function.
6134         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
6135         (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
6136         (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
6137         (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
6138         (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
6139         (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
6141 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
6143         * builtins.c (expand_builtin_powi): Use int_mode_for_size.
6144         (get_builtin_sync_mode): Likewise.
6145         (expand_ifn_atomic_compare_exchange): Likewise.
6146         (expand_builtin_atomic_clear): Likewise.
6147         (expand_builtin_atomic_test_and_set): Likewise.
6148         (fold_builtin_atomic_always_lock_free): Likewise.
6149         * calls.c (compute_argument_addresses): Likewise.
6150         (emit_library_call_value_1): Likewise.
6151         (store_one_arg): Likewise.
6152         * combine.c (combine_instructions): Likewise.
6153         * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
6154         * config/arm/arm.c (arm_function_value): Likewise.
6155         (aapcs_allocate_return_reg): Likewise.
6156         * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
6157         * config/i386/i386.c (construct_container): Likewise.
6158         (ix86_gimplify_va_arg): Likewise.
6159         (ix86_expand_sse_cmp): Likewise.
6160         (emit_memmov): Likewise.
6161         (emit_memset): Likewise.
6162         (expand_small_movmem_or_setmem): Likewise.
6163         (ix86_expand_pextr): Likewise.
6164         (ix86_expand_pinsr): Likewise.
6165         * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
6166         * config/microblaze/microblaze.c (microblaze_block_move_straight):
6167         Likewise.
6168         * config/mips/mips.c (mips_function_value_1) Likewise.
6169         (mips_block_move_straight): Likewise.
6170         (mips_expand_ins_as_unaligned_store): Likewise.
6171         * config/powerpcspe/powerpcspe.c
6172         (rs6000_darwin64_record_arg_advance_flush): Likewise.
6173         (rs6000_darwin64_record_arg_flush): Likewise.
6174         * config/rs6000/rs6000.c
6175         (rs6000_darwin64_record_arg_advance_flush): Likewise.
6176         (rs6000_darwin64_record_arg_flush): Likewise.
6177         * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
6178         (sparc_function_value_1): Likewise.
6179         * config/spu/spu.c (adjust_operand): Likewise.
6180         (spu_emit_branch_or_set): Likewise.
6181         (arith_immediate_p): Likewise.
6182         * emit-rtl.c (gen_lowpart_common): Likewise.
6183         * expr.c (expand_expr_real_1): Likewise.
6184         * function.c (assign_parm_setup_block): Likewise.
6185         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
6186         * reload1.c (alter_reg): Likewise.
6187         * stor-layout.c (mode_for_vector): Likewise.
6188         (layout_type): Likewise.
6190 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
6192         * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
6193         (spu_convert_move): Likewise.
6194         * lower-subreg.c (resolve_simple_move): Likewise.
6196 2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6198         PR target/81833
6199         * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
6200         define_insn to a define_expand.
6201         (altivec_vsum2sws_direct): New define_insn.
6202         (altivec_vsumsws): Convert from a define_insn to a define_expand.
6204 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
6206         * config/arm/arm.c (arm_option_params_internal): Improve setting of
6207         max_insns_skipped.
6209 2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
6211         PR target/59501
6212         PR target/81624
6213         PR target/81769
6214         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
6215         realign stack if stack alignment needed is less than incoming
6216         stack boundary.
6218 2017-09-05  Marek Polacek  <polacek@redhat.com>
6220         PR sanitizer/82072
6221         * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
6222         check earlier.
6224 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
6226         * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
6228 2017-09-05  Richard Biener  <rguenther@suse.de>
6230         PR tree-optimization/82084
6231         * fold-const.c (can_native_encode_string_p): Handle wide characters.
6233 2017-09-05  Richard Biener  <rguenther@suse.de>
6235         PR tree-optimization/82102
6236         * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
6238 2017-09-05  Martin Liska  <mliska@suse.cz>
6240         PR tree-optimization/82032
6241         * tree-cfg.c (generate_range_test): New function.
6242         * tree-cfg.h (generate_range_test): Declared here.
6243         * tree-cfgcleanup.c (convert_single_case_switch): New function.
6244         (cleanup_control_expr_graph): Use it.
6245         * tree-switch-conversion.c (try_switch_expansion): Remove
6246         assert.
6247         (emit_case_nodes): Use generate_range_test.
6249 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
6251         PR target/82098
6252         * config/i386/i386.md (*<btsc><mode>_mask): Add
6253         TARGET_USE_BT to insn constraint.
6254         (*btr<mode>_mask): Ditto.
6256 2017-09-04  Wilco Dijkstra  <wdijkstr@arm.com>
6258         * config/arm/arm.c (arm_legitimate_index_p): Add comment.
6259         (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
6261 2017-09-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6263         PR target/77308
6264         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
6265         TARGET_NEON and TARGET_IWMMXT.
6266         (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
6267         TARGET_NEON and TARGET_IWMMXT.
6268         (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
6270 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
6272         * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
6273         (ix86_rewrite_tls_address): Ditto.
6274         * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
6275         (ix86_rewrite_tls_address_1): Ditto.
6276         (ix86_rewrite_tls_address): Ditto.
6277         * config/i386/predicates.md (tls_address_pattern): New predicate.
6278         * config/i386/i386.md (TLS address splitter): New splitter.
6280 2017-09-04  Richard Biener  <rguenther@suse.de>
6282         PR tree-optimization/82084
6283         * fold-const.h (can_native_encode_string_p): Declare.
6284         * fold-const.c (can_native_encode_string_p): Factor out from ...
6285         (native_encode_string): ... here.
6286         * tree-vect-stmts.c (vectorizable_store): Call it to avoid
6287         vectorizing stores from constants we later cannot handle.
6289 2017-09-04  Marek Polacek  <polacek@redhat.com>
6291         PR c/81783
6292         * doc/invoke.texi: Update -Wtautological-compare documentation.
6294 2017-09-04  Jeff Law  <law@redhat.com>
6296         PR tree-optimization/64910
6297         * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
6298         swap the first and last operand if the last is a constant.
6300 2017-09-04  Marek Polacek  <polacek@redhat.com>
6302         PR sanitizer/82072
6303         * convert.c (do_narrow): When sanitizing signed integer overflows,
6304         bail out for signed types.
6305         (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
6307 2017-09-04  Richard Biener  <rguenther@suse.de>
6309         PR tree-optimization/82060
6310         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6311         Move devirtualization after stmt folding and before EH/AB/noreturn
6312         cleanup to get the stmt refs canonicalized.  Use a bool instead
6313         of gimple_modified_p since that doesn't work for NOPs.  Schedule
6314         NOPs generated by folding for removal.
6316 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
6317             Alan Hayward  <alan.hayward@arm.com>
6318             David Sherwood  <david.sherwood@arm.com>
6320         * coretypes.h (pad_direction): New enum.
6321         * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
6322         (FUNCTION_ARG_PADDING): Likewise.
6323         * target.def (function_arg_padding): New hook.
6324         * targhooks.h (default_function_arg_padding): Declare.
6325         * targhooks.c (default_function_arg_padding): New function.
6326         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
6327         (TARGET_FUNCTION_ARG_PADDING): ...this.
6328         * doc/tm.texi: Regenerate.
6329         * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
6330         instead of direction.
6331         (compute_argument_addresses): Likewise.
6332         (load_register_parameters): Likewise.
6333         (emit_library_call_value_1): Likewise.
6334         (store_one_arg): Use targetm.calls.function_arg_padding instead
6335         of FUNCTION_ARG_PADDING.
6336         (must_pass_in_stack_var_size_or_pad): Likewise.
6337         * expr.c (emit_group_load_1): Use pad_direction instead of direction.
6338         (emit_group_store): Likewise.
6339         (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
6340         instead of FUNCTION_ARG_PADDING.
6341         (emit_push_insn): Likewise, and propagate enum change throughout
6342         function.
6343         * function.h (direction): Delete.
6344         (locate_and_pad_arg_data::where_pad): Use pad_direction instead
6345         of direction.
6346         * function.c (assign_parm_find_stack_rtl): Likewise.
6347         (assign_parm_setup_block_p): Likewise.
6348         (assign_parm_setup_block): Likewise.
6349         (gimplify_parameters): Likewise.
6350         (locate_and_pad_parm): Use targetm.calls.function_arg_padding
6351         instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
6352         function.
6353         * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
6354         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
6355         * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
6356         * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
6357         (aarch64_function_arg_padding): ...this new function.
6358         (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
6359         (TARGET_FUNCTION_ARG_PADDING): Redefine.
6360         * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
6361         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
6362         * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
6363         * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6364         (arm_pad_arg_upward): Replace with...
6365         (arm_function_arg_padding): ...this new function.
6366         * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
6367         of direction.
6368         * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
6369         * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
6370         * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6371         (ia64_hpux_function_arg_padding): Replace with...
6372         (ia64_function_arg_padding): ...this new function.  Use pad_direction
6373         instead of direction.  Check for TARGET_HPUX.
6374         * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
6375         * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6376         (iq2000_function_arg_padding): New function.
6377         * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
6378         * config/mips/mips.c (mips_pad_arg_upward): Replace with...
6379         (mips_function_arg_padding): ...this new function.
6380         (mips_pad_reg_upward): Update accordingly.
6381         (TARGET_FUNCTION_ARG_PADDING): Redefine.
6382         * config/mips/mips.h (PAD_VARARGS_DOWN): Use
6383         targetm.calls.function_arg_padding.
6384         (FUNCTION_ARG_PADDING): Delete.
6385         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
6386         * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
6387         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
6388         * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
6389         (nios2_block_reg_padding): Return pad_direction instead of direction.
6390         * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
6391         instead of direction.
6392         (nios2_function_arg_padding): Likewise.  Make static.
6393         (TARGET_FUNCTION_ARG_PADDING): Redefine.
6394         * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
6395         (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
6396         * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
6397         * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6398         (pa_function_arg_padding): Make static.  Return pad_direction instead
6399         of direction.
6400         * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
6401         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
6402         * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
6403         instead of direction.  Use targetm.calls.function_arg_padding.
6404         * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
6405         * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
6406         * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
6407         * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
6408         * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
6409         Redefine.
6410         (function_arg_padding): Rename to...
6411         (rs6000_function_arg_padding): ...this.  Make static.  Return
6412         pad_direction instead of direction.
6413         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
6414         * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
6415         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
6416         * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
6417         instead of direction.  Use targetm.calls.function_arg_padding.
6418         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
6419         * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
6420         * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
6421         * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
6422         * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6423         (function_arg_padding): Rename to...
6424         (rs6000_function_arg_padding): ...this.  Make static.  Return
6425         pad_direction instead of direction.
6426         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
6427         * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
6428         * config/s390/s390.c (s390_function_arg_padding): New function.
6429         (TARGET_FUNCTION_ARG_PADDING): Redefine.
6430         * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
6431         * config/sparc/sparc-protos.h (function_arg_padding): Delete.
6432         * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6433         (function_arg_padding): Rename to...
6434         (sparc_function_arg_padding): ...this.  Make static.  Return
6435         pad_direction instead of direction.
6436         * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
6437         * config/spu/spu.c (spu_function_arg_padding): New function.
6438         (TARGET_FUNCTION_ARG_PADDING): Redefine.
6439         * system.h (FUNCTION_ARG_PADDING): Poison.
6441 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
6442             Alan Hayward  <alan.hayward@arm.com>
6443             David Sherwood  <david.sherwood@arm.com>
6445         * target.def (modes_tieable_p): New hook.
6446         * doc/tm.texi (MODES_TIEABLE_P): Replace with...
6447         (TARGET_MODES_TIEABLE_P): ...this.
6448         * doc/tm.texi.in: Regenerate.
6449         * hooks.h (hook_bool_mode_mode_true): Declare.
6450         * hooks.c (hook_bool_mode_mode_true): New function.
6451         * combine.c (subst): Use targetm.modes_tieable_p instead of
6452         MODES_TIEABLE_P.
6453         * dse.c (find_shift_sequence): Likewise.
6454         * expmed.c (extract_low_bits): Likewise.
6455         * lower-subreg.c: Include target.h.
6456         (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
6457         MODES_TIEABLE_P.
6458         * rtlanal.c (rtx_cost): Likewise.
6459         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
6460         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
6461         * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
6462         (TARGET_MODES_TIEABLE_P): Redefine.
6463         * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
6464         * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
6465         (TARGET_MODES_TIEABLE_P): Redefine.
6466         * config/arc/arc.h (MODES_TIEABLE_P): Delete.
6467         * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
6468         (arc_modes_tieable_p): New function.
6469         * config/arm/arm.h (MODES_TIEABLE_P): Delete.
6470         * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
6471         * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
6472         (arm_modes_tieable_p): Make static.
6473         * config/avr/avr.h (MODES_TIEABLE_P): Delete.
6474         * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
6475         * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
6476         (TARGET_MODES_TIEABLE_P): Redefine.
6477         * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
6478         * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
6479         (TARGET_MODES_TIEABLE_P): Redefine.
6480         * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
6481         * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
6482         (cr16_modes_tieable_p): New function.
6483         * config/cris/cris.h (MODES_TIEABLE_P): Delete.
6484         * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
6485         * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
6486         (TRULY_NOOP_TRUNCATION): Update comment.
6487         * config/frv/frv.h (MODES_TIEABLE_P): Delete.
6488         (TRULY_NOOP_TRUNCATION): Update comment.
6489         * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
6490         (frv_modes_tieable_p): New function.
6491         * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
6492         * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
6493         * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
6494         (TARGET_MODES_TIEABLE_P): Redefine.
6495         * config/i386/i386.h (MODES_TIEABLE_P): Delete.
6496         * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
6497         * config/i386/i386.c (ix86_modes_tieable_p): Make static.
6498         (TARGET_MODES_TIEABLE_P): Redefine.
6499         * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
6500         * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
6501         (ia64_modes_tieable_p): New function.
6502         * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
6503         * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
6504         (iq2000_modes_tieable_p): New function.
6505         * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
6506         * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
6507         (lm32_modes_tieable_p): New function.
6508         * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
6509         * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
6510         * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
6511         (TARGET_MODES_TIEABLE_P): Redefine.
6512         * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
6513         * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
6514         (m32r_modes_tieable_p): New function.
6515         * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
6516         * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
6517         (m68k_modes_tieable_p): New function.
6518         * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
6519         * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
6520         (mcore_modes_tieable_p): New function.
6521         * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
6522         * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
6523         function.
6524         (TARGET_MODES_TIEABLE_P): Redefine.
6525         * config/mips/mips.h (MODES_TIEABLE_P): Delete.
6526         * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
6527         * config/mips/mips.c (mips_modes_tieable_p): Make static.
6528         (TARGET_MODES_TIEABLE_P): Redefine.
6529         * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
6530         * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
6531         * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
6532         * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
6533         (mn10300_modes_tieable_p): ...this and make static.
6534         (TARGET_MODES_TIEABLE_P): Redefine.
6535         * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
6536         * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
6537         * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
6538         * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
6539         (msp430_modes_tieable_p): Make static.
6540         * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
6541         * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
6542         (TARGET_MODES_TIEABLE_P): Redefine.
6543         * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
6544         * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
6545         * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
6546         (TARGET_MODES_TIEABLE_P): Redefine.
6547         * config/pa/pa.h (MODES_TIEABLE_P): Delete.
6548         * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
6549         * config/pa/pa.c (pa_modes_tieable_p): Make static.
6550         (TARGET_MODES_TIEABLE_P): Redefine.
6551         * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
6552         * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
6553         (pdp11_modes_tieable_p): New function.
6554         * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
6555         * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
6556         (rs6000_modes_tieable_p): New function.
6557         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
6558         * config/powerpcspe/powerpcspe.md: Update comment.
6559         * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
6560         * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
6561         (TARGET_MODES_TIEABLE_P): Redefine.
6562         * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
6563         * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
6564         (rl78_modes_tieable_p): New function.
6565         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
6566         * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
6567         (rs6000_modes_tieable_p): New function.
6568         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
6569         * config/rs6000/rs6000.md: Update comment.
6570         * config/rx/rx.h (MODES_TIEABLE_P): Delete.
6571         * config/rx/rx.c (rx_modes_tieable_p): New function.
6572         (TARGET_MODES_TIEABLE_P): Redefine.
6573         * config/s390/s390.h (MODES_TIEABLE_P): Delete.
6574         * config/s390/s390.c (s390_modes_tieable_p): New function.
6575         (TARGET_MODES_TIEABLE_P): Redefine.
6576         * config/sh/sh.h (MODES_TIEABLE_P): Delete.
6577         * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
6578         (sh_modes_tieable_p): New function.
6579         * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
6580         * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
6581         * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
6582         (sparc_modes_tieable_p): Make static.
6583         * config/spu/spu.h (MODES_TIEABLE_P): Delete.
6584         * config/spu/spu.c (spu_modes_tieable_p): New function.
6585         (TARGET_MODES_TIEABLE_P): Redefine.
6586         * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
6587         * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
6588         (TARGET_MODES_TIEABLE_P): Redefine.
6589         * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
6590         * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
6591         * config/v850/v850.h (MODES_TIEABLE_P): Delete.
6592         * config/v850/v850.c (v850_modes_tieable_p): New function.
6593         (TARGET_MODES_TIEABLE_P): Redefine.
6594         * config/vax/vax.h (MODES_TIEABLE_P): Delete.
6595         * config/visium/visium.h (MODES_TIEABLE_P): Delete.
6596         * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
6597         (visium_modes_tieable_p): New function.
6598         * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
6599         * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
6600         (xtensa_modes_tieable_p): New function.
6601         * system.h (MODES_TIEABLE_P): Poison.
6603 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
6604             Alan Hayward  <alan.hayward@arm.com>
6605             David Sherwood  <david.sherwood@arm.com>
6607         * target.def (hard_regno_mode_ok): New hook.
6608         * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
6609         (TARGET_HARD_REGNO_MODE_OK): ...this.
6610         * doc/tm.texi.in: Regenerate.
6611         * hooks.h (hook_bool_uint_mode_true): Declare.
6612         * hooks.c (hook_bool_uint_mode_true): New function.
6613         * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
6614         HARD_REGNO_MODE_OK.
6615         * genpreds.c (write_insn_preds_c): Add an include of target.h.
6616         * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
6617         instead of HARD_REGNO_MODE_OK.
6618         * caller-save.c: Include target.h.
6619         (reg_save_code): Use targetm.hard_regno_mode_ok instead of
6620         HARD_REGNO_MODE_OK.
6621         * combine.c (can_combine_p): Likewise.
6622         (combinable_i3pat): Likewise.
6623         (can_change_dest_mode): Likewise.
6624         * expr.c (init_expr_target): Likewise.
6625         (convert_move): Likewise.
6626         (convert_modes): Likewise.
6627         * ira.c (setup_prohibited_class_mode_regs): Likewise.
6628         (setup_prohibited_mode_move_regs): Likewise.
6629         * ira.h (target_ira): Likewise.
6630         * lra-assigns.c (find_hard_regno_for_1): Likewise.
6631         * lra-constraints.c (process_alt_operands): Likewise.
6632         (split_reg): Likewise.
6633         * recog.c (peep2_find_free_register): Likewise.
6634         * ree.c (combine_reaching_defs): Likewise.
6635         * regcprop.c (maybe_mode_change): Likewise.
6636         * reginfo.c (init_reg_sets_1): Likewise.
6637         (choose_hard_reg_mode): Likewise.
6638         (simplifiable_subregs): Likewise.
6639         * regrename.c (check_new_reg_p): Likewise.
6640         * reload.c (find_valid_class): Likewise.
6641         (find_valid_class_1): Likewise.
6642         (reload_inner_reg_of_subreg): Likewise.
6643         (push_reload): Likewise.
6644         (combine_reloads): Likewise.
6645         (find_dummy_reload): Likewise.
6646         (find_reloads): Likewise.
6647         * reload1.c (find_reg): Likewise.
6648         (set_reload_reg): Likewise.
6649         (allocate_reload_reg): Likewise.
6650         (choose_reload_regs): Likewise.
6651         (reload_adjust_reg_for_temp): Likewise.
6652         * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
6653         (simplify_subreg_regno): Likewise.
6654         * sel-sched.c (init_regs_for_mode): Likewise.
6655         * varasm.c (make_decl_rtl): Likewise.
6656         * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
6657         (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
6658         HARD_REGNO_MODE_OK.
6659         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
6660         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
6661         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6662         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
6663         * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
6664         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6665         * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
6666         (arc_mode_class): Delete.
6667         (HARD_REGNO_MODE_OK): Delete.
6668         * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6669         (arc_hard_regno_mode_ok): Rename old array to...
6670         (arc_hard_regno_mode_ok_modes): ...this.
6671         (arc_conditional_register_usage): Update accordingly.
6672         (arc_mode_class): Make static.
6673         (arc_hard_regno_mode_ok): New function.
6674         * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
6675         * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
6676         * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6677         (arm_hard_regno_mode_ok): Make static.
6678         * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
6679         HARD_REGNO_MODE_OK.
6680         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
6681         * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
6682         * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
6683         return a bool.
6684         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6685         * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
6686         * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
6687         * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
6688         (bfin_hard_regno_mode_ok): ...this.  Make static and return a bool.
6689         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6690         * config/bfin/predicates.md (valid_reg_operand): Use
6691         targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
6692         * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
6693         * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
6694         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6695         * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
6696         * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
6697         * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6698         (cr16_hard_regno_mode_ok): Make static and return a bool.
6699         * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
6700         * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6701         (cris_hard_regno_mode_ok): New function.
6702         * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
6703         (epiphany_mode_class): Delete.
6704         (HARD_REGNO_MODE_OK): Delete.
6705         * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
6706         * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6707         (hard_regno_mode_ok): Rename to...
6708         (epiphany_hard_regno_mode_ok): ...this.  Make static and return a bool.
6709         * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
6710         * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
6711         HARD_REGNO_MODE_OK.
6712         * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
6713         * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
6714         * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6715         (frv_hard_regno_mode_ok): Make static and return a bool.
6716         * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
6717         HARD_REGNO_MODE_OK.
6718         * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
6719         * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
6720         * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
6721         * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
6722         and return a bool.
6723         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6724         * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
6725         * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
6726         * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
6727         return a bool.
6728         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6729         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
6730         * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6731         (ia64_hard_regno_mode_ok): New function.
6732         * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
6733         * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6734         (iq2000_hard_regno_mode_ok): New function.
6735         * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
6736         * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6737         (lm32_hard_regno_mode_ok): New function.
6738         * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
6739         * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
6740         * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
6741         instead of HARD_REGNO_MODE_OK.
6742         (m32c_hard_regno_ok): Rename to...
6743         (m32c_hard_regno_mode_ok): ...this.  Make static and return a bool.
6744         (m32c_cannot_change_mode_class): Update accordingly.
6745         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6746         * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
6747         (m32r_mode_class): Delete.
6748         (HARD_REGNO_MODE_OK): Delete.
6749         * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6750         (m32r_hard_regno_mode_ok): Rename to...
6751         (m32r_hard_regno_modes): ...this.
6752         (m32r_mode_class): Make static.
6753         (m32r_hard_regno_mode_ok): New function.
6754         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
6755         * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
6756         * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6757         (m68k_hard_regno_mode_ok): Make static.
6758         * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
6759         * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6760         (mcore_hard_regno_mode_ok): New function.
6761         * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
6762         (HARD_REGNO_MODE_OK): Delete.
6763         * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
6764         Rename to...
6765         (microblaze_hard_regno_mode_ok_p): ...this and make static.
6766         (microblaze_hard_regno_mode_ok): New function.
6767         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6768         * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
6769         (mips_hard_regno_mode_ok): Delete.
6770         * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
6771         (mips_hard_regno_mode_ok_p): ...this and make static.
6772         (mips_hard_regno_mode_ok_p): Rename to...
6773         (mips_hard_regno_mode_ok_uncached): ...this.
6774         (mips_hard_regno_mode_ok): New function.
6775         (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
6776         of HARD_REGNO_MODE_OK.
6777         (mips_option_override): Update after above name changes.
6778         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6779         * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
6780         * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
6781         * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
6782         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
6783         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6784         * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
6785         * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
6786         * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
6787         * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6788         (msp430_hard_regno_mode_ok): Make static and return a bool.
6789         * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
6790         * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
6791         * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
6792         and return a bool.
6793         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6794         * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
6795         * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
6796         * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
6797         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
6798         (PA_HARD_REGNO_MODE_OK): ...this
6799         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
6800         (PA_HARD_REGNO_MODE_OK): ...this.
6801         * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6802         (pa_hard_regno_mode_ok): New function.
6803         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
6804         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6805         (pdp11_hard_regno_mode_ok): New function.
6806         * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
6807         * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
6808         Delete.
6809         * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
6810         Make static.
6811         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6812         (rs6000_hard_regno_mode_ok): Rename to...
6813         (rs6000_hard_regno_mode_ok_uncached): ...this.
6814         (rs6000_init_hard_regno_mode_ok): Update accordingly.
6815         (rs6000_hard_regno_mode_ok): New function.
6816         * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
6817         * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
6818         * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
6819         (riscv_hard_regno_mode_ok): ...this and make static.
6820         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6821         * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
6822         * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
6823         * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6824         (rl78_hard_regno_mode_ok): Make static and return bool.
6825         * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
6826         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
6827         Delete.
6828         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
6829         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6830         (rs6000_hard_regno_mode_ok): Rename to...
6831         (rs6000_hard_regno_mode_ok_uncached): ...this.
6832         (rs6000_init_hard_regno_mode_ok): Update accordingly.
6833         (rs6000_hard_regno_mode_ok): New function.
6834         * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
6835         * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
6836         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6837         * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
6838         * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
6839         * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
6840         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6841         * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
6842         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
6843         * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6844         (sh_hard_regno_mode_ok): Make static.
6845         * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
6846         instead of HARD_REGNO_MODE_OK.
6847         * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
6848         (sparc_mode_class): Delete.
6849         (HARD_REGNO_MODE_OK): Delete.
6850         * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6851         (hard_regno_mode_classes): Make static.
6852         (sparc_mode_class): Likewise.
6853         (sparc_hard_regno_mode_ok): New function.
6854         * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
6855         * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
6856         * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
6857         function.
6858         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6859         * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
6860         * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
6861         * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
6862         * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
6863         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6864         * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
6865         * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
6866         * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6867         (visium_hard_regno_mode_ok): New function.
6868         * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
6869         instead of HARD_REGNO_MODE_OK.
6870         * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
6871         (HARD_REGNO_MODE_OK): Delete.
6872         * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
6873         (xtensa_hard_regno_mode_ok_p): ...this and make static.
6874         (xtensa_option_override): Update accordingly.
6875         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6876         (xtensa_hard_regno_mode_ok): New function.
6877         * system.h (HARD_REGNO_MODE_OK): Poison.
6879 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
6880             Alan Hayward  <alan.hayward@arm.com>
6881             David Sherwood  <david.sherwood@arm.com>
6883         * target.def (hard_regno_call_part_clobbered): New hook.
6884         * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
6885         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
6886         * doc/tm.texi: Regenerate.
6887         * hooks.h (hook_bool_uint_mode_false): Declare.
6888         * hooks.c (hook_bool_uint_mode_false): New function.
6889         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6890         * cselib.c (cselib_process_insn): Use
6891         targetm.hard_regno_call_part_clobbered instead of
6892         HARD_REGNO_CALL_PART_CLOBBERED.
6893         * ira-conflicts.c (ira_build_conflicts): Likewise.
6894         * ira-costs.c (ira_tune_allocno_costs): Likewise.
6895         * lra-constraints.c (need_for_call_save_p): Likewise.
6896         * lra-lives.c: Include target.h.
6897         (check_pseudos_live_through_calls): Use
6898         targetm.hard_regno_call_part_clobbered instead of
6899         HARD_REGNO_CALL_PART_CLOBBERED.
6900         * regcprop.c: Include target.h.
6901         (copyprop_hardreg_forward_1): Use
6902         targetm.hard_regno_call_part_clobbered instead of
6903         HARD_REGNO_CALL_PART_CLOBBERED.
6904         * reginfo.c (choose_hard_reg_mode): Likewise.
6905         * regrename.c (check_new_reg_p): Likewise.
6906         * reload.c (find_equiv_reg): Likewise.
6907         * reload1.c (emit_reload_insns): Likewise.
6908         * sched-deps.c (deps_analyze_insn): Likewise.
6909         * sel-sched.c (init_regs_for_mode): Likewise.
6910         (mark_unavailable_hard_regs): Likewise.
6911         * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
6912         * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6913         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
6914         New function.
6915         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6916         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6917         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
6918         Delete.
6919         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
6920         and return a bool.
6921         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6922         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6923         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
6924         function.
6925         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6926         * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6927         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
6928         function.
6929         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6930         * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
6931         Delete.
6932         * config/powerpcspe/powerpcspe.c
6933         (rs6000_hard_regno_call_part_clobbered): New function.
6934         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6935         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6936         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
6937         New function.
6938         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6939         * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6940         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
6941         function.
6942         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6943         * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6944         * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
6946 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
6947             Alan Hayward  <alan.hayward@arm.com>
6948             David Sherwood  <david.sherwood@arm.com>
6950         * rtl.h (subreg_memory_offset): Declare.
6951         * emit-rtl.c (subreg_memory_offset): New function.
6952         * expmed.c (store_bit_field_1): Use it.
6953         * expr.c (undefined_operand_subword_p): Likewise.
6954         * simplify-rtx.c (simplify_subreg): Likewise.
6956 2017-09-04  Alexander Monakov  <amonakov@ispras.ru>
6958         PR rtl-optimization/57448
6959         PR target/67458
6960         PR target/81316
6961         * optabs.c (expand_atomic_load): Place compiler memory barriers if
6962         using atomic_load pattern.
6963         (expand_atomic_store): Likewise.
6965 2017-09-04  Jakub Jelinek  <jakub@redhat.com>
6967         PR sanitizer/81981
6968         * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
6969         and UBSAN_BOUNDS internal calls.  Clean up IFN_UBSAN_OBJECT_SIZE
6970         handling.  Use replace_call_with_value with NULL instead of
6971         gsi_replace, unlink_stmt_vdef and release_defs.
6973         * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
6974         instead of tab.
6976         * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
6978 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
6980         PR bootstrap/82045
6981         * rtl.h (emit_library_call_value_1): Declare.
6982         (emit_library_call): Replace declaration with a series of overloads.
6983         Remove the parameter count argument.
6984         (emit_library_call_value): Likewise.
6985         * calls.c (emit_library_call_value_1): Make global.  Replace varargs
6986         with an "rtx_mode_t *".
6987         (emit_library_call_value): Delete.
6988         (emit_library_call): Likewise.
6989         * asan.c (asan_emit_stack_protection): Update calls accordingly.
6990         (asan_emit_allocas_unpoison): Likewise.
6991         * builtins.c (expand_builtin_powi): Likewise.
6992         (expand_asan_emit_allocas_unpoison): Likewise.
6993         * cfgexpand.c (expand_main_function): Likewise.
6994         * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
6995         * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
6996         * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
6997         * config/arm/arm.c (arm_trampoline_init): Likewise.
6998         (arm_call_tls_get_addr): Likewise.
6999         (arm_expand_divmod_libfunc): Likewise.
7000         * config/bfin/bfin.md (umulsi3_highpart): Likewise.
7001         (smulsi3_highpart): Likewise.
7002         * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
7003         (c6x_expand_compare): Likewise.
7004         (c6x_expand_movmem): Likewise.
7005         * config/frv/frv.c (frv_trampoline_init): Likewise.
7006         * config/i386/i386.c (ix86_trampoline_init): Likewise.
7007         (ix86_expand_divmod_libfunc): Likewise.
7008         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
7009         (ia64_expand_compare): Likewise.
7010         (ia64_profile_hook): Likewise.
7011         * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
7012         (nonlocal_goto): Likewise.
7013         (restore_stack_nonlocal): Likewise.
7014         * config/m32r/m32r.c (block_move_call): Likewise.
7015         (m32r_trampoline_init): Likewise.
7016         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
7017         * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
7018         (m68k_call_m68k_read_tp): Likewise.
7019         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
7020         (microblaze_expand_divide): Likewise.
7021         * config/mips/mips.h (mips_args): Likewise.
7022         * config/mips/sdemtk.h (mips_sync_icache): Likewise.
7023         (MIPS_ICACHE_SYNC): Likewise.
7024         * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
7025         (nios2_trampoline_init): Likewise.
7026         * config/pa/pa.c (hppa_tls_call): Likewise.
7027         (pa_trampoline_init): Likewise.
7028         * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
7029         * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
7030         (expand_strn_compare): Likewise.
7031         (rs6000_generate_compare): Likewise.
7032         (rs6000_expand_float128_convert): Likewise.
7033         (output_profile_hook): Likewise.
7034         (rs6000_trampoline_init): Likewise.
7035         * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
7036         * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
7037         * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
7038         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
7039         (rs6000_generate_compare): Likewise.
7040         (rs6000_expand_float128_convert): Likewise.
7041         (output_profile_hook): Likewise.
7042         (rs6000_trampoline_init): Likewise.
7043         * config/rs6000/rs6000.md (neg<mode>2): Likewise.
7044         * config/sh/sh.c (sh_trampoline_init): Likewise.
7045         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
7046         (sparc_emit_float_lib_cmp): Likewise.
7047         (sparc32_initialize_trampoline): Likewise.
7048         (sparc64_initialize_trampoline): Likewise.
7049         (sparc_profile_hook): Likewise.
7050         * config/spu/spu.c (ea_load_store): Likewise.
7051         * config/spu/spu.md (floatunssidf2): Likewise.
7052         * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
7053         * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
7054         * config/visium/visium.c (expand_block_move_4): Likewise.
7055         (expand_block_move_2): Likewise.
7056         (expand_block_move_1): Likewise.
7057         (expand_block_set_4): Likewise.
7058         (expand_block_set_2): Likewise.
7059         (expand_block_set_1): Likewise.
7060         (visium_trampoline_init): Likewise.
7061         (visium_profile_hook): Likewise.
7062         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
7063         (xtensa_setup_frame_addresses): Likewise.
7064         (xtensa_trampoline_init): Likewise.
7065         * except.c (sjlj_emit_function_enter): Likewise.
7066         (sjlj_emit_function_exit): Likewise.
7067         * explow.c (allocate_dynamic_stack_space): Likewise.
7068         (probe_stack_range): Likewise.
7069         * expr.c (convert_mode_scalar): Likewise.
7070         * optabs.c (expand_binop): Likewise.
7071         (expand_twoval_binop_libfunc): Likewise.
7072         (expand_unop): Likewise.
7073         (prepare_cmp_insn): Likewise.
7074         (prepare_float_lib_cmp): Likewise.
7075         (expand_float): Likewise.
7076         (expand_fix): Likewise.
7077         (expand_fixed_convert): Likewise.
7078         (maybe_emit_sync_lock_test_and_set): Likewise.
7079         (expand_atomic_compare_and_swap): Likewise.
7080         (expand_mem_thread_fence): Likewise.
7081         (expand_atomic_fetch_op): Likewise.
7083 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
7085         * doc/generic.texi (OpenACC): Adjust URL.
7086         * doc/invoke.texi (C Dialect Options): Ditto.
7088 2017-09-03  Uros Bizjak  <ubizjak@gmail.com>
7090         * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
7091         predicate for operand 1.  Add (m,<S>) constraint.
7092         (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
7093         Prevent memory operand 1 with register operand 2.
7095 2017-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
7097         PR rtl-optimization/82024
7098         * combine.c (try_combine): If the combination result is a PARALLEL,
7099         and we only need to retain the SET in there that would be placed
7100         at I2, check that we can place that at I3 instead, before doing so.
7102 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
7104         PR target/81766
7105         * config/i386/i386.c (ix86_init_large_pic_reg): Return label
7106         instead of void.
7107         (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
7108         if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
7109         and label.
7111 2017-09-01  Joerg Sonnenberger  <joerg@bec.de>
7112             Jeff Law  <law@redhat.com>
7114         * varasm.c (bss_initializer_p): Do not put constants into .bss
7115         (categorize_decl_for_section): Handle bss_initializer_p returning
7116         false when DECL_INITIAL is NULL.
7118 2017-09-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7120         PR target/82012
7121         * config/s390/s390.c (s390_can_inline_p): New function.
7123 2017-09-01  Jeff Law  <law@redhat.com>
7125         PR tree-optimization/82052
7126         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
7127         Always initialize the returned slot after a hash table miss
7128         when INSERT is true.
7130 2017-09-01  Alexander Monakov  <amonakov@ispras.ru>
7132         * config/s390/s390.md (mem_signal_fence): Remove.
7133         * doc/md.texi (mem_signal_fence): Remove.
7134         * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
7135         Update comments.
7136         * target-insns.def (mem_signal_fence): Remove.
7138 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
7140         PR sanitizer/81902
7141         * doc/invoke.texi: Document -fsanitize=pointer-overflow.
7143         PR sanitizer/81923
7144         * asan.c (create_odr_indicator): Strip name encoding from assembler
7145         name before appending it after __odr_asan_.
7147 2017-09-01  Martin Liska  <mliska@suse.cz>
7149         PR tree-optimization/82059
7150         * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
7151         frequency only when an edge is redirected.
7153 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
7155         * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
7156         * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
7157         (arc_conditional_register_usage): Remove ARC600 lp_count
7158         exception.
7159         (arc_file_start): Emit Tag_ARC_CPU_variation.
7160         (arc_can_use_doloop_p): New conditions to use ZOLs.
7161         (hwloop_fail): New function.
7162         (hwloop_optimize): Likewise.
7163         (hwloop_pattern_reg): Likewise.
7164         (arc_doloop_hooks): New struct, to be used with reorg_loops.
7165         (arc_reorg_loops): New function, calls reorg_loops.
7166         (arc_reorg): Call arc_reorg_loops.  Remove old ZOL handling.
7167         (arc600_corereg_hazard): Remove ZOL checking, case handled by
7168         hwloop_optimize.
7169         (arc_loop_hazard): Remove function, functionality moved into
7170         hwloop_optimize.
7171         (arc_hazard): Remove arc_loop_hazard call.
7172         (arc_adjust_insn_length): Remove ZOL handling, functionality moved
7173         into hwloop_optimize.
7174         (arc_label_align): Remove ZOL handling.
7175         * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
7176         * config/arc/arc.md (doloop_begin): Remove pattern.
7177         (doloop_begin_i): Likewise.
7178         (doloop_end_i): Likewise.
7179         (doloop_fallback): Likewise.
7180         (doloop_fallback_m): Likewise.
7181         (doloop_end): Reimplement expand.
7182         (arc_lp): New pattern for LP instruction.
7183         (loop_end): New pattern.
7184         (loop_fail): Likewise.
7185         (decrement_and_branch_until_zero): Likewise.
7186         * config/arc/arc.opt (mlpc-width): New option.
7187         * doc/invoke.texi (mlpc-width): Document option.
7189 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
7191         * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
7192         (arc_ccfsm_advance): Fix checking for delay slots.
7193         (arc_reorg): Add rtl dump after each call to arc_ifcvt.
7195 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
7197         * config/arc/arc.md (movqi_insn): Add stores to save constant long
7198         immediates.
7199         (movhi_insn): Update store instruction constraint which are saving
7200         6-bit short immediates.
7201         (movsi_insn): Consider also short scaled load operations.
7202         (zero_extendhisi2_i): Use Usd constraint instead of T.
7203         (extendhisi2_i): Add q constraint.
7204         (arc_clzsi2): Add type and length attributes.
7205         (arc_ctzsi2): Likewise.
7206         * config/arc/constraints.md (Usc): Update constraint, the
7207         assembler can parse two relocations for a single instruction.
7209 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
7211         * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
7212         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
7214 2017-08-31  Olivier Hainque  <hainque@adacore.com>
7216         * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
7217         match as powerpc-wrs-vxworks*.
7219 2017-08-31  James Greenhalgh  <james.greenhalgh@arm.com>
7221         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
7222         register constraint for by-element operand.
7223         (aarch64_mls_elt_merge<mode>): Likewise.
7225 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
7227         * config/arc/arc.c (arc_can_follow_jump): Check for short
7228         branches.
7230 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
7232         * config.gcc: Use g.opt for arc.
7233         * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
7234         functionality moved to ...
7235         (legitimate_scaled_address_p): New function, ...here.
7236         (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
7237         (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
7238         (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
7239         condition.
7240         (arc_override_options): Handle G option.
7241         (arc_output_pic_addr_const): Correct function definition.
7242         (arc_legitimate_address_p): Use legitimate_scaled_address_p.
7243         (arc_decl_anon_ns_mem_p): Delete.
7244         (arc_in_small_data_p): Overhaul this function to take into
7245         consideration the value given via G option.
7246         (arc_rewrite_small_data_1): Renamed and corrected old
7247         arc_rewrite_small_data function.
7248         (arc_rewrite_small_data): New function.
7249         (small_data_pattern): Don't use pic_offset_table_rtx.
7250         * config/arc/arc.h (CC1_SPEC): Recognize G option.
7251         * config/arc/simdext.md (movmisalignv2hi): Use
7252         prepare_move_operands function.
7253         (mov*): Likewise.
7254         (movmisalign*): Likewise.
7255         * doc/invoke.texi (ARC options): Document -G option.
7257 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
7259         * config/arc/arc-protos.h (compact_sda_memory_operand): Update
7260         prototype.
7261         * config/arc/arc.c (arc_print_operand): Output scalled address for
7262         sdata whenever is possible.
7263         (arc_in_small_data_p): Allow sdata for 64bit datum when double
7264         load/stores are available.
7265         (compact_sda_memory_operand): Check for the alignment required by
7266         code density instructions.
7267         * config/arc/arc.md (movsi_insn): Use newly introduced Us0
7268         constraint.
7269         * config/arc/constraints.md (Usd): Update constraint.
7270         (Us0): New constraint.
7271         (Usc): Update constraint.
7273 2017-08-31  Richard Biener  <rguenther@suse.de>
7275         PR middle-end/82054
7276         * dwarf2out.c (dwarf2out_early_global_decl): Process each
7277         function only once.
7279 2017-08-31  Tamar Christina  <tamar.christina@arm.com>
7281         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
7282         Resize type_signature.
7284 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
7285             Alan Hayward  <alan.hayward@arm.com>
7286             David Sherwood  <david.sherwood@arm.com>
7288         * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
7289         subregs whose inner modes can be stored in GPRs.
7290         (aarch64_classify_index): Likewise.
7292 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
7293             Alan Hayward  <alan.hayward@arm.com>
7294             David Sherwood  <david.sherwood@arm.com>
7296         * config/aarch64/iterators.md (V_cmp_result): Rename to...
7297         (V_INT_EQUIV): ...this.
7298         (v_cmp_result): Rename to...
7299         (v_int_equiv): ...this.
7300         * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
7301         * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
7302         (copysign<mode>3): Likewise.
7303         (aarch64_simd_bsl<mode>_internal): Likewise.
7304         (aarch64_simd_bsl<mode>): Likewise.
7305         (vec_cmp<mode><mode>): Likewise.
7306         (vcond<mode><mode>): Likewise.
7307         (vcond<v_cmp_mixed><mode>): Likewise.
7308         (vcondu<mode><v_cmp_mixed>): Likewise.
7309         (aarch64_cm<optab><mode>): Likewise.
7310         (aarch64_cmtst<mode>): Likewise.
7311         (aarch64_fac<optab><mode>): Likewise.
7312         (vec_perm_const<mode>): Likewise.
7313         (vcond_mask_<mode><v_cmp_result>): Rename to...
7314         (vcond_mask_<mode><v_int_equiv>): ...this.
7315         (vec_cmp<mode><v_cmp_result>): Rename to...
7316         (vec_cmp<mode><v_int_equiv>): ...this.
7318 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
7319             Alan Hayward  <alan.hayward@arm.com>
7320             David Sherwood  <david.sherwood@arm.com>
7322         * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
7323         vector modes.
7324         * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
7325         * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
7326         (UNSPEC_LD4_DREG): New unspecs.
7327         * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
7328         (aarch64_ld2<mode>_dreg_be): Replace with...
7329         (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
7330         unspec.
7331         (aarch64_ld3<mode>_dreg_le)
7332         (aarch64_ld3<mode>_dreg_be): Replace with...
7333         (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
7334         unspec.
7335         (aarch64_ld4<mode>_dreg_le)
7336         (aarch64_ld4<mode>_dreg_be): Replace with...
7337         (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
7338         unspec.
7340 2017-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7342         PR tree-optimization/81987
7343         * gimple-ssa-strength-reduction.c (insert_initializers): Don't
7344         insert an initializer in a location not dominated by the stride
7345         definition.
7347 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
7349         * tree-eh.c (lower_try_finally_switch): Set the location of the finally
7350         on the entire header of the finally block in the fallthru case.
7352 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
7354         * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
7356 2017-08-30  Pat Haugen  <pthaugen@us.ibm.com>
7358         * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
7359         rs6000_emit_move_from_cr and call renamed function.
7360         (rs6000_emit_prologue): Call renamed functions.
7361         * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
7362         movesi_from_cr, remove volatile CRs.
7364 2017-08-30  Jon Beniston  <jon@beniston.com>
7365             Richard Biener  <rguenther@suse.de>
7367         * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
7368         of VECTOR_MODE_P check.
7369         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
7370         element vector types.
7372 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7374         * df.h (df_read_modify_subreg_p): Remove in favor of...
7375         * rtl.h (read_modify_subreg_p): ...this new function.  Take a
7376         const_rtx instead of an rtx.
7377         * cprop.c (local_cprop_find_used_regs): Update accordingly.
7378         * df-problems.c (df_word_lr_mark_ref): Likewise.
7379         * ira-lives.c (mark_pseudo_reg_live): Likewise.
7380         (mark_pseudo_reg_dead): Likewise.
7381         (mark_ref_dead): Likewise.
7382         * reginfo.c (init_subregs_of_mode): Likewise.
7383         * sched-deps.c (sched_analyze_1): Likewise.
7384         * df-scan.c (df_def_record_1): Likewise.
7385         (df_uses_record): Likewise.
7386         (df_read_modify_subreg_p): Remove in favor of...
7387         * rtlanal.c (read_modify_subreg_p): ...this new function.  Take a
7388         const_rtx instead of an rtx.
7390 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7391             Alan Hayward  <alan.hayward@arm.com>
7392             David Sherwood  <david.sherwood@arm.com>
7394         * rtl.h (partial_subreg_p): New function.
7395         * caller-save.c (save_call_clobbered_regs): Use it.
7396         * calls.c (expand_call): Likewise.
7397         * combine.c (combinable_i3pat): Likewise.
7398         (simplify_set): Likewise.
7399         (make_extraction): Likewise.
7400         (make_compound_operation_int): Likewise.
7401         (gen_lowpart_or_truncate): Likewise.
7402         (force_to_mode): Likewise.
7403         (make_field_assignment): Likewise.
7404         (reg_truncated_to_mode): Likewise.
7405         (record_truncated_value): Likewise.
7406         (move_deaths): Likewise.
7407         * cse.c (record_jump_cond): Likewise.
7408         (cse_insn): Likewise.
7409         * cselib.c (cselib_lookup_1): Likewise.
7410         * expmed.c (extract_bit_field_using_extv): Likewise.
7411         * function.c (assign_parm_setup_reg): Likewise.
7412         * ifcvt.c (noce_convert_multiple_sets): Likewise.
7413         * ira-build.c (create_insn_allocnos): Likewise.
7414         * lra-coalesce.c (merge_pseudos): Likewise.
7415         * lra-constraints.c (match_reload): Likewise.
7416         (simplify_operand_subreg): Likewise.
7417         (curr_insn_transform): Likewise.
7418         * lra-lives.c (process_bb_lives): Likewise.
7419         * lra.c (new_insn_reg): Likewise.
7420         (lra_substitute_pseudo): Likewise.
7421         * regcprop.c (mode_change_ok): Likewise.
7422         (maybe_mode_change): Likewise.
7423         (copyprop_hardreg_forward_1): Likewise.
7424         * reload.c (push_reload): Likewise.
7425         (find_reloads): Likewise.
7426         (find_reloads_subreg_address): Likewise.
7427         * reload1.c (alter_reg): Likewise.
7428         (eliminate_regs_1): Likewise.
7429         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7431 2017-08-30  David Edelsohn  <dje.gcc@gmail.com>
7433         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
7434         back to if statements, including unpack.
7436 2017-08-30  Martin Liska  <mliska@suse.cz>
7438         PR inline-asm/82001
7439         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
7440         Rename to ...
7441         (func_checker::compare_asm_inputs_outputs): ... this function.
7442         (func_checker::compare_gimple_asm): Use the function to compare
7443         also ASM constrains.
7444         * ipa-icf-gimple.h: Rename the function.
7446 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7447             Alan Hayward  <alan.hayward@arm.com>
7448             David Sherwood  <david.sherwood@arm.com>
7450         * coretypes.h (complex_mode): New type.
7451         * gdbhooks.py (build_pretty_printer): Handle it.
7452         * machmode.h (complex_mode): New class.
7453         (complex_mode::includes_p): New function.
7454         (is_complex_int_mode): Likewise.
7455         (is_complex_float_mode): Likewise.
7456         * genmodes.c (get_mode_class): Handle complex mode classes.
7457         * function.c (expand_function_end): Use is_complex_int_mode.
7459 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7460             Alan Hayward  <alan.hayward@arm.com>
7461             David Sherwood  <david.sherwood@arm.com>
7463         * coretypes.h (scalar_mode_pod): New typedef.
7464         * gdbhooks.py (build_pretty_printer): Handle it.
7465         * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
7466         * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
7467         * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
7468         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
7469         as_a <scalar_mode>.
7471 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7472             Alan Hayward  <alan.hayward@arm.com>
7473             David Sherwood  <david.sherwood@arm.com>
7475         * machmode.h (mode_for_vector): Take a scalar_mode instead
7476         of a machine_mode.
7477         * stor-layout.c (mode_for_vector): Likewise.
7478         * explow.c (promote_mode): Use as_a <scalar_mode>.
7479         * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
7481 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7482             Alan Hayward  <alan.hayward@arm.com>
7483             David Sherwood  <david.sherwood@arm.com>
7485         * target.def (preferred_simd_mode): Take a scalar_mode
7486         instead of a machine_mode.
7487         * targhooks.h (default_preferred_simd_mode): Likewise.
7488         * targhooks.c (default_preferred_simd_mode): Likewise.
7489         * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
7490         * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
7491         * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
7492         * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
7493         * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
7494         * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
7495         * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
7496         * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
7497         Likewise.
7498         * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
7499         * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
7500         * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
7501         * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
7502         (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
7503         * doc/tm.texi: Regenerate.
7504         * optabs-query.c (can_vec_mask_load_store_p): Return false for
7505         non-scalar modes.
7507 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7508             Alan Hayward  <alan.hayward@arm.com>
7509             David Sherwood  <david.sherwood@arm.com>
7511         * target.def (scalar_mode_supported_p): Take a scalar_mode
7512         instead of a machine_mode.
7513         * targhooks.h (default_scalar_mode_supported_p): Likewise.
7514         * targhooks.c (default_scalar_mode_supported_p): Likewise.
7515         * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
7516         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
7517         * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
7518         * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
7519         * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
7520         * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
7521         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
7522         * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
7523         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
7524         * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
7525         * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
7526         * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
7527         Likewise.
7528         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
7529         * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
7530         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
7531         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
7532         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
7533         Likewise.
7534         * doc/tm.texi: Regenerate.
7536 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7537             Alan Hayward  <alan.hayward@arm.com>
7538             David Sherwood  <david.sherwood@arm.com>
7540         * coretypes.h (opt_scalar_mode): New typedef.
7541         * gdbhooks.py (build_pretty_printers): Handle it.
7542         * machmode.h (mode_iterator::get_2xwider): Add overload for
7543         opt_mode<T>.
7544         * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
7545         over scalar modes.
7546         * expr.c (convert_mode_scalar): Likewise.
7547         * omp-low.c (omp_clause_aligned_alignment): Likewise.
7548         * optabs.c (expand_float): Likewise.
7549         (expand_fix): Likewise.
7550         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7552 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7553             Alan Hayward  <alan.hayward@arm.com>
7554             David Sherwood  <david.sherwood@arm.com>
7556         * optabs.c (expand_float): Explicitly check for scalars before
7557         using a branching expansion.
7558         (expand_fix): Likewise.
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         * expr.c (convert_mode): Split scalar handling out into...
7565         (convert_mode_scalar): ...this new function.  Treat the modes
7566         as scalar_modes.
7568 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7569             Alan Hayward  <alan.hayward@arm.com>
7570             David Sherwood  <david.sherwood@arm.com>
7572         * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
7573         and scalar_mode.
7574         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
7576 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7577             Alan Hayward  <alan.hayward@arm.com>
7578             David Sherwood  <david.sherwood@arm.com>
7580         * fixed-value.h (fixed_from_double_int): Take a scalar_mode
7581         rather than a machine_mode.
7582         (fixed_from_string): Likewise.
7583         (fixed_convert): Likewise.
7584         (fixed_convert_from_int): Likewise.
7585         (fixed_convert_from_real): Likewise.
7586         (real_convert_from_fixed): Likewise.
7587         * fixed-value.c (fixed_from_double_int): Likewise.
7588         (fixed_from_string): Likewise.
7589         (fixed_convert): Likewise.
7590         (fixed_convert_from_int): Likewise.
7591         (fixed_convert_from_real): Likewise.
7592         (real_convert_from_fixed): Likewise.
7593         * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
7595 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7596             Alan Hayward  <alan.hayward@arm.com>
7597             David Sherwood  <david.sherwood@arm.com>
7599         * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
7600         of separate mode class checks.  Do not allow vector modes here.
7601         (immed_wide_int_const): Use as_a <scalar_mode>.
7602         * explow.c (trunc_int_for_mode): Likewise.
7603         * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
7604         (wi::shwi): Likewise.
7605         (wi::min_value): Likewise.
7606         (wi::max_value): Likewise.
7607         * dwarf2out.c (loc_descriptor): Likewise.
7608         * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
7609         for CONST_WIDE_INT.
7611 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7612             Alan Hayward  <alan.hayward@arm.com>
7613             David Sherwood  <david.sherwood@arm.com>
7615         * tree.h (SCALAR_TYPE_MODE): New macro.
7616         * expr.c (expand_expr_addr_expr_1): Use it.
7617         (expand_expr_real_2): Likewise.
7618         * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
7619         (fold_convert_const_fixed_from_int): Likewise.
7620         (fold_convert_const_fixed_from_real): Likewise.
7621         (native_encode_fixed): Likewise
7622         (native_encode_complex): Likewise
7623         (native_encode_vector): Likewise.
7624         (native_interpret_fixed): Likewise.
7625         (native_interpret_real): Likewise.
7626         (native_interpret_complex): Likewise.
7627         (native_interpret_vector): Likewise.
7628         * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
7629         (simd_clone_adjust_argument_types): Likewise.
7630         (simd_clone_init_simd_arrays): Likewise.
7631         (simd_clone_adjust): Likewise.
7632         * stor-layout.c (layout_type): Likewise.
7633         * tree.c (build_minus_one_cst): Likewise.
7634         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
7635         * tree-inline.c (estimate_move_cost): Likewise.
7636         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
7637         * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
7638         (vectorizable_reduction): Likewise.
7639         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
7640         (vect_recog_mixed_size_cond_pattern): Likewise.
7641         (check_bool_pattern): Likewise.
7642         (adjust_bool_pattern): Likewise.
7643         (search_type_for_mask_1): Likewise.
7644         * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
7645         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7646         (vectorizable_load): Likewise.
7647         (vectorizable_store): Likewise.
7648         * ubsan.c (ubsan_encode_value): Likewise.
7649         * varasm.c (output_constant): Likewise.
7651 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7652             Alan Hayward  <alan.hayward@arm.com>
7653             David Sherwood  <david.sherwood@arm.com>
7655         * coretypes.h (scalar_mode): New class.
7656         * machmode.h (scalar_mode): Likewise.
7657         (scalar_mode::includes_p): New function.
7658         (mode_to_inner): Return a scalar_mode rather than a machine_mode.
7659         * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
7660         * genmodes.c (get_mode_class): Handle remaining scalar modes.
7661         * cfgexpand.c (expand_debug_expr): Use scalar_mode.
7662         * expmed.c (store_bit_field_1): Likewise.
7663         (extract_bit_field_1): Likewise.
7664         * expr.c (write_complex_part): Likewise.
7665         (read_complex_part): Likewise.
7666         (emit_move_complex_push): Likewise.
7667         (expand_expr_real_2): Likewise.
7668         * function.c (assign_parm_setup_reg): Likewise.
7669         (assign_parms_unsplit_complex): Likewise.
7670         * optabs.c (expand_binop): Likewise.
7671         * rtlanal.c (subreg_get_info): Likewise.
7672         * simplify-rtx.c (simplify_immed_subreg): Likewise.
7673         * varasm.c (output_constant_pool_2): Likewise.
7675 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7676             Alan Hayward  <alan.hayward@arm.com>
7677             David Sherwood  <david.sherwood@arm.com>
7679         * expmed.c (extract_high_half): Use scalar_int_mode and remove
7680         assertion.
7681         (expmed_mult_highpart_optab): Likewise.
7682         (expmed_mult_highpart): Likewise.
7684 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7685             Alan Hayward  <alan.hayward@arm.com>
7686             David Sherwood  <david.sherwood@arm.com>
7688         * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
7689         instead of a machine_mode.
7690         (builtin_memset_read_str): Likewise.
7691         * builtins.c (c_readstr): Likewise.
7692         (builtin_memcpy_read_str): Likewise.
7693         (builtin_strncpy_read_str): Likewise.
7694         (builtin_memset_read_str): Likewise.
7695         (builtin_memset_gen_str): Likewise.
7696         (expand_builtin_signbit): Use scalar_int_mode for local variables.
7697         * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
7698         instead of a machine_mode.
7699         * combine.c (simplify_if_then_else): Use scalar_int_mode for local
7700         variables.
7701         (make_extraction): Likewise.
7702         (try_widen_shift_mode): Take and return scalar_int_modes instead
7703         of machine_modes.
7704         * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
7705         a scalar_int_mode instead of a machine_mode.
7706         * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
7707         (avr_addr_space_pointer_mode): Likewise.
7708         * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
7709         * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
7710         (msp430_unwind_word_mode): Likewise.
7711         * config/spu/spu.c (spu_unwind_word_mode): Likewise.
7712         (spu_addr_space_pointer_mode): Likewise.
7713         (spu_addr_space_address_mode): Likewise.
7714         (spu_libgcc_cmp_return_mode): Likewise.
7715         (spu_libgcc_shift_count_mode): Likewise.
7716         * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
7717         (rl78_addr_space_pointer_mode): Likewise.
7718         (fl78_unwind_word_mode): Likewise.
7719         (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
7720         machine_mode.
7721         * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
7722         * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
7723         * config/mips/mips.c (mips_mode_rep_extended): Likewise.
7724         (mips_valid_pointer_mode): Likewise.
7725         * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
7726         * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
7727         (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
7728         of a machine_mode.
7729         (ft32_addr_space_address_mode): Likewise.
7730         * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
7731         scalar_int_mode instead of a machine_mode.
7732         (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
7733         of a machine_mode.
7734         (m32c_addr_space_address_mode): Likewise.
7735         * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
7736         (rs6000_eh_return_filter_mode): Likewise.
7737         * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
7738         (rs6000_eh_return_filter_mode): Likewise.
7739         * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
7740         (s390_libgcc_shift_count_mode): Likewise.
7741         (s390_unwind_word_mode): Likewise.
7742         (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
7743         machine_mode.
7744         * target.def (mode_rep_extended): Likewise.
7745         (valid_pointer_mode): Likewise.
7746         (addr_space.valid_pointer_mode): Likewise.
7747         (eh_return_filter_mode): Return a scalar_int_mode rather than
7748         a machine_mode.
7749         (libgcc_cmp_return_mode): Likewise.
7750         (libgcc_shift_count_mode): Likewise.
7751         (unwind_word_mode): Likewise.
7752         (addr_space.pointer_mode): Likewise.
7753         (addr_space.address_mode): Likewise.
7754         * doc/tm.texi: Regenerate.
7755         * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
7756         a machine_mode.
7757         (do_jump): Use scalar_int_mode for local variables.
7758         * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
7759         rather than a machine_mode.
7760         * dwarf2out.c (convert_descriptor_to_mode): Likewise.
7761         (scompare_loc_descriptor_wide): Likewise.
7762         (scompare_loc_descriptor_narrow): Likewise.
7763         * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
7764         variables.
7765         * except.c (sjlj_emit_dispatch_table): Likewise.
7766         (expand_builtin_eh_copy_values): Likewise.
7767         * explow.c (convert_memory_address_addr_space_1): Likewise.
7768         Take a scalar_int_mode rather than a machine_mode.
7769         (convert_memory_address_addr_space): Take a scalar_int_mode rather
7770         than a machine_mode.
7771         (memory_address_addr_space): Use scalar_int_mode for local variables.
7772         * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
7773         rather than a machine_mode.
7774         * expmed.c (mask_rtx): Likewise.
7775         (init_expmed_one_conv): Likewise.
7776         (expand_mult_highpart_adjust): Likewise.
7777         (extract_high_half): Likewise.
7778         (expmed_mult_highpart_optab): Likewise.
7779         (expmed_mult_highpart): Likewise.
7780         (expand_smod_pow2): Likewise.
7781         (expand_sdiv_pow2): Likewise.
7782         (emit_store_flag_int): Likewise.
7783         (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
7784         variables.
7785         (extract_low_bits): Likewise.
7786         * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
7787         a machine_mode.
7788         * expr.c (pieces_addr::adjust):  Likewise.
7789         (can_store_by_pieces): Likewise.
7790         (store_by_pieces): Likewise.
7791         (clear_by_pieces_1): Likewise.
7792         (expand_expr_addr_expr_1): Likewise.
7793         (expand_expr_addr_expr): Use scalar_int_mode for local variables.
7794         (expand_expr_real_1): Likewise.
7795         (try_casesi): Likewise.
7796         * final.c (shorten_branches): Likewise.
7797         * fold-const.c (fold_convert_const_int_from_fixed): Change the
7798         type of "mode" to machine_mode.
7799         * internal-fn.c (expand_arith_overflow_result_store): Take a
7800         scalar_int_mode rather than a machine_mode.
7801         (expand_mul_overflow): Use scalar_int_mode for local variables.
7802         * loop-doloop.c (doloop_modify): Likewise.
7803         (doloop_optimize): Likewise.
7804         * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
7805         than a machine_mode.
7806         (expand_doubleword_shift_condmove): Likewise.
7807         (expand_doubleword_shift): Likewise.
7808         (expand_doubleword_clz): Likewise.
7809         (expand_doubleword_popcount): Likewise.
7810         (expand_doubleword_parity): Likewise.
7811         (expand_absneg_bit): Use scalar_int_mode for local variables.
7812         (prepare_float_lib_cmp): Likewise.
7813         * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
7814         rather than a machine_mode.
7815         (convert_memory_address_addr_space): Likewise.
7816         (get_mode_bounds): Likewise.
7817         (get_address_mode): Return a scalar_int_mode rather than a
7818         machine_mode.
7819         * rtlanal.c (get_address_mode): Likewise.
7820         * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
7821         than a machine_mode.
7822         * targhooks.c (default_mode_rep_extended): Likewise.
7823         (default_valid_pointer_mode): Likewise.
7824         (default_addr_space_valid_pointer_mode): Likewise.
7825         (default_eh_return_filter_mode): Return a scalar_int_mode rather
7826         than a machine_mode.
7827         (default_libgcc_cmp_return_mode): Likewise.
7828         (default_libgcc_shift_count_mode): Likewise.
7829         (default_unwind_word_mode): Likewise.
7830         (default_addr_space_pointer_mode): Likewise.
7831         (default_addr_space_address_mode): Likewise.
7832         * targhooks.h (default_eh_return_filter_mode): Likewise.
7833         (default_libgcc_cmp_return_mode): Likewise.
7834         (default_libgcc_shift_count_mode): Likewise.
7835         (default_unwind_word_mode): Likewise.
7836         (default_addr_space_pointer_mode): Likewise.
7837         (default_addr_space_address_mode): Likewise.
7838         (default_mode_rep_extended): Take a scalar_int_mode rather than
7839         a machine_mode.
7840         (default_valid_pointer_mode): Likewise.
7841         (default_addr_space_valid_pointer_mode): Likewise.
7842         * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
7843         local variables.
7844         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
7845         rather than a machine_mode.
7846         * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
7847         for local variables.
7848         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
7849         * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
7850         than a machine_mode.
7852 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7853             Alan Hayward  <alan.hayward@arm.com>
7854             David Sherwood  <david.sherwood@arm.com>
7856         * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
7857         the mode argument to scalar_int_mode.
7858         (do_jump_by_parts_zero_rtx): Likewise.
7859         (do_jump_by_parts_equality_rtx): Likewise.
7860         (do_jump_by_parts_greater): Take a mode argument.
7861         (do_jump_by_parts_equality): Likewise.
7862         (do_jump_1): Update calls accordingly.
7864 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7865             Alan Hayward  <alan.hayward@arm.com>
7866             David Sherwood  <david.sherwood@arm.com>
7868         * is-a.h (safe_dyn_cast): New function.
7869         * rtl.h (rtx_jump_table_data::get_data_mode): New function.
7870         (jump_table_for_label): Likewise.
7871         * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
7872         instead of an rtx_insn *.
7873         (shorten_branches): Use dyn_cast instead of LABEL_P and
7874         JUMP_TABLE_DATA_P.  Use jump_table_for_label and
7875         rtx_jump_table_data::get_data_mode.
7876         (final_scan_insn): Likewise.
7878 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7879             Alan Hayward  <alan.hayward@arm.com>
7880             David Sherwood  <david.sherwood@arm.com>
7882         * combine.c (try_combine): Use is_a <scalar_int_mode> when
7883         trying to combine a full-register integer set with a subreg
7884         integer set.
7886 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7887             Alan Hayward  <alan.hayward@arm.com>
7888             David Sherwood  <david.sherwood@arm.com>
7890         * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
7891         that is always either address_mode or pointer_mode.
7893 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7894             Alan Hayward  <alan.hayward@arm.com>
7895             David Sherwood  <david.sherwood@arm.com>
7897         * expr.c (expand_expr_real_2): Use word_mode instead of innermode
7898         when the two are known to be equal.
7900 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7901             Alan Hayward  <alan.hayward@arm.com>
7902             David Sherwood  <david.sherwood@arm.com>
7904         * simplify-rtx.c (simplify_const_unary_operation): Use
7905         is_a <scalar_int_mode> instead of checking for a nonzero
7906         precision.  Forcibly convert op_mode to a scalar_int_mode
7907         in that case.  More clearly differentiate the operand and
7908         result modes and use the former when deciding what the value
7909         of a count-bits operation should be.  Use is_int_mode instead
7910         of checking for a MODE_INT.  Remove redundant check for whether
7911         this mode has a zero precision.
7913 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7914             Alan Hayward  <alan.hayward@arm.com>
7915             David Sherwood  <david.sherwood@arm.com>
7917         * optabs.c (widen_leading): Change the type of the mode argument
7918         to scalar_int_mode.  Use opt_scalar_int_mode for the mode iterator.
7919         (widen_bswap): Likewise.
7920         (expand_parity): Likewise.
7921         (expand_ctz): Change the type of the mode argument to scalar_int_mode.
7922         (expand_ffs): Likewise.
7923         (epand_unop): Check for scalar integer modes before calling the
7924         above routines.
7926 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7927             Alan Hayward  <alan.hayward@arm.com>
7928             David Sherwood  <david.sherwood@arm.com>
7930         * expr.c (const_scalar_mask_from_tree): Add a mode argument.
7931         Expand commentary.
7932         (expand_expr_real_1): Update call accordingly.
7934 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7935             Alan Hayward  <alan.hayward@arm.com>
7936             David Sherwood  <david.sherwood@arm.com>
7938         * expmed.c (store_bit_field_using_insv): Add op0_mode and
7939         value_mode arguments.  Use scalar_int_mode internally.
7940         (store_bit_field_1): Rename the new integer mode from imode
7941         to op0_mode and use it instead of GET_MODE (op0).  Update calls
7942         to store_split_bit_field, store_bit_field_using_insv and
7943         store_fixed_bit_field.
7944         (store_fixed_bit_field): Add op0_mode and value_mode arguments.
7945         Use scalar_int_mode internally.  Use a bit count rather than a mode
7946         when calculating the largest bit size for get_best_mode.
7947         Update calls to store_split_bit_field and store_fixed_bit_field_1.
7948         (store_fixed_bit_field_1): Add mode and value_mode arguments.
7949         Remove assertion that OP0 has a scalar integer mode.
7950         (store_split_bit_field): Add op0_mode and value_mode arguments.
7951         Update calls to extract_fixed_bit_field.
7952         (extract_bit_field_using_extv): Add an op0_mode argument.
7953         Use scalar_int_mode internally.
7954         (extract_bit_field_1): Rename the new integer mode from imode to
7955         op0_mode and use it instead of GET_MODE (op0).  Update calls to
7956         extract_split_bit_field, extract_bit_field_using_extv and
7957         extract_fixed_bit_field.
7958         (extract_fixed_bit_field): Add an op0_mode argument.  Update calls
7959         to extract_split_bit_field and extract_fixed_bit_field_1.
7960         (extract_fixed_bit_field_1): Add a mode argument.  Remove assertion
7961         that OP0 has a scalar integer mode.  Use as_a <scalar_int_mode>
7962         on the target mode.
7963         (extract_split_bit_field): Add an op0_mode argument.  Update call
7964         to extract_fixed_bit_field.
7966 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7967             Alan Hayward  <alan.hayward@arm.com>
7968             David Sherwood  <david.sherwood@arm.com>
7970         * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
7971         * explow.c (hard_function_value): Likewise.
7972         * expmed.c (extract_fixed_bit_field_1): Likewise.  Move the
7973         convert_to_mode call outside the loop.
7974         * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
7975         for the mode iterator.  Require the mode specified by max_pieces
7976         to exist.
7977         (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
7978         mode iterator.
7979         (copy_blkmode_to_reg): Likewise.
7980         (set_storage_via_setmem): Likewise.
7981         * optabs.c (prepare_cmp_insn): Likewise.
7982         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
7983         * stor-layout.c (finish_bitfield_representative): Likewise.
7985 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7986             Alan Hayward  <alan.hayward@arm.com>
7987             David Sherwood  <david.sherwood@arm.com>
7989         * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
7990         * expr.c (convert_move): Use them.
7991         (convert_modes): Likewise.
7992         (store_expr_with_bounds): Likewise.
7994 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7995             Alan Hayward  <alan.hayward@arm.com>
7996             David Sherwood  <david.sherwood@arm.com>
7998         * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
7999         parameter for the mode of "x".  Remove the "known_x", "known_mode"
8000         and "known_ret" arguments.  Change the type of the mode argument
8001         to scalar_int_mode.
8002         (rtl_hooks:reg_num_sign_bit_copies): Likewise.
8003         * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
8004         (reg_num_sign_bit_copies_for_combine): Likewise.
8005         * rtlanal.c (nonzero_bits1): Likewise.
8006         (num_sign_bit_copies1): Likewise.
8007         * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
8008         (reg_num_sign_bit_copies_general): Likewise.
8009         * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
8010         (reg_nonzero_bits_general): Likewise.
8012 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8013             Alan Hayward  <alan.hayward@arm.com>
8014             David Sherwood  <david.sherwood@arm.com>
8016         * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
8017         than in subroutines.  Return 1 for non-integer modes.
8018         (cached_num_sign_bit_copies): Change the type of the mode parameter
8019         to scalar_int_mode.
8020         (num_sign_bit_copies1): Likewise.  Remove early exit for other mode
8021         classes.  Handle CONST_INT_P first and then check whether X also
8022         has a scalar integer mode.  Check the same thing for inner registers
8023         of a SUBREG and for values that are being extended or truncated.
8025 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8026             Alan Hayward  <alan.hayward@arm.com>
8027             David Sherwood  <david.sherwood@arm.com>
8029         * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
8030         in subroutines.  Return the mode mask for non-integer modes.
8031         (cached_nonzero_bits): Change the type of the mode parameter
8032         to scalar_int_mode.
8033         (nonzero_bits1): Likewise.  Remove early exit for other mode
8034         classes.  Handle CONST_INT_P first and then check whether X
8035         also has a scalar integer mode.
8037 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8038             Alan Hayward  <alan.hayward@arm.com>
8039             David Sherwood  <david.sherwood@arm.com>
8041         * expr.c (widest_int_mode_for_size): Make the comment match the code.
8042         Return a scalar_int_mode and assert that the size is greater than
8043         one byte.
8044         (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
8045         (op_by_pieces_d::op_by_pieces_d): Likewise.
8046         (op_by_pieces_d::run): Likewise.
8047         (can_store_by_pieces): Likewise.
8049 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8050             Alan Hayward  <alan.hayward@arm.com>
8051             David Sherwood  <david.sherwood@arm.com>
8053         * combine.c (extract_left_shift): Add a mode argument and update
8054         recursive calls.
8055         (make_compound_operation_int): Change the type of the mode parameter
8056         to scalar_int_mode and update the call to extract_left_shift.
8058 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8059             Alan Hayward  <alan.hayward@arm.com>
8060             David Sherwood  <david.sherwood@arm.com>
8062         * combine.c (simplify_and_const_int): Change the type of the mode
8063         parameter to scalar_int_mode.
8064         (simplify_and_const_int_1): Likewise.  Update recursive call.
8066 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8067             Alan Hayward  <alan.hayward@arm.com>
8068             David Sherwood  <david.sherwood@arm.com>
8070         * combine.c (simplify_compare_const): Check that the mode is a
8071         scalar_int_mode (rather than VOIDmode) before testing its
8072         precision.
8073         (simplify_comparison): Move COMPARISON_P handling out of the
8074         loop and restrict the latter part of the loop to scalar_int_modes.
8075         Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
8076         and when considering SUBREG_REGs.  Use is_int_mode instead of
8077         checking GET_MODE_CLASS against MODE_INT.
8079 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8080             Alan Hayward  <alan.hayward@arm.com>
8081             David Sherwood  <david.sherwood@arm.com>
8083         * combine.c (try_widen_shift_mode): Move check for equal modes to...
8084         (simplify_shift_const_1): ...here.  Use scalar_int_mode for
8085         shift_unit_mode and for modes involved in scalar shifts.
8087 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8088             Alan Hayward  <alan.hayward@arm.com>
8089             David Sherwood  <david.sherwood@arm.com>
8091         * combine.c (force_int_to_mode): New function, split out from...
8092         (force_to_mode): ...here.  Keep xmode up-to-date and use it
8093         instead of GET_MODE (x).
8095 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8096             Alan Hayward  <alan.hayward@arm.com>
8097             David Sherwood  <david.sherwood@arm.com>
8099         * optabs-query.h (extraction_insn::struct_mode): Change type to
8100         opt_scalar_int_mode and update comment.
8101         (extraction_insn::field_mode): Change type to scalar_int_mode.
8102         (extraction_insn::pos_mode): Likewise.
8103         * combine.c (make_extraction): Update accordingly.
8104         * optabs-query.c (get_traditional_extraction_insn): Likewise.
8105         (get_optab_extraction_insn): Likewise.
8106         * recog.c (simplify_while_replacing): Likewise.
8107         * expmed.c (narrow_bit_field_mem): Change the type of the mode
8108         parameter to opt_scalar_int_mode.
8110 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8111             Alan Hayward  <alan.hayward@arm.com>
8112             David Sherwood  <david.sherwood@arm.com>
8114         * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
8115         to a scalar_int_mode instead of a machine_mode.
8116         (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
8117         (get_best_mode): Return a boolean and use a pointer argument to store
8118         the selected mode.  Replace the limit mode parameter with a bit limit.
8119         * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
8120         for the values returned by bit_field_mode_iterator::next_mode.
8121         (store_bit_field): Update call to get_best_mode.
8122         (store_fixed_bit_field): Likewise.
8123         (extract_fixed_bit_field): Likewise.
8124         * expr.c (optimize_bitfield_assignment_op): Likewise.
8125         * fold-const.c (optimize_bit_field_compare): Likewise.
8126         (fold_truth_andor_1): Likewise.
8127         * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
8128         Update for new type of m_mode.
8129         (get_best_mode): As above.
8131 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8132             Alan Hayward  <alan.hayward@arm.com>
8133             David Sherwood  <david.sherwood@arm.com>
8135         * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
8136         to scalar_int_mode.  Remove check for SCALAR_INT_MODE_P.
8137         (store_bit_field): Check is_a <scalar_int_mode> before calling
8138         strict_volatile_bitfield_p.
8139         (extract_bit_field): Likewise.
8141 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8142             Alan Hayward  <alan.hayward@arm.com>
8143             David Sherwood  <david.sherwood@arm.com>
8145         * target.def (cstore_mode): Return a scalar_int_mode.
8146         * doc/tm.texi: Regenerate.
8147         * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
8148         * targhooks.h (default_cstore_mode): Likewise.
8149         * targhooks.c (default_cstore_mode): Likewise, using a forced
8150         conversion.
8151         * expmed.c (emit_cstore): Expect the target of the cstore to be
8152         a scalar_int_mode.
8154 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8155             Alan Hayward  <alan.hayward@arm.com>
8156             David Sherwood  <david.sherwood@arm.com>
8158         * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
8159         scalar_int_mode.
8160         (niter_desc): Likewise mode.
8161         (iv_analyze): Add a mode parameter.
8162         (biv_p): Likewise.
8163         (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
8164         and change its type to scalar_int_mode.
8165         * loop-iv.c: Update commentary at head of file.
8166         (iv_constant): Pass the mode paraeter before the rtx it describes
8167         and change its type to scalar_int_mode.  Remove VOIDmode handling.
8168         (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
8169         (iv_extend): Likewise.
8170         (shorten_into_mode): Likewise.
8171         (iv_add): Use scalar_int_mode.
8172         (iv_mult): Likewise.
8173         (iv_shift): Likewise.
8174         (canonicalize_iv_subregs): Likewise.
8175         (get_biv_step_1): Pass the outer_mode parameter before the rtx
8176         it describes and change its mode to scalar_int_mode.   Also change
8177         the type of the returned inner_mode to scalar_int_mode.
8178         (get_biv_step): Likewise, turning outer_mode from a pointer
8179         into a direct parameter.  Update call to get_biv_step_1.
8180         (iv_analyze_biv): Add an outer_mode parameter.  Update calls to
8181         iv_constant and get_biv_step.
8182         (iv_analyze_expr): Pass the mode parameter before the rtx it describes
8183         and change its type to scalar_int_mode.  Don't initialise iv->mode
8184         to VOIDmode and remove later checks for its still being VOIDmode.
8185         Update calls to iv_analyze_op and iv_analyze_expr.  Check
8186         is_a <scalar_int_mode> when changing the mode under consideration.
8187         (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
8188         Update call to iv_analyze_expr.
8189         (iv_analyze_op): Add a mode parameter.  Reject subregs whose
8190         inner register is not also a scalar_int_mode.  Update call to
8191         iv_analyze_biv.
8192         (iv_analyze): Add a mode parameter.  Update call to iv_analyze_op.
8193         (biv_p): Add a mode parameter.  Update call to iv_analyze_biv.
8194         (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
8195         separate mode class checks.  Update calls to iv_analyze.  Remove
8196         fix-up of VOIDmodes after iv_analyze_biv.
8197         * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
8198         don't have a scalar_int_mode.  Update call to biv_p.
8200 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8201             Alan Hayward  <alan.hayward@arm.com>
8202             David Sherwood  <david.sherwood@arm.com>
8204         * cfgexpand.c (convert_debug_memory_address): Use
8205         as_a <scalar_int_mode>.
8206         * combine.c (expand_compound_operation): Likewise.
8207         (make_extraction): Likewise.
8208         (change_zero_ext): Likewise.
8209         (simplify_comparison): Likewise.
8210         * cse.c (cse_insn): Likewise.
8211         * dwarf2out.c (minmax_loc_descriptor): Likewise.
8212         (mem_loc_descriptor): Likewise.
8213         (loc_descriptor): Likewise.
8214         * expmed.c (init_expmed_one_mode): Likewise.
8215         (synth_mult): Likewise.
8216         (emit_store_flag_1): Likewise.
8217         (expand_divmod): Likewise.  Use HWI_COMPUTABLE_MODE_P instead
8218         of a comparison with size.
8219         * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
8220         (reduce_to_bit_field_precision): Likewise.
8221         * function.c (expand_function_end): Likewise.
8222         * internal-fn.c (expand_arith_overflow_result_store): Likewise.
8223         * loop-doloop.c (doloop_modify): Likewise.
8224         * optabs.c (expand_binop): Likewise.
8225         (expand_unop): Likewise.
8226         (expand_copysign_absneg): Likewise.
8227         (prepare_cmp_insn): Likewise.
8228         (maybe_legitimize_operand): Likewise.
8229         * recog.c (const_scalar_int_operand): Likewise.
8230         * rtlanal.c (get_address_mode): Likewise.
8231         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8232         (simplify_cond_clz_ctz): Likewise.
8233         * tree-nested.c (get_nl_goto_field): Likewise.
8234         * tree.c (build_vector_type_for_mode): Likewise.
8235         * var-tracking.c (use_narrower_mode): Likewise.
8237 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8238             Alan Hayward  <alan.hayward@arm.com>
8239             David Sherwood  <david.sherwood@arm.com>
8241         * tree.h (SCALAR_INT_TYPE_MODE): New macro.
8242         * builtins.c (expand_builtin_signbit): Use it.
8243         * cfgexpand.c (expand_debug_expr): Likewise.
8244         * dojump.c (do_jump): Likewise.
8245         (do_compare_and_jump): Likewise.
8246         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
8247         * expmed.c (make_tree): Likewise.
8248         * expr.c (expand_expr_real_2): Likewise.
8249         (expand_expr_real_1): Likewise.
8250         (try_casesi): Likewise.
8251         * fold-const-call.c (fold_const_call_ss): Likewise.
8252         * fold-const.c (unextend): Likewise.
8253         (extract_muldiv_1): Likewise.
8254         (fold_single_bit_test): Likewise.
8255         (native_encode_int): Likewise.
8256         (native_encode_string): Likewise.
8257         (native_interpret_int): Likewise.
8258         * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
8259         * internal-fn.c (expand_addsub_overflow): Likewise.
8260         (expand_neg_overflow): Likewise.
8261         (expand_mul_overflow): Likewise.
8262         (expand_arith_overflow): Likewise.
8263         * match.pd: Likewise.
8264         * stor-layout.c (layout_type): Likewise.
8265         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
8266         * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
8267         * tree-ssanames.c (get_range_info): Likewise.
8268         * tree-switch-conversion.c (array_value_type) Likewise.
8269         * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
8270         (vect_recog_divmod_pattern): Likewise.
8271         (vect_recog_mixed_size_cond_pattern): Likewise.
8272         * tree-vrp.c (extract_range_basic): Likewise.
8273         (simplify_float_conversion_using_ranges): Likewise.
8274         * tree.c (int_fits_type_p): Likewise.
8275         * ubsan.c (instrument_bool_enum_load): Likewise.
8276         * varasm.c (mergeable_string_section): Likewise.
8277         (narrowing_initializer_constant_valid_p): Likewise.
8278         (output_constant): Likewise.
8280 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8281             Alan Hayward  <alan.hayward@arm.com>
8282             David Sherwood  <david.sherwood@arm.com>
8284         * machmode.h (NARROWEST_INT_MODE): New macro.
8285         * expr.c (alignment_for_piecewise_move): Use it instead of
8286         GET_CLASS_NARROWEST_MODE (MODE_INT).
8287         (push_block): Likewise.
8288         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
8289         Likewise.
8290         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
8292 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8293             Alan Hayward  <alan.hayward@arm.com>
8294             David Sherwood  <david.sherwood@arm.com>
8296         * postreload.c (move2add_valid_value_p): Change the type of the
8297         mode parameter to scalar_int_mode.
8298         (move2add_use_add2_insn): Add a mode parameter and use it instead
8299         of GET_MODE (reg).
8300         (move2add_use_add3_insn): Likewise.
8301         (reload_cse_move2add): Update accordingly.
8303 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8304             Alan Hayward  <alan.hayward@arm.com>
8305             David Sherwood  <david.sherwood@arm.com>
8307         * expr.c (expand_expr_real_2): Use scalar_int_mode for the
8308         double-word mode.
8309         * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
8310         * optabs.c (expand_unop): Likewise.
8312 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8313             Alan Hayward  <alan.hayward@arm.com>
8314             David Sherwood  <david.sherwood@arm.com>
8316         * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
8317         (clz_loc_descriptor): Likewise.  Remove SCALAR_INT_MODE_P check.
8318         (popcount_loc_descriptor): Likewise.
8319         (bswap_loc_descriptor): Likewise.
8320         (rotate_loc_descriptor): Likewise.
8321         (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
8322         calling the functions above.
8324 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8325             Alan Hayward  <alan.hayward@arm.com>
8326             David Sherwood  <david.sherwood@arm.com>
8328         * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
8329         checks.
8330         (try_combine): Likewise.
8331         (simplify_if_then_else): Likewise.
8332         * cse.c (cse_insn): Likewise.
8333         * dwarf2out.c (mem_loc_descriptor): Likewise.
8334         * emit-rtl.c (gen_lowpart_common): Likewise.
8335         * simplify-rtx.c (simplify_truncation): Likewise.
8336         (simplify_binary_operation_1): Likewise.
8337         (simplify_const_relational_operation): Likewise.
8338         (simplify_ternary_operation): Likewise.
8339         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
8341 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8342             Alan Hayward  <alan.hayward@arm.com>
8343             David Sherwood  <david.sherwood@arm.com>
8345         * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
8346         * reload.c (push_reload): Likewise.
8347         (find_reloads): Likewise.
8349 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8350             Alan Hayward  <alan.hayward@arm.com>
8351             David Sherwood  <david.sherwood@arm.com>
8353         * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
8354         (make_compound_operation_int): Likewise.
8355         (change_zero_ext): Likewise.
8356         * expr.c (convert_move): Likewise.
8357         (convert_modes): Likewise.
8358         * fwprop.c (forward_propagate_subreg): Likewise.
8359         * loop-iv.c (get_biv_step_1): Likewise.
8360         * optabs.c (widen_operand): Likewise.
8361         * postreload.c (move2add_valid_value_p): Likewise.
8362         * recog.c (simplify_while_replacing): Likewise.
8363         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8364         (simplify_binary_operation_1): Likewise.  Remove redundant
8365         mode equality check.
8367 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8368             Alan Hayward  <alan.hayward@arm.com>
8369             David Sherwood  <david.sherwood@arm.com>
8371         * combine.c (combine_simplify_rtx): Add checks for
8372         is_a <scalar_int_mode>.
8373         (simplify_if_then_else): Likewise.
8374         (make_field_assignment): Likewise.
8375         (simplify_comparison): Likewise.
8376         * ifcvt.c (noce_try_bitop): Likewise.
8377         * loop-invariant.c (canonicalize_address_mult): Likewise.
8378         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8380 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8381             Alan Hayward  <alan.hayward@arm.com>
8382             David Sherwood  <david.sherwood@arm.com>
8384         * gimple-fold.c (gimple_fold_builtin_memory_op): Use
8385         is_a <scalar_int_mode> instead of != BLKmode.
8387 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8388             Alan Hayward  <alan.hayward@arm.com>
8389             David Sherwood  <david.sherwood@arm.com>
8391         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
8392         instead of != VOIDmode.
8393         * combine.c (if_then_else_cond): Likewise.
8394         (change_zero_ext): Likewise.
8395         * dwarf2out.c (mem_loc_descriptor): Likewise.
8396         (loc_descriptor): Likewise.
8397         * rtlanal.c (canonicalize_condition): Likewise.
8398         * simplify-rtx.c (simplify_relational_operation_1): Likewise.
8400 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8401             Alan Hayward  <alan.hayward@arm.com>
8402             David Sherwood  <david.sherwood@arm.com>
8404         * simplify-rtx.c (simplify_binary_operation_1): Use
8405         is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
8407 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8408             Alan Hayward  <alan.hayward@arm.com>
8409             David Sherwood  <david.sherwood@arm.com>
8411         * wide-int.h (int_traits<unsigned char>) New class.
8412         (int_traits<unsigned short>) Likewise.
8413         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
8414         Use GET_MODE_UNIT_PRECISION and remove redundant test for
8415         SCALAR_INT_MODE_P.
8416         * combine.c (set_nonzero_bits_and_sign_copies): Use
8417         is_a <scalar_int_mode>.
8418         (find_split_point): Likewise.
8419         (combine_simplify_rtx): Likewise.
8420         (simplify_logical): Likewise.
8421         (expand_compound_operation): Likewise.
8422         (expand_field_assignment): Likewise.
8423         (make_compound_operation): Likewise.
8424         (extended_count): Likewise.
8425         (change_zero_ext): Likewise.
8426         (simplify_comparison): Likewise.
8427         * dwarf2out.c (scompare_loc_descriptor): Likewise.
8428         (ucompare_loc_descriptor): Likewise.
8429         (minmax_loc_descriptor): Likewise.
8430         (mem_loc_descriptor): Likewise.
8431         (loc_descriptor): Likewise.
8432         * expmed.c (init_expmed_one_mode): Likewise.
8433         * lra-constraints.c (lra_constraint_offset): Likewise.
8434         * optabs.c (prepare_libcall_arg): Likewise.
8435         * postreload.c (move2add_note_store): Likewise.
8436         * reload.c (operands_match_p): Likewise.
8437         * rtl.h (load_extend_op): Likewise.
8438         * rtlhooks.c (gen_lowpart_general): Likewise.
8439         * simplify-rtx.c (simplify_truncation): Likewise.
8440         (simplify_unary_operation_1): Likewise.
8441         (simplify_binary_operation_1): Likewise.
8442         (simplify_const_binary_operation): Likewise.
8443         (simplify_const_relational_operation): Likewise.
8444         (simplify_subreg): Likewise.
8445         * stor-layout.c (bitwise_mode_for_mode): Likewise.
8446         * var-tracking.c (adjust_mems): Likewise.
8447         (prepare_call_arguments): Likewise.
8449 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8450             Alan Hayward  <alan.hayward@arm.com>
8451             David Sherwood  <david.sherwood@arm.com>
8453         * machmode.h (is_int_mode): New fuction.
8454         * combine.c (find_split_point): Use it.
8455         (combine_simplify_rtx): Likewise.
8456         (simplify_if_then_else): Likewise.
8457         (simplify_set): Likewise.
8458         (simplify_shift_const_1): Likewise.
8459         (simplify_comparison): Likewise.
8460         * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
8461         * cse.c (notreg_cost): Likewise.
8462         (cse_insn): Likewise.
8463         * cselib.c (cselib_lookup_1): Likewise.
8464         * dojump.c (do_jump_1): Likewise.
8465         (do_compare_rtx_and_jump): Likewise.
8466         * dse.c (get_call_args): Likewise.
8467         * dwarf2out.c (rtl_for_decl_init): Likewise.
8468         (native_encode_initializer): Likewise.
8469         * expmed.c (emit_store_flag_1): Likewise.
8470         (emit_store_flag): Likewise.
8471         * expr.c (convert_modes): Likewise.
8472         (store_field): Likewise.
8473         (expand_expr_real_1): Likewise.
8474         * fold-const.c (fold_read_from_constant_string): Likewise.
8475         * gimple-ssa-sprintf.c (get_format_string): Likewise.
8476         * optabs-libfuncs.c (gen_int_libfunc): Likewise.
8477         * optabs.c (expand_binop): Likewise.
8478         (expand_unop): Likewise.
8479         (expand_abs_nojump): Likewise.
8480         (expand_one_cmpl_abs_nojump): Likewise.
8481         * simplify-rtx.c (mode_signbit_p): Likewise.
8482         (val_signbit_p): Likewise.
8483         (val_signbit_known_set_p): Likewise.
8484         (val_signbit_known_clear_p): Likewise.
8485         (simplify_relational_operation_1): Likewise.
8486         * tree.c (vector_type_mode): Likewise.
8488 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8489             Alan Hayward  <alan.hayward@arm.com>
8490             David Sherwood  <david.sherwood@arm.com>
8492         * machmode.h (smallest_mode_for_size): Fix formatting.
8493         (smallest_int_mode_for_size): New function.
8494         * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
8495         instead of smallest_mode_for_size.
8496         * combine.c (make_extraction): Likewise.
8497         * config/arc/arc.c (arc_expand_movmem): Likewise.
8498         * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
8499         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
8500         * config/s390/s390.c (s390_expand_insv): Likewise.
8501         * config/sparc/sparc.c (assign_int_registers): Likewise.
8502         * config/spu/spu.c (spu_function_value): Likewise.
8503         (spu_function_arg): Likewise.
8504         * coverage.c (get_gcov_type): Likewise.
8505         (get_gcov_unsigned_t): Likewise.
8506         * dse.c (find_shift_sequence): Likewise.
8507         * expmed.c (store_bit_field_1): Likewise.
8508         * expr.c (convert_move): Likewise.
8509         (store_field): Likewise.
8510         * internal-fn.c (expand_arith_overflow): Likewise.
8511         * optabs-query.c (get_best_extraction_insn): Likewise.
8512         * optabs.c (expand_twoval_binop_libfunc): Likewise.
8513         * stor-layout.c (layout_type): Likewise.
8514         (initialize_sizetypes): Likewise.
8515         * targhooks.c (default_get_mask_mode): Likewise.
8516         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
8518 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8519             Alan Hayward  <alan.hayward@arm.com>
8520             David Sherwood  <david.sherwood@arm.com>
8522         * machmode.h (opt_mode::else_blk): New function.
8523         (int_mode_for_mode): Declare.
8524         * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
8525         * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
8526         return type.
8527         * cfgexpand.c (expand_debug_expr): Likewise.
8528         * combine.c (gen_lowpart_or_truncate): Likewise.
8529         (gen_lowpart_for_combine): Likewise.
8530         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
8531         * config/avr/avr.c (avr_to_int_mode): Likewise.
8532         (avr_out_plus_1): Likewise.
8533         (avr_out_plus): Likewise.
8534         (avr_out_round): Likewise.
8535         * config/i386/i386.c (ix86_split_to_parts): Likewise.
8536         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
8537         (s390_expand_vcond): Likewise.
8538         * config/spu/spu.c (spu_split_immediate): Likewise.
8539         (spu_expand_mov): Likewise.
8540         * dse.c (get_stored_val): Likewise.
8541         * expmed.c (store_bit_field_1): Likewise.
8542         (convert_extracted_bit_field): Use int_mode_for_mode instead of
8543         int_mode_for_size.
8544         (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
8545         (extract_low_bits): Likewise.
8546         * expr.c (emit_group_load_1): Likewise.  Separate out the BLKmode
8547         handling rather than repeating the check.
8548         (emit_group_store): Likewise.
8549         (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
8550         * optabs.c (expand_absneg_bit): Likewise.
8551         (expand_copysign_absneg): Likewise.
8552         (expand_copysign_bit): Likewise.
8553         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
8554         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
8555         * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
8556         * var-tracking.c (prepare_call_arguments):  Likewise.
8557         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
8558         int_mode_for_mode instead of mode_for_size.
8559         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
8561 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8562             Alan Hayward  <alan.hayward@arm.com>
8563             David Sherwood  <david.sherwood@arm.com>
8565         * machmode.h (int_mode_for_size): New function.
8566         * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
8567         instead of mode_for_size.
8568         * calls.c (save_fixed_argument_area): Likewise.  Make use of BLKmode
8569         explicit.
8570         * combine.c (expand_field_assignment): Use int_mode_for_size
8571         instead of mode_for_size.
8572         (make_extraction): Likewise.
8573         (simplify_shift_const_1): Likewise.
8574         (simplify_comparison): Likewise.
8575         * dojump.c (do_jump): Likewise.
8576         * dwarf2out.c (mem_loc_descriptor): Likewise.
8577         * emit-rtl.c (init_derived_machine_modes): Likewise.
8578         * expmed.c (flip_storage_order): Likewise.
8579         (convert_extracted_bit_field): Likewise.
8580         * expr.c (copy_blkmode_from_reg): Likewise.
8581         * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
8582         * internal-fn.c (expand_mul_overflow): Likewise.
8583         * lower-subreg.c (simple_move): Likewise.
8584         * optabs-libfuncs.c (init_optabs): Likewise.
8585         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8586         * tree.c (vector_type_mode): Likewise.
8587         * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
8588         * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
8589         * tree-vect-generic.c (expand_vector_parallel): Likewise.
8590         * tree-vect-stmts.c (vectorizable_load): Likewise.
8591         (vectorizable_store): Likewise.
8593 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8594             Alan Hayward  <alan.hayward@arm.com>
8595             David Sherwood  <david.sherwood@arm.com>
8597         * coretypes.h (pod_mode): New type.
8598         (scalar_int_mode_pod): New typedef.
8599         * machmode.h (pod_mode): New class.
8600         (int_n_data_t::m): Change type to scalar_int_mode_pod.
8601         * genmodes.c (emit_mode_int_n): Update accordingly.
8602         * lower-subreg.h (target_lower_subreg): Change type to
8603         scalar_int_mode_pod.
8604         * gdbhooks.py (build_pretty_printer): Handle pod_mode and
8605         scalar_int_mode_pod.
8607 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8608             Alan Hayward  <alan.hayward@arm.com>
8609             David Sherwood  <david.sherwood@arm.com>
8611         * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
8612         machine_mode to scalar_int_mode.
8613         * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
8614         (rs6000_option_override_internal): Remove cast to int.
8615         * config/rs6000/rs6000.h (rs6000_pmode): Change type from
8616         machine_mode to scalar_int_mode.
8617         * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
8618         (rs6000_option_override_internal): Remove cast to int.
8619         * config/s390/s390.h (Pmode): Remove cast to machine_mode.
8620         * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
8621         to machine_mode.
8622         * config/s390/s390.c (s390_expand_builtin): Likewise.
8623         * coretypes.h (scalar_int_mode): New type.
8624         (opt_scalar_int_mode): New typedef.
8625         * machmode.h (scalar_int_mode): New class.
8626         (scalar_int_mode::includes_p): New function.
8627         (byte_mode): Change type to scalar_int_mode.
8628         (word_mode): Likewise.
8629         (ptr_mode): Likewise.
8630         * emit-rtl.c (byte_mode): Likewise.
8631         (word_mode): Likewise.
8632         (ptr_mode): Likewise.
8633         (init_derived_machine_modes): Update accordingly.
8634         * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
8635         and MODE_PARTIAL_INT.
8636         * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
8637         opt_scalar_int_mode.
8639 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8640             Alan Hayward  <alan.hayward@arm.com>
8641             David Sherwood  <david.sherwood@arm.com>
8643         * target.def (libgcc_floating_mode_supported_p): Take a
8644         scalar_float_mode.
8645         * doc/tm.texi: Regenerate.
8646         * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
8647         scalar_float_mode.
8648         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
8649         * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
8650         Likewise.
8652 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8653             Alan Hayward  <alan.hayward@arm.com>
8654             David Sherwood  <david.sherwood@arm.com>
8656         * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
8657         * doc/tm.texi: Regenerate.
8658         * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
8659         * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
8660         * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
8661         * targhooks.h (default_floatn_mode): Likewise.
8662         * targhooks.c (default_floatn_mode): Likewise.
8663         * tree.c (build_common_tree_nodes): Update accordingly.
8665 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8666             Alan Hayward  <alan.hayward@arm.com>
8667             David Sherwood  <david.sherwood@arm.com>
8669         * machmode.h (mode_iterator::start): Provide overload for opt_modes.
8670         (mode_iterator::iterate_p): Likewise.
8671         (mode_iterator::get_wider): Likewise.
8672         * expr.c (init_expr_target): Use opt_scalar_float_mode.
8674 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8675             Alan Hayward  <alan.hayward@arm.com>
8676             David Sherwood  <david.sherwood@arm.com>
8678         * coretypes.h (opt_scalar_float_mode): New typedef.
8679         * machmode.h (float_mode_for_size): New function.
8680         * emit-rtl.c (double_mode): Delete.
8681         (init_emit_once): Use float_mode_for_size.
8682         * stor-layout.c (layout_type): Likewise.
8683         * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
8685 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8686             Alan Hayward  <alan.hayward@arm.com>
8687             David Sherwood  <david.sherwood@arm.com>
8689         * output.h (assemble_real): Take a scalar_float_mode.
8690         * config/arm/arm.c (arm_assemble_integer): Update accordingly.
8691         * config/arm/arm.md (consttable_4): Likewise.
8692         (consttable_8): Likewise.
8693         (consttable_16): Likewise.
8694         * config/mips/mips.md (consttable_float): Likewise.
8695         * config/s390/s390.c (s390_output_pool_entry): Likewise.
8696         * varasm.c (assemble_real): Take a scalar_float_mode.
8697         (output_constant_pool_2): Update accordingly.
8698         (output_constant): Likewise.
8700 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8701             Alan Hayward  <alan.hayward@arm.com>
8702             David Sherwood  <david.sherwood@arm.com>
8704         * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
8705         * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
8706         * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
8707         (native_encode_real): Likewise.
8708         (native_interpret_real): Likewise.
8709         * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
8710         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
8712 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8713             Alan Hayward  <alan.hayward@arm.com>
8714             David Sherwood  <david.sherwood@arm.com>
8716         * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
8717         <scalar_float_mode>.  Simplify.
8718         (gen_extend_conv_libfunc): Likewise.
8720 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8721             Alan Hayward  <alan.hayward@arm.com>
8722             David Sherwood  <david.sherwood@arm.com>
8724         * coretypes.h (scalar_float_mode): New type.
8725         * machmode.h (mode_traits::from_int): Use machine_mode if
8726         USE_ENUM_MODES is defined.
8727         (is_a): New function.
8728         (as_a): Likewise.
8729         (dyn_cast): Likewise.
8730         (scalar_float_mode): New class.
8731         (scalar_float_mode::includes_p): New function.
8732         (is_float_mode): Likewise.
8733         * gdbhooks.py (MachineModePrinter): New class.
8734         (build_pretty_printer): Use it for scalar_float_mode.
8735         * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
8736         (format_helper::format_helper): Turn into a template.
8737         * genmodes.c (get_mode_class): New function.
8738         (emit_insn_modes_h): Give modes the class returned by get_mode_class,
8739         or machine_mode if none.
8740         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
8741         as_a <scalar_float_mode>.
8742         * dwarf2out.c (mem_loc_descriptor): Likewise.
8743         (insert_float): Likewise.
8744         (add_const_value_attribute): Likewise.
8745         * simplify-rtx.c (simplify_immed_subreg): Likewise.
8746         * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
8747         (expand_unop): Update accordingly.
8748         (expand_abs_nojump): Likewise.
8749         (expand_copysign_absneg): Take a scalar_float_mode.
8750         (expand_copysign_bit): Likewise.
8751         (expand_copysign): Update accordingly.
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_mode): New class.
8758         * machmode.h (opt_mode): Likewise.
8759         (opt_mode::else_void): New function.
8760         (opt_mode::require): Likewise.
8761         (opt_mode::exists): Likewise.
8762         (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
8763         (GET_MODE_2XWIDER_MODE): Likewise.
8764         (mode_iterator::get_wider): Update accordingly.
8765         (mode_iterator::get_2xwider): Likewise.
8766         (mode_iterator::get_known_wider): Likewise, turning into a template.
8767         * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
8768         forcing a wider mode to exist.
8769         * config/cr16/cr16.h (LONG_REG_P): Likewise.
8770         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
8771         * config/c6x/c6x.c (c6x_rtx_costs): Update use of
8772         GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
8773         * lower-subreg.c (init_lower_subreg): Likewise.
8774         * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
8775         on the final iteration.
8776         * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
8777         a wider mode exists before asking for a move pattern.
8778         (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
8779         forcing a wider mode to exist.
8780         (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
8781         returning false if no such mode exists.
8782         * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
8783         * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
8784         * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
8785         Avoid checking for a MODE_INT if we already know the mode is not a
8786         SCALAR_INT_MODE_P.
8787         (extract_high_half): Update use of GET_MODE_WIDER_MODE,
8788         forcing a wider mode to exist.
8789         (expmed_mult_highpart_optab): Likewise.
8790         (expmed_mult_highpart): Likewise.
8791         * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
8792         using else_void.
8793         * lto-streamer-in.c (lto_input_mode_table): Likewise.
8794         * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
8795         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
8796         * internal-fn.c (expand_mul_overflow): Update use of
8797         GET_MODE_2XWIDER_MODE.
8798         * omp-low.c (omp_clause_aligned_alignment): Likewise.
8799         * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
8800         GET_MODE_WIDER_MODE.
8801         (convert_plusminus_to_widen): Likewise.
8802         * tree-switch-conversion.c (array_value_type): Likewise.
8803         * var-tracking.c (emit_note_insn_var_location): Likewise.
8804         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
8805         Return false inside rather than outside the loop if no wider mode
8806         exists
8807         * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
8808         and GET_MODE_2XWIDER_MODE
8809         (can_compare_p): Use else_void.
8810         * gdbhooks.py (OptMachineModePrinter): New class.
8811         (build_pretty_printer): Use it for opt_mode.
8813 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8814             Alan Hayward  <alan.hayward@arm.com>
8815             David Sherwood  <david.sherwood@arm.com>
8817         * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
8818         once.  Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
8820 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8821             Alan Hayward  <alan.hayward@arm.com>
8822             David Sherwood  <david.sherwood@arm.com>
8824         * machmode.h (mode_traits): New structure.
8825         (get_narrowest_mode): New function.
8826         (mode_iterator::start): Likewise.
8827         (mode_iterator::iterate_p): Likewise.
8828         (mode_iterator::get_wider): Likewise.
8829         (mode_iterator::get_known_wider): Likewise.
8830         (mode_iterator::get_2xwider): Likewise.
8831         (FOR_EACH_MODE_IN_CLASS): New mode iterator.
8832         (FOR_EACH_MODE): Likewise.
8833         (FOR_EACH_MODE_FROM): Likewise.
8834         (FOR_EACH_MODE_UNTIL): Likewise.
8835         (FOR_EACH_WIDER_MODE): Likewise.
8836         (FOR_EACH_2XWIDER_MODE): Likewise.
8837         * builtins.c (expand_builtin_strlen): Use new mode iterators.
8838         * combine.c (simplify_comparison): Likewise
8839         * config/i386/i386.c (type_natural_mode): Likewise.
8840         * cse.c (cse_insn): Likewise.
8841         * dse.c (find_shift_sequence): Likewise.
8842         * emit-rtl.c (init_derived_machine_modes): Likewise.
8843         (init_emit_once): Likewise.
8844         * explow.c (hard_function_value): Likewise.
8845         * expmed.c (extract_fixed_bit_field_1): Likewise.
8846         (extract_bit_field_1): Likewise.
8847         (expand_divmod): Likewise.
8848         (emit_store_flag_1): Likewise.
8849         * expr.c (init_expr_target): Likewise.
8850         (convert_move): Likewise.
8851         (alignment_for_piecewise_move): Likewise.
8852         (widest_int_mode_for_size): Likewise.
8853         (emit_block_move_via_movmem): Likewise.
8854         (copy_blkmode_to_reg): Likewise.
8855         (set_storage_via_setmem): Likewise.
8856         (compress_float_constant): Likewise.
8857         * omp-low.c (omp_clause_aligned_alignment): Likewise.
8858         * optabs-query.c (get_best_extraction_insn): Likewise.
8859         * optabs.c (expand_binop): Likewise.
8860         (expand_twoval_unop): Likewise.
8861         (expand_twoval_binop): Likewise.
8862         (widen_leading): Likewise.
8863         (widen_bswap): Likewise.
8864         (expand_parity): Likewise.
8865         (expand_unop): Likewise.
8866         (prepare_cmp_insn): Likewise.
8867         (prepare_float_lib_cmp): Likewise.
8868         (expand_float): Likewise.
8869         (expand_fix): Likewise.
8870         (expand_sfix_optab): Likewise.
8871         * postreload.c (move2add_use_add2_insn): Likewise.
8872         * reg-stack.c (reg_to_stack): Likewise.
8873         * reginfo.c (choose_hard_reg_mode): Likewise.
8874         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
8875         * stor-layout.c (mode_for_size): Likewise.
8876         (smallest_mode_for_size): Likewise.
8877         (mode_for_vector): Likewise.
8878         (finish_bitfield_representative): Likewise.
8879         * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
8880         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
8881         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8882         * var-tracking.c (prepare_call_arguments): Likewise.
8884 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8885             Alan Hayward  <alan.hayward@arm.com>
8886             David Sherwood  <david.sherwood@arm.com>
8888         * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
8889         * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
8890         USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
8891         * machmode.h (mode_size): Move earlier in file.
8892         (mode_precision): Likewise.
8893         (mode_inner): Likewise.
8894         (mode_nunits): Likewise.
8895         (mode_unit_size): Likewise.
8896         (unit_unit_precision): Likewise.
8897         (mode_wider): Likewise.
8898         (mode_2xwider): Likewise.
8899         (machine_mode): New class.
8900         (mode_to_bytes): New function.
8901         (mode_to_bits): Likewise.
8902         (mode_to_precision): Likewise.
8903         (mode_to_inner): Likewise.
8904         (mode_to_unit_size): Likewise.
8905         (mode_to_unit_precision): Likewise.
8906         (mode_to_nunits): Likewise.
8907         (GET_MODE_SIZE): Use mode_to_bytes.
8908         (GET_MODE_BITSIZE): Use mode_to_bits.
8909         (GET_MODE_PRECISION): Use mode_to_precision.
8910         (GET_MODE_INNER): Use mode_to_inner.
8911         (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
8912         (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
8913         (GET_MODE_NUNITS): Use mode_to_nunits.
8914         * system.h (ALWAYS_INLINE): New macro.
8915         * config/powerpcspe/powerpcspe-c.c
8916         (altivec_resolve_overloaded_builtin): Use machine_mode instead of
8917         int for arg1_mode and arg2_mode.
8919 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8920             Alan Hayward  <alan.hayward@arm.com>
8921             David Sherwood  <david.sherwood@arm.com>
8923         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
8924         Prefix mode names with E_ in case statements.
8925         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8926         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
8927         (aarch64_split_simd_move): Likewise.
8928         (aarch64_gen_storewb_pair): Likewise.
8929         (aarch64_gen_loadwb_pair): Likewise.
8930         (aarch64_gen_store_pair): Likewise.
8931         (aarch64_gen_load_pair): Likewise.
8932         (aarch64_get_condition_code_1): Likewise.
8933         (aarch64_constant_pool_reload_icode): Likewise.
8934         (get_rsqrte_type): Likewise.
8935         (get_rsqrts_type): Likewise.
8936         (get_recpe_type): Likewise.
8937         (get_recps_type): Likewise.
8938         (aarch64_gimplify_va_arg_expr): Likewise.
8939         (aarch64_simd_container_mode): Likewise.
8940         (aarch64_emit_load_exclusive): Likewise.
8941         (aarch64_emit_store_exclusive): Likewise.
8942         (aarch64_expand_compare_and_swap): Likewise.
8943         (aarch64_gen_atomic_cas): Likewise.
8944         (aarch64_emit_bic): Likewise.
8945         (aarch64_emit_atomic_swap): Likewise.
8946         (aarch64_emit_atomic_load_op): Likewise.
8947         (aarch64_evpc_trn): Likewise.
8948         (aarch64_evpc_uzp): Likewise.
8949         (aarch64_evpc_zip): Likewise.
8950         (aarch64_evpc_ext): Likewise.
8951         (aarch64_evpc_rev): Likewise.
8952         (aarch64_evpc_dup): Likewise.
8953         (aarch64_gen_ccmp_first): Likewise.
8954         (aarch64_gen_ccmp_next): Likewise.
8955         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
8956         (alpha_emit_xfloating_libcall): Likewise.
8957         (emit_insxl): Likewise.
8958         (alpha_arg_type): Likewise.
8959         * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
8960         (arc_preferred_simd_mode): Likewise.
8961         (arc_secondary_reload): Likewise.
8962         (get_arc_condition_code): Likewise.
8963         (arc_print_operand): Likewise.
8964         (arc_legitimate_constant_p): Likewise.
8965         * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8966         * config/arc/arc.md (casesi_load): Likewise.
8967         (casesi_compact_jump): Likewise.
8968         * config/arc/predicates.md (proper_comparison_operator): Likewise.
8969         (cc_use_register): Likewise.
8970         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8971         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
8972         (arm_init_iwmmxt_builtins): Likewise.
8973         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
8974         (neon_expand_vector_init): Likewise.
8975         (arm_attr_length_move_neon): Likewise.
8976         (maybe_get_arm_condition_code): Likewise.
8977         (arm_emit_vector_const): Likewise.
8978         (arm_preferred_simd_mode): Likewise.
8979         (arm_output_iwmmxt_tinsr): Likewise.
8980         (thumb1_output_casesi): Likewise.
8981         (thumb2_output_casesi): Likewise.
8982         (arm_emit_load_exclusive): Likewise.
8983         (arm_emit_store_exclusive): Likewise.
8984         (arm_expand_compare_and_swap): Likewise.
8985         (arm_evpc_neon_vuzp): Likewise.
8986         (arm_evpc_neon_vzip): Likewise.
8987         (arm_evpc_neon_vrev): Likewise.
8988         (arm_evpc_neon_vtrn): Likewise.
8989         (arm_evpc_neon_vext): Likewise.
8990         (arm_validize_comparison): Likewise.
8991         * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
8992         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
8993         * config/avr/avr.c (avr_rtx_costs_1): Likewise.
8994         * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
8995         (c6x_preferred_simd_mode): Likewise.
8996         * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
8997         (epiphany_rtx_costs): Likewise.
8998         * config/epiphany/predicates.md (proper_comparison_operator):
8999         Likewise.
9000         * config/frv/frv.c (condexec_memory_operand): Likewise.
9001         (frv_emit_move): Likewise.
9002         (output_move_single): Likewise.
9003         (output_condmove_single): Likewise.
9004         (frv_hard_regno_mode_ok): Likewise.
9005         (frv_matching_accg_mode): Likewise.
9006         * config/h8300/h8300.c (split_adds_subs): Likewise.
9007         (h8300_rtx_costs): Likewise.
9008         (h8300_print_operand): Likewise.
9009         (compute_mov_length): Likewise.
9010         (output_logical_op): Likewise.
9011         (compute_logical_op_length): Likewise.
9012         (compute_logical_op_cc): Likewise.
9013         (h8300_shift_needs_scratch_p): Likewise.
9014         (output_a_shift): Likewise.
9015         (compute_a_shift_length): Likewise.
9016         (compute_a_shift_cc): Likewise.
9017         (expand_a_rotate): Likewise.
9018         (output_a_rotate): Likewise.
9019         * config/i386/i386.c (classify_argument): Likewise.
9020         (function_arg_advance_32): Likewise.
9021         (function_arg_32): Likewise.
9022         (function_arg_64): Likewise.
9023         (function_value_64): Likewise.
9024         (ix86_gimplify_va_arg): Likewise.
9025         (ix86_legitimate_constant_p): Likewise.
9026         (put_condition_code): Likewise.
9027         (split_double_mode): Likewise.
9028         (ix86_avx256_split_vector_move_misalign): Likewise.
9029         (ix86_expand_vector_logical_operator): Likewise.
9030         (ix86_split_idivmod): Likewise.
9031         (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
9032         (ix86_build_const_vector): Likewise.
9033         (ix86_build_signbit_mask): Likewise.
9034         (ix86_match_ccmode): Likewise.
9035         (ix86_cc_modes_compatible): Likewise.
9036         (ix86_expand_branch): Likewise.
9037         (ix86_expand_sse_cmp): Likewise.
9038         (ix86_expand_sse_movcc): Likewise.
9039         (ix86_expand_int_sse_cmp): Likewise.
9040         (ix86_expand_vec_perm_vpermi2): Likewise.
9041         (ix86_expand_vec_perm): Likewise.
9042         (ix86_expand_sse_unpack): Likewise.
9043         (ix86_expand_int_addcc): Likewise.
9044         (ix86_split_to_parts): Likewise.
9045         (ix86_vectorize_builtin_gather): Likewise.
9046         (ix86_vectorize_builtin_scatter): Likewise.
9047         (avx_vpermilp_parallel): Likewise.
9048         (inline_memory_move_cost): Likewise.
9049         (ix86_tieable_integer_mode_p): Likewise.
9050         (x86_maybe_negate_const_int): Likewise.
9051         (ix86_expand_vector_init_duplicate): Likewise.
9052         (ix86_expand_vector_init_one_nonzero): Likewise.
9053         (ix86_expand_vector_init_one_var): Likewise.
9054         (ix86_expand_vector_init_concat): Likewise.
9055         (ix86_expand_vector_init_interleave): Likewise.
9056         (ix86_expand_vector_init_general): Likewise.
9057         (ix86_expand_vector_set): Likewise.
9058         (ix86_expand_vector_extract): Likewise.
9059         (emit_reduc_half): Likewise.
9060         (ix86_emit_i387_round): Likewise.
9061         (ix86_mangle_type): Likewise.
9062         (ix86_expand_round_sse4): Likewise.
9063         (expand_vec_perm_blend): Likewise.
9064         (canonicalize_vector_int_perm): Likewise.
9065         (ix86_expand_vec_one_operand_perm_avx512): Likewise.
9066         (expand_vec_perm_1): Likewise.
9067         (expand_vec_perm_interleave3): Likewise.
9068         (expand_vec_perm_even_odd_pack): Likewise.
9069         (expand_vec_perm_even_odd_1): Likewise.
9070         (expand_vec_perm_broadcast_1): Likewise.
9071         (ix86_vectorize_vec_perm_const_ok): Likewise.
9072         (ix86_expand_vecop_qihi): Likewise.
9073         (ix86_expand_mul_widen_hilo): Likewise.
9074         (ix86_expand_sse2_abs): Likewise.
9075         (ix86_expand_pextr): Likewise.
9076         (ix86_expand_pinsr): Likewise.
9077         (ix86_preferred_simd_mode): Likewise.
9078         (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
9079         * config/i386/sse.md (*andnot<mode>3): Likewise.
9080         (<mask_codefor><code><mode>3<mask_name>): Likewise.
9081         (*<code><mode>3): Likewise.
9082         * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
9083         (ia64_expand_atomic_op): Likewise.
9084         (ia64_arg_type): Likewise.
9085         (ia64_mode_to_int): Likewise.
9086         (ia64_scalar_mode_supported_p): Likewise.
9087         (ia64_vector_mode_supported_p): Likewise.
9088         (expand_vec_perm_broadcast): Likewise.
9089         * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
9090         (iq2000_function_arg_advance): Likewise.
9091         (iq2000_function_arg): Likewise.
9092         * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
9093         * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
9094         (m68k_libcall_value): Likewise.
9095         (m68k_function_value): Likewise.
9096         (sched_attr_op_type): Likewise.
9097         * config/mcore/mcore.c (mcore_output_move): Likewise.
9098         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
9099         Likewise.
9100         (microblaze_function_arg): Likewise.
9101         * config/mips/mips.c (mips16_build_call_stub): Likewise.
9102         (mips_print_operand): Likewise.
9103         (mips_mode_ok_for_mov_fmt_p): Likewise.
9104         (mips_vector_mode_supported_p): Likewise.
9105         (mips_preferred_simd_mode): Likewise.
9106         (mips_expand_vpc_loongson_even_odd): Likewise.
9107         (mips_expand_vec_unpack): Likewise.
9108         (mips_expand_vi_broadcast): Likewise.
9109         (mips_expand_vector_init): Likewise.
9110         (mips_expand_vec_reduc): Likewise.
9111         (mips_expand_msa_cmp): Likewise.
9112         * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
9113         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
9114         (cc_flags_for_mode): Likewise.
9115         * config/msp430/msp430.c (msp430_print_operand): Likewise.
9116         * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
9117         (nds32_output_casesi_pc_relative): Likewise.
9118         * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9119         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
9120         (nvptx_gen_unpack): Likewise.
9121         (nvptx_gen_pack): Likewise.
9122         (nvptx_gen_shuffle): Likewise.
9123         (nvptx_gen_wcast): Likewise.
9124         (nvptx_preferred_simd_mode): Likewise.
9125         * config/pa/pa.c (pa_secondary_reload): Likewise.
9126         * config/pa/predicates.md (base14_operand): Likewise.
9127         * config/powerpcspe/powerpcspe-c.c
9128         (altivec_resolve_overloaded_builtin): Likewise.
9129         * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
9130         Likewise.
9131         (rs6000_preferred_simd_mode): Likewise.
9132         (output_vec_const_move): Likewise.
9133         (rs6000_expand_vector_extract): Likewise.
9134         (rs6000_split_vec_extract_var): Likewise.
9135         (reg_offset_addressing_ok_p): Likewise.
9136         (rs6000_legitimate_offset_address_p): Likewise.
9137         (rs6000_legitimize_address): Likewise.
9138         (rs6000_emit_set_const): Likewise.
9139         (rs6000_const_vec): Likewise.
9140         (rs6000_emit_move): Likewise.
9141         (spe_build_register_parallel): Likewise.
9142         (rs6000_darwin64_record_arg_recurse): Likewise.
9143         (swap_selector_for_mode): Likewise.
9144         (spe_init_builtins): Likewise.
9145         (paired_init_builtins): Likewise.
9146         (altivec_init_builtins): Likewise.
9147         (do_load_for_compare): Likewise.
9148         (rs6000_generate_compare): Likewise.
9149         (rs6000_expand_float128_convert): Likewise.
9150         (emit_load_locked): Likewise.
9151         (emit_store_conditional): Likewise.
9152         (rs6000_output_function_epilogue): Likewise.
9153         (rs6000_handle_altivec_attribute): Likewise.
9154         (rs6000_function_value): Likewise.
9155         (emit_fusion_gpr_load): Likewise.
9156         (emit_fusion_p9_load): Likewise.
9157         (emit_fusion_p9_store): Likewise.
9158         * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
9159         (fusion_gpr_mem_load): Likewise.
9160         (fusion_addis_mem_combo_load): Likewise.
9161         (fusion_addis_mem_combo_store): Likewise.
9162         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
9163         (fusion_gpr_mem_load): Likewise.
9164         (fusion_addis_mem_combo_load): Likewise.
9165         (fusion_addis_mem_combo_store): Likewise.
9166         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9167         Likewise.
9168         * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
9169         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
9170         (rs6000_preferred_simd_mode): Likewise.
9171         (output_vec_const_move): Likewise.
9172         (rs6000_expand_vector_extract): Likewise.
9173         (rs6000_split_vec_extract_var): Likewise.
9174         (reg_offset_addressing_ok_p): Likewise.
9175         (rs6000_legitimate_offset_address_p): Likewise.
9176         (rs6000_legitimize_address): Likewise.
9177         (rs6000_emit_set_const): Likewise.
9178         (rs6000_const_vec): Likewise.
9179         (rs6000_emit_move): Likewise.
9180         (rs6000_darwin64_record_arg_recurse): Likewise.
9181         (swap_selector_for_mode): Likewise.
9182         (paired_init_builtins): Likewise.
9183         (altivec_init_builtins): Likewise.
9184         (rs6000_expand_float128_convert): Likewise.
9185         (emit_load_locked): Likewise.
9186         (emit_store_conditional): Likewise.
9187         (rs6000_output_function_epilogue): Likewise.
9188         (rs6000_handle_altivec_attribute): Likewise.
9189         (rs6000_function_value): Likewise.
9190         (emit_fusion_gpr_load): Likewise.
9191         (emit_fusion_p9_load): Likewise.
9192         (emit_fusion_p9_store): Likewise.
9193         * config/rx/rx.c (rx_gen_move_template): Likewise.
9194         (flags_from_mode): Likewise.
9195         * config/s390/predicates.md (s390_alc_comparison): Likewise.
9196         (s390_slb_comparison): Likewise.
9197         * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
9198         (s390_vector_mode_supported_p): Likewise.
9199         (s390_cc_modes_compatible): Likewise.
9200         (s390_match_ccmode_set): Likewise.
9201         (s390_canonicalize_comparison): Likewise.
9202         (s390_emit_compare_and_swap): Likewise.
9203         (s390_branch_condition_mask): Likewise.
9204         (s390_rtx_costs): Likewise.
9205         (s390_secondary_reload): Likewise.
9206         (__SECONDARY_RELOAD_CASE): Likewise.
9207         (s390_expand_cs): Likewise.
9208         (s390_preferred_simd_mode): Likewise.
9209         * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
9210         * config/sh/sh.c (sh_print_operand): Likewise.
9211         (dump_table): Likewise.
9212         (sh_secondary_reload): Likewise.
9213         * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9214         * config/sh/sh.md (casesi_worker_1): Likewise.
9215         (casesi_worker_2): Likewise.
9216         * config/sparc/predicates.md (icc_comparison_operator): Likewise.
9217         (fcc_comparison_operator): Likewise.
9218         * config/sparc/sparc.c (sparc_expand_move): Likewise.
9219         (emit_soft_tfmode_cvt): Likewise.
9220         (sparc_preferred_simd_mode): Likewise.
9221         (output_cbranch): Likewise.
9222         (sparc_print_operand): Likewise.
9223         (sparc_expand_vec_perm_bmask): Likewise.
9224         (vector_init_bshuffle): Likewise.
9225         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
9226         (spu_vector_mode_supported_p): Likewise.
9227         (spu_expand_insv): Likewise.
9228         (spu_emit_branch_or_set): Likewise.
9229         (spu_handle_vector_attribute): Likewise.
9230         (spu_builtin_splats): Likewise.
9231         (spu_builtin_extract): Likewise.
9232         (spu_builtin_promote): Likewise.
9233         (spu_expand_sign_extend): Likewise.
9234         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
9235         (tilegx_simd_int): Likewise.
9236         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
9237         (tilepro_simd_int): Likewise.
9238         * config/v850/v850.c (const_double_split): Likewise.
9239         (v850_print_operand): Likewise.
9240         (ep_memory_offset): Likewise.
9241         * config/vax/vax.c (vax_rtx_costs): Likewise.
9242         (vax_output_int_move): Likewise.
9243         (vax_output_int_add): Likewise.
9244         (vax_output_int_subtract): Likewise.
9245         * config/visium/predicates.md (visium_branch_operator): Likewise.
9246         * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
9247         (visium_print_operand_address): Likewise.
9248         * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9249         * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
9250         (xtensa_expand_conditional_branch): Likewise.
9251         (xtensa_copy_incoming_a7): Likewise.
9252         (xtensa_output_literal): Likewise.
9253         * dfp.c (decimal_real_maxval): Likewise.
9254         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
9256 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9257             Alan Hayward  <alan.hayward@arm.com>
9258             David Sherwood  <david.sherwood@arm.com>
9260         * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
9261         (mode_nunits_inline): Likewise.
9262         (mode_inner_inline): Likewise.
9263         (mode_unit_size_inline): Likewise.
9264         (mode_unit_precision_inline): Likewise.
9265         (emit_insn_modes_h): Likewise.  Also emit a #define of the
9266         unprefixed name.
9267         (emit_mode_wider): Add an E_ prefix to mode names.
9268         (emit_mode_complex): Likewise.
9269         (emit_mode_inner): Likewise.
9270         (emit_mode_adjustments): Likewise.
9271         (emit_mode_int_n): Likewise.
9272         * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
9273         (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
9274         (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
9275         (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
9276         (CRC32_BUILTIN, ENTRY): Likewise.
9277         * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
9278         (aarch64_pop_regs): Likewise.
9279         (aarch64_process_components): Likewise.
9280         * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
9281         * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
9282         (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
9283         (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
9284         * config/arm/arm.c (arm_init_libfuncs): Likewise.
9285         * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
9286         Likewise.
9287         * config/i386/i386-builtin.def (pcmpestr): Likewise.
9288         (pcmpistr): Likewise.
9289         * config/microblaze/microblaze.c (double_memory_operand): Likewise.
9290         * config/mmix/mmix.c (mmix_output_condition): Likewise.
9291         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
9292         Likewise.
9293         * config/rl78/rl78.c (mduc_regs): Likewise.
9294         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
9295         (htm_expand_builtin): Likewise.
9296         * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
9297         * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
9298         * config/xtensa/xtensa.c (print_operand): Likewise.
9299         * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
9300         (NUM_MODE_VECTOR_INT): Likewise.
9301         * genoutput.c (null_operand): Likewise.
9302         (output_operand_data): Likewise.
9303         * genrecog.c (print_parameter_value): Likewise.
9304         * lra.c (debug_operand_data): Likewise.
9306 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9308         * dwarf2out.c (scompare_loc_descriptor_wide)
9309         (scompare_loc_descriptor_narrow): New functions, split out from...
9310         (scompare_loc_descriptor): ...here.
9311         * expmed.c (emit_store_flag_int): New function, split out from...
9312         (emit_store_flag): ...here.
9314 2017-08-30  Richard Biener  <rguenther@suse.de>
9316         * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
9317         (dwarf2out_early_finish): Move setting of AT_pubnames from
9318         early debug output to early finish.
9320 2017-08-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
9322         * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
9323         and -mdata-region to the assembler.
9325 2017-08-30  Richard Biener  <rguenther@suse.de>
9327         * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
9328         attributes.
9329         (gen_subprogram_die): Add DW_AT_object_pointer only early.
9330         (dwarf2out_early_global_decl): Only generate a DIE for the
9331         abstract origin if it doesn't already exist or is a declaration DIE.
9332         (resolve_addr): Do not add the linkage name twice when
9333         generating a stub DIE for the DW_TAG_GNU_call_site target.
9335 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9337         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9338         Use machine_mode rather than int for arg1_mode.
9340 2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
9342         PR target/82015
9343         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
9344         that the second argument of the built-in functions to unpack
9345         128-bit scalar types to 64-bit values is 0 or 1.  Change to use a
9346         switch statement instead a lot of if statements.
9347         * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
9348         Allow 64-bit values to be in Altivec registers as well as
9349         traditional floating point registers.
9350         (pack<mode>, FMOVE128_VSX iterator): Likewise.
9352 2017-08-29  Alexander Monakov  <amonakov@ispras.ru>
9354         * ira-costs.c (record_address_regs): Handle both operands of PLUS for
9355         MAX_REGS_PER_ADDRESS == 1.
9357 2017-08-29  Uros Bizjak  <ubizjak@gmail.com>
9359         * config/i386/i386.opt (flag_fentry): Do not init to -1.
9360         * config/i386/i386.c (ix86_option_override_internal): Simplify
9361         setting of opts->x_flag_entry.
9363 2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9364             Jakub Jelinek  <jakub@redhat.com>
9365             Richard Biener  <rguenther@suse.de>
9367         PR tree-optimization/81503
9368         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
9369         folded constant fits in the target type; reorder tests for clarity.
9371 2017-08-29  Martin Liska  <mliska@suse.cz>
9373         * passes.def: Include pass_lower_switch.
9374         * stmt.c (dump_case_nodes): Remove and move to
9375         tree-switch-conversion.
9376         (case_values_threshold): Likewise.
9377         (expand_switch_as_decision_tree_p): Likewise.
9378         (emit_case_decision_tree): Likewise.
9379         (expand_case): Likewise.
9380         (balance_case_nodes): Likewise.
9381         (node_has_low_bound): Likewise.
9382         (node_has_high_bound): Likewise.
9383         (node_is_bounded): Likewise.
9384         (emit_case_nodes): Likewise.
9385         (struct simple_case_node): New struct.
9386         (add_case_node): Remove.
9387         (emit_case_dispatch_table): Use vector instead of case_list.
9388         (reset_out_edges_aux): Remove.
9389         (compute_cases_per_edge): Likewise.
9390         (expand_case): Build list of simple_case_node.
9391         (expand_sjlj_dispatch_table): Use it.
9392         * tree-switch-conversion.c (struct case_node): Moved from
9393         stmt.c and adjusted.
9394         (emit_case_nodes): Likewise.
9395         (node_has_low_bound): Likewise.
9396         (node_has_high_bound): Likewise.
9397         (node_is_bounded): Likewise.
9398         (case_values_threshold): Likewise.
9399         (reset_out_edges_aux): Likewise.
9400         (compute_cases_per_edge): Likewise.
9401         (add_case_node): Likewise.
9402         (dump_case_nodes): Likewise.
9403         (balance_case_nodes): Likewise.
9404         (expand_switch_as_decision_tree_p): Likewise.
9405         (emit_jump): Likewise.
9406         (emit_case_decision_tree): Likewise.
9407         (try_switch_expansion): Likewise.
9408         (do_jump_if_equal): Likewise.
9409         (emit_cmp_and_jump_insns): Likewise.
9410         (fix_phi_operands_for_edge): New function.
9411         (record_phi_operand_mapping): Likewise.
9412         (class pass_lower_switch): New pass.
9413         (pass_lower_switch::execute): New function.
9414         (make_pass_lower_switch): Likewise.
9415         (conditional_probability):
9416         * timevar.def: Add TV_TREE_SWITCH_LOWERING.
9417         * tree-pass.h: Add make_pass_lower_switch.
9419 2017-08-29  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
9421         PR target/80993
9422         * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
9423         handlers as used.
9425 2017-08-29  Richard Biener  <rguenther@suse.de>
9427         * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
9428         we do not add a DW_AT_inline attribute twice.
9429         (gen_subprogram_die): Remove code setting DW_AT_inline on
9430         DECL_ABSTRACT_P nodes.
9432 2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>
9434         * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
9435         calls to internal functions.
9436         (gimplify_modify_expr): Likewise.
9437         * tree-call-cdce.c (use_internal_fn): Likewise.
9438         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
9439         (convert_to_divmod): Set the nothrow flag.
9440         * tree-if-conv.c (predicate_mem_writes):  Likewise.
9441         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
9442         (vectorizable_call): Likewise.
9443         (vectorizable_store): Likewise.
9444         (vectorizable_load): Likewise.
9445         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
9446         (vect_recog_mask_conversion_pattern): Likewise.
9448 2017-08-29  Martin Liska  <mliska@suse.cz>
9450         PR other/39851
9451         * gcc.c (driver_handle_option): Add new argument.
9452         * opts-common.c (handle_option): Pass
9453         target_option_override_hook.
9454         * opts-global.c (lang_handle_option): Add new option.
9455         (set_default_handlers):  Add new argument.
9456         (decode_options): Likewise.
9457         * opts.c (target_handle_option): Likewise.
9458         (common_handle_option): Call target_option_override_hook.
9459         * opts.h (struct cl_option_handler_func): Add hook for
9460         target option override.
9461         (struct cl_option_handlers): Likewise.
9462         (set_default_handlers): Add new argument.
9463         (decode_options): Likewise.
9464         (common_handle_option): Likewise.
9465         (target_handle_option): Likewise.
9466         * toplev.c (toplev::main): Pass targetm.target_option.override
9467         hook.
9469 2017-08-29  Richard Biener  <rguenther@suse.de>
9470         Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
9472         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
9473         life to the active subtree.
9475 2017-08-28  Jeff Law  <law@redhat.com>
9477         * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
9478         derive_equivalences.
9479         (derive_equivalences_from_bit_ior, record_temporary_equivalences):
9480         Code moved into....
9481         (edge_info::derive_equivalences): New private member function
9483         * tree-ssa-dom.c (class edge_info): Changed from a struct
9484         to a class.  Add ctor/dtor, methods and data members.
9485         (edge_info::edge_info): Renamed from allocate_edge_info.
9486         Initialize additional members.
9487         (edge_info::~edge_info): New.
9488         (free_dom_edge_info): Delete the edge info.
9489         (record_edge_info): Use new class & associated member functions.
9490         Tighten forms for testing for edge equivalences.
9491         (record_temporary_equivalences): Iterate over the simple
9492         equivalences rather than assuming there's only one per edge.
9493         (cprop_into_successor_phis): Iterate over the simple
9494         equivalences rather than assuming there's only one per edge.
9495         (optimize_stmt): Use operand_equal_p rather than pointer
9496         equality for mini-DSE code.
9498 2017-08-28  Nathan Sidwell  <nathan@acm.org>
9500         * gcc.c (execute): Fold SIGPIPE handling into switch
9501         statement.  Adjust internal error message.
9503 2017-08-28  Richard Biener  <rguenther@suse.de>
9505         PR debug/81993
9506         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
9507         Do nothing for removed DIEs.
9509 2017-08-28  Richard Biener  <rguenther@suse.de>
9511         PR tree-optimization/81977
9512         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
9513         memcpy.
9515 2017-08-28  Alexander Monakov  <amonakov@ispras.ru>
9517         PR target/80640
9518         * doc/md.texi (mem_thread_fence): Remove mention of mode.  Rewrite.
9519         * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
9520         using targetm.gen_mem_thread_fence.
9522 2017-08-27  Uros Bizjak  <ubizjak@gmail.com>
9524         PR target/81995
9525         * config/i386/i386.md (*<btsc><mode>): Change operand 2
9526         predicate to register_operand.  Reorder operands.
9527         (*btr<mode>): Ditto.
9528         (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
9529         (*btr<mode>_mask): Ditto.
9531 2017-08-25  Steven Munroe  <munroesj@gcc.gnu.org>
9533         * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
9534         * config/rs6000/xmmintrin.h: New file.
9535         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
9537 2017-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9539         PR target/81504
9540         * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
9541         parameter and_insn and return it.
9542         (recombine_lvx_pattern): Insert a copy to ensure availability of
9543         the base register of the copied masking operation at the point of
9544         the instruction replacement.
9545         (recombine_stvx_pattern): Likewise.
9547 2017-08-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
9549         * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
9550         undocumented switches.
9551         (-mpower9-dform-vector): Likewise.
9552         (-mpower9-dform): Likewise.
9553         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
9554         comments to delete references to -mpower9-dform* switches.
9555         * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
9556         Delete reference to -mpower9-dform* switches, test for
9557         -mpower9-vector instead.
9558         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
9559         (OTHER_P9_VECTOR_MASKS): Likewise.
9560         (POWERPC_MASKS): Likewise.
9561         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
9562         tests against -mpower9-dform* to -mpower9-vector.  Delete code
9563         that checked for -mpower9-dform* consistancy with other options.
9564         Add test for -mpower9-misc to enable other power9 switches.
9565         (rs6000_init_hard_regno_mode_ok): Likewise.
9566         (rs6000_option_override_internal): Likewise.
9567         (rs6000_emit_prologue): Likewise.
9568         (rs6000_emit_epilogue): Likewise.
9569         (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
9570         (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
9571         (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
9572         -mpower9-vector.
9573         (emit_fusion_p9_store): Likewise.
9574         * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
9575         resetting these macros if the assembler does not support ISA 3.0
9576         instructions.
9577         (TARGET_P9_DFORM_VECTOR): Likewise.
9578         * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
9579         Change to use -mpower9-vector instead of -mpower9-dform-scalar.
9581 2017-08-25  Alan Modra  <amodra@gmail.com>
9583         PR rtl-optimization/81747
9584         * cse.c (cse_extended_basic_block): Don't attempt to record
9585         equivalences for degenerate conditional branches that branch
9586         to their fall-through.
9588 2017-08-24  Martin Sebor  <msebor@redhat.com>
9590         PR middle-end/81908
9591         * gimple-fold.c (size_must_be_zero_p): New function.
9592         (gimple_fold_builtin_memory_op): Call it.
9594 2017-08-24  Steven Munroe  <munroesj@gcc.gnu.org>
9596         * config/rs6000/mm_malloc.h: New file.
9598 2017-08-24  Bin Cheng  <bin.cheng@arm.com>
9600         PR tree-optimization/81913
9601         * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
9602         analysis when either IVs in condition can wrap.
9604 2017-08-24  Uros Bizjak  <ubizjak@gmail.com>
9606         * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
9607         * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
9609 2017-08-24  Richard Biener  <rguenther@suse.de>
9611         PR target/81921
9612         * targhooks.c (default_target_can_inline_p): Properly
9613         use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
9614         is present and always compare.
9615         * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
9616         infer -mfpmath=sse from TARGET_SSE_P.
9617         (ix86_can_inline_p): Properly use target_option_default_node when
9618         no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
9620 2017-08-24  Richard Biener  <rguenther@suse.de>
9622         PR debug/81936
9623         * dwarf2out.c (output_die): Handle flag_generate_offload like
9624         flag_generate_lto.
9625         (output_comp_unit): Likewise.
9626         (gen_array_type_die): Likewise.
9627         (dwarf2out_early_finish): Likewise.
9628         (note_variable_value_in_expr): Likewise.
9629         (dwarf2out_finish): Likewise.  Adjust assert.
9630         * cgraphunit.c (symbol_table::compile): Move setting of
9631         flag_generate_offload earlier ...
9632         (symbol_table::finalize_compilation_unit): ... here, before
9633         early debug finalization.
9635 2017-08-24  Richard Biener  <rguenther@suse.de>
9637         * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
9638         and ipa-fnsummary.h.
9639         (ix86_can_inline_p): When ix86_fpmath flags do not match
9640         check whether the callee uses FP math at all.
9642 2017-08-24  Aldy Hernandez  <aldyh@redhat.com>
9644         PR middle-end/81931
9645         * tree-ssanames.c (get_nonzero_bits): Use element_precision
9646         instead of TYPE_PRECISION.
9648 2017-08-24  Richard Sandiford  <richard.sandiford@linaro.org>
9649             Alan Hayward  <alan.hayward@arm.com>
9650             David Sherwood  <david.sherwood@arm.com>
9652         * combine.c (make_extraction): Use subreg_offset_from_lsb.
9654 2017-08-23  Daniel Santos  <daniel.santos@pobox.com>
9656         * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
9657         Remove field.
9658         (ix86_frame::stack_realign_allocate): New field.
9659         (struct machine_frame_state): Modify comments.
9660         (machine_frame_state::sp_realigned_fp_end): New field.
9661         * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
9662         layout calculation.
9663         (sp_valid_at): Add assertion to assure no attempt to access invalid
9664         offset of a realigned stack.
9665         (fp_valid_at): Likewise.
9666         (choose_baseaddr): Modify comments.
9667         (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
9668         ix86_expand_prologue.
9669         (ix86_expand_prologue): Modify stack realignment and allocation.
9670         (ix86_expand_epilogue): Modify comments.
9671         * doc/sourcebuild.texi: Add documentation for target selectors avx2,
9672         avx2_runtime, avx512f, and avx512f_runtime.
9674 2017-08-23  Uros Bizjak  <ubizjak@gmail.com>
9676         * config/i386/i386.opt: Remove unneeded Init(0) initializations.
9677         (mstackrealign): Do not init to -1.
9678         * config/i386/i386.c (ix86_option_override_internal):
9679         Check opts_set, not opts when setting default value of
9680         opts->x_ix86_force_align_arg_pointer.
9682 2017-08-23  Richard Biener  <rguenther@suse.de>
9684         * function.c (fndecl_name): Use verbosity 1 (no arguments) for
9685         lang_hooks.decl_printable_name.
9686         * print-rtl-function.c (print_rtx_function): Likewise.
9687         * tree-pretty-print.c (dump_function_header): Likewise.
9689 2017-08-23  Richard Biener  <rguenther@suse.de>
9691         PR lto/81940
9692         * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
9693         -g0 at compile-time.
9695 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
9697         PR middle-end/19706
9698         * doc/sourcebuild.texi (Other hardware attributes):
9699         Document xorsign.
9701 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
9703         PR middle-end/19706
9704         * tree-ssa-math-opts.c (convert_expand_mult_copysign):
9705         Fix single-use check.
9707 2017-08-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9709         * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
9711 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
9713         * doc/install.texi: Modify to add more details on running selected
9714         tests.
9716 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
9718         * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
9719         is combined with -mabi=ms.
9720         (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
9721         ms_abi.
9723 2017-08-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9725         PR tree-optimization/81488
9726         * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
9727         and cached_basis fields.
9728         (MAX_SPREAD): New constant.
9729         (alloc_cand_and_find_basis): Initialize new fields.
9730         (clear_visited): New function.
9731         (create_phi_basis_1): Rename from create_phi_basis, set visited
9732         and cached_basis fields.
9733         (create_phi_basis): New wrapper function.
9734         (phi_add_costs_1): Rename from phi_add_costs, add spread
9735         parameter, set visited field, short-circuit when limits reached.
9736         (phi_add_costs): New wrapper function.
9737         (record_phi_increments_1): Rename from record_phi_increments, set
9738         visited field.
9739         (record_phi_increments): New wrapper function.
9740         (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
9741         (phi_incr_cost): New wrapper function.
9742         (all_phi_incrs_profitable_1): Rename from
9743         all_phi_incrs_profitable, set visited field.
9744         (all_phi_incrs_profitable): New wrapper function.
9746 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
9747             Alan Hayward  <alan.hayward@arm.com>
9748             David Sherwood  <david.sherwood@arm.com>
9750         * rtl.h (paradoxical_subreg_p): Define inline, and add a version
9751         that takes the outer and inner modes.
9752         * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
9753         comparison as the canonical test for a paradoxical subreg.
9754         * combine.c (simplify_set): Use paradoxical_subreg_p.
9755         (make_extraction): Likewise.
9756         (force_to_mode): Likewise.
9757         (rtx_equal_for_field_assignment_p): Likewise.
9758         (gen_lowpart_for_combine): Likewise.
9759         (simplify_comparison): Likewise.
9760         * cse.c (equiv_constant): Likewise.
9761         * expmed.c (store_bit_field_1): Likewise.
9762         * final.c (alter_subreg): Likewise.
9763         * fwprop.c (propagate_rtx): Likewise.
9764         (forward_propagate_subreg): Likewise.
9765         * ira-conflicts.c (ira_build_conflicts): Likewise.
9766         * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
9767         * lra-constraints.c (curr_insn_transform): Likewise.
9768         (split_reg): Likewise.
9769         * lra-eliminations.c (move_plus_up): Likewise.
9770         (lra_eliminate_regs_1): Likewise.
9771         * recog.c (general_operand): Likewise.
9772         * ree.c (combine_reaching_defs): Likewise.
9773         * reload.c (push_reload): Likewise.
9774         (find_reloads): Likewise.
9775         * reload1.c (elimination_effects): Likewise.
9776         (compute_reload_subreg_offset): Likewise.
9777         (choose_reload_regs): Likewise.
9778         * rtlanal.c (subreg_lsb_1): Likewise.
9779         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9780         (simplify_subreg): Likewise.
9781         * var-tracking.c (track_loc_p): Likewise.
9782         * emit-rtl.c (byte_lowpart_offset): Likewise.
9783         (paradoxical_subreg_p): Delete out-of-line definition.
9785 2017-08-22  Jeff Law  <law@redhat.com>
9787         PR tree-optimization/81741
9788         PR tree-optimization/71947
9789         * tree-ssa-dom.c: Include tree-inline.h.
9790         (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
9791         equivalences if one is more expensive to compute than the other.
9792         * tree-ssa-scopedtables.h (class const_or_copies): Make
9793         record_const_or_copy_raw method private.
9794         (class avail_exprs_stack): New method simplify_binary_operation.
9795         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
9796         avail_exprs_stack::simplify_binary_operation as needed.
9797         (avail_exprs_stack::simplify_binary_operation): New function.
9799 2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9801         * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
9802         * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
9803         (DOT_SYMBOLS): Likewise.
9804         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
9805         (RELOCATABLE_NEEDS_FIXUP): Likewise.
9806         (RS6000_ABI_NAME): Likewise.
9807         (TARGET_CMODEL): Likewise.
9808         (TOC_SECTION_ASM_OP): Likewise.
9809         (SET_CMODEL): New macro.
9810         (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
9812 2017-08-22  Richard Biener  <rguenther@suse.de>
9814         * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
9815         to allow for free-lang-data replacements similar to verify_type_variant.
9817 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
9818             Alan Hayward  <alan.hayward@arm.com>
9819             David Sherwood  <david.sherwood@arm.com>
9821         * config/aarch64/aarch64.md (casesi): Use DImode rather than
9822         VOIDmode for the LABEL_REF.
9824 2017-08-22  Richard Biener  <rguenther@suse.de>
9826         * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
9828 2017-08-22  Richard Biener  <rguenther@suse.de>
9830         * common.opt (feliminate-dwarf2-dups): Ignore.
9831         * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
9832         * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
9833         same_die_p_wrap, compute_section_prefix,
9834         is_symbol_die, assign_symbol_names, break_out_includes): Remove.
9835         (comdat_symbol_id, comdat_symbol_number): Likewise.
9836         (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
9837         Likewise.
9838         (check_duplicate_cu, record_comdat_symbol_number): Likewise.
9839         (output_die): Mark unreachable path unreachable.
9840         (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
9841         (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
9842         (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
9843         (dwarf2out_early_finish): Likewise.
9845 2017-08-22  Aldy Hernandez  <aldyh@redhat.com>
9847         * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
9849 2017-08-22  Georg-Johann Lay  <avr@gjlay.de>
9851         PR target/81910
9852         * config/avr/avr.c (avr_handle_addr_attribute): Early return if
9853         not VAR_P. Filter attribute warnings with OPT_Wattributes.
9854         (avr_attribute_table) <io, io_low, address>: Initialize
9855         .decl_required with true.
9857 2017-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9859         * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
9860         undocumented debugging options.
9861         (-mvsx-scalar-double): Likewise.
9862         (-mallow-df-permute): Likewise.
9863         (-mvectorize-builtins): Likewise.
9864         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
9865         (rs6000_builtin_vectorized_function): Likewise.
9866         (rs6000_builtin_md_vectorized_function): Likewise.
9867         (rs6000_opt_vars): Likewise.
9869 2017-08-21  Uros Bizjak  <ubizjak@gmail.com>
9871         PR target/46091
9872         * config/i386/i386.md (*btsq_imm): Rename from *btsq.
9873         (*btrq_imm): Rename from *btrq.
9874         (*btcq_imm): Rename from *btcq.
9875         (btsc): New code attribute.
9876         (*<btsc><mode>): New insn pattern.
9877         (*btr<mode>): Ditto.
9878         (*<btsc><mode>_mask): New insn_and_split pattern.
9879         (*btr<mode>_mask): Ditto.
9881 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
9882             Alan Hayward  <alan.hayward@arm.com>
9883             David Sherwood  <david.sherwood@arm.com>
9885         * function.c (pad_below): Simplify padding calculation.
9887 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
9888             Alan Hayward  <alan.hayward@arm.com>
9889             David Sherwood  <david.sherwood@arm.com>
9891         * target.def (function_prologue): Remove frame size argument.
9892         (function_epilogue): Likewise.
9893         * doc/tm.texi: Regenerate.
9894         * final.c (final_start_function): Update call to function_prologue.
9895         (final_end_function): Update call to function_epilogue.
9896         (default_function_pro_epilogue): Remove frame size argument.
9897         * output.h (default_function_pro_epilogue): Likewise.
9898         * config/arm/arm.c (arm_output_function_epilogue): Likewise.
9899         (arm_output_function_prologue): Likewise.
9900         * config/frv/frv.c (frv_function_prologue): Likewise.
9901         (frv_function_epilogue): Likewise.
9902         * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
9903         * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
9904         (ia64_output_function_epilogue): Likewise.
9905         * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
9906         (m32r_output_function_epilogue): Likewise.
9907         * config/microblaze/microblaze.c (microblaze_function_prologue)
9908         (microblaze_function_epilogue): Likewise.
9909         * config/mips/mips.c (mips_output_function_prologue): Likewise.
9910         (mips_output_function_epilogue): Likewise.
9911         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
9912         (mmix_target_asm_function_epilogue): Likewise.
9913         * config/msp430/msp430.c (msp430_start_function): Likewise.
9914         * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
9915         (nds32_asm_function_epilogue): Likewise.
9916         * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
9917         * config/pa/pa.c (pa_output_function_prologue): Likewise.
9918         (pa_output_function_epilogue): Likewise.
9919         * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
9920         (rs6000_output_function_epilogue): Likewise.
9921         * config/rl78/rl78.c (rl78_start_function): Likewise.
9922         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
9923         (rs6000_output_function_epilogue): Likewise.
9924         * config/rx/rx.c (rx_output_function_prologue): Likewise.
9925         * config/sh/sh.c (sh_output_function_epilogue): Likewise.
9926         * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
9927         (sparc_asm_function_epilogue): Likewise.
9929 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
9931         * tree.h (type_has_mode_precision_p): New function.
9932         * convert.c (convert_to_integer_1): Use it.
9933         * expr.c (expand_expr_real_2): Likewise.
9934         (expand_expr_real_1): Likewise.
9935         * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
9936         * match.pd: Likewise.
9937         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
9938         * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
9939         * tree-tailcall.c (process_assignment): Likewise.
9940         * tree-vect-loop.c (vectorizable_reduction): Likewise.
9941         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
9942         (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
9943         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
9944         (vectorizable_assignment): Likewise.
9945         (vectorizable_shift): Likewise.
9946         (vectorizable_operation): Likewise.
9947         * tree-vrp.c (register_edge_assert_for_2): Likewise.
9949 2017-08-21  Wilco Dijkstra  <wdijkstr@arm.com>
9951         * match.pd: Add pow (C, x) simplification.
9953 2017-08-21  Richard Biener  <rguenther@suse.de>
9955         PR tree-optimization/81900
9956         * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
9957         for blocks with abnormal predecessors.
9958         (compute_antic): Do not set visited flag prematurely.
9960 2017-08-21  Georg-Johann Lay  <avr@gjlay.de>
9962         PR target/79883
9963         * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
9965 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
9967         * stor-layout.h (vector_type_mode): Move to...
9968         * tree.h (vector_type_mode): ...here.
9969         * stor-layout.c (vector_type_mode): Move to...
9970         * tree.c (vector_type_mode): ...here.  Include rtl.h and regs.h.
9972 2017-08-21  Richard Biener  <rguenther@suse.de>
9974         * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
9975         register_external_die hooks.
9976         (debug_false_tree_charstarstar_uhwistar): Declare.
9977         (debug_nothing_tree_charstar_uhwi): Likewise.
9978         * debug.c (do_nothing_debug_hooks): Adjust.
9979         (debug_false_tree_charstarstar_uhwistar): New do nothing.
9980         (debug_nothing_tree_charstar_uhwi): Likewise.
9981         * dbxout.c (dbx_debug_hooks): Adjust.
9982         (xcoff_debug_hooks): Likewise.
9983         * sdbout.c (sdb_debug_hooks): Likewise.
9984         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9985         * dwarf2out.c (macinfo_label_base): New global.
9986         (dwarf2out_register_external_die): New function for the
9987         register_external_die hook.
9988         (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
9989         (dwarf2_debug_hooks): Use them.
9990         (dwarf2_lineno_debug_hooks): Adjust.
9991         (struct die_struct): Add with_offset flag.
9992         (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
9993         DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
9994         DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
9995         DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
9996         DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
9997         DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
9998         defining section names for the early LTO debug variants.
9999         (reset_indirect_string): New helper.
10000         (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
10001         (print_dw_val): Add support for offsetted symbol references.
10002         (get_ultimate_context): Split out from is_cxx.
10003         (is_cxx): Use get_ultimate_context.
10004         (is_fortran): Add decl overload.
10005         (compute_comp_unit_symbol): Split out worker from
10006         compute_section_prefix.
10007         (compute_section_prefix): Call compute_comp_unit_symbol and
10008         set comdat_type_p here.
10009         (output_die): Skip DIE symbol output for the LTO added one.
10010         Handle DIE symbol references with offset.
10011         (output_comp_unit): Guard section name mangling properly.
10012         For LTO debug sections emit a symbol at the section beginning
10013         which we use to refer to its DIEs.
10014         (add_abstract_origin_attribute): For DIEs registered via
10015         dwarf2out_register_external_die directly refer to the early
10016         DIE rather than indirectly through the shadow one we created.
10017         Remove obsolete call to dwarf2out_abstract_function for
10018         non-function/block origins.
10019         (gen_array_type_die): When generating early LTO debug do
10020         not emit DW_AT_string_length.
10021         (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
10022         late when in LTO.  As suggested place a gcc_unreachable for
10023         the DECL_ABSTRACT_P case.
10024         (gen_subprogram_die): Avoid another specification DIE
10025         for early built declarations/definitions for the late LTO case.
10026         (gen_variable_die): Add type references for late duplicated VLA dies
10027         when in late LTO.
10028         (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
10029         we have the abstract instance already.
10030         (process_scope_var): Adjust decl DIE contexts in LTO which
10031         first puts them in limbo.
10032         (gen_decl_die): Do not generate type DIEs late apart from
10033         types for VLAs or for decls we do not yet have a DIE.  Do not
10034         call dwarf2out_abstract_function late.
10035         (dwarf2out_early_global_decl): Make sure to create DIEs
10036         for abstract instances of a decl first.
10037         (dwarf2out_late_global_decl): Adjust comment.
10038         (output_macinfo_op): With multiple macro sections use
10039         macinfo_label_base to distinguish labels.
10040         (output_macinfo): Likewise.  Update macinfo_label_base.
10041         Pass in the line info label.
10042         (note_variable_value_in_expr): When generating LTO resolve
10043         all variable values here by generating DIEs as needed.
10044         (init_sections_and_labels): Add early LTO debug flag parameter
10045         and generate different sections and names if set.  Add generation
10046         counter for the labels so we can have multiple of them.
10047         (reset_dies): Helper to allow DIEs to be output multiple times.
10048         (dwarf2out_finish): When outputting DIEs to the fat part of an
10049         LTO object first reset DIEs.
10050         (dwarf2out_early_finish): Output early DIEs when generating LTO.
10051         (modified_type_die): Check for decl_ultimate_origin being self
10052         before recursing.
10053         (gen_type_die_with_usage): Likewise.
10054         (gen_typedef_die): Allow decl_ultimate_origin being self.
10055         (set_decl_abstract_flags): Remove.
10056         (set_block_abstract_flags): Likewise.
10057         (dwarf2out_abstract_function): Treat the early generated DIEs
10058         as the abstract copy and only add DW_AT_inline and
10059         DW_AT_artificial here and call set_decl_origin_self.
10060         If the DIE has an abstract origin don't do anything.
10061         * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
10062         if we have none yet (Go fails to build one, PR78628).
10063         (variably_modified_type_p): Prevent endless recursion for Ada
10064         cyclic pointer types.
10065         * lto-streamer-in.c: Include debug.h.
10066         (dref_queue): New global.
10067         (lto_read_tree_1): Stream in DIE references.
10068         (lto_input_tree): Register DIE references.
10069         (input_function): Stream DECL_DEBUG_ARGS.
10070         * lto-streamer-out.c: Include debug.h.
10071         (lto_write_tree_1): Output DIE references.
10072         (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
10073         Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
10074         (output_function): Stream DECL_DEBUG_ARGS.
10075         * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10076         Stream DECL_ABSTRACT_ORIGIN.
10077         * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
10078         (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
10079         DECL_CONTEXT for file-scope decls.
10080         * lto-streamer.h (struct dref_entry): Declare.
10081         (dref_queue): Likewise.
10082         * cfgexpand.c (pass_expand::execute): Do not call the
10083         outlining_inline_function hook here.
10084         * lto-wrapper.c (debug_obj): New global.
10085         (tool_cleanup): Unlink it if required.
10086         (debug_objcopy): New function.
10087         (run_gcc): Handle early debug sections in the IL files by
10088         extracting them to separate files, partially linkin them and
10089         feeding the result back as result to the linker.
10090         * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
10091         DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
10092         DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
10093         sections into a separate segment.
10094         * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
10095         segments.
10096         (darwin_asm_dwarf_section): Likewise.
10097         (darwin_asm_output_dwarf_offset): Likewise.
10098         * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
10100 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
10101             Alan Hayward  <alan.hayward@arm.com>
10102             David Sherwood  <david.sherwood@arm.com>
10104         * read-md.h (md_reader::record_potential_iterator_use): Replace
10105         pointer argument with an rtx and an index.
10106         * read-rtl.c (iterator_group::apply_iterator): Likewise.
10107         (apply_mode_iterator): Likewise.
10108         (apply_code_iterator): Likewise.
10109         (apply_int_iterator): Likewise.
10110         (apply_subst_iterator): Likewise.
10111         (record_iterator_use): Likewise.
10112         (record_attribute_use): Likewise.
10113         (md_reader::record_potential_iterator_use): Likewise.  Update calls
10114         to record_iterator_use and apply_iterator.
10115         (iterator_use): Replace ptr with x and index.
10116         (attribute_use): Likewise.
10117         (apply_attribute_uses): Update calls to apply_iterator.
10118         (apply_iterators): Likewise.  Update initialization of iterator_use.
10119         (rtx_reader::read_rtx_code): Update calls to record_iterator_use
10120         and record_potential_iterator_use.
10121         (rtx_reader::read_rtx_operand): Likewise.
10123 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
10124             Alan Hayward  <alan.hayward@arm.com>
10125             David Sherwood  <david.sherwood@arm.com>
10127         * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
10128         CONST_WIDE_INT.
10130 2017-08-21  Richard Biener  <rguenther@suse.de>
10132         PR middle-end/81884
10133         * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
10134         at struct end conservatively when comparing common bases.
10136 2017-08-21  Richard Biener  <rguenther@suse.de>
10138         * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
10139         (mem_ref_in_stmt): Remove.
10140         (determine_max_movement): Use ref index to get at the reference.
10141         (invariantness_dom_walker::before_dom_children): Deal with
10142         lim data already initialized.
10143         (gather_mem_refs_stmt): Initialize lim data and record ref index.
10145 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
10147         * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
10148         (TARGET_ISA_ROUND): Ditto.
10149         (TARGET_ROUND): Ditto.
10150         * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
10151         * config/i386/i386.md: Ditto.
10152         * config/i386/sse.md: Ditto.
10153         * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
10154         with OPTION_MASK_ISA_SSE4_1.
10156 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
10158         PR target/81894
10159         * doc/extend.texi (x86 Built-in Functions): Correct the name of
10160         __builtin_ia32_lzcnt_u16.
10162 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
10164         PR target/80210
10165         * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
10166         (rs6000_set_current_function): Rewrite function to use it.
10168 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
10170         PR c/53037
10171         * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
10172         and TYPE_WARN_IF_NOT_ALIGN.
10173         * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
10174         (handle_warn_if_not_align): New.
10175         (place_union_field): Call handle_warn_if_not_align.
10176         (place_field): Call handle_warn_if_not_align.
10177         Copy TYPE_WARN_IF_NOT_ALIGN.
10178         (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
10179         (layout_type): Likewise.
10180         * tree-core.h (tree_type_common): Add warn_if_not_align.  Set
10181         spare to 18.
10182         (tree_decl_common): Add warn_if_not_align.
10183         * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
10184         * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
10185         (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
10186         (DECL_WARN_IF_NOT_ALIGN): Likewise.
10187         (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
10188         * doc/extend.texi: Document warn_if_not_aligned attribute.
10189         * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
10191 2017-08-17  Martin Liska  <mliska@suse.cz>
10193         PR bootstrap/81864
10194         * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
10195         (get_data_dependence): Use it as pointer type.
10196         (distribute_loop): Likewise.
10198 2017-08-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10200         * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
10201         (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
10202         (p8_vmrgow_<mode>_direct): New define_insn.
10203         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
10204         handle endianness for vmrgew and vmrgow permute patterns.
10206 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
10208         * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
10209         * config/rs6000/rs6000-cpus.def: Remove comment.
10210         (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
10211         (POWERPC_MASKS): Likewise.
10212         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
10213         use of TARGET_VSX_TIMODE.
10214         (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
10215         (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
10216         TARGET_VSX_TIMODE.  Change use of TARGET_VSX_TIMODE to TARGET_VSX.
10217         (rs6000_option_override_internal): Remove dead code.
10218         (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
10219         (rs6000_legitimize_reload_address): Likewise.
10220         (rs6000_legitimate_address_p): Likewise.
10221         (rs6000_opt_masks): Delete "vsx-timode".
10222         (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
10223         from function comment.
10224         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
10225         * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
10226         (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
10227         condition.
10228         * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
10229         * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
10230         * config/rs6000/vsx.md (VSX_LE_128): Likewise.
10231         (VSX_TI): Likewise.
10232         (VSX_M): Likewise.
10233         (define_peephole2): Likewise.
10235 2017-08-17  Martin Sebor  <msebor@redhat.com>
10237         PR c/81859
10238         * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
10239         past the end of an array.
10240         (test_pp_format): Add test cases.
10242 2017-08-17  Richard Sandiford  <richard.sandiford@linaro.org>
10244         * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
10245         missing ECF_NOTHROW flags.
10247 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
10249         PR target/72804
10250         * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
10251         operands residing in integer registers.
10252         (*vsx_le_perm_load_<mode>): Likewise.
10253         (*vsx_le_perm_store_<mode>): Likewise.
10254         (define_peephole2): Add peepholes to optimize the above.
10256 2017-08-17  Marek Polacek  <polacek@redhat.com>
10258         PR middle-end/81814
10259         * fold-const.c (operand_equal_for_comparison_p): Remove code that used
10260         to mimic what shorten_compare did.  Change the return type to bool.
10261         (fold_cond_expr_with_comparison): Update call to
10262         operand_equal_for_comparison_p.
10263         (fold_ternary_loc): Likewise.
10265 2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>
10267         * aarch64-simd.md (mov<mode>): No longer force zero immediate into
10268         register.
10269         (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
10271 2017-08-17  Richard Biener  <rguenther@suse.de>
10273         * tree-ssa-structalias.c (solve_graph): When propagating
10274         to successors update the graphs succ edges and avoid duplicate work.
10276 2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>
10278         PR target/81861
10279         * config/i386/i386.c (ix86_option_override_internal): Save target
10280         specific options after ix86_stack_protector_guard_reg was changed.
10282 2017-08-17  Richard Biener  <rguenther@suse.de>
10284         PR tree-optimization/81827
10285         * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
10286         (new_var_info): Initialize it conservatively.
10287         (get_call_vi): Mark register vars.
10288         (new_scalar_tmp_constraint_exp): Likewise.
10289         (handle_rhs_call): Likewise.
10290         (handle_const_call): Likewise.
10291         (create_function_info_for): Likewise.
10292         (solve_constraints): Sort varinfos to separate register from
10293         non-register vars to pack points-to solution bitmaps during
10294         iteration.
10296 2017-08-17  Marek Polacek  <polacek@redhat.com>
10298         * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
10300 2017-08-17  Richard Biener  <rguenther@suse.de>
10302         * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
10303         to true when overflow is undefined and we saturated the result.
10305 2017-08-17  Alan Modra  <amodra@gmail.com>
10307         PR target/80938
10308         * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
10309         Don't use store multiple if only one reg needs saving.
10310         (interesting_frame_related_regno): New function.
10311         (rs6000_frame_related): Don't emit frame info for regs that
10312         don't need saving.
10313         (rs6000_emit_epilogue): Likewise.
10315 2017-08-16  Nathan Sidwell  <nathan@acm.org>
10317         * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
10318         * tree.h (TYPE_BINFO): Use type_non_common.maxval.
10319         (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
10320         * tree.c (free_lang_data_in_type): Use else-if chain.  Always
10321         clear TYPE_LANG_1.  Remove obsolete member-function stripping.
10322         (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
10323         (verify_type): Adjust for TYPE_BINFO move.
10324         * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
10325         process TYPE_BINFO directly.
10326         (hash_tree): Likewise.
10327         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
10328         Likewise.
10329         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
10330         Likewise.
10332 2017-08-16  David Malcolm  <dmalcolm@redhat.com>
10334         * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
10336 2017-08-16  Uros Bizjak  <ubizjak@gmail.com>
10338         PR target/46091
10339         * config/i386/i386.md (*anddi_1_btr): Change predicates of
10340         operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
10341         Add ix86_binary_operator_ok to insn constraint.
10342         (*iordi_1_bts): Ditto.
10343         (*xordi_1_btc): Ditto.
10344         (*btsq): Change predicate of operand 0 to nonimmediate_operand.
10345         Update corresponding peephole2 pattern.
10346         (*btrq): Ditto.
10347         (*btcq): Ditto.
10349 2017-08-16  Bin Cheng  <bin.cheng@arm.com>
10351         PR tree-optimization/81832
10352         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
10353         copy loop header which has IFN_LOOP_DIST_ALIAS call.
10355 2017-08-16  Marek Polacek  <polacek@redhat.com>
10357         PR middle/81695
10358         * fold-const.c (fold_indirect_ref_1): Restore original behavior
10359         regarding size_zero_node.
10361 2017-08-16  Martin Liska  <mliska@suse.cz>
10363         PR target/81753
10364         * config.gcc: Respect previously set extra_objs in case
10365         of darwin target.
10367 2017-08-16  Richard Sandiford  <richard.sandiford@linaro.org>
10369         PR tree-optimization/81835
10370         * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
10371         the phi SSA_NAME.  Check that the condition in a COND_EXPR does
10372         not depend on the phi.
10374 2017-08-16  Alan Modra  <amodra@gmail.com>
10376         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
10377         dead code.
10379 2017-08-16  Alan Modra  <amodra@gmail.com>
10381         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
10382         (save_reg_p): ..into this.  Update all callers.
10383         (first_reg_to_save): Simplify.
10385 2017-08-16  Alan Modra  <amodra@gmail.com>
10387         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
10388         fixed regs.
10390 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
10392         PR target/78460
10393         PR target/67712
10394         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
10395         constant count if that count is less than 32.
10397 2017-08-15  Nathan Sidwell  <nathan@acm.org>
10399         * gcc.c (execute): Emit friendlier message if inferior is killed
10400         by an external cause.
10402 2017-08-15  Richard Biener  <rguenther@suse.de>
10404         PR tree-optimization/81790
10405         * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
10406         CONSTRUCTORs from simplifying and VN.
10408 2017-08-14  Martin Sebor  <msebor@redhat.com>
10410         * builtin-attrs.def: Add comments.
10412 2017-08-14  Martin Sebor  <msebor@redhat.com>
10414         PR c/81117
10415         * doc/extend.texi (attribute nonstring): Document new attribute.
10417 2017-08-14  Martin Sebor  <msebor@redhat.com>
10419         PR c/81117
10420         * tree-diagnostic.c (default_tree_printer): Handle %G.
10421         * gimple-pretty-print.h (percent_G_format): Declare new function.
10422         * gimple-pretty-print.c (percent_G_format): Define.
10423         * tree-pretty-print.c (percent_K_format): Add argument.
10425 2017-08-14  Martin Sebor  <msebor@redhat.com>
10427         PR translation/79998
10428         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
10429         Remove a stray space.
10431 2017-08-14  Uros Bizjak  <ubizjak@gmail.com>
10433         PR target/46091
10434         * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
10435         (*iordi_1_bts): Ditto.
10436         (*xordi_1_btc): Ditto.
10438 2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10440         PR target/79845
10441         * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
10442         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10443         Likewise.
10444         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
10445         quoted strings, and make more translator-friendly.
10446         (darwin_rs6000_override_options): Likewise.
10447         (rs6000_option_override_internal): Likewise.
10448         (rs6000_return_in_memory): Fix overlong line.
10449         (init_cmulative_args): Use quoted strings, and make more
10450         translator-friendly.
10451         (rs6000_pass_by_reference): Fix overlong line.
10452         (def_builtin): Use quoted strings.
10453         (altivec_expand_predicate_builtin): Use quoted strings, and make
10454         more translator-friendly.
10455         (htm_expand_builtin): Use quoted strings.
10456         (cpu_expand_builtin): Use quoted strings, and make more
10457         translator-friendly.
10458         (altivec_expand_builtin): Likewise.
10459         (paired_expand_predicate_builtin): Likewise.
10460         (rs6000_invalid_builtin): Likewise.
10461         (builtin_function_type): Use quoted strings.
10462         (rs6000_expand_split_stack_prologue): Use quoted strings, and make
10463         more translator-friendly.
10464         (rs6000_trampoline_init): Likewise.
10465         (rs6000_handle_altivec_attribute): Likewise.
10466         (rs6000_inner_target_options): Use quoted strings.
10467         (rs6000_disable_incompatible_switches): Likewise.
10468         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
10469         strings, and make more translator-friendly.
10470         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
10472 2017-08-14  Bin Cheng  <bin.cheng@arm.com>
10474         PR tree-optimization/81799
10475         * tree-loop-distribution.c (version_loop_by_alias_check): Force
10476         cond_expr to simple gimple operand.
10478 2017-08-14  Wilco Dijkstra  <wdijkstr@arm.com>
10480         PR middle-end/46932
10481         * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
10483 2017-08-14  Georg-Johann Lay  <avr@gjlay.de>
10485         PR target/81754
10486         PR target/81268
10487         * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
10488         * config/avr/avr.md (gasisr, *gasisr): Use it instead of
10489         TARGET_GASISR_PROLOGUES.
10490         * config/avr/avr.c (avr_option_override): Same.
10491         (avr_pass_pre_proep::execute): Same.
10493 2017-08-13  H.J. Lu  <hongjiu.lu@intel.com>
10495         PR target/81820
10496         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
10497         frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
10499 2017-08-13  Uros Bizjak  <ubizjak@gmail.com>
10501         * config/i386/i386.md (*load_tp_<mode>): Redefine as
10502         define_insn_and_split.  Split to a memory load from 0 in
10503         DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
10504         using PTR mode iterator.
10505         (*load_tp_x32_zext"): Redefine as define_insn_and_split.
10506         Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
10507         (*add_tp_<mode>): Redefine as define_insn_and_split.
10508         Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
10509         address space.  Merge with *add_tp_x32 using PTR mode iterator.
10510         (*add_tp_x32_zext"): Redefine as define_insn_and_split.
10511         Split to an add with a  memory load from 0 in
10512         DEFAULT_TLS_SEG_REG address space.
10514 2017-08-12  Andrew Pinski  <apinski@cavium.com>
10516         * config/aarch64/aarch64-option-extensions.def (rdma):
10517         Fix feature string to what Linux prints out in /proc/cpuinfo.
10519 2017-08-12  Pierre-Marie de Rodat  <derodat@adacore.com>
10521         PR ada/79542
10522         * dwarf2out.c (modified_type_die): For C typedef types that have
10523         an ultimate origin, process the ultimate origin instead of the
10524         input type.
10525         (gen_typedef_die): Assert that input DECLs have no ultimate
10526         origin.
10527         (gen_type_die_with_usage): For typedef variants that have an
10528         ultimate origin, just call gen_decl_die on the original DECL.
10529         (process_scope_var): Avoid creating DIEs for local typedefs and
10530         concrete static variables.
10532 2017-08-12  Alan Modra  <amodra@gmail.com>
10534         PR target/81170
10535         PR target/81295
10536         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
10537         match gnu-user.h startfile.
10538         (ENDFILE_LINUX_SPEC): Similarly.
10540 2017-08-11  Thomas Schwinge  <thomas@codesourcery.com>
10542         PR lto/81430
10543         * config/nvptx/nvptx.c (nvptx_override_options_after_change):
10544         Remove function.
10545         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
10547 2017-08-11  Tamar Christina  <tamar.christina@arm.com>
10548         * config/aarch64/aarch64.md (mov<mode>): Change.
10549         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
10550         aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
10551         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
10553 2017-08-11  Eric Botcazou  <ebotcazou@adacore.com>
10555         * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
10556         for storage order barriers.
10558 2017-08-11  Martin Liska  <mliska@suse.cz>
10560         PR tree-opt/79987
10561         * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
10562         variables of void type.
10564 2017-08-11  Martin Liska  <mliska@suse.cz>
10566         * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
10567         TARGET_SUPPORTS_ALIASES.
10568         * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
10569         * ipa-visibility.c (can_replace_by_local_alias): Likewise.
10570         (optimize_weakref): Likewise.
10571         * symtab.c (symtab_node::noninterposable_alias): Likewise.
10572         * varpool.c (varpool_node::create_extra_name_alias): Likewise.
10573         * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
10575 2017-08-11  Martin Liska  <mliska@suse.cz>
10577         PR ipa/81213
10578         * config/i386/i386.c (make_resolver_func): Do complete
10579         refactoring of the function.
10581 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
10583         PR target/81708
10584         * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
10585         * config/i386/i386.c (ix86_stack_protect_guard): Use
10586         ix86_stack_protect_guard_symbol_str to generate varible declaration.
10587         * doc/invoke.texi (x86 Options): Document
10588         -mstack-protector-guard-symbol= option.
10590 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
10592         * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
10593         * config/i386/i386.c (ix86_split_stack_guard): New function.
10594         (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
10595         (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
10596         (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
10597         (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
10598         * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
10599         (split_stack_space_check): Call ix86_split_stack_guard.
10601 2017-08-10  Martin Sebor  <msebor@redhat.com>
10603         * print-tree.c (print_node): Print location using the established
10604         format %s:%i%i.
10605         Replace spaces with colons.
10606         (debug_raw, debug): Ditto.
10608 2017-08-10  Martin Sebor  <msebor@redhat.com>
10610         PR c++/81586
10611         * pretty-print.c (pp_format): Correct the handling of %s precision.
10613 2017-08-10  H.J. Lu  <hongjiu.lu@intel.com>
10615         PR target/81736
10616         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
10617         to ...
10618         (ix86_finalize_stack_frame_flags): This.  Also clear
10619         frame_pointer_needed if -fno-omit-frame-pointer is used without
10620         stack access.
10621         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
10622         with ix86_finalize_stack_frame_flags.
10623         (ix86_expand_epilogue): Likewise.
10624         (ix86_expand_split_stack_prologue): Likewise.
10625         * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
10627 2017-08-10  Martin Liska  <mliska@suse.cz>
10629         PR c++/81355
10630         * c-attribs.c (handle_target_attribute):
10631         Report warning for an empty string argument of target attribute.
10633 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
10635         PR c/81687
10636         * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
10637         LABEL_DECLs.
10638         * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
10639         or DECL_NONLOCAL labels.
10640         (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
10641         or DECL_NONLOCAL labels here.
10643 2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>
10645         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
10646         to indicate when early gimple folding has been disabled.
10647         (rs6000_gimple_fold_builtin): Add debug content.
10648         (rs6000_invalid_builtin): Fix whitespace.
10649         (rs6000_expand_builtin): Fix whitespace.
10650         * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
10652 2017-08-09  Segher Boessenkool  <segher@kernel.crashing.org>
10654         PR target/80938
10655         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
10656         SAVE_MULTIPLE if not all the registers that saves, should be saved.
10658 2017-08-09  Jim Wilson  <jim.wilson@linaro.org>
10660         * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
10661         (qdf24xx): Likewise.
10662         * config/aarch64/aarch64.md: Include falkor.md.
10663         * config/aarch64/falkor.md: New.
10665 2017-08-09  Marek Polacek  <polacek@redhat.com>
10667         PR c/81233
10668         * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
10669         * diagnostic.c (emit_diagnostic): Add a comment.
10670         (emit_diagnostic_valist): New function.
10672 2017-08-09  Marek Polacek  <polacek@redhat.com>
10674         PR c/81417
10675         * input.c (make_location): New overload.
10676         * input.h (make_location): Declare.
10678 2017-08-08  Alan Modra  <amodra@gmail.com>
10679             H.J. Lu  <hongjiu.lu@intel.com>
10681         PR driver/81523
10682         * gcc.c (NO_PIE_SPEC): Delete.
10683         (PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
10684         exclusion..
10685         (LINK_PIE_SPEC): ..to here.
10686         (LINK_COMMAND_SPEC): Support -no-pie.
10687         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
10688         chain of crtbegin*.o selection, update for PIE_SPEC changes and
10689         format.
10690         (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
10691         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
10692         (ENDFILE_CRTEND_SPEC): Similarly.
10694 2017-08-08  Uros Bizjak  <ubizjak@gmail.com>
10696         PR target/81708
10697         * config/i386/i386.opt (mstack-protector-guard-reg=): New option
10698         (mstack-protector-guard-offset=): Ditto.
10699         * config/i386/i386.c (ix86_option_override): Handle
10700         -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
10701         options.
10702         (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
10703         ix86_stack_protect_guard_offset variables.
10704         (TARGET_STACK_PROTECT_GUARD): Always define.
10705         * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
10706         and -mstack-protector-guard-offset= options.
10708 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
10710         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
10711         boundary case for the last candidate.
10713 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
10715         * doc/invoke.texi: Document -ftree-loop-distribution for O3.
10716         * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
10718 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
10720         PR middle-end/19706
10721         * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
10722         * config/aarch64/aarch64-builtins.c
10723         (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
10724         * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
10725         * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
10727 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
10728             Andrew Pinski <pinskia@gmail.com>
10730         PR middle-end/19706
10731         * internal-fn.def (XORSIGN): New.
10732         * optabs.def (xorsign_optab): New.
10733         * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
10734         (convert_expand_mult_copysign): New.
10735         (pass_optimize_widening_mul::execute): Call
10736         convert_expand_mult_copysign.
10738 2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10740         PR tree-optimization/81354
10741         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
10742         Insert on edges rather than explicitly creating landing pads.
10743         (analyze_candidates_and_replace): Commit edge inserts.
10745 2017-08-08  Richard Biener  <rguenther@suse.de>
10747         PR middle-end/81719
10748         * tree-ssa-loop-niter.c: Include tree-dfa.h.
10749         (expand_simple_operations): Also look through ADDR_EXPRs with
10750         MEM_REF bases treating them as POINTER_PLUS_EXPR.
10752 2017-08-08  Richard Biener  <rguenther@suse.de>
10754         PR tree-optimization/81723
10755         * tree-vect-slp.c (struct bst_traits): New hash traits.
10756         (bst_fail): New global.
10757         (vect_build_slp_tree_2): New worker, split out from ...
10758         (vect_build_slp_tree): ... this now wrapping it with using
10759         bst_fail set to cache SLP tree build fails.  Properly handle
10760         max_tree_size.
10761         (vect_analyze_slp_instance): Allocate and free bst_fail.
10763 2017-08-08  Martin Liska  <mliska@suse.cz>
10765         PR tree-opt/81696
10766         * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
10767         LABEL_DECLs that can be from a different function.
10769 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
10771         PR tree-optimization/81744
10772         * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
10773         loop's number of iterations.
10775 2017-08-08  Martin Liska  <mliska@suse.cz>
10777         * asan.c: Include header files.
10778         * attribs.c (build_decl_attribute_variant): New function moved
10779         from tree.[ch].
10780         (build_type_attribute_qual_variant): Likewise.
10781         (cmp_attrib_identifiers): Likewise.
10782         (simple_cst_list_equal): Likewise.
10783         (omp_declare_simd_clauses_equal): Likewise.
10784         (attribute_value_equal): Likewise.
10785         (comp_type_attributes): Likewise.
10786         (build_type_attribute_variant): Likewise.
10787         (lookup_ident_attribute): Likewise.
10788         (remove_attribute): Likewise.
10789         (merge_attributes): Likewise.
10790         (merge_type_attributes): Likewise.
10791         (merge_decl_attributes): Likewise.
10792         (merge_dllimport_decl_attributes): Likewise.
10793         (handle_dll_attribute): Likewise.
10794         (attribute_list_equal): Likewise.
10795         (attribute_list_contained): Likewise.
10796         * attribs.h (lookup_attribute): New function moved from tree.[ch].
10797         (lookup_attribute_by_prefix): Likewise.
10798         * bb-reorder.c: Include header files.
10799         * builtins.c: Likewise.
10800         * calls.c: Likewise.
10801         * cfgexpand.c: Likewise.
10802         * cgraph.c: Likewise.
10803         * cgraphunit.c: Likewise.
10804         * convert.c: Likewise.
10805         * dwarf2out.c: Likewise.
10806         * final.c: Likewise.
10807         * fold-const.c: Likewise.
10808         * function.c: Likewise.
10809         * gimple-expr.c: Likewise.
10810         * gimple-fold.c: Likewise.
10811         * gimple-pretty-print.c: Likewise.
10812         * gimple.c: Likewise.
10813         * gimplify.c: Likewise.
10814         * hsa-common.c: Likewise.
10815         * hsa-gen.c: Likewise.
10816         * internal-fn.c: Likewise.
10817         * ipa-chkp.c: Likewise.
10818         * ipa-cp.c: Likewise.
10819         * ipa-devirt.c: Likewise.
10820         * ipa-fnsummary.c: Likewise.
10821         * ipa-inline.c: Likewise.
10822         * ipa-visibility.c: Likewise.
10823         * ipa.c: Likewise.
10824         * lto-cgraph.c: Likewise.
10825         * omp-expand.c: Likewise.
10826         * omp-general.c: Likewise.
10827         * omp-low.c: Likewise.
10828         * omp-offload.c: Likewise.
10829         * omp-simd-clone.c: Likewise.
10830         * opts-global.c: Likewise.
10831         * passes.c: Likewise.
10832         * predict.c: Likewise.
10833         * sancov.c: Likewise.
10834         * sanopt.c: Likewise.
10835         * symtab.c: Likewise.
10836         * toplev.c: Likewise.
10837         * trans-mem.c: Likewise.
10838         * tree-chkp.c: Likewise.
10839         * tree-eh.c: Likewise.
10840         * tree-into-ssa.c: Likewise.
10841         * tree-object-size.c: Likewise.
10842         * tree-parloops.c: Likewise.
10843         * tree-profile.c: Likewise.
10844         * tree-ssa-ccp.c: Likewise.
10845         * tree-ssa-live.c: Likewise.
10846         * tree-ssa-loop.c: Likewise.
10847         * tree-ssa-sccvn.c: Likewise.
10848         * tree-ssa-structalias.c: Likewise.
10849         * tree-ssa.c: Likewise.
10850         * tree-streamer-in.c: Likewise.
10851         * tree-vectorizer.c: Likewise.
10852         * tree-vrp.c: Likewise.
10853         * tsan.c: Likewise.
10854         * ubsan.c: Likewise.
10855         * varasm.c: Likewise.
10856         * varpool.c: Likewise.
10857         * tree.c: Remove functions moved to attribs.[ch].
10858         * tree.h: Likewise.
10859         * config/aarch64/aarch64.c: Add attrs.h header file.
10860         * config/alpha/alpha.c: Likewise.
10861         * config/arc/arc.c: Likewise.
10862         * config/arm/arm.c: Likewise.
10863         * config/avr/avr.c: Likewise.
10864         * config/bfin/bfin.c: Likewise.
10865         * config/c6x/c6x.c: Likewise.
10866         * config/cr16/cr16.c: Likewise.
10867         * config/cris/cris.c: Likewise.
10868         * config/darwin.c: Likewise.
10869         * config/epiphany/epiphany.c: Likewise.
10870         * config/fr30/fr30.c: Likewise.
10871         * config/frv/frv.c: Likewise.
10872         * config/ft32/ft32.c: Likewise.
10873         * config/h8300/h8300.c: Likewise.
10874         * config/i386/winnt.c: Likewise.
10875         * config/ia64/ia64.c: Likewise.
10876         * config/iq2000/iq2000.c: Likewise.
10877         * config/lm32/lm32.c: Likewise.
10878         * config/m32c/m32c.c: Likewise.
10879         * config/m32r/m32r.c: Likewise.
10880         * config/m68k/m68k.c: Likewise.
10881         * config/mcore/mcore.c: Likewise.
10882         * config/microblaze/microblaze.c: Likewise.
10883         * config/mips/mips.c: Likewise.
10884         * config/mmix/mmix.c: Likewise.
10885         * config/mn10300/mn10300.c: Likewise.
10886         * config/moxie/moxie.c: Likewise.
10887         * config/msp430/msp430.c: Likewise.
10888         * config/nds32/nds32-isr.c: Likewise.
10889         * config/nds32/nds32.c: Likewise.
10890         * config/nios2/nios2.c: Likewise.
10891         * config/nvptx/nvptx.c: Likewise.
10892         * config/pa/pa.c: Likewise.
10893         * config/pdp11/pdp11.c: Likewise.
10894         * config/powerpcspe/powerpcspe.c: Likewise.
10895         * config/riscv/riscv.c: Likewise.
10896         * config/rl78/rl78.c: Likewise.
10897         * config/rx/rx.c: Likewise.
10898         * config/s390/s390.c: Likewise.
10899         * config/sh/sh.c: Likewise.
10900         * config/sol2.c: Likewise.
10901         * config/sparc/sparc.c: Likewise.
10902         * config/spu/spu.c: Likewise.
10903         * config/stormy16/stormy16.c: Likewise.
10904         * config/tilegx/tilegx.c: Likewise.
10905         * config/tilepro/tilepro.c: Likewise.
10906         * config/v850/v850.c: Likewise.
10907         * config/vax/vax.c: Likewise.
10908         * config/visium/visium.c: Likewise.
10909         * config/xtensa/xtensa.c: Likewise.
10911 2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
10913         PR target/81593
10914         * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
10915         constraints since the -mupper-regs-* switches have been
10916         eliminated.
10917         (vsx_concat_<mode>_1): New combiner insns to recognize inserting
10918         into a vector from a double word element that was extracted from
10919         another vector, and eliminate extra XXPERMDI instructions.
10920         (vsx_concat_<mode>_2): Likewise.
10921         (vsx_concat_<mode>_3): Likewise.
10922         (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
10923         concat to allow optimizing inserts from previous extracts.
10925 2017-08-07  Uros Bizjak  <ubizjak@gmail.com>
10927         * config/i386/i386.c (ix86_stack_protect_guard): Generate
10928         memory reference to a SSP offset in TLS address space.
10929         (ix86_print_operand) <case '@'>: Remove.
10930         (ix86_print_operand_punct_valid_p): Remove '@' code.
10931         * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
10932         UNSPEC_SP_TLS_TEST.
10933         (stack_tls_protect_set_<mode>): Remove.
10934         (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
10935         (stack_tls_protect_test_<mode>): Remove.
10936         (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
10938 2017-08-07  Olivier Hainque  <hainque@adacore.com>
10940         PR target/81755
10941         * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
10943 2017-08-07  Douglas Rupp  <rupp@adacore.com>
10945         * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
10946         variable was referenced as multidir in command.
10948 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
10950         PR c/69389
10951         * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
10952         BIT_FIELD_REF.
10954 2017-08-07  Martin Liska  <mliska@suse.cz>
10956         * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
10957         * config/rl78/rl78.c: Add include of attribs.h.
10958         * config/sh/sh.c: Likewise.
10959         * config/v850/v850.c: Likewise.
10961 2017-08-07  Tom de Vries  <tom@codesourcery.com>
10963         PR middle-end/78266
10964         * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
10966 2017-08-07  Martin Liska  <mliska@suse.cz>
10968         * config/mips/mips.c: Include attribs.h.
10970 2017-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
10972         PR fortran/68829
10973         * doc/invoke.texi: Document change in behvaior for -Ofast for
10974         Fortran.
10976 2017-08-07  Wilco Dijkstra  <wdijkstr@arm.com>
10978         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
10979         Use gen_frame_mem.
10980         (aarch64_pop_regs): Likewise.
10981         (aarch64_gen_load_pair): Likewise.
10982         (aarch64_save_callee_saves): Likewise.
10983         (aarch64_restore_callee_saves): Likewise.
10985 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
10987         * config/i386/i386.c: Revert the last change.
10989 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
10991         PR target/81736
10992         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
10993         to ...
10994         (ix86_finalize_stack_frame_flags): This.  Also clear
10995         frame_pointer_needed if -fno-omit-frame-pointer is used without
10996         stack access.
10997         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
10998         with ix86_finalize_stack_frame_flags.
10999         (ix86_expand_epilogue): Likewise.
11000         (ix86_expand_split_stack_prologue): Likewise.
11002 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
11004         PR target/81743
11005         * config/i386/i386.c (get_builtin_code_for_version): Set priority
11006         to P_AES for Westmere.
11008 2017-08-07  Jonathan Yong  <10walls@gmail.com>
11010         * config/i386/mingw.opt (fset-stack-executable): Removed.
11011         * config/i386/cygming.opt (fset-stack-executable): Moved
11012         from mingw.opt.
11013         * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
11015 2017-08-07  Segher Boessenkool  <segher@kernel.crashing.org>
11017         * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
11019 2017-08-07  Marek Polacek  <polacek@redhat.com>
11021         PR middle-end/81737
11022         * fold-const.c (fold_indirect_ref_1): Check type_domain.
11024 2017-08-07  Martin Liska  <mliska@suse.cz>
11026         * attribs.h (canonicalize_attr_name): New function.
11027         (cmp_attribs): Move from c-format.c and adjusted.
11028         (is_attribute_p): Moved from tree.h.
11029         * tree-inline.c: Add new includes.
11030         * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
11031         (private_is_attribute_p): Remove.
11032         (private_lookup_attribute): Likewise.
11033         (private_lookup_attribute_by_prefix): Simplify.
11034         (remove_attribute): Use is_attribute_p.
11035         * tree.h: Remove removed declarations.
11037 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
11039         PR middle-end/81698
11040         * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
11041         instead of computing it in the function.  Formatting fix.
11042         (expand_case): Don't rely on default_edge being the first edge,
11043         clear it if removing it, pass default_edge to
11044         emit_case_dispatch_table.
11045         (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
11046         fix.
11048 2017-08-06  Uros Bizjak  <ubizjak@gmail.com>
11050         * config/alpha/alpha.c (alpha_reorg): If trap is the last active
11051         insn in the function, emit NOP after the insn.
11053 2017-08-06  Tom de Vries  <tom@codesourcery.com>
11055         * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
11056         and element loops.
11058 2017-08-06  Tom de Vries  <tom@codesourcery.com>
11060         * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
11061         loop.
11063 2017-08-04  Yury Gribov  <tetra2005@gmail.com>
11065         PR tree-optimization/57371
11066         * match.pd: New pattern.
11068 2017-08-04  Marek Polacek  <polacek@redhat.com>
11070         PR middle-end/81695
11071         * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
11072         perform the computation in offset_int.
11074 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
11076         PR tree-optimization/81136
11077         * tree-vectorizer.h: Include tree-hash-traits.h.
11078         (vec_base_alignments): New typedef.
11079         (vec_info): Add a base_alignments field.
11080         (vect_record_base_alignments): Declare.
11081         * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
11082         field.
11083         (DR_IS_CONDITIONAL_IN_STMT): New macro.
11084         (create_data_ref): Add an is_conditional_in_stmt argument.
11085         * tree-data-ref.c (create_data_ref): Likewise.  Use it to initialize
11086         the is_conditional_in_stmt field.
11087         (data_ref_loc): Add an is_conditional_in_stmt field.
11088         (get_references_in_stmt): Set the is_conditional_in_stmt field.
11089         (find_data_references_in_stmt): Update call to create_data_ref.
11090         (graphite_find_data_references_in_stmt): Likewise.
11091         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
11092         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
11093         (vect_record_base_alignment): New function.
11094         (vect_record_base_alignments): Likewise.
11095         (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
11096         for nested statements even if we fail to compute a misalignment.
11097         Use pooled base alignments for unconditional references.
11098         (vect_find_same_alignment_drs): Compare base addresses instead
11099         of base objects.
11100         (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
11101         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
11103 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
11105         * tree-vectorizer.h (vec_info): Add a constructor and destructor.
11106         Add an explicit name for the enum.  Use auto_vec for slp_instances
11107         and grouped_stores.
11108         (_loop_vec_info): Add a constructor and destructor.  Use auto_vec
11109         for all vectors.
11110         (_bb_vec_info): Add a constructor and destructor.
11111         (vinfo_for_stmt): Return NULL for uids of -1 as well.
11112         (destroy_loop_vec_info): Delete.
11113         (vect_destroy_datarefs): Likewise.
11114         * tree-vectorizer.c (vect_destroy_datarefs): Delete.
11115         (vec_info::vec_info): New function.
11116         (vec_info::~vec_info): Likewise.
11117         (vectorize_loops): Use delete instead of destroy_loop_vec_info.
11118         * tree-parloops.c (gather_scalar_reductions): Use delete instead of
11119         destroy_loop_vec_info.
11120         * tree-vect-loop.c (new_loop_vec_info): Replace with...
11121         (_loop_vec_info::_loop_vec_info): ...this.
11122         (destroy_loop_vec_info): Replace with...
11123         (_loop_vec_info::~_loop_vec_info): ...this.  Unconditionally delete
11124         the stmt_vec_infos.  Leave handling of vec_info information to its
11125         destructor.  Remove explicit vector releases.
11126         (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
11127         (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
11128         * tree-vect-slp.c (new_bb_vec_info): Replace with...
11129         (_bb_vec_info::_bb_vec_info): ...this.  Don't reserve space in
11130         BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
11131         (destroy_bb_vec_info): Replace with...
11132         (_bb_vec_info::~_bb_vec_info): ...this.  Leave handling of vec_info
11133         information to its destructor.
11134         (vect_slp_analyze_bb_1): Use new and delete instead of
11135         new_bb_vec_info and destroy_bb_vec_info.
11136         (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
11137         single delete.
11139 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
11141         * tree-data-ref.h (subscript): Add access_fn field.
11142         (data_dependence_relation): Add could_be_independent_p.
11143         (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
11144         (same_access_functions): Move to tree-data-ref.c.
11145         * tree-data-ref.c (ref_contains_union_access_p): New function.
11146         (access_fn_component_p): Likewise.
11147         (access_fn_components_comparable_p): Likewise.
11148         (dr_analyze_indices): Add a reference to access_fn_component_p.
11149         (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
11150         DR_ACCESS_FN.
11151         (constant_access_functions): Likewise.
11152         (add_other_self_distances): Likewise.
11153         (same_access_functions): Likewise.  (Moved from tree-data-ref.h.)
11154         (initialize_data_dependence_relation): Use XCNEW and remove
11155         explicit zeroing of DDR_REVERSED_P.  Look for a subsequence
11156         of access functions that have the same type.  Allow the
11157         subsequence to end with different bases in some circumstances.
11158         Record the chosen access functions in SUB_ACCESS_FN.
11159         (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
11160         a_index and b_index.  Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
11161         (subscript_dependence_tester_1): Likewise dra and drb.
11162         (build_classic_dist_vector): Update calls accordingly.
11163         (subscript_dependence_tester): Likewise.
11164         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
11165         DDR_COULD_BE_INDEPENDENT_P.
11166         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
11167         comp_alias_ddrs instead of may_alias_ddrs.
11168         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
11169         New function.
11170         (vect_analyze_data_ref_dependence): Use it if
11171         DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
11172         distance vectors if that fails.
11173         (dependence_distance_ge_vf): New function.
11174         (vect_prune_runtime_alias_test_list): Use it.  Don't clear
11175         LOOP_VINFO_MAY_ALIAS_DDRS.
11177 2017-08-04  Richard Biener  <rguenther@suse.de>
11179         PR middle-end/81705
11180         * fold-const.c (fold_binary_loc): Properly restrict
11181         minus_var0 && minus_var1 case when associating undefined overflow
11182         entities.
11184 2017-08-04  Tom de Vries  <tom@codesourcery.com>
11186         * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
11188 2017-08-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11190         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11191         Don't start diagnostic messages with a capital letter.
11192         * config/rs6000/rs6000.c (rs6000_option_override_internal):
11193         Likewise.
11194         (rs6000_invalid_builtin): Likewise.
11195         (rs6000_trampoline_init): Likewise.
11197 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
11199         PR target/81621
11200         * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
11201         after setting changeable df flags.
11203 2017-08-03  Richard Biener  <rguenther@suse.de>
11205         * tree-ssa-reassoc.c (should_break_up_subtract): Also break
11206         up if the use is in USE - X.
11208 2017-08-03  Alexander Monakov  <amonakov@ispras.ru>
11210         * toplev.c (dumpfile.h): New include.
11211         (internal_error_reentered): New static function.  Use it...
11212         (internal_error_function): ...here to handle reentered internal_error.
11214 2017-08-03  Richard Biener  <rguenther@suse.de>
11216         PR middle-end/81148
11217         * fold-const.c (split_tree): Add minus_var and minus_con
11218         arguments, remove unused loc arg.  Never generate NEGATE_EXPRs
11219         here but always use minus_*.
11220         (associate_trees): Assert we never associate with MINUS_EXPR
11221         and NULL first operand.  Do not recurse for PLUS_EXPR operands
11222         when associating as MINUS_EXPR either.
11223         (fold_binary_loc): Track minus_var and minus_con.
11225 2017-08-03  Tom de Vries  <tom@codesourcery.com>
11227         PR lto/81430
11228         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
11229         ACCEL_COMPILER, apply finish_options on
11230         DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
11232 2017-08-03  Tom de Vries  <tom@codesourcery.com>
11234         PR target/81662
11235         * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
11236         function_entry_patch_area_size > 0.
11238 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
11240         PR driver/81650
11241         * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
11242         instead of 10??LU, perform unit multiplication in wide_int,
11243         don't change alloc_object_size_limit if the limit is larger
11244         than SSIZE_MAX.
11246         PR tree-optimization/81655
11247         PR tree-optimization/81588
11248         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
11249         the case when ranges[i].low and high are 1 for unsigned type with
11250         precision 1.
11252         PR middle-end/81052
11253         * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
11254         (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
11256 2017-08-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11258         * tree-vrp.h: Add include guard.
11260 2017-08-02  Uros Bizjak  <ubizjak@gmail.com>
11262         PR target/81644
11263         * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
11264         (ud2): New insn pattern.
11265         * config/i386/i386.c (ix86_expand_epilogue):
11266         For naked functions, generate ud2 instead of trap insn.
11268 2017-08-02  Marek Polacek  <polacek@redhat.com>
11270         PR other/81667
11271         * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
11273 2017-08-02  Tom de Vries  <tom@codesourcery.com>
11274             Cesar Philippidis  <cesar@codesourcery.com>
11276         * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
11277         Add missing edge probabilities.
11279 2017-08-02  Tamar Christina  <tamar.christina@arm.com>
11281         * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
11282         Correct endianness.
11284 2017-08-02  Jakub Jelinek  <jakub@redhat.com>
11286         PR middle-end/79499
11287         * function.c (thread_prologue_and_epilogue_insns): Determine blocks
11288         for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
11289         of first NONDEBUG_INSN_P in each of the split_prologue_seq and
11290         prologue_seq sequences - if any.
11292 2017-08-02  Richard Biener  <rguenther@suse.de>
11294         * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
11295         via vectors if supported, integer extracts via punning if supported
11296         or otherwise vector extracts.
11298 2017-08-02  Richard Biener  <rguenther@suse.de>
11300         * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
11301         into ...
11302         (bitmap_insert_into_set): ... this.
11304 2017-08-02  Richard Biener  <rguenther@suse.de>
11306         PR tree-optimization/81633
11307         Revert
11308         2015-08-17  Alan Hayward  <alan.hayward@arm.com>
11310         PR tree-optimization/71752
11311         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
11313 2017-08-01  Daniel Santos  <daniel.santos@pobox.com>
11315         * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
11316         (machine_function::call_ms2sysv_pad_out): Remove field.
11317         * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
11318         (ix86_compute_frame_layout): Likewise.
11320 2017-08-01  H.J. Lu  <hongjiu.lu@intel.com>
11322         PR target/81654
11323         * config/i386/i386.c (ix86_set_func_type): Disallow naked
11324         attribute with interrupt attribute.
11326 2017-08-01  Andrew Pinski  <apinski@cavium.com>
11328         * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
11329         BIT_INSERT_EXPR's operand 1
11330         to see if the types precision matches.
11332 2017-08-01  Martin Liska  <mliska@suse.cz>
11334         PR middle-end/70140
11335         * builtins.c (expand_builtin_memcpy_args): Remove.
11336         (expand_builtin_memcpy): Call newly added function
11337         expand_builtin_memory_copy_args.
11338         (expand_builtin_memcpy_with_bounds): Likewise.
11339         (expand_builtin_mempcpy): Remove last argument.
11340         (expand_builtin_mempcpy_with_bounds): Likewise.
11341         (expand_builtin_memory_copy_args): New function created from
11342         expand_builtin_mempcpy_args with small modifications.
11343         (expand_builtin_mempcpy_args): Remove.
11344         (expand_builtin_stpcpy): Remove unused argument.
11345         (expand_builtin): Likewise.
11346         (expand_builtin_with_bounds): Likewise.
11348 2017-08-01  Martin Liska  <mliska@suse.cz>
11350         Revert r250771
11351         Make mempcpy more optimal (PR middle-end/70140).
11353 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
11355         PR target/81622
11356         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
11357         __builtin_vec_cmpne verify both arguments are compatible vectors
11358         before looking at TYPE_MODE on the element type.  For __builtin_vec_ld
11359         verify arg1_type is a pointer or array type.  For __builtin_vec_st,
11360         move computation of aligned to after checking the argument types.
11361         Formatting fixes.
11363         PR target/80846
11364         * config/rs6000/vsx.md (vextract_fp_from_shorth,
11365         vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
11366         calls.
11368 2017-08-01  Jerome Lambourg  <lambourg@adacore.com>
11369             Doug Rupp  <rupp@adacore.com>
11370             Olivier Hainque  <hainque@adacore.com>
11372         * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
11373         well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
11374         arm8 (arch v4).
11375         * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
11376         for TARGET_OS_CPP_BUILTIN.
11377         (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
11378         refine CPU definitions for arm_arch5 and add those for arm_arch6 and
11379         arm_arch7.
11380         (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
11381         passing required abi options to the assembler for EABI configurations.
11382         (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
11383         of .text.hot and .text.unlikely sections for kernel modules when
11384         using ARM style exceptions.
11385         (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
11386         options. Add EXTRA_CC1_SPEC.
11387         (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
11388         toolchain options.
11389         (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
11390         transition.
11391         (ARM_TARGET2_DWARF_FORMAT): Define.
11392         * config/arm/t-vxworks: Adjust multilib control to removal of the
11393         Diab command line options.
11395 2017-08-01  Martin Liska  <mliska@suse.cz>
11397         PR gcov-profile/81561
11398         * gcov.c (unblock): Make unblocking safe as we need to preserve
11399         index correspondence of blocks and block_lists.
11401 2017-08-01  Richard Biener  <rguenther@suse.de>
11403         PR tree-optimization/81181
11404         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
11405         (compute_antic): ... end of iteration here.
11407 2017-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
11409         * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
11410         (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
11411         (ftree-slp-vectorize): Likewise.
11412         * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
11413         can no longer be set independent of flag_tree_loop_vectorize.
11414         * omp-general.c (emp_max_vf): Likewise.
11415         * opts.c (enable_fdo_optimizations): Remove references to
11416         flag_tree_vectorize, these are now implicit.
11417         (common_handle_option): Remove handling for OPT_ftree_vectorize,
11418         and leave it for the options machinery.
11420 2017-08-01  Martin Liska  <mliska@suse.cz>
11422         PR middle-end/70140
11423         * builtins.c (expand_builtin_memcpy_args): Remove.
11424         (expand_builtin_memcpy): Call newly added function
11425         expand_builtin_memory_copy_args.
11426         (expand_builtin_memcpy_with_bounds): Likewise.
11427         (expand_builtin_mempcpy): Remove last argument.
11428         (expand_builtin_mempcpy_with_bounds): Likewise.
11429         (expand_builtin_memory_copy_args): New function created from
11430         expand_builtin_mempcpy_args with small modifications.
11431         (expand_builtin_mempcpy_args): Remove.
11432         (expand_builtin_stpcpy): Remove unused argument.
11433         (expand_builtin): Likewise.
11434         (expand_builtin_with_bounds): Likewise.
11436 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
11438         PR target/81641
11439         * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
11440         print "ds:" only for immediates in generic address space.
11442 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
11444         PR target/81639
11445         * config/i386/i386.c (ix86_funciton_naked): New prototype.
11446         (ix86_function_ok_for_sibcall): Return false for naked functions.
11448 2017-08-01  Richard Biener  <rguenther@suse.de>
11450         * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
11451         (compute_antic): Seed worklist with exit block predecessors.
11452         * cfganal.c (dfs_find_deadend): For a cycle return the source
11453         of the edge closing it.
11455 2017-08-01  Tamar Christina  <tamar.christina@arm.com>
11457         * config/aarch64/aarch64.c
11458         (aarch64_can_const_movi_rtx_p): Move 0 check.
11460 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
11462         * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
11463         * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
11464         above macro.
11465         * match.pd: Ditto in address comparison pattern.
11467 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
11469         PR tree-optimization/81627
11470         * tree-predcom.c (prepare_finalizers): Always rewrite into loop
11471         closed ssa form for store-store chain.
11473 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
11475         PR tree-optimization/81620
11476         * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
11477         for store-store chain.
11479 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
11481         PR tree-optimization/81588
11482         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
11483         ranges[i].in_p, invert comparison code ccode.  For >/>=,
11484         swap rhs1 and rhs2 and comparison code unconditionally,
11485         for </<= don't do that.  Don't swap rhs1/rhs2 again if
11486         ranges[i].in_p, instead invert comparison code ccode if
11487         opcode or oe->rank is BIT_IOR_EXPR.
11489         PR target/80846
11490         * optabs.def (vec_extract_optab, vec_init_optab): Change from
11491         a direct optab to conversion optab.
11492         * optabs.c (expand_vector_broadcast): Use convert_optab_handler
11493         with GET_MODE_INNER as last argument instead of optab_handler.
11494         * expmed.c (extract_bit_field_1): Likewise.  Use vector from
11495         vector extraction if possible and optab is available.
11496         * expr.c (store_constructor): Use convert_optab_handler instead
11497         of optab_handler.  Use vector initialization from smaller
11498         vectors if possible and optab is available.
11499         * tree-vect-stmts.c (vectorizable_load): Likewise.
11500         * doc/md.texi (vec_extract, vec_init): Document that the optabs
11501         now have two modes.
11502         * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
11503         of vec_init from half-sized vectors with the same element mode.
11504         * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
11505         (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
11506         (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
11507         reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
11508         reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
11509         after mode in gen_vec_extract* calls.
11510         (vec_extract<mode>): Renamed to ...
11511         (vec_extract<mode><ssescalarmodelower>): ... this.
11512         (vec_extract<mode><ssehalfvecmodelower>): New expander.
11513         (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
11514         element mode after mode in gen_vec_init* calls.
11515         (VEC_INIT_HALF_MODE): New mode iterator.
11516         (vec_init<mode>): Renamed to ...
11517         (vec_init<mode><ssescalarmodelower>): ... this.
11518         (vec_init<mode><ssehalfvecmodelower>): New expander.
11519         * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
11520         (vec_extractv2sfsf): ... this.
11521         (vec_initv2sf): Renamed to ...
11522         (vec_initv2sfsf): ... this.
11523         (vec_extractv2si): Renamed to ...
11524         (vec_extractv2sisi): ... this.
11525         (vec_initv2si): Renamed to ...
11526         (vec_initv2sisi): ... this.
11527         (vec_extractv4hi): Renamed to ...
11528         (vec_extractv4hihi): ... this.
11529         (vec_initv4hi): Renamed to ...
11530         (vec_initv4hihi): ... this.
11531         (vec_extractv8qi): Renamed to ...
11532         (vec_extractv8qiqi): ... this.
11533         (vec_initv8qi): Renamed to ...
11534         (vec_initv8qiqi): ... this.
11535         * config/rs6000/vector.md (VEC_base_l): New mode attribute.
11536         (vec_init<mode>): Renamed to ...
11537         (vec_init<mode><VEC_base_l>): ... this.
11538         (vec_extract<mode>): Renamed to ...
11539         (vec_extract<mode><VEC_base_l>): ... this.
11540         * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
11541         (vec_initv2sfsf): ... this.
11542         * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
11543         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
11544         vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
11545         element mode after mode in gen_vec_init* calls.
11546         * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
11547         (vec_init<mode><Vel>): ... this.
11548         (vec_extract<mode>): Renamed to ...
11549         (vec_extract<mode><Vel>): ... this.
11550         * config/aarch64/iterators.md (Vel): New mode attribute.
11551         * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
11552         Add element mode after mode in gen_vec_extract* calls.
11553         * config/s390/vector.md (non_vec_l): New mode attribute.
11554         (vec_extract<mode>): Renamed to ...
11555         (vec_extract<mode><non_vec_l>): ... this.
11556         (vec_init<mode>): Renamed to ...
11557         (vec_init<mode><non_vec_l>): ... this.
11558         * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
11559         s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
11560         vec_extract mode.
11561         * config/arm/iterators.md (V_elem_l): New mode attribute.
11562         * config/arm/neon.md (vec_extract<mode>): Renamed to ...
11563         (vec_extract<mode><V_elem_l>): ... this.
11564         (vec_extractv2di): Renamed to ...
11565         (vec_extractv2didi): ... this.
11566         (vec_init<mode>): Renamed to ...
11567         (vec_init<mode><V_elem_l>): ... this.
11568         (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
11569         reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
11570         reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
11571         Add element mode after gen_vec_extract* calls.
11572         * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
11573         (vec_init<mode><unitmode>): ... this.
11574         (vec_extract<mode>): Renamed to ...
11575         (vec_extract<mode><unitmode>): ... this.
11576         * config/mips/loongson.md (vec_init<mode>): Renamed to ...
11577         (vec_init<mode><unitmode>): ... this.
11578         * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
11579         (vec_initv2sfsf): ... this.
11580         (vec_extractv2sf): Renamed to ...
11581         (vec_extractv2sfsf): ... this.
11582         (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
11583         Add element mode after gen_vec_extract* calls.
11584         * config/mips/mips.md (unitmode): New mode iterator.
11585         * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
11586         spu_builtin_extract): Add element mode after gen_vec_extract* calls.
11587         * config/spu/spu.md (inner_l): New mode attribute.
11588         (vec_init<mode>): Renamed to ...
11589         (vec_init<mode><inner_l>): ... this.
11590         (vec_extract<mode>): Renamed to ...
11591         (vec_extract<mode><inner_l>): ... this.
11592         * config/sparc/sparc.md (veltmode): New mode iterator.
11593         (vec_init<VMALL:mode>): Renamed to ...
11594         (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
11595         * config/ia64/vect.md (vec_initv2si): Renamed to ...
11596         (vec_initv2sisi): ... this.
11597         (vec_initv2sf): Renamed to ...
11598         (vec_initv2sfsf): ... this.
11599         (vec_extractv2sf): Renamed to ...
11600         (vec_extractv2sfsf): ... this.
11601         * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
11602         (vec_init<mode>): Renamed to ...
11603         (vec_init<mode><VEC_base_l>): ... this.
11604         (vec_extract<mode>): Renamed to ...
11605         (vec_extract<mode><VEC_base_l>): ... this.
11606         * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
11607         (vec_initv2sfsf): ... this.
11608         * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
11609         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
11610         vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
11611         gen_vec_init* calls.
11613 2017-08-01  Richard Biener  <rguenther@suse.de>
11615         PR tree-optimization/81297
11616         * tree-vrp.c (get_single_symbol): Remove assert, instead drop
11617         TREE_OVERFLOW from INTEGER_CSTs.
11619 2017-07-31  Segher Boessenkool  <segher@kernel.crashing.org>
11621         * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
11623 2017-07-31  Carl Love  <cel@us.ibm.com>
11625         * config/rs6000/rs6000-c: Add support for built-in functions
11626         vector signed char vec_xl_be (signed long long, signed char *);
11627         vector unsigned char vec_xl_be (signed long long, unsigned char *);
11628         vector signed int vec_xl_be (signed long long, signed int *);
11629         vector unsigned int vec_xl_be (signed long long, unsigned int *);
11630         vector signed long long vec_xl_be (signed long long, signed long long *);
11631         vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
11632         vector signed short vec_xl_be (signed long long, signed short *);
11633         vector unsigned short vec_xl_be (signed long long, unsigned short *);
11634         vector double vec_xl_be (signed long long, double *);
11635         vector float vec_xl_be (signed long long, float *);
11636         * config/rs6000/altivec.h (vec_xl_be): Add #define.
11637         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
11638         XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
11639         for the builtins.
11640         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
11641         (altivec_expand_builtin): Add switch statement to call
11642         altivec_expand_xl_be for each builtin.
11643         (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
11644         __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
11645         __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
11646         __builtin_vsx_le_be_v16qi.
11647         * doc/extend.texi: Update the built-in documentation file for the
11648         new built-in functions.
11650 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
11652         PR target/25967
11653         * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
11654         New function.
11655         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
11657 2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11659         * config.gcc: Add z14.
11660         * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
11661         CPU model numbers for z13s and z14.
11662         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
11663         arch12 with z14.
11664         * config/s390/s390-opts.h (enum processor_type): Rename
11665         PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
11666         * config/s390/s390.c (processor_table): Add field for CPU name to
11667         be passed to Binutils.
11668         (s390_asm_output_machine_for_arch): Use the new field in
11669         processor_table for Binutils.
11670         (s390_expand_builtin): Replace arch12 with z14.
11671         (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
11672         (s390_get_sched_attrmask): Likewise.
11673         (s390_get_unit_mask): Likewise.
11674         * config/s390/s390.opt: Add z14 to processor_type enum.
11676 2017-07-31  Martin Jambor  <mjambor@suse.cz>
11678         PR hsa/81477
11679         * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
11680         regardless of optimization level.
11682 2017-07-31  Jan Hubicka <hubicka@ucw.cz>
11683             Martin Liska  <mliska@suse.cz>
11685         * predict.def: Remove old comment and adjust probability.
11686         * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
11687         PREDICT statements.
11689 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
11691         PR target/25967
11692         * config/i386/i386.c (ix86_function_naked): New function.
11693         (ix86_can_use_return_insn_p): Return false for naked functions.
11694         (ix86_expand_prologue): Skip prologue for naked functions.
11695         (ix86_expand_epilogue): Skip epilogue for naked functions
11696         and emit trap instruction.
11697         (ix86_warn_func_return): New function.
11698         (ix86_attribute_table): Add "naked" attribute specification.
11699         (TARGET_WARN_FUNC_RETURN): Define.
11700         * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
11702 2017-07-31  Martin Liska  <mliska@suse.cz>
11704         * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
11705         (dump_gimple_bb_header): Always dump BB info.
11706         (pp_cfg_jump): Do not append info about BB when dumping a jump.
11708 2017-07-31  Martin Liska  <mliska@suse.cz>
11710         PR sanitize/81530
11711         * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
11712         also with current_function_decl non-null equality.
11714 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
11716         PR sanitizer/81604
11717         * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
11718         change type to the element type, instead add eltype variable and
11719         use it where we are interested in the element type.
11721         PR tree-optimization/81603
11722         * ipa-polymorphic-call.c
11723         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
11724         offset arithmetic in offset_int, bail out if the resulting bit offset
11725         doesn't fit into shwi.
11727 2017-07-31  Martin Liska  <mliska@suse.cz>
11729         * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
11730         (gimplify_save_expr): Fix comment.
11732 2017-07-30  H.J. Lu  <hongjiu.lu@intel.com>
11734         PR target/79793
11735         * config/i386/i386.c (ix86_function_arg): Update arguments for
11736         exception handler.
11737         (ix86_compute_frame_layout): Set the initial stack offset to
11738         INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
11739         INCOMING_FRAME_SP_OFFSET.
11740         (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
11741         stack before exception handler returns.
11742         * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
11743         the 'ERROR_CODE' for exception handler.
11745 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
11747         * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
11748         (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
11749         (ASM_OUTPUT_REG_POP): Ditto.
11750         * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
11751         instead of asm_fprintf to output pure string.
11753 2017-07-29  Jakub Jelinek  <jakub@redhat.com>
11755         * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
11756         to imported_module_or_decl hook.
11757         (debug_nothing_tree_tree_tree_bool): Remove.
11758         (debug_nothing_tree_tree_tree_bool_bool): New declaration.
11759         * debug.c (do_nothing_debug_hooks): Use
11760         debug_nothing_tree_tree_tree_bool_bool instead of
11761         debug_nothing_tree_tree_tree_bool.
11762         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11763         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
11764         * sdbout.c (sdb_debug_hooks): Likewise.
11765         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
11766         (gen_namespace_die): Add DW_AT_export_symbols attribute if
11767         langhook wants it.
11768         (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
11769         if true, -gdwarf-5 and decl will have DW_AT_export_symbols
11770         attribute, don't add anything.
11772 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11774         * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
11775         (fold_build2_stat_loc): Likewise.
11776         (fold_build3_stat_loc): Likewise.
11777         * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
11778         (fold_build1_loc): Remove macro.
11779         (fold_build2_loc): Likewise.
11780         (fold_build3_loc): Likewise.
11782 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11784         * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
11785         (gimple_build_debug_bind_source_stat): Likewise.
11786         * gimple.h (gimple_build_debug_bind): Remove macro.
11787         (gimple_build_debug_bind_source): Likewise.
11789 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11791         * bitmap.c (bitmap_alloc): Adjust.
11792         (bitmap_gc_alloc): Likewise.
11793         * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
11795 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11797         * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
11798         (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
11799         * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
11800         (bitmap_gc_alloc_stat): Likewise.
11801         (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
11803 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11805         * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
11806         * rtl.h (shallow_copy_rtx): Remove macro.
11808 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11810         * emit-rtl.c (gen_raw_REG): Adjust.
11811         * gengenrtl.c (gendef): Likewise.
11812         * rtl.c (rtx_alloc_stat): Remove _stat from name.
11813         * rtl.h (rtx_alloc): Remove macro.
11815 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11817         * tree.c (build_tree_list_vec_stat): Remove _stat from name.
11818         (build_tree_list_stat): Likewise.
11819         * tree.h (build_tree_list): Remove macro.
11820         (build_tree_list_vec): Likewise.
11822 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11824         * tree.c (make_vector_stat): Remove _stat from name.
11825         (build_vector_stat): Likewise.
11826         * tree.h (make_vector_stat): Remove macro.
11827         (build_vector_stat): Likewise.
11829 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11831         * tree.h (build_var_debug_value): Remove prototype.
11833 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11835         * tree.c (tree_cons_stat): Remove _stat from name.
11836         * tree.h (tree_cons): Remove macro.
11838 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11840         * tree.c (build_vl_exp_stat): Remove _stat from name.
11841         * tree.h (build_vl_exp): Remove macro.
11843 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11845         * tree.c (build_decl_stat): Remove _stat from name.
11846         * tree.h (build_decl): Remove macro.
11848 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11850         * gimple.c (gimple_build_with_ops_stat): Adjust.
11851         (gimple_alloc_stat): Remove _stat from name.
11852         * gimple.h (gimple_alloc): Remove macro.
11854 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11856         * tree.c (make_tree_vec_stat): Remove _stat from name.
11857         (grow_tree_vec_stat): Likewise.
11858         * tree.h (make_tree_vec_stat): Adjust prototype.
11859         (grow_tree_vec_stat): Likewise.
11860         (make_tree_vec): Remove macro.
11861         (grow_tree_vec): Likewise.
11863 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11865         * fold-const.c (fold_build1_stat_loc): Adjust.
11866         (fold_build2_stat_loc): Likewise.
11867         (fold_build3_stat_loc): Likewise.
11868         * tree.c (build0_stat): Remove _stat from name.
11869         (build1_stat): Likewise.
11870         (build2_stat): Likewise.
11871         (build3_stat): Likewise.
11872         (build4_stat): Likewise.
11873         (build5_stat): Likewise.
11874         * tree.h (build1_loc): Remove macro, and rename _stat function
11875         to this.
11876         (build2_loc): Likewise.
11877         (build3_loc): Likewise.
11878         (build4_loc): Likewise.
11879         (build5_loc): Likewise.
11881 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11883         * tree.c (make_int_cst_stat): Remove _stat from name.
11884         * tree.h (make_int_cst_stat): Adjust prototype.
11885         (make_int_cst): Remove macro.
11887 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11889         * tree.c (make_tre_binfo_stat): Remove _stat from name.
11890         * tree.h (make_tree_binfo_stat): Adjust prototype.
11891         (make_tree_binfo): Remove.
11893 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11895         * tree.c (copy_node_stat): Rename to copy_node.
11896         (build_distinct_type_copy): Adjust.
11897         * tree.h (copy_node_stat): Adjust prototype.
11898         (copy_node): Remove macro.
11900 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11902         * tree.c (make_node_stat): rename to make_node.
11903         (build_tree_list_stat): Adjust.
11904         (build0_stat): Likewise.
11905         (build2_stat): Likewise.
11906         (build3_stat): Likewise.
11907         (build4_stat): Likewise.
11908         (build5_stat): Likewise.
11909         (build_decl_stat): Likewise.
11910         * tree.h (make_node_stat): Adjust prototype.
11911         (make_node): remove macro.
11913 2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
11915         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
11916         (PPC_FEATURE2_SCV): Likewise.
11917         * config/rs6000/rs6000.c (cpu_supports_info): Use them.
11919 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
11921         * config/aarch64/aarch64.c
11922         (aarch64_internal_mov_immediate): Add new special pattern.
11923         * config/aarch64/aarch64.md (*movdi_aarch64):
11924         Add reg/32bit const mov case.
11926 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
11927             Richard Sandiford <richard.sandiford@linaro.org>
11929         * config/aarch64/aarch64.md (mov<mode>): Generalize.
11930         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
11931         Add integer and movi cases.
11932         (movi-split-hf-df-sf split, fp16): New.
11933         (enabled): Added TARGET_FP_F16INST.
11934         * config/aarch64/iterators.md (GPF_HF): New.
11935         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
11937 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
11939         * config/aarch64/aarch64.c
11940         (aarch64_simd_container_mode): Add prototype.
11941         (aarch64_expand_mov_immediate): Add HI support.
11942         (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
11943         (aarch64_can_const_movi_rtx_p): New.
11944         (aarch64_preferred_reload_class):
11945         Remove restrictions of using FP registers for certain SIMD operations.
11946         (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
11947         (aarch64_valid_floating_const): Add integer move validation.
11948         (aarch64_simd_imm_scalar_p): Remove.
11949         (aarch64_output_scalar_simd_mov_immediate): Generalize function.
11950         (aarch64_legitimate_constant_p): Expand list of supported cases.
11951         * config/aarch64/aarch64-protos.h
11952         (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
11953         (aarch64_reinterpret_float_as_int): New.
11954         (aarch64_simd_imm_scalar_p): Remove.
11955         * config/aarch64/constraints.md (Uvi): New.
11956         (Dd): Split into Ds and new Dd.
11957         * config/aarch64/aarch64.md (*movsi_aarch64):
11958         Add SIMD mov case.
11959         (*movdi_aarch64): Add SIMD mov case.
11961 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
11963         * tree-predcom.c: (struct chain): Handle store-store chain in which
11964         stores for elimination only store loop invariant values.
11965         (execute_pred_commoning_chain): Ditto.
11966         (prepare_initializers_chain_store_elim): Ditto.
11967         (prepare_finalizers): Ditto.
11968         (is_inv_store_elimination_chain): New function.
11969         (initialize_root_vars_store_elim_1): New function.
11971 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
11973         * tree-predcom.c: Revise general description of the pass.
11974         (enum chain_type): New enum type for store elimination.
11975         (struct chain): New field supporting store elimination.
11976         (struct component): Ditto.
11977         (dump_chain): Dump store-stores chain.
11978         (release_chain): Release resources.
11979         (split_data_refs_to_components): Compute and create component
11980         contains only stores for elimination.
11981         (get_chain_last_ref_at): New function.
11982         (make_invariant_chain): Initialization.
11983         (make_rooted_chain): Specify chain type in parameter and record it.
11984         (add_looparound_copies): Skip for store-stores chain.
11985         (determine_roots_comp): Compute type of chain and pass it to
11986         make_rooted_chain.
11987         (initialize_root_vars_store_elim_2): New function.
11988         (finalize_eliminated_stores): New function.
11989         (remove_stmt): Handle store for elimination.
11990         (execute_pred_commoning_chain): Execute predictive commoning on
11991         store-store chains.
11992         (determine_unroll_factor): Skip unroll for store-stores chain.
11993         (prepare_initializers_chain_store_elim): New function.
11994         (prepare_initializers_chain): Hanlde store-store chain.
11995         (prepare_finalizers_chain, prepare_finalizers): New function.
11996         (tree_predictive_commoning_loop): Return integer value indicating
11997         if loop is unrolled or lcssa form is corrupted.
11998         (tree_predictive_commoning): Rewrite for lcssa form if necessary.
12000 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
12002         * tree-predcom.c (initialize_root): Delete.
12003         (execute_pred_commoning_chain): Initialize root vars and replace
12004         reference of non-combined chain directly, rather than call above
12005         function.
12007 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
12009         * tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
12010         memory reference to DR at (NITERS + ITERS)-th iteration of loop.
12012 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
12014         * tree-predcom.c (struct chain): New field init_seq.
12015         (release_chain): Release init_seq.
12016         (prepare_initializers_chain): Record intialization stmts in above
12017         field.
12018         (insert_init_seqs): New function.
12019         (tree_predictive_commoning_loop): Call insert_init_seqs.
12021 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
12023         * tree-predcom.c (determine_roots_comp): Skip trivial components.
12025 2017-07-28  Richard Biener  <rguenther@suse.de>
12027         * match.pd: Remove superfluous :c.
12028         * genmatch.c (simplify::id): Add member.
12029         (lower_commutative, lower_opt_convert, lower_cond, lower_for):
12030         Copy id.
12031         (current_id): New global.
12032         (dt_node::parent): Move from ...
12033         (dt_operand::parent): ... here.  Add for_id member.
12034         (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
12035         (decision_tree::find_node): Relax order requirement when
12036         merging DT_TRUE nodes to ones inbetween the current simplify
12037         and the one we try to merge with.  Add diagnostic whenever
12038         we need to enforce pattern order by not merging.
12039         (decision_tree::insert): Set current_id.
12040         (decision_tree::print_node): Dump parent node and for_id.
12041         (parser::last_id): Add member.
12042         (parser::push_simplify): Assign unique id.
12043         (parser::parser): Initialize last_id.
12045 2017-07-28  Martin Liska  <mliska@suse.cz>
12047         PR sanitizer/81340
12048         * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
12049         gimple_build_debug_bind.
12051 2017-07-28  Richard Biener  <rguenther@suse.de>
12053         PR tree-optimization/81502
12054         * match.pd: Add pattern combining BIT_INSERT_EXPR with
12055         BIT_FIELD_REF.
12056         * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
12057         size/pos operands.
12058         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
12059         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
12060         for BIT_FIELD_REF args.
12061         * fold-const.c (make_bit_field_ref): Likewise.
12062         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
12064 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
12066         PR sanitizer/80998
12067         * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
12068         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
12069         * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
12070         Or it into SANITIZER_UNDEFINED.
12071         * ubsan.c: Include gimple-fold.h and varasm.h.
12072         (ubsan_expand_ptr_ifn): New function.
12073         (instrument_pointer_overflow): New function.
12074         (maybe_instrument_pointer_overflow): New function.
12075         (instrument_object_size): Formatting fix.
12076         (pass_ubsan::execute): Call instrument_pointer_overflow
12077         and maybe_instrument_pointer_overflow.
12078         * internal-fn.c (expand_UBSAN_PTR): New function.
12079         * ubsan.h (ubsan_expand_ptr_ifn): Declare.
12080         * sanitizer.def (__ubsan_handle_pointer_overflow,
12081         __ubsan_handle_pointer_overflow_abort): New builtins.
12082         * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
12083         * internal-fn.def (UBSAN_PTR): New internal function.
12084         * opts.c (sanitizer_opts): Add pointer-overflow.
12085         * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
12086         * fold-const.c (build_range_check): Compute pointer range check in
12087         integral type if pointer arithmetics would be needed.  Formatting
12088         fixes.
12090 2017-07-28  Martin Liska  <mliska@suse.cz>
12092         PR sanitizer/81460
12093         * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
12094         parameters that are of a variable-length.
12096 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12098         * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
12099         rs6000/biarch64.h.
12100         * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
12101         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
12102         (CRT_CALL_STATIC_FUNCTION): Likewise.
12103         (ASM_DEFAULT_SPEC): New define.
12104         (ASM_SPEC32): Likewise.
12105         (ASM_SPEC64): Likewise.
12106         (ASM_SPEC_COMMON): Likewise.
12107         (ASM_SPEC): Likewise.
12108         (INVALID_64BIT): Likewise.
12109         (LINK_OS_DEFAULT_SPEC): Likewise.
12110         (LINK_OS_SPEC32): Likewise.
12111         (LINK_OS_SPEC64): Likewise.
12112         (POWERPC_LINUX): Likewise.
12113         (PTRDIFF_TYPE): Likewise.
12114         (RESTORE_FP_PREFIX): Likewise.
12115         (RESTORE_FP_SUFFIX): Likewise.
12116         (SAVE_FP_PREFIX): Likewise.
12117         (SAVE_FP_SUFFIX): Likewise.
12118         (SIZE_TYPE): Likewise.
12119         (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
12120         (TARGET_64BIT): Likewise.
12121         (TARGET_64BIT): Likewise.
12122         (TARGET_AIX): Likewise.
12123         (WCHAR_TYPE_SIZE): Likewise.
12124         (WCHAR_TYPE): Undefine.
12125         (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
12126         (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
12127         (CPP_OS_RTEMS_SPEC): Delete.
12128         (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
12129         asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
12130         link_os_spec64.
12131         * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
12133 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
12135         PR tree-optimization/81578
12136         * tree-parloops.c (build_new_reduction): Bail out if
12137         reduction_code isn't one of the standard OpenMP reductions.
12138         Move the details printing after that decision.
12140 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
12142         * config/rs6000/predicates.md (volatile_mem_operand): Remove code
12143         related to reload_in_progress.
12144         (splat_input_operand): Likewise.
12145         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
12146         Delete prototype.
12147         * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
12148         field.
12149         (TARGET_EXPAND_TO_RTL_HOOK): Delete.
12150         (TARGET_INSTANTIATE_DECLS): Likewise.
12151         (legitimate_indexed_address_p): Delete reload_in_progress code.
12152         (rs6000_debug_legitimate_address_p): Likewise.
12153         (rs6000_eliminate_indexed_memrefs): Likewise.
12154         (rs6000_emit_le_vsx_store): Likewise.
12155         (rs6000_emit_move_si_sf_subreg): Likewise.
12156         (rs6000_emit_move): Likewise.
12157         (register_to_reg_type): Likewise.
12158         (rs6000_pre_atomic_barrier): Likewise.
12159         (rs6000_machopic_legitimize_pic_address): Likewise.
12160         (rs6000_allocate_stack_temp): Likewise.
12161         (rs6000_address_for_fpconvert): Likewise.
12162         (rs6000_address_for_altivec): Likewise.
12163         (rs6000_secondary_memory_needed_rtx): Delete function.
12164         (rs6000_check_sdmode): Likewise.
12165         (rs6000_alloc_sdmode_stack_slot): Likewise.
12166         (rs6000_instantiate_decls): Likewise.
12167         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
12168         * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
12169         Delete reload_in_progress.
12170         (*vec_reload_and_plus_<mptrsize>): Likewise.
12171         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
12172         (vsx_div_v2di): Likewise.
12173         (vsx_udiv_v2di): Likewise.
12175 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
12177         * config/rs6000/rs6000.opt (mlra): Replace with stub.
12178         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
12179         * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
12180         (rs6000_debug_reg_global): Delete print of LRA status.
12181         (rs6000_option_override_internal): Delete dead LRA related code.
12182         (rs6000_lra_p): Delete function.
12183         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
12185 2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12187         * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
12188         * config/riscv/rtems.h: New file.
12190 2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12191             Sudakshina Das  <sudi.das@arm.com>
12193         * config/aarch64/aarch64.md
12194         (define_split for and<mode>3nr_compare): Move
12195         non aarch64_logical_operand to a register.
12196         (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
12197         register immediate operand to a register.
12198         * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
12200 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
12202         PR middle-end/81564
12203         * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
12205 2017-07-27  Richard Biener  <rguenther@suse.de>
12207         PR tree-optimization/81573
12208         PR tree-optimization/81494
12209         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
12210         multi defuse cycle case.
12212 2017-07-27  Richard Biener  <rguenther@suse.de>
12214         PR tree-optimization/81571
12215         * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
12216         PHIs.
12218 2017-07-27  Eric Botcazou  <ebotcazou@adacore.com>
12220         * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
12221         earlier and only if MASK_FPU is set.  Adjust formatting.
12223 2017-07-27  Martin Liska  <mliska@suse.cz>
12225         * opt-functions.awk: Add validation of value of Init.
12226         * optc-gen.awk: Pass new argument.
12228 2017-07-27  Martin Liska  <mliska@suse.cz>
12230         * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
12231         Fix wrong condition.
12233 2017-07-27  Martin Liska  <mliska@suse.cz>
12235         * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
12236         BBs and edges seen by autoFDO.
12238 2017-07-27  Richard Biener  <rguenther@suse.de>
12240         PR tree-optimization/81502
12241         * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
12242         with incompatible but same sized type.
12243         (execute_update_addresses_taken): Likewise.
12245 2017-07-27  James Greenhalgh  <james.greenhalgh@arm.com>
12247         * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
12248         flag_tree_loop_vectorize rather than flag_tree_vectorize.
12250 2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12252         PR target/81534
12253         * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
12254         ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
12255         Change s_operand to memory_operand.
12257 2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>
12259         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
12260         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
12261         (rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
12262         Emit instructions rather than returning an expression.  Handle TFmode
12263         and KFmode by casting to TImode.
12264         (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
12265         (rs6000_emit_le_vsx_store): Likewise.
12266         * config/rs6000/vsx.md (VSX_TI): New iterator.
12267         (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
12268         (*vsx_le_undo_permute_<mode>): Likewise.
12269         (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
12270         emit the split sequence.
12271         (*vsx_le_perm_store_<mode>): Likewise.
12273 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
12275         PR tree-optimization/81555
12276         PR tree-optimization/81556
12277         * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
12278         if true, force CHANGED for the recursive invocation.
12279         (reassociate_bb): Remember original length of ops array, pass
12280         len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
12282         * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
12283         attributes for noipa attribute.  For naked attribute use
12284         lookup_attribute first before lookup_attribute_spec.
12285         * final.c (rest_of_handle_final): Disable IPA RA for functions with
12286         noipa attribute.
12287         * ipa-visibility.c (non_local_p): Fix comment typos.  Return true
12288         for functions with noipa attribute.
12289         (cgraph_externally_visible_p): Return true for functions with noipa
12290         attribute.
12291         * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
12292         for functions with noipa attribute.
12293         * doc/extend.texi: Document noipa function attribute.
12294         * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
12295         also for functions with noipa attribute.
12296         (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
12298 2017-07-26  Andrew Pinski  <apinski@cavium.com>
12300         * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
12301         vec_unalign_load_cost and vec_unalign_store_cost.
12303 2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
12305         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
12306         -mvsx-small-integer option.
12307         (ISA_3_0_MASKS_IEEE): Likewise.
12308         (OTHER_VSX_VECTOR_MASKS): Likewise.
12309         (POWERPC_MASKS): Likewise.
12310         * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
12311         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
12312         code, only testing for DImode being allowed in non-VSX floating
12313         point registers.
12314         (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
12315         to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
12316         another VSX test.
12317         (rs6000_option_override_internal): Delete -mvsx-small-integer.
12318         (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
12319         TARGET_P8_VECTOR test.
12320         (rs6000_secondary_reload_simple_move): Likewise.
12321         (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
12322         since TARGET_P9_VECTOR was already tested.
12323         (rs6000_opt_masks): Remove -mvsx-small-integer.
12324         * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
12325         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
12326         used.
12327         (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
12328         test for TARGET_VEXTRACTUB was used, and that uses
12329         TARGET_P9_VECTOR.
12330         (p9 extract splitter): Likewise.
12331         (vsx_extract_<mode>_di_p9): Likewise.
12332         (vsx_extract_<mode>_store_p9): Likewise.
12333         (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
12334         for TARGET_P9_VECTOR was used.  Delete code that is now dead with
12335         the elimination of TARGET_VSX_SMALL_INTEGER.
12336         (vsx_extract_<mode>_p8): Likewise.
12337         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
12338         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
12339         (vsx_set_<mode>_p9): Likewise.
12340         (vsx_set_v4sf_p9): Likewise.
12341         (vsx_set_v4sf_p9_zero): Likewise.
12342         (vsx_insert_extract_v4sf_p9): Likewise.
12343         (vsx_insert_extract_v4sf_p9_2): Likewise.
12344         * config/rs6000/rs6000.md (sign extend splitter): Change
12345         TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
12346         (floatsi<mode>2_lfiwax_mem): Likewise.
12347         (floatunssi<mode>2_lfiwzx_mem): Likewise.
12348         (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
12349         since a test for TARGET_P9_VECTOR was used.
12350         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
12351         (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
12352         (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
12353         (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
12354         TARGET_P8_VECTOR test.
12355         (fix_trunc<mode>si2_stfiwx): Likewise.
12356         (fix_trunc<mode>si2_internal): Likewise.
12357         (fix_trunc<SFDF:mode><QHI:mode>2): Delete
12358         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
12359         used.
12360         (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
12361         (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
12362         TARGET_P8_VECTOR test.
12363         (fixuns_trunc<mode>si2_stfiwx): Likewise.
12364         (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
12365         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
12366         used.
12367         (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
12368         (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
12369         since a test for TARGET_P9_VECTOR was used.
12370         (splitter for loading small constants): Likewise.
12372 2017-07-26  Andrew Pinski  <apinski@cavium.com>
12374         * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
12375         vec_fp_stmt_cost.
12377 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
12379         PR target/81563
12380         * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
12381         (fp_valid_at): Likewise.
12383 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
12385         * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
12386         (qdf24xx_addrcost_table): Likewise.
12387         (cortexa57_tunings): Update to use generic_branch_cost.
12388         (cortexa72_tunings): Likewise.
12389         (cortexa73_tunings): Likewise.
12390         (qdf24xx_tunings): Likewise.
12392 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
12394         * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
12395         (thunderx2t99_branch_cost): Likewise.
12396         (cortexa35_tunings): Update to use generic_branch_cost.
12397         (cortexa53_tunings): Likewise.
12398         (cortexa57_tunings): Likewise.
12399         (cortexa72_tunings): Likewise.
12400         (cortexa73_tunings): Likewise.
12401         (thunderx2t99_tunings): Likewise.
12403 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12405         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
12406         (sparc_option_override): Honour MASK_FSMULD.
12407         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
12408         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
12409         * config/sparc/sparc.opt (mfsmuld): New option.
12410         * doc/invoke.texi (mfsmuld): Document option.
12412 2017-07-26  Marek Polacek  <polacek@redhat.com>
12414         PR middle-end/70992
12415         * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
12417 2017-07-26  Richard Biener  <rguenther@suse.de>
12419         * gimple-match-head.c (do_valueize): Return OP if valueize
12420         returns NULL_TREE.
12421         (get_def): New helper to get at the def stmt of a SSA name
12422         if valueize allows.
12423         * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
12424         do_valueize to get at the def stmt.
12425         (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
12427 2017-07-26  Wilco Dijkstra  <wdijkstr@arm.com>
12429         PR middle-end/46932
12430         * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
12432 2017-07-26  Martin Liska  <mliska@suse.cz>
12434         PR sanitize/81186
12435         * function.c (expand_function_start): Make expansion of
12436         nonlocal_goto_save_area after parm_birth_insn.
12438 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12440         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
12441         from all CPU target flags enable members.
12443 2017-07-26  Richard Biener  <rguenther@suse.de>
12445         * genmatch.c (dt_simplify::gen): Make iterator vars const.
12446         (decision_tree::gen): Make 'type' const.
12447         (write_predicate): Likewise.
12449 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12451         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
12452         Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
12453         (rs6000_option_override_internal): Likewise.
12454         (rs6000_expand_vector_set): Likewise.
12455         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
12456         (TARGET_UPPER_REGS_SF): Likewise.
12457         (TARGET_UPPER_REGS_DI): Likewise.
12458         (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
12459         (TARGET_DIRECT_MOVE_64BIT): Likewise.
12460         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
12461         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
12462         (Splitters for DI constants in Altivec registers): Likewise.
12463         * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
12464         (vsx_set_v4sf_p9): Likewise.
12465         (vsx_set_v4sf_p9_zero): Likewise.
12466         (vsx_insert_extract_v4sf_p9): Likewise.
12467         (vsx_insert_extract_v4sf_p9_2): Likewise.
12469 2017-07-25  Carl Love  <cel@us.ibm.com>
12471         * doc/extend.texi: Update the built-in documentation file for the
12472         existing built-in functions
12473         vector signed char vec_cnttz (vector signed char);
12474         vector unsigned char vec_cnttz (vector unsigned char);
12475         vector signed short vec_cnttz (vector signed short);
12476         vector unsigned short vec_cnttz (vector unsigned short);
12477         vector signed int vec_cnttz (vector signed int);
12478         vector unsigned int vec_cnttz (vector unsigned int);
12479         vector signed long long vec_cnttz (vector signed long long);
12480         vector unsigned long long vec_cnttz (vector unsigned long long);
12482 2017-07-25  Andrew Pinski  <apinski@cavium.com>
12484         * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
12485         accesses where the use is for the first operand of a BIT_INSERT.
12487 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
12489         PR bootstrap/81521
12490         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
12491         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
12493 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
12495         * config/i386/gstabs.h: Delete.
12496         * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
12498 2017-07-25  Uros Bizjak  <ubizjak@gmail.com>
12500         * config/i386/i386.c (ix86_decompose_address): Do not check for
12501         register RTX when looking at index_reg or base_reg.
12502         * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
12504 2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
12506         * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
12507         to update EH info here.
12509 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
12511         * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
12513 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
12515         * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
12517 2017-07-25  Torsten Duwe  <duwe@suse.de>
12519         * common.opt: Introduce -fpatchable-function-entry
12520         command line option, and its variables function_entry_patch_area_size
12521         and function_entry_patch_area_start.
12522         * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
12523         including a two-value parser.
12524         * target.def (print_patchable_function_entry): New target hook.
12525         * targhooks.h (default_print_patchable_function_entry): New function.
12526         * targhooks.c (default_print_patchable_function_entry): Likewise.
12527         * toplev.c (process_options): Switch off IPA-RA if
12528         patchable function entries are being generated.
12529         * varasm.c (assemble_start_function): Look at the
12530         patchable-function-entry command line switch and current
12531         function attributes and maybe generate NOP instructions by
12532         calling the print_patchable_function_entry hook.
12533         * doc/extend.texi: Document patchable_function_entry attribute.
12534         * doc/invoke.texi: Document -fpatchable_function_entry
12535         command line option.
12536         * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
12537         New target hook.
12538         * doc/tm.texi: Re-generate.
12540 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
12542         PR target/81532
12543         * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
12544         TARGET_AVX512DQ rather than TARGET_AVX512BW.
12546 2017-07-25  Tamar Christina  <tamar.christina@arm.com>
12548         * config/arm/parsecpu.awk (all_cores): Remove duplicates.
12550 2017-07-25  Richard Biener  <rguenther@suse.de>
12552         PR tree-optimization/81455
12553         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
12554         not walk in cycles when looking for guards.
12556 2017-07-25  Richard Biener  <rguenther@suse.de>
12558         PR tree-optimization/81529
12559         * tree-vect-stmts.c (process_use): Disregard live induction PHIs
12560         when optimizing backedge uses.
12562 2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
12564         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
12565         character for AIX.
12566         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
12567         to dl_section_ref.  On AIX, append an expression to subtract
12568         the size of the section length to dl_section_ref.
12570 2017-07-25  Segher Boessenkool  <segher@kernel.crashing.org>
12572         * configure.ac: If any of the config.* scripts fail, exit 1.
12573         * configure: Regenerate.
12575 2017-07-25  Richard Biener  <rguenther@suse.de>
12577         PR middle-end/81546
12578         * tree-ssa-operands.c (verify_imm_links): Remove cap on number
12579         of immediate uses, be more verbose on errors.
12581 2017-07-25  Richard Biener  <rguenther@suse.de>
12583         PR tree-optimization/81510
12584         * tree-vect-loop.c (vect_is_simple_reduction): When the
12585         reduction stmt is not inside the loop bail out.
12587 2017-07-25  Richard Biener  <rguenther@suse.de>
12589         PR tree-optimization/81303
12590         * tree-vect-loop-manip.c (vect_loop_versioning): Build
12591         profitability check against LOOP_VINFO_NITERSM1.
12593 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
12595         * domwalk.c (cmp_bb_postorder): Simplify.
12596         (sort_bbs_postorder): New function.  Use it...
12597         (dom_walker::walk): ...here to optimize common cases.
12599 2017-07-25  Martin Liska  <mliska@suse.cz>
12601         PR ipa/81520
12602         * ipa-visibility.c (function_and_variable_visibility): Make the
12603         redirection just on target that supports aliasing.
12604         Fix GNU coding style.
12606 2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12608         PR libgcc/61152
12609         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
12610         Format changes.
12611         * config/arm/rtems.h: Likewise.
12612         * config/bfin/rtems.h: Likewise.
12613         * config/i386/rtemself.h: Likewise.
12614         * config/lm32/rtems.h: Likewise.
12615         * config/m32c/rtems.h: Likewise.
12616         * config/m68k/rtemself.h: Likewise.
12617         * config/microblaze/rtems.h: Likewise.
12618         * config/mips/rtems.h: Likewise.
12619         * config/moxie/rtems.h: Likewise.
12620         * config/nios2/rtems.h: Likewise.
12621         * config/powerpcspe/rtems.h: Likewise.
12622         * config/rs6000/rtems.h: Likewise.
12623         * config/rtems.h: Likewise.
12624         * config/sh/rtems.h: Likewise.
12625         * config/sh/rtemself.h: Likewise.
12626         * config/sparc/rtemself.h: Likewise.
12628 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
12630         PR 81487
12631         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
12632         * gimple-pretty-print.c (dump_profile, dump_probability): Same.
12633         * tree-ssa-structalias.c (alias_get_name): Same.
12635 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
12637         PR target/81414
12638         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
12639         instructions if no du chain is found.
12641 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
12643         * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
12645 2017-07-25  Richard Biener  <rguenther@suse.de>
12647         PR middle-end/81505
12648         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
12649         sticky.
12651 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12653         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
12654         upper-regs options.
12655         (ISA_2_7_MASKS_SERVER): Likewise.
12656         (ISA_3_0_MASKS_IEEE): Likewise.
12657         (OTHER_P8_VECTOR_MASKS): Likewise.
12658         (OTHER_VSX_VECTOR_MASKS): Likewise.
12659         (POWERPC_MASKS): Likewise.
12660         (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
12661         duplicate list of options.
12662         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
12663         explicit -mupper-regs options.
12664         * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
12665         -mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
12666         alias for -mupper-regs-df.
12667         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
12668         (rs6000_init_hard_regno_mode_ok): Likewise.
12669         (rs6000_option_override_internal): Likewise.
12670         (rs6000_opt_masks): Likewise.
12671         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
12672         options in terms of whether -mvsx or -mpower8-vector was used.
12673         (TARGET_UPPER_REGS_DI): Likewise.
12674         (TARGET_UPPER_REGS_SF): Likewise.
12675         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
12676         -mupper-regs-* options.
12678 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
12680         * passes.c (emergency_dump_function): Print some empty lines and a
12681         header before the RTL dump.
12683 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
12685         * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
12687 2017-07-24  Wilco Dijkstra  <wdijkstr@arm.com>
12689         PR target/79041
12690         * config/aarch64/aarch64.c (aarch64_classify_symbol):
12691         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
12693 2017-07-24  Carl Love  <cel@us.ibm.com>
12695         * config/rs6000/rs6000-c.c: Add support for built-in functions
12696         vector float vec_extract_fp32_from_shorth (vector unsigned short);
12697         vector float vec_extract_fp32_from_shortl (vector unsigned short);
12698         * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
12699         vec_extract_fp_from_shortl): Add defines for the two builtins.
12700         * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
12701         VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
12702         new builtins.
12703         * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
12704         (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
12705         * doc/extend.texi: Update the built-in documentation file for the
12706         new built-in function.
12708 2017-07-24  Jakub Jelinek  <jakub@redhat.com>
12710         PR bootstrap/81521
12711         * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
12712         documentation.
12713         * doc/generic.texi: Likewise.
12714         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
12715         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
12717 2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>
12719         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
12720         (aarch64_mls_elt_merge<mode>): Likewise.
12722 2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>
12724         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
12725         having __cxa_atexit.
12727 2017-07-23  Michael Collison  <michael.collison@arm.com>
12729         * config/arm/arm.c (arm_option_override): Deprecate
12730         use of -mstructure-size-boundary.
12731         * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
12732         * doc/invoke.texi: Deprecate -mstructure-size-boundary.
12734 2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12736         PR target/80695
12737         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
12738         Reduce cost estimate for direct moves.
12740 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
12742         PR target/80569
12743         * config/i386/i386.c (ix86_option_override_internal): Disable
12744         BMI, BMI2 and TBM instructions for -m16.
12746 2017-07-21  Carl Love  <cel@us.ibm.com>
12748         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12749         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
12750         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
12751         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
12752         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
12753         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
12754         VMULOSW): New enum "unspec" values.
12755         (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
12756         altivec_vmulosw): New patterns.
12757         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
12758         VMULOSW): Add definitions.
12760 2017-07-21  Jim Wilson  <jim.wilson@linaro.org>
12762         * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
12763         (qdf24xx): Likewise.
12764         * config/aarch64/aarch64-options-extensions.def (rdma); New.
12765         * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
12766         (AARCH64_FL_V8_1): Renumber.
12767         (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
12768         (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
12769         * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
12770         * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
12771         rdma to feature modifiers list.
12773 2017-07-21  Yury Gribov  <tetra2005@gmail.com>
12775         PR middle-end/56727
12776         * ipa-visibility (function_and_variable_visibility): Convert
12777         recursive PLT call to direct call if appropriate.
12779 2017-07-21  Andrew Pinski  <apinski@cavium.com>
12781         * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
12782         operand 1 to see if the types precision matches.
12783         * fold-const.c (operand_equal_p): Likewise.
12785 2017-07-21  Richard Biener  <rguenther@suse.de>
12787         PR tree-optimization/81303
12788         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
12789         in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
12790         (vect_peeling_hash_get_lowest_cost): Adjust.
12791         (vect_enhance_data_refs_alignment): Likewise.  Use
12792         vect_get_peeling_costs_all_drs to compute the penalty for no
12793         peeling to match up costs.
12795 2017-07-21  Richard Biener  <rguenther@suse.de>
12797         PR tree-optimization/81500
12798         * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
12799         we didn't identify a reduction path.
12801 2017-07-21  Tom de Vries  <tom@codesourcery.com>
12802             Cesar Philippidis  <cesar@codesourcery.com>
12804         PR gcov-profile/81442
12805         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
12806         probabilities.
12808 2017-07-21  Tom de Vries  <tom@codesourcery.com>
12810         PR lto/81430
12811         * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
12812         function.
12813         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
12814         nvptx_override_options_after_change.
12816 2017-07-21  Ulrich Drepper  <drepper@redhat.com>
12818         * dwarf2out.c (output_file_names): Avoid double testing for
12819         dwarf_version >= 5.
12821 2017-07-21  Georg-Johann Lay  <avr@gjlay.de>
12823         * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
12825 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
12827         * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
12828         hot/cold regions.
12829         (try_crossjump_to_edge): Do not punt on partitioned functions.
12831 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
12833         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
12834         Put all BBs reachable only via paths crossing cold region to cold
12835         region.
12836         * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
12838 2016-07-21  Richard Biener  <rguenther@suse.de>
12840         PR tree-optimization/81303
12841         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
12842         into account prologue and epilogue iterations when raising
12843         min_profitable_iters to sth at least covering one vector iteration.
12845 2017-07-21  Tamar Christina  <tamar.christina@arm.com>
12847         * config/arm/arm.c (arm_test_cpu_arch_dat):
12848         Check for overlap.
12850 2017-07-20  Nathan Sidwell  <nathan@acm.org>
12852         Remove TYPE_METHODS.
12853         * tree.h (TYPE_METHODS): Delete.
12854         * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
12855         * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
12856         (dbxout_type_methods): Scan TYPE_FIELDS.
12857         (dbxout_type): Don't check TYPE_METHODS here.
12858         * function.c (use_register_for_decl): Always ignore register for
12859         class types when not optimizing.
12860         * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
12861         * tree.c (free_lang_data_in_type): Stitch out member functions and
12862         templates from TYPE_FIELDS.
12863         (build_distinct_type_copy, verify_type_variant,
12864         verify_type): Member fns are on TYPE_FIELDS.
12865         * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
12866         * tree-pretty-print.c (dump_generic_node): Likewise.
12868 2017-07-20  Jakub Jelinek  <jakub@redhat.com>
12870         PR target/80846
12871         * config/i386/i386.c (ix86_expand_vector_init_general): Handle
12872         V2TImode and V4TImode.
12873         (ix86_expand_vector_extract): Likewise.
12874         * config/i386/sse.md (VMOVE): Enable V4TImode even for just
12875         TARGET_AVX512F, instead of only for TARGET_AVX512BW.
12876         (ssescalarmode): Handle V4TImode and V2TImode.
12877         (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
12878         (*vec_extractv2ti, *vec_extractv4ti): New insns.
12879         (VEXTRACTI128_MODE): New mode iterator.
12880         (splitter for *vec_extractv?ti first element): New.
12881         (VEC_INIT_MODE): New mode iterator.
12882         (vec_init<mode>): Consolidate 3 expanders into one using
12883         VEC_INIT_MODE mode iterator.
12885 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
12887         * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
12888         non_spilled_static_chain_regno_p.
12890 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
12892         * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
12894 2017-07-20  Jan Hubicka  <hubicka@ucw.cz>
12896         * bb-reorder.c (connect_traces): Allow copying of blocks within
12897         single partition.
12899 2017-07-20  Richard Biener  <rguenther@suse.de>
12901         * gimple.h (gimple_phi_result): Add gphi * overload.
12902         (gimple_phi_result_ptr): Likewise.
12903         (gimple_phi_arg): Likewise.  Adjust index assert to only
12904         allow actual argument accesses rather than all slots available
12905         by capacity.
12906         (gimple_phi_arg_def): Add gphi * overload.
12907         * tree-phinodes.c (make_phi_node): Initialize only actual
12908         arguments.
12909         (resize_phi_node): Clear memory not covered by old node,
12910         do not initialize excess argument slots.
12911         (reserve_phi_args_for_new_edge): Initialize new argument slot
12912         completely.
12914 2017-07-20  Bin Cheng  <bin.cheng@arm.com>
12916         PR tree-optimization/81388
12917         Revert r238585:
12918         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
12920         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
12921         by removing computation of may_be_zero.
12923 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
12924             Tom de Vries  <tom@codesourcery.com>
12926         PR middle-end/81030
12927         * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
12928         when gimple level profile disagrees with what RTL expander did.
12930 2017-07-20  Richard Biener  <rguenther@suse.de>
12932         PR tree-optimization/61171
12933         * tree-vectorizer.h (slp_instance): Add reduc_phis member.
12934         (vect_analyze_stmt): Add slp instance parameter.
12935         (vectorizable_reduction): Likewise.
12936         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
12937         (vect_is_simple_reduction): Deal with chains not detected
12938         as SLP reduction chain, specifically not properly associated
12939         chains containing a mix of plus/minus.
12940         (get_reduction_op): Remove.
12941         (get_initial_defs_for_reduction): Simplify, pass in whether
12942         this is a reduction chain, pass in the SLP node for the PHIs.
12943         (vect_create_epilog_for_reduction): Get the SLP instance as
12944         arg and adjust.
12945         (vectorizable_reduction): Get the SLP instance as arg.
12946         During analysis remember the SLP node with the PHIs in the
12947         instance.  Simplify getting at the vectorized reduction PHIs.
12948         * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
12949         through SLP instance.
12950         (vect_slp_analyze_operations): Likewise.
12951         * tree-vect-stms.c (vect_analyze_stmt): Likewise.
12952         (vect_transform_stmt): Likewise.
12954 2017-07-20  Tom de Vries  <tom@codesourcery.com>
12956         PR tree-optimization/81489
12957         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
12958         read of phi arg location to before loop that modifies phi.
12960 2017-07-20  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
12962         * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
12963         New pattern.
12965 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
12967         PR middle-end/81331
12968         * except.c (execute): Fix ordering issue.
12970 2018-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
12972         PR rtl-optimization/81423
12973         * combine.c (make_compound_operation_int): Don't try to optimize
12974         the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
12976 2017-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
12978         PR rtl-optimization/81423
12979         * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
12980         with a constant that is -1 in the truncated to mode.
12982 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
12984         * predict.c (propagate_unlikely_bbs_forward): Break out from ...
12985         (determine_unlikely_bbs): ... here.
12986         * predict.h (propagate_unlikely_bbs_forward): Declare.
12987         * cfgexpand.c (pass_expand::execute): Use it.
12988         * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
12989         unlikely edges.
12990         (find_rarely_executed_basic_blocks_and_crossing_edges): Use
12991         propagate_unlikely_bbs_forward.
12993 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
12995         PR middle-end/81331
12996         * except.c (maybe_add_nop_after_section_switch): New function.
12997         (execute): Use it.
12999 2017-07-19  Tom de Vries  <tom@codesourcery.com>
13001         * gimple.h (gimple_phi_set_arg): Make assert more strict.
13003 2017-07-19  Tom de Vries  <tom@codesourcery.com>
13005         * gimple.h (gimple_phi_arg): Make assert more strict.
13007 2017-07-19  Steven Munroe  <munroesj@gcc.gnu.org>
13009         * config.gcc (powerpc*-*-*): Add mmintrin.h.
13010         * config/rs6000/mmintrin.h: New file.
13011         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
13013 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
13015         PR tree-optimization/81346
13016         * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
13018 2017-07-19  Tom de Vries  <tom@codesourcery.com>
13020         * config/nvptx/nvptx.md (VECIM): Add V2DI.
13022 2017-07-19  Tom de Vries  <tom@codesourcery.com>
13024         * config/nvptx/nvptx-modes.def: Add V2DImode.
13025         * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
13026         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
13027         (nvptx_output_mov_insn): Handle lack of mov.b128.
13028         (nvptx_print_operand): Handle 'H' and 'L' codes.
13029         (nvptx_vector_mode_supported): Allow V2DImode.
13030         (nvptx_preferred_simd_mode): New function.
13031         (nvptx_data_alignment): New function.
13032         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
13033         nvptx_preferred_simd_mode.
13034         * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
13035         64 to 128 bits.
13036         (DATA_ALIGNMENT): Define.  Set to nvptx_data_alignment.
13038 2017-07-19  Tom de Vries  <tom@codesourcery.com>
13040         * config/nvptx/nvptx-modes.def: New file.  Add V2SImode.
13041         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
13042         (nvptx_vector_mode_supported): New function.  Allow V2SImode.
13043         (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
13044         * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
13045         (mov<VECIM>_insn): New define_insn.
13046         (define_expand "mov<VECIM>): New define_expand.
13048 2017-07-19  Tom de Vries  <tom@codesourcery.com>
13050         * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
13052 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
13054         PR tree-optimization/81346
13055         * fold-const.h (fold_div_compare, range_check_type): Declare.
13056         * fold-const.c (range_check_type): New function.
13057         (build_range_check): Use range_check_type.
13058         (fold_div_compare): No longer static, rewritten into
13059         a match.pd helper function.
13060         (fold_comparison): Don't call fold_div_compare here.
13061         * match.pd (X / C1 op C2): New optimization using fold_div_compare
13062         as helper function.
13064 2017-07-19  Nathan Sidwell  <nathan@acm.org>
13066         * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
13067         (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
13068         * tree.c (find_decls_types_r, verify_type): Use
13069         TYPE_{MIN,MAX}_VALUE_RAW.
13070         * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
13071         (hash_tree): Likewise.
13072         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
13073         Likewise.
13074         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
13075         Likewise.
13077 2017-07-18  Tom de Vries  <tom@codesourcery.com>
13079         PR middle-end/81464
13080         * omp-expand.c (expand_omp_for_static_chunk): Handle
13081         equal-argument loop exit phi.
13083 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
13085         PR target/81471
13086         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
13087         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
13088         operand 2 predicate.
13089         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
13090         operand 2 predicate.
13091         (ror,rol -> rorx splitters): Use const_int_operand as
13092         operand 2 predicate.
13094 2017-06-18  Richard Biener  <rguenther@suse.de>
13096         PR tree-optimization/81410
13097         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
13098         the gap in the ! slp_perm SLP case after each group.
13100 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
13102         PR middle-end/81463
13103         * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
13104         again.
13106 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
13108         PR middle-end/81462
13109         * predict.c (set_even_probabilities): Cleanup; do not affect
13110         probabilities that are already known.
13111         (combine_predictions_for_bb): Call even when count is set.
13113 2017-07-18  Nathan Sidwell  <nathan@acm.org>
13115         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
13116         TYPE_MAX_VALUE.
13118 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
13120         PR target/81408
13121         * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
13122         optimization for loop niter analysis.
13124 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
13126         PR target/81473
13127         * config/avr/avr.c (avr_optimize_casesi): Don't use
13128         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
13130 2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
13132         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
13133         body_cost_vec from _vect_peel_extended_info.
13134         (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
13135         (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
13136         npeel.
13138 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
13140         * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
13142 2017-07-18  Richard Biener  <rguenther@suse.de>
13144         PR tree-optimization/80620
13145         PR tree-optimization/81403
13146         * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
13147         info when re-using a VN table entry.
13149 2017-07-18  Richard Biener  <rguenther@suse.de>
13151         PR tree-optimization/81418
13152         * tree-vect-loop.c (vectorizable_reduction): Properly compute
13153         vectype_in.  Verify that with lane-reducing reduction operations
13154         we have a single def-use cycle.
13156 2017-07-17  Carl Love  <cel@us.ibm.com>
13158         Revert commit r249424   2017-06-20  Carl Love  <cel@us.ibm.com>
13160         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13161         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
13162         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
13163         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
13164         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
13165         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
13166         VMULOSW): New enum "unspec" values.
13167         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
13168         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
13169         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
13170         altivec_vmulosw): New patterns.
13171         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
13172         VMULOSW): Add definitions.
13173 2017-07-17  Uros Bizjak  <ubizjak@gmail.com>
13175         * config/alpha/alpha.c: Include predict.h.
13177 2017-07-17  Yury Gribov  <tetra2005@gmail.com>
13179         * tree-vrp.c (compare_assert_loc): Fix comparison function
13180         to return predictable results.
13182 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
13184         * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
13185         option.
13186         (subdi3): Likewise.
13187         * config/arc/arc.opt (mexpand-adddi): Deprecate it.
13188         * doc/invoke.texi (mexpand-adddi): Update text.
13190 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
13192         * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
13193         that also clobbers the CC register. The old expand code is moved
13194         to ...
13195         (*arc_clzsi2): ... here.
13196         (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
13197         the CC register. The old expand code is moved to ...
13198         (arc_ctzsi2): ... here.
13200 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
13202         * config/arc/arc.opt (mindexed-loads): Use initial value
13203         TARGET_INDEXED_LOADS_DEFAULT.
13204         (mauto-modify-reg): Use initial value
13205         TARGET_AUTO_MODIFY_REG_DEFAULT.
13206         * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
13207         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
13208         * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
13209         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
13211 2017-07-17  Martin Liska  <mliska@suse.cz>
13213         PR sanitizer/81302
13214         * opts.c (finish_options): Do not allow -fgnu-tm
13215         w/ -fsanitize={kernel-,}address.  Say sorry.
13217 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
13219         PR target/81369
13220         * tree-loop-distribution.c (classify_partition): Only assert on
13221         numer of iterations.
13222         (merge_dep_scc_partitions): Delete prameter.  Update function call.
13223         (distribute_loop): Remove code handling loop with unknown niters.
13224         (pass_loop_distribution::execute): Skip loop with unknown niters.
13226 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
13228         PR target/81369
13229         * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
13230         function sort_partitions_by_post_order.
13232 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
13234         PR tree-optimization/81374
13235         * tree-loop-distribution.c (pass_loop_distribution::execute): Record
13236         the max index of basic blocks, rather than number of basic blocks.
13238 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
13240         * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
13241         proto.
13242         (arc_legitimate_pic_operand_p): Likewise.
13243         * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
13244         function.
13245         (arc_needs_pcl_p): Likewise.
13246         (arc_legitimate_pc_offset_p): Likewise.
13247         (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
13248         function is also used in constrains.md.
13249         (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
13250         validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
13251         PLUS.  Only return true/false in known cases, otherwise assert.
13252         (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
13253         is already called in arc_legitimate_constant_p.
13254         * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
13255         pic addresses.
13256         (LEGITIMATE_PIC_OPERAND_P): Use
13257         arc_raw_symbolic_reference_mentioned_p function.
13258         * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
13259         function.
13260         (Cal): Likewise.
13261         (C32): Likewise.
13263 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
13264         Andrew Burgess  <andrew.burgess@embecosm.com>
13266         * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
13267         (arc_return_address_register): New function.
13268         * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
13269         (arc_handle_fndecl_attribute): Add naked attribute.
13270         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
13271         (TARGET_WARN_FUNC_RETURN): Likewise.
13272         (arc_allocate_stack_slots_for_args): New function.
13273         (arc_warn_func_return): Likewise.
13274         (machine_function): Change type fn_type.
13275         (arc_compute_function_type): Consider new naked function type,
13276         change function return type.
13277         (arc_must_save_register): Adapt to handle new
13278         arc_compute_function_type's return type.
13279         (arc_expand_prologue): Likewise.
13280         (arc_expand_epilogue): Likewise.
13281         (arc_return_address_regs): Delete.
13282         (arc_return_address_register): New function.
13283         (arc_epilogue_uses): Use above function.
13284         * config/arc/arc.h (arc_return_address_regs): Delete prototype.
13285         (arc_function_type): Change encoding, add naked type.
13286         (ARC_INTERRUPT_P): Change to handle the new encoding.
13287         (ARC_FAST_INTERRUPT_P): Likewise.
13288         (ARC_NORMAL_P): Define.
13289         (ARC_NAKED_P): Likewise.
13290         (arc_compute_function_type): Delete prototype.
13291         * config/arc/arc.md (in_ret_delay_slot): Use
13292         arc_return_address_register function.
13293         (simple_return): Likewise.
13294         (p_return_i): Likewise.
13296 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
13298         PR tree-optimization/81428
13299         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
13300         can't be built for those types.
13302 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
13304         Remove stuff dead since r239246.
13306         * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
13307         * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
13308         (avr_inform_devices): Remove dead stuff.
13310 2017-07-17  Tamar Christina  <tamar.christina@arm.com>
13312         * config/arm/arm_neon.h: Fix softp typo.
13314 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
13316         PR tree-optimization/81365
13317         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
13318         aggregate moves onto bb predecessor edges, make sure there are no
13319         loads that could alias the lhs in between the start of bb and the
13320         loads from *phi.
13322 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
13324         PR 80929
13325         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
13326         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
13327         [LSHIFTRT, outer_code = TRUNCATE]: Same.
13329 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
13331         PR tree-optimization/81396
13332         * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
13333         (init_symbolic_number): Initialize it to 1.
13334         (perform_symbolic_merge): Add n_ops from both operands into the new
13335         n_ops.
13336         (find_bswap_or_nop): Don't consider n->n == cmpnop computations
13337         without base_addr as useless if they need more than one operation.
13338         (bswap_replace): Handle !bswap case for NULL base_addr.
13340 2017-07-17  Tom de Vries  <tom@codesourcery.com>
13342         PR target/81069
13343         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
13344         as possible.
13346 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13348         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
13349         conditional builtin define __FIX_LEON3FT_B2BST.
13351 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
13353         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
13354         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
13355         with -mfix-ut700.
13357 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
13359         PR rtl-optimization/81424
13360         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
13361         to remove potential trapping from operands if -fnon-call-exceptions.
13363 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
13365         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
13366         profile_proability for scalling.
13367         * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
13369 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
13371         * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
13373 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
13375         * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
13376         fixpoint arithmetics.
13378 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
13380         * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
13381         fixpoint arithmetics.
13383 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
13385         * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
13386         fixpoint arithmetics.
13388 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
13390         * profile-count.h (profile_probability::from_reg_br_prob_note,
13391         profile_probability::to_reg_br_prob_note): New functions.
13392         * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
13393         * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
13394         * predict.c (probability_reliable_p): Update.
13395         (edge_probability_reliable_p): Update.
13396         (br_prob_note_reliable_p): Update.
13397         (invert_br_probabilities): Update.
13398         (add_reg_br_prob_note): New function.
13399         (combine_predictions_for_insn): Update.
13400         * asan.c (asan_clear_shadow): Update.
13401         * cfgbuild.c (compute_outgoing_frequencies): Update.
13402         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
13403         (update_br_prob_note): Update.
13404         (rtl_verify_edges): Update.
13405         (purge_dead_edges): Update.
13406         (fixup_reorder_chain): Update.
13407         * emit-rtl.c (try_split): Update.
13408         * ifcvt.c (cond_exec_process_insns): Update.
13409         (cond_exec_process_if_block): Update.
13410         (dead_or_predicable): Update.
13411         * internal-fn.c (expand_addsub_overflow): Update.
13412         (expand_neg_overflow): Update.
13413         (expand_mul_overflow): Update.
13414         * loop-doloop.c (doloop_modify): Update.
13415         * loop-unroll.c (compare_and_jump_seq): Update.
13416         * optabs.c (emit_cmp_and_jump_insn_1): Update.
13417         * predict.h: Update.
13418         * reorg.c (mostly_true_jump): Update.
13419         * rtl.h: Update.
13420         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
13421         * config/alpha/alpha.c (emit_unlikely_jump): Update.
13422         * config/arc/arc.c: (emit_unlikely_jump): Update.
13423         * config/arm/arm.c: (emit_unlikely_jump): Update.
13424         * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
13425         * config/frv/frv.c (frv_print_operand_jump_hint): Update.
13426         * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
13427         (ix86_print_operand): Update.
13428         (ix86_split_fp_branch): Update.
13429         (predict_jump): Update.
13430         * config/ia64/ia64.c (ia64_print_operand): Update.
13431         * config/mmix/mmix.c (mmix_print_operand): Update.
13432         * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
13433         (rs6000_expand_split_stack_prologue): Update.
13434         * config/rs6000/rs6000.c: Update.
13435         * config/s390/s390.c (s390_expand_vec_strlen): Update.
13436         (s390_expand_vec_movstr): Update.
13437         (s390_expand_cs_tdsi): Update.
13438         (s390_expand_split_stack_prologue): Update.
13439         * config/sh/sh.c (sh_print_operand): Update.
13440         (expand_cbranchsi4): Update.
13441         (expand_cbranchdi4): Update.
13442         * config/sparc/sparc.c (output_v9branch): Update.
13443         * config/spu/spu.c (get_branch_target): Update.
13444         (ea_load_store_inline): Update.
13445         * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
13446         * config/tilepro/tilepro.c: Update.
13448 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
13450         * gimplify.c (mostly_copy_tree_r): Revert latest change.
13451         (gimplify_save_expr): Likewise.
13453 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
13455         * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
13457 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
13459         * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
13460         TV_IPA_FNSUMMARY.
13461         * timevar.def (TV_IPA_FNSUMMARY): Define.
13463 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
13465         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
13466         to back store errata sensitive sequence from being generated.
13467         (sqrtdf2_fix): Likewise.
13469 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
13471         * tree-ssa-threadupdate.c (compute_path_counts,
13472         update_joiner_offpath_counts): Use profile_probability.
13474 2017-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13476         Revert:
13477         2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13479         * config/arm/arm-c.c (arm_cpu_builtins): Define
13480         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
13482 2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13484         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13485         array entries to represent __ieee128 versions of the
13486         scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
13487         scalar_extract_sig, and scalar_insert_exp built-in functions.
13488         (altivec_resolve_overloaded_builtin): Add special case handling
13489         for the __builtin_scalar_insert_exp function, as represented by
13490         the P9V_BUILTIN_VEC_VSIEDP constant.
13491         * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
13492         exponent support for __ieee128 argument.
13493         (VSESQP): Add scalar extract signature support for __ieee128
13494         argument.
13495         (VSTDCNQP): Add scalar test negative support for __ieee128
13496         argument.
13497         (VSIEQP): Add scalar insert exponent support for __int128 argument
13498         with __ieee128 result.
13499         (VSIEQPF): Add scalar insert exponent support for __ieee128
13500         argument with __ieee128 result.
13501         (VSTDCQP): Add scalar test data class support for __ieee128
13502         argument.
13503         (VSTDCNQP): Add overload support for scalar test negative with
13504         __ieee128 argument.
13505         (VSTDCQP): Add overload support for scalar test data class
13506         __ieee128 argument.
13507         * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
13508         UNSPEC_VSX_SXSIGDP.
13509         (UNSPEC_VSX_SIEXPQP): New constant.
13510         (xsxexpqp): New insn for VSX scalar extract exponent quad
13511         precision.
13512         (xsxsigqp): New insn for VSX scalar extract significand quad
13513         precision.
13514         (xsiexpqpf): New insn for VSX scalar insert exponent quad
13515         precision with floating point argument.
13516         (xststdcqp): New expand for VSX scalar test data class quad
13517         precision.
13518         (xststdcnegqp): New expand for VSX scalar test negative quad
13519         precision.
13520         (xststdcqp): New insn to match expansions for VSX scalar test data
13521         class quad precision and VSX scalar test negative quad precision.
13522         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
13523         special case operand checking to enforce that second operand of
13524         VSX scalar test data class with quad precision argument is a 7-bit
13525         unsigned literal.
13526         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
13527         prototypes and descriptions of __ieee128 versions of
13528         scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
13529         scalar_test_data_class, and scalar_test_neg built-in functions.
13531 2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13533         PR tree-optimization/81162
13534         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
13535         replace a negate with an add.
13537 2017-07-14  James Greenhalgh  <james.greenhalgh@arm.com>
13539         * doc/invoke.texi (arm/-mcpu): Document +crypto.
13541 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13543         * config/arm/arm-c.c (arm_cpu_builtins): Define
13544         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
13546 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13548         * config/arm/arm-cpus.in (cortex-r52): Add new entry.
13549         (armv8-r): Set ARM Cortex-R52 as default CPU.
13550         * config/arm/arm-tables.opt: Regenerate.
13551         * config/arm/arm-tune.md: Regenerate.
13552         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
13553         Cortex-R52.
13554         * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
13555         extension for -mcpu=cortex-r52.
13557 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13559         * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
13560         (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
13561         * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
13562         (fp-armv8): Define it as FP_ARMv8 only.
13563         config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
13564         (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
13565         TARGET_FPU_ARMV8.
13566         config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
13567         TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
13568         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
13569         first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
13570         than TARGET_FPU_ARMV8.
13571         * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
13572         __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
13573         * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
13574         TARGET_FPU_ARMV8.
13575         * config/arm/neon.md (neon_vrint): Likewise.
13576         (neon_vcvt): Likewise.
13577         (neon_<fmaxmin_op><mode>): Likewise.
13578         (<fmaxmin><mode>3): Likewise.
13579         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
13580         * config/arm/predicates.md (arm_cond_move_operator): Check against
13581         TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
13583 2017-07-14  Jackson Woodruff  <jackson.woodruff@arm.com>
13585         * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
13586         to top of function.
13588 2017-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13590         * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
13591         loop in comment with memset.
13593 2017-07-14  Martin Liska  <mliska@suse.cz>
13595         * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
13596         * dwarf2out.c (is_java): Remove the function.
13597         (output_pubname): Remove usage of the function.
13598         (lower_bound_default): Remove usage of DW_LANG_Java.
13599         (gen_compile_unit_die): Likewise.
13600         * gcc.c: Remove compiler defaults for .java and .zip files.
13601         * gimple-expr.c (remove_suffix): Change as there's no longer
13602         extension than 4-letter one.
13603         * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
13604         (gimplify_save_expr): Likewise.
13605         * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
13606         as it's possible even for other languages than Java.
13607         * langhooks.h (struct lang_hooks): Remove Java from a comment.
13608         * lto-opts.c (lto_write_options): Remove reference to Java.
13609         * opts.c (strip_off_ending): Update file extension handling.
13610         * tree-cfg.c (verify_gimple_call): Remove comment with Java.
13611         * tree-eh.c (lower_resx): Likewise.
13612         * tree.c (free_lang_data_in_type): Remove dead code.
13613         (find_decls_types_r): Likewise.
13614         (build_common_builtin_nodes): Remove Java from a comment.
13615         (verify_type): Remove dead code.
13616         * varasm.c (assemble_external): Remove Java from a comment.
13618 2017-07-14  Martin Liska  <mliska@suse.cz>
13620         * opts.c (finish_options): Add quotes.
13621         (common_handle_option): Likewise.
13623 2017-07-14  Martin Liska  <mliska@suse.cz>
13625         * dbxout.c (get_lang_number): Do not handle GNU Pascal.
13626         * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
13627         Remove N_SO_PASCAL.
13628         * dwarf2out.c (lower_bound_default): Do not handle
13629         DW_LANG_Pascal83.
13630         (gen_compile_unit_die): Likewise.
13631         * gcc.c: Remove default extension binding for GNU Pascal.
13632         * stmt.c: Remove Pascal language from a comment.
13633         * xcoffout.c: Likewise.
13635 2017-07-13  David Malcolm  <dmalcolm@redhat.com>
13637         PR c/81405
13638         * diagnostic-show-locus.c (fixit_cmp): New function.
13639         (layout::layout): Sort m_fixit_hints.
13640         (column_range::column_range): Assert that the values are valid.
13641         (struct char_span): New struct.
13642         (correction::overwrite): New method.
13643         (struct source_line): New struct.
13644         (line_corrections::add_hint): Add assertions.  Reimplement memcpy
13645         calls in terms of classes source_line and char_span, and
13646         correction::overwrite.
13647         (selftest::test_overlapped_fixit_printing_2): New function.
13648         (selftest::diagnostic_show_locus_c_tests): Call it.
13650 2017-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
13652         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
13653         early if there is no lhs.
13655 2017-07-13  Martin Liska  <mliska@suse.cz>
13657         * dwarf2out.c (gen_pointer_type_die): Remove dead code.
13658         (gen_reference_type_die): Likewise.
13659         * stor-layout.c: Remove Pascal-related comment.
13661 2017-07-13  Martin Liska  <mliska@suse.cz>
13663         * opts.c (finish_options): Add quotes to error messages.
13664         (parse_sanitizer_options): Likewise.
13666 2017-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13668         * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
13670 2017-07-13  Richard Earnshaw  <rearnsha@arm.com>
13672         * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
13674 2017-07-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
13676         * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
13677         during expansion.
13678         * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
13680 2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
13682         PR target/81193
13683         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
13684         provides the hardware capability bits, define the macro
13685         __BUILTIN_CPU_SUPPORTS__.
13686         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
13687         if GLIBC does not provide the hardware capability bits.  Add a
13688         gcc_unreachable call if the built-in cpu function is neither
13689         __builtin_cpu_is nor __builtin_cpu_supports.
13690         (rs6000_get_function_versions_dispatcher): Change the warning
13691         that an old GLIBC is used which does not export the capability
13692         bits to be an error.
13693         * doc/extend.texi (target_clones attribute): Document the
13694         restriction that GLIBC 2.23 or newer is needed on the PowerPC.
13695         (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
13696         needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
13697         the macros defined by GCC if the newer GLIBC is available.
13699 2017-07-12  Jeff Law  <law@redhat.com>
13701         * config/riscv/riscv.c: Remove unnecessary includes.  Reorder
13702         remaining includes slightly.
13703         * config/riscv/riscv-builtins.c: Include profile-count.h.
13705 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
13707         PR target/79883
13708         * config/avr/avr.c (avr_set_current_function): In diagnostic
13709         messages: Quote keywords and (parts of) identifiers.
13710         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
13711         "INTERUPT".
13713 2017-07-12  Carl Love  <cel@us.ibm.com>
13715         * config/rs6000/rs6000-c.c: Add support for built-in functions
13716         vector bool char vec_revb (vector bool char);
13717         vector bool short vec_revb (vector short char);
13718         vector bool int vec_revb (vector bool int);
13719         vector bool long long vec_revb (vector bool long long);
13720         * doc/extend.texi: Update the built-in documentation file for the
13721         new built-in functions.
13723 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13725         * config/s390/s390.md: Remove movcc splitter.
13727 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13729         * config/s390/s390.c (s390_rtx_costs): Return proper costs for
13730         load/store on condition.
13732 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
13734         PR target/81407
13735         * config/avr/avr.c (avr_encode_section_info)
13736         [progmem && !TREE_READONLY]: Error if progmem object needs
13737         constructing.
13739 2017-07-11  Michael Collison  <michael.collison@arm.com>
13741         * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
13742         New pattern.
13744 2017-07-11  Carl Love  <cel@us.ibm.com>
13746         * config/rs6000/rs6000-c.c: Add support for builtins
13747         vector unsigned int vec_parity_lsbb (vector signed int);
13748         vector unsigned int vec_parity_lsbb (vector unsigned int);
13749         vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
13750         vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
13751         vector unsigned long long vec_parity_lsbb (vector signed long long);
13752         vector unsigned long long vec_parity_lsbb (vector unsigned long long);
13753         * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
13754         * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
13755         * doc/extend.texi: Update the built-in documentation file for the
13756         new built-in functions.
13758 2017-07-11  David Malcolm  <dmalcolm@redhat.com>
13760         * diagnostic-show-locus.c: Include "gcc-rich-location.h".
13761         (layout::m_primary_loc): New field.
13762         (layout::layout): Initialize new field.  Move location filtering
13763         logic from here to...
13764         (layout::maybe_add_location_range): ...this new method.  Add
13765         support for filtering to just the lines already specified by other
13766         locations.
13767         (layout::will_show_line_p): New method.
13768         (gcc_rich_location::add_location_if_nearby): New method.
13769         (selftest::test_add_location_if_nearby): New test function.
13770         (selftest::diagnostic_show_locus_c_tests): Call it.
13771         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
13772         New method.
13774 2017-07-11  Tom de Vries  <tom@codesourcery.com>
13776         * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
13777         (bb_first_real_insn): New function.
13778         (nvptx_single): Add extra initialization of broadcasted condition
13779         variables.
13781 2017-07-11  Nathan Sidwell  <nathan@acm.org>
13783         * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
13785 2017-07-11  Georg-Johann Lay  <avr@gjlay.de>
13787         * doc/extend.texi (AVR Function Attributes): Remove weblink to
13788         Binutils doc as TEXI will mess them up.
13789         * doc/invoke.texi (AVR Options): Same here.
13791 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
13793         * config/sparc/sparc.opt (mfix-ut700): New option.
13794         (mfix-gr712rc): Likewise.
13795         (sparc_fix_b2bst): New variable.
13796         * doc/invoke.texi (SPARC options): Document them.
13797         (ARM options): Fix warnings.
13798         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
13799         instructions to prevent sequences that can trigger the store-store
13800         errata for certain LEON3FT processors.
13801         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
13802         (sparc_option_override): Set sparc_fix_b2bst appropriately.
13803         * config/sparc/sparc.md (fix_b2bst): New attribute.
13804         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
13806 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
13808         PR target/81375
13809         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
13810         (rcpps): Ditto.
13811         (*rsqrtsf2_sse): Ditto.
13812         (rsqrtsf2): Ditto.
13813         (div<mode>3): Macroize insn from divdf3 and divsf3
13814         using MODEF mode iterator.
13816 2017-07-10  Martin Sebor  <msebor@redhat.com>
13818         PR tree-optimization/80397
13819         * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
13820         instead of testing for equality to INTEGER_TYPE.
13822 2017-07-10  Vineet Gupta <vgupta@synopsys.com>
13824         * config.gcc: Remove uclibc from arc target spec.
13826 2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
13828         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
13830 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
13832         PR lto/80838
13833         * lto-wrapper.c (remove_option): New function.
13834         (merge_and_complain): Merge PIC/PIE options more realistically.
13836 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
13838         Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
13840         PR target/20296
13841         PR target/81268
13842         * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
13843         (HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
13844         * config.in: Regenerate.
13845         * configure: Regenerate.
13846         * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
13847         * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
13848         * config/avr/avr.opt (-mgas-isr-prologues): New option and...
13849         (TARGET_GASISR_PROLOGUES): ...target mask.
13850         * common/config/avr/avr-common.c
13851         (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
13852         Set -mgas-isr-prologues.
13853         * config/avr/avr-passes.def (avr_pass_pre_proep): Add
13854         INSERT_PASS_BEFORE for it.
13855         * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
13856         * config/avr/avr.c (avr_option_override)
13857         [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
13858         (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
13859         (avr_attribute_table) <no_gccisr>: Add new function attribute.
13860         (avr_set_current_function) <is_no_gccisr>: Init machine field.
13861         (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
13862         and rtl_opt_pass.
13863         (make_avr_pass_pre_proep): New function.
13864         (emit_push_sfr) <treg>: Add argument to function and use it
13865         instead of TMP_REG.
13866         (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
13867         and set machine->gasisr.yes.
13868         (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
13869         (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
13870         __gcc_isr.n_pushed to .L__stack_usage.
13871         (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
13872         (avr_asm_final_postscan_insn): ...this new static function.
13873         * config/avr/avr.h (machine_function)
13874         <is_no_gccisr, use_L__stack_usage>: New fields.
13875         <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
13876         * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
13877         (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
13878         (gasisr, *gasisr): New expander and insn.
13879         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
13880         [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
13881         * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
13883 2017-07-10  Richard Earnshaw  <rearnsha@arm.com>
13885         * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
13886         in quoted strings.
13888 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
13890         Move jump-tables out of .text again.
13892         PR target/81075
13893         * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
13894         (ASM_OUTPUT_ADDR_VEC): New function.
13895         (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
13896         (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
13897         INSN_ADDRESSes as asm comment.
13898         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
13899         (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
13900         (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
13901         * config/avr/avr.md (*tablejump): Adjust comment.
13902         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
13903         * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
13904         New detail.
13905         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
13906         (avr_output_addr_vec): New proto.
13907         (avr_log_t) <insn_addresses>: New field.
13909 2017-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13911         PR target/81313
13912         * config/i386/i386.c (ix86_function_arg_advance): Set
13913         outgoing_args_on_stack to true if there are outgoing arguments
13914         on stack.
13915         (ix86_function_arg): Likewise.
13916         (ix86_get_drap_rtx): Use DRAP only if there are outgoing
13917         arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
13918         * config/i386/i386.h (machine_function): Add
13919         outgoing_args_on_stack.
13921 2017-07-09  Krister Walfridsson  <krister.walfridsson@gmail.com>
13923         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
13924         supporting pthreds.
13925         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
13927 2017-07-08  Richard Sandiford  <richard.sandiford@linaro.org>
13929         * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
13930         (REAL_H): Remove $(MACHMODE_H).
13931         (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
13932         double-int.h.
13933         (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
13934         $(MACHMODE_H) and double-int.h.
13935         (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
13936         $(MACHMODE_H).
13937         (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
13938         double-int.h.
13940 2017-07-07  Andrew Pinski  <apinski@cavium.com>
13942         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
13943         prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
13945 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
13947         * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
13948         Add warning if GCC was not configured to link against a GLIBC that
13949         exports the hardware capability bits.
13950         (make_resolver_func): Make resolver function private and not a
13951         COMDAT function.  Create the name with clone_function_name instead
13952         of make_unique_name.
13954         PR target/81348
13955         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
13956         correct operand in doing the split.
13958 2017-07-07 Carl Love  <cel@us.ibm.com>
13960         * config/rs6000/rs6000-c: Add support for built-in function
13961         vector unsigned short vec_pack_to_short_fp32 (vector float,
13962                                                       vector float).
13963         * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
13964         BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
13965         * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
13966         * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
13967         (convert_4f32_8i16): Add define_expand.
13968         * doc/extend.texi: Update the built-in documentation file for the
13969         new built-in function.
13971 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
13973         * config/sparc/m8.md: New file.
13974         * config/sparc/sparc.md: Include m8.md.
13976 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
13978         * config/sparc/sparc.opt: New option -mvis4b.
13979         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
13980         (sparc_option_override): Handle VIS4B.
13981         (enum sparc_builtins): Define
13982         SPARC_BUILTIN_DICTUNPACK{8,16,32},
13983         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
13984         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
13985         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
13986         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
13987         (check_constant_argument): New function.
13988         (sparc_vis_init_builtins): Define builtins
13989         __builtin_vis_dictunpack{8,16,32},
13990         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
13991         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
13992         __builtin_vis_fpcmpde{8,16,32}shl and
13993         __builtin_vis_fpcmpur{8,16,32}shl.
13994         (sparc_expand_builtin): Check that the constant operands to
13995         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
13996         constant and in range.
13997         * config/sparc/sparc-c.c (sparc_target_macros): Handle
13998         TARGET_VIS4B.
13999         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
14000         (SPARC_IMM5_P): Likewise.
14001         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
14002         (enabled): Handle vis4b.
14003         (UNSPEC_DICTUNPACK): New unspec.
14004         (UNSPEC_FPCMPSHL): Likewise.
14005         (UNSPEC_FPUCMPSHL): Likewise.
14006         (UNSPEC_FPCMPDESHL): Likewise.
14007         (UNSPEC_FPCMPURSHL): Likewise.
14008         (cpu_feature): New CPU feature `vis4b'.
14009         (dictunpack{8,16,32}): New insns.
14010         (FPCSMODE): New mode iterator.
14011         (fpcscond): New code iterator.
14012         (fpcsucond): Likewise.
14013         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
14014         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
14015         (fpcmpde{8,16,32}{si,di}shl): Likewise.
14016         (fpcmpur{8,16,32}{si,di}shl): Likewise.
14017         * config/sparc/constraints.md: Define constraints `q' for unsigned
14018         2-bit integer constants and `t' for unsigned 5-bit integer
14019         constants.
14020         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
14021         predicate.
14022         (imm5_operand_dictunpack16): Likewise.
14023         (imm5_operand_dictunpack32): Likewise.
14024         (imm2_operand): Likewise.
14025         * doc/invoke.texi (SPARC Options): Document -mvis4b.
14026         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
14027         ditunpack* and fpcmp*shl builtins.
14029 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
14031         * config.gcc: Handle m8 in --with-{cpu,tune} options.
14032         * config.in: Add HAVE_AS_SPARC6 define.
14033         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
14034         M8.
14035         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
14036         TARGET_CPU_m8.
14037         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
14038         (CPP_CPU_SPEC): Handle m8.
14039         (ASM_CPU_SPEC): Likewise.
14040         * config/sparc/sparc-opts.h (enum processor_type): Add
14041         PROCESSOR_M8.
14042         * config/sparc/sparc.c (m8_costs): New struct.
14043         (sparc_option_override): Handle TARGET_CPU_m8.
14044         (sparc32_initialize_trampoline): Likewise.
14045         (sparc64_initialize_trampoline): Likewise.
14046         (sparc_issue_rate): Likewise.
14047         (sparc_register_move_cost): Likewise.
14048         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
14049         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
14050         (ASM_CPU64_DEFAULT_SPEC): Likewise.
14051         (CPP_CPU_SPEC): Handle M8.
14052         (ASM_CPU_SPEC): Likewise.
14053         (AS_M8_FLAG): Define.
14054         * config/sparc/sparc.md: Add m8 to the cpu attribute.
14055         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
14056         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
14057         M8 instructions.
14058         * configure: Regenerate.
14059         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
14060         -mtune=m8.
14062 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
14064         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
14065         subtypes.
14066         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
14067         ("*movdi_insn_sp32"): Do not set v3pipe.
14068         ("*movsi_insn"): Likewise.
14069         ("*movdi_insn_sp64"): Likewise.
14070         ("*movsf_insn"): Likewise.
14071         ("*movdf_insn_sp32"): Likewise.
14072         ("*movdf_insn_sp64"): Likewise.
14073         ("*zero_extendsidi2_insn_sp64"): Likewise.
14074         ("*sign_extendsidi2_insn"): Likewise.
14075         ("*mov<VM32:mode>_insn"): Likewise.
14076         ("*mov<VM64:mode>_insn_sp64"): Likewise.
14077         ("*mov<VM64:mode>_insn_sp32"): Likewise.
14078         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
14079         ("<vlop:code><VL:mode>3"): Likewise.
14080         ("*not_<vlop:code><VL:mode>3"): Likewise.
14081         ("*nand<VL:mode>_vis"): Likewise.
14082         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
14083         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
14084         ("one_cmpl<VL:mode>2"): Likewise.
14085         ("faligndata<VM64:mode>_vis"): Likewise.
14086         ("alignaddrsi_vis"): Likewise.
14087         ("alignaddrdi_vis"): Likweise.
14088         ("alignaddrlsi_vis"): Likewise.
14089         ("alignaddrldi_vis"): Likewise.
14090         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
14091         ("bmaskdi_vis"): Likewise.
14092         ("bmasksi_vis"): Likewise.
14093         ("bshuffle<VM64:mode>_vis"): Likewise.
14094         ("cmask8<P:mode>_vis"): Likewise.
14095         ("cmask16<P:mode>_vis"): Likewise.
14096         ("cmask32<P:mode>_vis"): Likewise.
14097         ("pdistn<P:mode>_vis"): Likewise.
14098         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
14100 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
14102         * config/sparc/sparc.md ("subtype"): New insn attribute.
14103         ("*wrgsr_sp64"): Set insn subtype.
14104         ("*rdgsr_sp64"): Likewise.
14105         ("alignaddrsi_vis"): Likewise.
14106         ("alignaddrdi_vis"): Likewise.
14107         ("alignaddrlsi_vis"): Likewise.
14108         ("alignaddrldi_vis"): Likewise.
14109         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
14110         ("fexpand_vis"): Likewise.
14111         ("fpmerge_vis"): Likewise.
14112         ("faligndata<VM64:mode>_vis"): Likewise.
14113         ("bshuffle<VM64:mode>_vis"): Likewise.
14114         ("cmask8<P:mode>_vis"): Likewise.
14115         ("cmask16<P:mode>_vis"): Likewise.
14116         ("cmask32<P:mode>_vis"): Likewise.
14117         ("fchksm16_vis"): Likewise.
14118         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
14119         ("fmean16_vis"): Likewise.
14120         ("fp<plusminus_insn>64_vis"): Likewise.
14121         ("<plusminus_insn>v8qi3"): Likewise.
14122         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
14123         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
14124         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
14125         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
14126         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
14127         ("*movqi_insn"): Likewise.
14128         ("*movhi_insn"): Likewise.
14129         ("*movsi_insn"): Likewise.
14130         ("movsi_pic_gotdata_op"): Likewise.
14131         ("*movdi_insn_sp32"): Likewise.
14132         ("*movdi_insn_sp64"): Likewise.
14133         ("movdi_pic_gotdata_op"): Likewise.
14134         ("*movsf_insn"): Likewise.
14135         ("*movdf_insn_sp32"): Likewise.
14136         ("*movdf_insn_sp64"): Likewise.
14137         ("*zero_extendhisi2_insn"): Likewise.
14138         ("*zero_extendqihi2_insn"): Likewise.
14139         ("*zero_extendqisi2_insn"): Likewise.
14140         ("*zero_extendqidi2_insn"): Likewise.
14141         ("*zero_extendhidi2_insn"): Likewise.
14142         ("*zero_extendsidi2_insn_sp64"): Likewise.
14143         ("ldfsr"): Likewise.
14144         ("prefetch_64"): Likewise.
14145         ("prefetch_32"): Likewise.
14146         ("tie_ld32"): Likewise.
14147         ("tie_ld64"): Likewise.
14148         ("*tldo_ldub_sp32"): Likewise.
14149         ("*tldo_ldub1_sp32"): Likewise.
14150         ("*tldo_ldub2_sp32"): Likewise.
14151         ("*tldo_ldub_sp64"): Likewise.
14152         ("*tldo_ldub1_sp64"): Likewise.
14153         ("*tldo_ldub2_sp64"): Likewise.
14154         ("*tldo_ldub3_sp64"): Likewise.
14155         ("*tldo_lduh_sp32"): Likewise.
14156         ("*tldo_lduh1_sp32"): Likewise.
14157         ("*tldo_lduh_sp64"): Likewise.
14158         ("*tldo_lduh1_sp64"): Likewise.
14159         ("*tldo_lduh2_sp64"): Likewise.
14160         ("*tldo_lduw_sp32"): Likewise.
14161         ("*tldo_lduw_sp64"): Likewise.
14162         ("*tldo_lduw1_sp64"): Likewise.
14163         ("*tldo_ldx_sp64"): Likewise.
14164         ("*mov<VM32:mode>_insn"): Likewise.
14165         ("*mov<VM64:mode>_insn_sp64"): Likewise.
14166         ("*mov<VM64:mode>_insn_sp32"): Likewise.
14168 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
14170         * config/sparc/sparc.md ("type"): New insn type viscmp.
14171         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
14172         viscmp.
14173         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
14174         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
14175         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
14176         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
14177         viscmp.
14178         ("n7_vis_logical_11cycle"): Likewise.
14179         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
14180         * config/sparc/niagara2.md ("niag3_vis": Likewise.
14181         * config/sparc/niagara.md ("niag_vis"): Likewise.
14182         * config/sparc/ultra3.md ("us3_fga"): Likewise.
14183         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
14185 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
14187         * config/sparc/sparc.md: New instruction type `bmask'.
14188         (bmaskdi_vis): Use the `bmask' type.
14189         (bmasksi_vis): Likewise.
14190         * config/sparc/ultra3.md (us3_array): Likewise.
14191         * config/sparc/niagara7.md (n7_array): Likewise.
14192         * config/sparc/niagara4.md (n4_array): Likewise.
14193         * config/sparc/niagara2.md (niag2_vis): Likewise.
14194         (niag3_vis): Likewise.
14195         * config/sparc/niagara.md (niag_vis): Likewise.
14197 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
14199         * ipa-comdats.c: Remove optimize check from gate.
14200         * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
14201         for functions not optimized.
14202         (ipa_fn_summary_read): Skip optimize check.
14203         (ipa_fn_summary_write): Likewise.
14204         * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
14205         is optimized.
14206         * ipa-inline.c (can_inline_edge_p): Not optimized functions are
14207         uninlinable.
14208         (can_inline_edge_p): Check flag_pcc_struct_return for match.
14209         (check_callers): Give up on caller which is not optimized.
14210         (inline_small_functions): Likewise.
14211         (ipa_inline): Do not give up when not optimizing.
14212         * ipa-visbility.c (function_and_variable_visibility): Do not optimize
14213         away unoptimizes cdtors.
14214         (whole_program_function_and_variable_visibility): Do
14215         ipa_discover_readonly_nonaddressable_vars in LTO mode.
14216         * ipa.c (process_references): Do not check optimize.
14217         (symbol_table::remove_unreachable_nodes): Update optimize check.
14218         (set_writeonly_bit): Update optimize check.
14219         (pass_ipa_cdtor_merge::gate): Do not check optimize.
14220         (pass_ipa_single_use::gate): Remove.
14222 2017-07-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
14224         * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
14225         insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
14226         rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
14227         mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
14228         permute_load, permute_store, adjust_extract, adjust_splat,
14229         adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
14230         replace_swap_with_copy, dump_swap_insn_table,
14231         alignment_with_canonical_addr, alignment_mask, find_alignment_op,
14232         recombine_lvx_pattern, recombine_stvx_pattern,
14233         recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
14234         make_pass_analyze_swaps): Move all code related to p8 swap optimizations
14235         to file rs6000-p8swap.c.
14236         * config/rs6000/rs6000-p8swap.c: New file.
14237         * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
14238         * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
14239         and rs6000*-*-* targets.
14241 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
14243         * Makefile.in (selftest): Remove dependency on s-selftest-c++.
14245 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
14247         * lto-wrapper.c (merge_and_complain): Do not merge
14248         fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
14249         fsigned_zeros, ftrapping_math, fwrapv.
14250         (append_compiler_options): Do not track these options.
14251         (append_linker_options): Likewie
14253 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
14255         * cgraphunit.c (cgraph_node::finalize_function): When
14256         !flag_toplevel_reorde set no_reorder flag.
14257         (varpool_node::finalize_decl): Likewise.
14258         (symbol_table::compile): Drop no toplevel reorder path.
14260 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
14262         * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
14263         edges; zero probability is not better than uninitialized.
14265 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
14267         * asan.h (asan_sanitize_allocas_p): Declare.
14268         * asan.c (asan_sanitize_allocas_p): New function.
14269         (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
14270         (handle_builtin_alloca): Likewise.
14271         * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
14272         if !asan_sanitize_allocas_p.
14273         * params.def (asan-instrument-allocas): Add new option.
14274         * params.h (ASAN_PROTECT_ALLOCAS): Define.
14275         * opts.c (common_handle_option): Disable allocas sanitization for
14276         KASan by default.
14278 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
14280         * asan.c: Include gimple-fold.h.
14281         (get_last_alloca_addr): New function.
14282         (handle_builtin_stackrestore): Likewise.
14283         (handle_builtin_alloca): Likewise.
14284         (asan_emit_allocas_unpoison): Likewise.
14285         (get_mem_refs_of_builtin_call): Add new parameter, remove const
14286         quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
14287         BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
14288         (instrument_builtin_call): Pass gimple iterator to
14289         get_mem_refs_of_builtin_call.
14290         (last_alloca_addr): New global.
14291         * asan.h (asan_emit_allocas_unpoison): Declare.
14292         * builtins.c (expand_asan_emit_allocas_unpoison): New function.
14293         (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
14294         * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
14295         if function calls alloca.
14296         * gimple-fold.c (replace_call_with_value): Remove static keyword.
14297         * gimple-fold.h (replace_call_with_value): Declare.
14298         * internal-fn.c: Include asan.h.
14299         * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
14300         BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
14302 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
14304         * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
14305         (C_SELFTEST_FLAGS): New.
14306         (CPP_SELFTEST_FLAGS): New.
14307         (SELFTEST_DEPS): New, from deps of s-selftest.
14308         (C_SELFTEST_DEPS): New, from deps of s-selftest.
14309         (CPP_SELFTEST_DEPS): New.
14310         (selftest): Add dependency on s-selftest-c++.
14311         (s-selftest): Rename to...
14312         (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
14313         and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
14314         than SELFTEST_FLAGS.
14315         (selftest-gdb): Rename to...
14316         (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
14317         C_SELFTEST_FLAGS.
14318         (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
14319         (selftest-valgrind): Rename to...
14320         (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
14321         C_SELFTEST_FLAGS.
14322         (selftest-valgrind): Reintroduce as an alias for
14323         selftest-c-valgrind.
14324         (s-selftest-c++): New.
14325         (selftest-c++-gdb): New.
14326         (selftest-c++-valgrind): New.
14328 2017-07-06  Olivier Hainque  <hainque@adacore.com>
14330         * gcc.c (process_command): When deciding if undefined variables
14331         should be ignored when processing specs, accept "gcc -v" as well.
14333 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
14335         * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
14336         afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
14338 2017-07-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14340         * config/arm/arm-cpus.in (armv8-r): Add new entry.
14341         * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
14342         * config/arm/arm-tables.opt: Regenerate.
14343         * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
14344         enumerator.
14345         * doc/invoke.texi: Mention -march=armv8-r and its extensions.
14347 2017-07-06  Carl Love  <cel@us.ibm.com>
14349         * ChangeLog: Clean up from mid air collision
14351 2017-07-06  Carl Love  <cel@us.ibm.com>
14353         * config/rs6000/rs6000-c.c: Add support for built-in functions
14354         vector signed int vec_subc (vector signed int, vector signed int);
14355         vector signed __int128 vec_subc (vector signed __int128,
14356                                          vector signed __int128);
14357         vector unsigned __int128 vec_subc (vector unsigned __int128,
14358                                            vector unsigned __int128);
14359         vector signed int vec_sube (vector signed int, vector signed int,
14360                                     vector signed int);
14361         vector unsigned int vec_sube (vector unsigned int,
14362                                       vector unsigned int,
14363                                       vector unsigned int);
14364         vector signed __int128 vec_sube (vector signed __int128,
14365                                          vector signed __int128,
14366                                          vector signed__int128);
14367         vector unsigned __int128 vec_sube (vector unsigned __int128,
14368                                            vector unsigned __int128,
14369                                            vector unsigned __int128);
14370         vector signed int vec_subec (vector signed int, vector signed int,
14371                                      vector signed int);
14372         vector unsigned int vec_subec (vector unsigned int,
14373                                        vector unsigned int,
14374                                        vector unsigned int);
14375         vector signed __int128 vec_subec (vector signed __int128,
14376                                           vector signed __int128,
14377                                           vector signed__int128);
14378         vector unsigned __int128 vec_subec (vector unsigned __int128,
14379                                             vector unsigned __int128,
14380                                             vector unsigned __int128);
14381         * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
14382         ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
14383         * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
14384         BU_ALTIVEC_OVERLOAD_X definitions.
14385         * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
14386         * doc/extend.texi: Update the built-in documentation file for the new
14387         built-in functions.
14389 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
14391         PR c++/79300
14392         * diagnostic-show-locus.c (layout::layout): Use start and finish
14393         spelling location for the start and finish of each range.
14394         * genmatch.c (linemap_client_expand_location_to_spelling_point):
14395         Add unused aspect param.
14396         * input.c (expand_location_1): Add "aspect" param, and use it
14397         to access the correct part of the location.
14398         (expand_location): Pass LOCATION_ASPECT_CARET to new param of
14399         expand_location_1.
14400         (expand_location_to_spelling_point): Likewise.
14401         (linemap_client_expand_location_to_spelling_point): Add "aspect"
14402         param, and pass it to expand_location_1.
14404 2017-07-06  Sebastian Peryt  <sebastian.peryt@intel.com>
14406         * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
14407         _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
14408         _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
14409         _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
14410         _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
14411         _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
14412         _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
14413         _mm_maskz_getmant_ss): New intrinsics.
14414         (__builtin_ia32_getexpss128_mask): Changed to ...
14415         __builtin_ia32_getexpss128_round ... this.
14416         (__builtin_ia32_getexpsd128_mask): Changed to ...
14417         __builtin_ia32_getexpsd128_round ... this.
14418         * config/i386/i386-builtin-types.def
14419         ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
14420         (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
14421         * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
14422         __builtin_ia32_getexpss_mask_round,     __builtin_ia32_getmantsd_mask_round,
14423         __builtin_ia32_getmantss_mask_round): New builtins.
14424         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
14425         V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
14426         (CODE_FOR_avx512f_vgetmantv2df_mask_round,
14427         CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
14428         * config/i386/sse.md
14429         (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
14430         avx512f_sgetexp<mode><mask_scalar_name>
14431         <round_saeonly_scalar_name> ... this.
14432         (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
14433         %0, %1, %2<round_saeonly_op3>}): Changed to ...
14434         vgetexp<ssescalarmodesuffix>
14435         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14436         %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
14437         (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
14438         avx512f_vgetmant<mode><mask_scalar_name>
14439         <round_saeonly_scalar_name> ... this.
14440         (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
14441         %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
14442         vgetmant<ssescalarmodesuffix>
14443         \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
14444         %0<mask_scalar_operand4>, %1, %2
14445         <round_saeonly_scalar_mask_op4>, %3} ... this.
14446         * config/i386/subst.md (mask_scalar_operand4,
14447         round_saeonly_scalar_mask_operand4,     round_saeonly_scalar_mask_op4,
14448         round_saeonly_scalar_nimm_predicate): New subst attributes.
14450 2017-07-06  Julia Koval  <julia.koval@intel.com>
14452         * config/i386/i386.c (ix86_erase_embedded_rounding):
14453         Remove code for old rounding pattern.
14455 2017-07-06  Richard Earnshaw  <rearnsha@arm.com>
14457         * config/arm/t-arm (GTM_H): Add arm-cpu.h.
14459 2017-07-06  Christophe Lyon  <christophe.lyon@linaro.org>
14461         * doc/sourcebuild.texi (Test Directives, Variants of
14462         dg-require-support): Add documentation for dg-require-stack-check.
14464 2017-07-05  Sebastian Peryt  <sebastian.peryt@intel.com>
14466         * config/i386/subst.md (mask_scalar, round_scalar,
14467         round_saeonly_scalar): New meta-templates.
14468         (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
14469         round_scalar_mask_operand3, round_scalar_mask_op3,
14470         round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
14471         round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
14472         round_saeonly_scalar_constraint,
14473         round_saeonly_scalar_prefix): New subst attribute.
14474         * config/i386/sse.md
14475         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
14476         <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
14477         <round_scalar_name> ... this.
14478         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
14479         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
14480         <round_scalar_name> ... this.
14481         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
14482         <sse>_vm<code><mode>3<mask_scalar_name>
14483         <round_saeonly_scalar_name> ... this.
14484         (v<plusminus_mnemonic><ssescalarmodesuffix>
14485         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
14486         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
14487         v<plusminus_mnemonic><ssescalarmodesuffix>
14488         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14489         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
14490         (v<multdiv_mnemonic><ssescalarmodesuffix>
14491         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
14492         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
14493         v<multdiv_mnemonic><ssescalarmodesuffix>
14494         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14495         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
14496         (v<maxmin_float><ssescalarmodesuffix>
14497         \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
14498         %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
14499         v<maxmin_float><ssescalarmodesuffix>
14500         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14501         %0<mask_scalar_operand3>, %1, %<iptr>2
14502         <round_saeonly_scalar_mask_op3>} ... this.
14504 2017-07-05  Richard Earnshaw  <rearnsha@arm.com>
14506         * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
14507         (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
14509 2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
14510             Alan Hayward  <alan.hayward@arm.com>
14511             David Sherwood  <david.sherwood@arm.com>
14513         * combine.c (simplify_if_then_else): Remove "enum" before
14514         "machine_mode".
14515         * compare-elim.c (can_eliminate_compare): Likewise.
14516         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
14517         Likewise.
14518         (aarch64_lookup_simd_builtin_type): Likewise.
14519         (aarch64_simd_builtin_type): Likewise.
14520         (aarch64_init_simd_builtin_types): Likewise.
14521         (aarch64_simd_expand_args): Likewise.
14522         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
14523         Likewise.
14524         (aarch64_reverse_mask): Likewise.
14525         (aarch64_simd_emit_reg_reg_move): Likewise.
14526         (aarch64_gen_adjusted_ldpstp): Likewise.
14527         (aarch64_ccmp_mode_to_code): Likewise.
14528         (aarch64_operands_ok_for_ldpstp): Likewise.
14529         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
14530         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
14531         Likewise.
14532         (aarch64_min_divisions_for_recip_mul): Likewise.
14533         (aarch64_reassociation_width): Likewise.
14534         (aarch64_get_condition_code_1): Likewise.
14535         (aarch64_simd_emit_reg_reg_move): Likewise.
14536         (aarch64_simd_attr_length_rglist): Likewise.
14537         (aarch64_reverse_mask): Likewise.
14538         (aarch64_operands_ok_for_ldpstp): Likewise.
14539         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
14540         (aarch64_gen_adjusted_ldpstp): Likewise.
14541         * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
14542         Likewise.
14543         * config/arc/arc.c (legitimate_offset_address_p): Likewise.
14544         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
14545         (arm_lookup_simd_builtin_type): Likewise.
14546         (arm_simd_builtin_type): Likewise.
14547         (arm_init_simd_builtin_types): Likewise.
14548         (arm_expand_builtin_args): Likewise.
14549         * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
14550         * config/ft32/ft32.c (ft32_libcall_value): Likewise.
14551         (ft32_setup_incoming_varargs): Likewise.
14552         (ft32_function_arg): Likewise.
14553         (ft32_function_arg_advance): Likewise.
14554         (ft32_pass_by_reference): Likewise.
14555         (ft32_arg_partial_bytes): Likewise.
14556         (ft32_valid_pointer_mode): Likewise.
14557         (ft32_addr_space_pointer_mode): Likewise.
14558         (ft32_addr_space_legitimate_address_p): Likewise.
14559         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
14560         Likewise.
14561         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
14562         (ix86_emit_outlined_ms2sysv_restore): Likewise.
14563         (iamcu_alignment): Likewise.
14564         (canonicalize_vector_int_perm): Likewise.
14565         (ix86_noce_conversion_profitable_p): Likewise.
14566         (ix86_mpx_bound_mode): Likewise.
14567         (ix86_operands_ok_for_move_multiple): Likewise.
14568         * config/microblaze/microblaze-protos.h
14569         (microblaze_expand_conditional_branch_reg): Likewise.
14570         * config/microblaze/microblaze.c
14571         (microblaze_expand_conditional_branch_reg): Likewise.
14572         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
14573         Likewise.
14574         (rs6000_reassociation_width): Likewise.
14575         (rs6000_invalid_binary_op): Likewise.
14576         (fusion_p9_p): Likewise.
14577         (emit_fusion_p9_load): Likewise.
14578         (emit_fusion_p9_store): Likewise.
14579         * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
14580         Likewise.
14581         (riscv_hard_regno_mode_ok_p): Likewise.
14582         (riscv_address_insns): Likewise.
14583         (riscv_split_symbol): Likewise.
14584         (riscv_legitimize_move): Likewise.
14585         (riscv_function_value): Likewise.
14586         (riscv_hard_regno_nregs): Likewise.
14587         (riscv_expand_builtin): Likewise.
14588         * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
14589         (riscv_build_integer): Likewise.
14590         (riscv_split_integer): Likewise.
14591         (riscv_legitimate_constant_p): Likewise.
14592         (riscv_cannot_force_const_mem): Likewise.
14593         (riscv_regno_mode_ok_for_base_p): Likewise.
14594         (riscv_valid_base_register_p): Likewise.
14595         (riscv_valid_offset_p): Likewise.
14596         (riscv_valid_lo_sum_p): Likewise.
14597         (riscv_classify_address): Likewise.
14598         (riscv_legitimate_address_p): Likewise.
14599         (riscv_address_insns): Likewise.
14600         (riscv_load_store_insns): Likewise.
14601         (riscv_force_binary): Likewise.
14602         (riscv_split_symbol): Likewise.
14603         (riscv_force_address): Likewise.
14604         (riscv_legitimize_address): Likewise.
14605         (riscv_move_integer): Likewise.
14606         (riscv_legitimize_const_move): Likewise.
14607         (riscv_legitimize_move): Likewise.
14608         (riscv_address_cost): Likewise.
14609         (riscv_subword): Likewise.
14610         (riscv_output_move): Likewise.
14611         (riscv_canonicalize_int_order_test): Likewise.
14612         (riscv_emit_int_order_test): Likewise.
14613         (riscv_function_arg_boundary): Likewise.
14614         (riscv_pass_mode_in_fpr_p): Likewise.
14615         (riscv_pass_fpr_single): Likewise.
14616         (riscv_pass_fpr_pair): Likewise.
14617         (riscv_get_arg_info): Likewise.
14618         (riscv_function_arg): Likewise.
14619         (riscv_function_arg_advance): Likewise.
14620         (riscv_arg_partial_bytes): Likewise.
14621         (riscv_function_value): Likewise.
14622         (riscv_pass_by_reference): Likewise.
14623         (riscv_setup_incoming_varargs): Likewise.
14624         (riscv_print_operand): Likewise.
14625         (riscv_elf_select_rtx_section): Likewise.
14626         (riscv_save_restore_reg): Likewise.
14627         (riscv_for_each_saved_reg): Likewise.
14628         (riscv_register_move_cost): Likewise.
14629         (riscv_hard_regno_mode_ok_p): Likewise.
14630         (riscv_hard_regno_nregs): Likewise.
14631         (riscv_class_max_nregs): Likewise.
14632         (riscv_memory_move_cost): Likewise.
14633         * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
14634         * config/rl78/rl78.c (rl78_split_movsi): Likewise.
14635         (rl78_addr_space_address_mode): Likewise.
14636         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14637         Likewise.
14638         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
14639         (rs6000_reassociation_width): Likewise.
14640         (rs6000_invalid_binary_op): Likewise.
14641         (fusion_p9_p): Likewise.
14642         (emit_fusion_p9_load): Likewise.
14643         (emit_fusion_p9_store): Likewise.
14644         * config/visium/visium-protos.h (prepare_move_operands): Likewise.
14645         (ok_for_simple_move_operands): Likewise.
14646         (ok_for_simple_move_strict_operands): Likewise.
14647         (ok_for_simple_arith_logic_operands): Likewise.
14648         (visium_legitimize_reload_address): Likewise.
14649         (visium_select_cc_mode): Likewise.
14650         (output_cbranch): Likewise.
14651         (visium_split_double_move): Likewise.
14652         (visium_expand_copysign): Likewise.
14653         (visium_expand_int_cstore): Likewise.
14654         (visium_expand_fp_cstore): Likewise.
14655         * config/visium/visium.c (visium_pass_by_reference): Likewise.
14656         (visium_function_arg): Likewise.
14657         (visium_function_arg_advance): Likewise.
14658         (visium_libcall_value): Likewise.
14659         (visium_setup_incoming_varargs): Likewise.
14660         (visium_legitimate_constant_p): Likewise.
14661         (visium_legitimate_address_p): Likewise.
14662         (visium_legitimize_address): Likewise.
14663         (visium_secondary_reload): Likewise.
14664         (visium_register_move_cost): Likewise.
14665         (visium_memory_move_cost): Likewise.
14666         (prepare_move_operands): Likewise.
14667         (ok_for_simple_move_operands): Likewise.
14668         (ok_for_simple_move_strict_operands): Likewise.
14669         (ok_for_simple_arith_logic_operands): Likewise.
14670         (visium_function_value_1): Likewise.
14671         (rtx_ok_for_offset_p): Likewise.
14672         (visium_legitimize_reload_address): Likewise.
14673         (visium_split_double_move): Likewise.
14674         (visium_expand_copysign): Likewise.
14675         (visium_expand_int_cstore): Likewise.
14676         (visium_expand_fp_cstore): Likewise.
14677         (visium_split_cstore): Likewise.
14678         (visium_select_cc_mode): Likewise.
14679         (visium_split_cbranch): Likewise.
14680         (output_cbranch): Likewise.
14681         (visium_print_operand_address): Likewise.
14682         * expmed.c (flip_storage_order): Likewise.
14683         * expmed.h (emit_cstore): Likewise.
14684         (flip_storage_order): Likewise.
14685         * genrecog.c (validate_pattern): Likewise.
14686         * hsa-gen.c (gen_hsa_addr): Likewise.
14687         * internal-fn.c (expand_arith_overflow): Likewise.
14688         * ira-color.c (allocno_copy_cost_saving): Likewise.
14689         * lra-assigns.c (find_hard_regno_for_1): Likewise.
14690         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
14691         (process_invariant_for_inheritance): Likewise.
14692         * lra-eliminations.c (move_plus_up): Likewise.
14693         * omp-low.c (lower_oacc_reductions): Likewise.
14694         * simplify-rtx.c (simplify_subreg): Likewise.
14695         * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
14696         (TARGET_CHKP_BOUND_MODE): Likewise..
14697         * targhooks.c (default_chkp_bound_mode): Likewise.
14698         (default_setup_incoming_vararg_bounds): Likewise.
14699         * targhooks.h (default_chkp_bound_mode): Likewise.
14700         (default_setup_incoming_vararg_bounds): Likewise.
14701         * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
14702         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
14703         (have_whole_vector_shift): Likewise.
14704         * tree-vect-stmts.c (vectorizable_load): Likewise.
14705         * doc/tm.texi: Regenerate.
14707 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
14709         Graceful degrade if Binutils PR21472 is not available.
14711         PR target/81072
14712         * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
14713         .rodata in flash test fails.
14714         (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
14715         * confgure: Regenerate.
14716         * config.in: Regenerate.
14717         * config/avr/avr.c (avr_asm_named_section)
14718         [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
14719         __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
14720         (avr_asm_init_sections): Same.
14722 2017-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14724         * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
14725         (fma<VH:mode>4_intrinsic): Likewise.
14726         (*fmsub<VCVTF:mode>4): Likewise.
14727         (*fmsub<VH:mode>4_intrinsic): Likewise.
14729 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
14731         PR target/81305
14732         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
14733         Don't depend on "optimize > 0".
14734         (out_movhi_r_mr, out_movqi_mr_r): Same.
14735         (out_movhi_mr_r, out_movqi_r_mr): Same.
14736         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
14737         io_address_operand on "optimize > 0".
14739 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14741         * tree-loop-distribution.c: Add general explanantion on the pass.
14742         (generate_loops_for_partition): Mark distributed loop.
14743         (pg_add_dependence_edges): New parameter.  Handle alias data
14744         dependence specially and record it in the parameter if asked.
14745         (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
14746         (init_partition_graph_vertices, add_partition_graph_edge): New.
14747         (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
14748         (free_partition_graph_vdata, build_partition_graph): New.
14749         (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
14750         (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
14751         (data_ref_segment_size, latch_dominated_by_data_ref): New.
14752         (compute_alias_check_pairs, version_loop_by_alias_check): New.
14753         (version_for_distribution_p, finalize_partitions): New.
14754         (distribute_loop): Handle alias data dependence specially.  Factor
14755         out loop fusion code as functions and call these functions.
14757 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14759         * tree-loop-distribution.c (classify_partition): New parameter and
14760         better handle reduction statement.
14761         (rdg_build_partitions): Revise comment.
14762         (distribute_loop): Compute statements in all partitions and pass it
14763         to classify_partition.
14765 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14767         * tree-loop-distribution.c (enum partition_type): New.
14768         (struct partition): New field type.
14769         (partition_merge_into): Add parameter.  Update partition type.
14770         (data_dep_in_cycle_p, update_type_for_merge): New functions.
14771         (build_rdg_partition_for_vertex): Compute partition type.
14772         (rdg_build_partitions): Dump partition type.
14773         (distribute_loop): Update calls to partition_merge_into.
14775 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14777         * tree-loop-distribution.c (struct ddr_hasher): New.
14778         (ddr_hasher::hash, ::equal, get_data_dependence): New function.
14779         (ddrs_table): New.
14780         (classify_partition): Call get_data_dependence.
14781         (pg_add_dependence_edges): Ditto.
14782         (distribute_loop): Release data dependence hash table.
14784 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14786         * tree-loop-distribution.c (ref_base_address): Delete.
14787         (similar_memory_accesses): Rename ...
14788         (share_memory_accesses): ... to this.  Check if partitions access
14789         the same memory reference.
14790         (distribute_loop): Call share_memory_accesses.
14792 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14794         * tree-loop-distribution.c (struct partition): New field recording
14795         its data reference.
14796         (partition_alloc, partition_free): Init and release data refs.
14797         (partition_merge_into): Merge data refs.
14798         (build_rdg_partition_for_vertex): Collect data refs for partition.
14799         (pg_add_dependence_edges): Change parameters from vector to bitmap.
14800         Update uses.
14801         (distribute_loop): Remve data refs from vertice data of partition
14802         graph.
14804 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14806         * tree-loop-distribution.c (params.h): Include header file.
14807         (MAX_DATAREFS_NUM, DR_INDEX): New macro.
14808         (datarefs_vec): New global var.
14809         (create_rdg_vertices): Use datarefs_vec directly.
14810         (free_rdg): Don't free data references.
14811         (build_rdg): Update use.  Don't free data references.
14812         (distribute_loop): Compute global variable for data references.
14813         Bail out if there are too many data references.
14815 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14817         * tree-loop-distribution.c (loop_nest): New global var.
14818         (build_rdg): Use loop directly, rather than loop nest.
14819         (pg_add_dependence_edges): Remove loop nest parameter.  Use global
14820         variable directly.
14821         (distribute_loop): Compute global variable loop nest.  Update use.
14823 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14825         * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
14826         (partition_merge_into): New parameter.  Dump reason for fusion.
14827         (distribute_loop): Update use of partition_merge_into.
14829 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14831         * tree-loop-distribution.c (bb_top_order_index): New.
14832         (bb_top_order_index_size, bb_top_order_cmp): New.
14833         (stmts_from_loop): Use topological order.
14834         (pass_loop_distribution::execute): Compute and release topological
14835         order for basic blocks.
14837 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14839         * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
14840         if no loops.
14842 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14844         * cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
14845         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
14846         * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
14847         * internal-fn.def (LOOP_DIST_ALIAS): New.
14848         * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
14849         (fold_loop_internal_call): ... this.
14850         (vect_loop_dist_alias_call): New function.
14851         (set_uid_loop_bbs): Call fold_loop_internal_call.
14852         (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
14853         internal calls.
14855 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
14857         PR target/81300
14858         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
14859         Require dead FLAGS_REG at the beginning of a peephole.
14861 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
14863         PR target/81294
14864         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
14865         arguments in the call to __builtin_ia32_sbb_u32.
14866         (_subborrow_u64): Swap _X and _Y arguments in the call to
14867         __builtin_ia32_sbb_u64.
14869 2017-07-04  Jakub Jelinek  <jakub@redhat.com>
14871         PR debug/81278
14872         * tree-vrp.c (compare_assert_loc): Turn into a function template
14873         with stable template parameter.  Only test if a->e is NULL,
14874         !a->e == !b->e has been verified already.  Use e == NULL or
14875         e != NULL instead of e or ! e tests.  If stable is true, don't use
14876         iterative_hash_expr, on the other side allow a or b or both NULL
14877         and sort the NULLs last.
14878         (process_assert_insertions): Sort using compare_assert_loc<false>
14879         instead of compare_assert_loc, later sort using
14880         compare_assert_loc<true> before calling process_assert_insertions_for
14881         in a loop.  Use break instead of continue once seen NULL pointer.
14883 2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14885         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
14886         Cortex-R7 and Cortex-R8 processors.
14888 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
14890         * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
14891         uninitialized while src is not.
14893 2017-07-04  Richard Earnshaw  <rearnsha@arm.com>
14895         * common/config/arm/arm-common.c: Adjust include path for
14896         arm-cpu-cdata.h
14897         * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
14898         (arm-cpu.h): Create in build directory.  Adjust dependency rules.
14899         (arm-cpu-data.h): Likewise.
14900         (arm-cpu-cdata.h): Likewise.
14901         * config/arm/arm-cpu.h: Delete.
14902         * config/arm/arm-cpu-cdata.h: Delete.
14903         * config/arm/arm-cpu-data.h: Delete.
14905 2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
14907         * config/arm/arm-cpus.in (cortex-a55): New.
14908         (cortex-a75): Likewise.
14909         (cortex-a75.cortex-a55): Likewise.
14910         * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
14911         cortex-a75.
14912         * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
14913         * config/arm/arm-cpu-cdata.h: Regenerate.
14914         * config/arm/arm-cpu-data.h: Regenerate.
14915         * config/arm/arm-cpu.h: Regenerate.
14916         * config/arm/arm-tables.opt: Regenerate.
14917         * config/arm/arm-tune.md: Regenerate.
14919 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
14921         * haifa-sched.c (sched_create_recovery_edges): Update profile.
14923 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
14925         * bb-reorder.c (better_edge_p): Fix handling of uninitialized
14926         probability.
14928 2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
14930         PR tree-optimization/81292
14931         * tree-ssa-strlen.c (handle_builtin_strlen): When setting
14932         full_string_p, also call adjust_related_strinfos if the adjustment
14933         is simple, otherwise invalidate related strinfos.
14935 2017-07-04  Martin Liska  <mliska@suse.cz>
14937         PR sanitizer/81040
14938         * sanopt.c (sanitize_rewrite_addressable_params): Mark the
14939         newly created variable as DECL_IGNORED_P.
14941 2017-07-04  Martin Liska  <mliska@suse.cz>
14943         PR ipa/81293
14944         * ipa-inline.c (inline_small_functions):
14945         Use xstrdup_for_dump.
14947 2017-07-04  Tom de Vries  <tom@codesourcery.com>
14949         * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
14951 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
14953         PR target/81033
14954         * config/darwin.c (darwin_function_switched_text_sections):
14955         Fix spaces.
14957 2017-07-03  Jan Hubicka  <hubicka@ucw.cz>
14959         * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
14961 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
14963         * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
14965 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
14967         * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
14968         min_profitable_iters, and th as inclusive lower bounds.
14969         Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
14970         (vect_estimate_min_profitable_iters): Return inclusive lower bounds
14971         for min_profitable_iters and min_profitable_estimate.
14972         (vect_transform_loop): Treat th as an inclusive lower bound.
14973         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
14975 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
14977         PR target/81033
14978         * config/darwin.c (darwin_function_switched_text_sections):
14979         Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
14980         in two pieces, and suppress the use of buf.
14982 2017-07-03  Nathan Sidwell  <nathan@acm.org>
14984         * hash-table.h (hash_table_mod1): Fix indentation.
14986 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
14988         PR middle-end/81290
14989         * predict.c (force_edge_cold): Be more careful about propagation
14990         backward.
14991         * profile-count.h (profile_probability::guessed,
14992         profile_probability::fdo, profile_count::guessed, profile_count::fdo):
14993         New.
14994         * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
14996 2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14998         * doc/invoke.texi (rcpc architecture extension): Document it.
15000 2017-07-03  Richard Biener  <rguenther@suse.de>
15002         PR tree-optimization/60510
15003         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
15004         the scalar reduction PHI and use it.
15005         (vectorizable_reduction): Properly guard the single_defuse_cycle
15006         path for non-SLP reduction chains where we cannot use it.
15007         Rework reduc_def/index and vector type deduction.  Rework
15008         vector operand gathering during reduction op code-gen.
15009         * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
15010         chains dissolve the chain and leave it to non-SLP reduction
15011         handling.
15013 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
15015         * tree-data-ref.h (dr_alignment): Declare.
15016         * tree-data-ref.c (dr_alignment): New function.
15017         * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
15018         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
15019         set it.
15020         * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
15022 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
15024         * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
15025         and base_misalignment fields.
15026         (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
15027         * tree-data-ref.c: Include builtins.h.
15028         (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
15029         * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
15030         (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
15031         * tree-vect-data-refs.c: Include tree-cfg.h.
15032         (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
15033         fields instead of calculating an alignment here.
15034         (vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
15035         innermost_loop_behavior fields.
15037 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
15039         * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
15040         field.
15041         (DR_STEP_ALIGNMENT): New macro.
15042         * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
15043         * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
15044         (create_data_ref): Print it.
15045         * tree-vect-stmts.c (vectorizable_load): Use the step alignment
15046         to tell whether the step preserves vector (mis)alignment.
15047         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
15048         Move the check for an integer step and generalise to all INTEGER_CST.
15049         (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
15050         Print the outer step alignment.
15052 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
15054         * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
15055         with offset_alignment.
15056         (DR_ALIGNED_TO): Delete.
15057         (DR_OFFSET_ALIGNMENT): New macro.
15058         * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
15059         (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
15060         * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
15061         (create_data_ref): Likewise.
15062         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
15063         (vect_analyze_data_refs): Likewise.
15064         * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
15065         creating dummy innermost behavior.
15067 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
15069         * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
15070         with a "innermost_loop_behavior *" and refeence tree.
15071         * tree-data-ref.c (dr_analyze_innermost): Likewise.
15072         (create_data_ref): Update call accordingly.
15073         * tree-predcom.c (find_looparound_phi): Likewise.
15075 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
15077         * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
15078         fields with dr_wrt_vec_loop.
15079         (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
15080         (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
15081         (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
15082         (vect_dr_behavior): New function.
15083         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
15084         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
15085         vect_dr_behavior.  Use a step_preserves_misalignment_p boolean to
15086         track whether the step preserves the misalignment.
15087         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
15088         Use vect_dr_behavior.
15089         (vect_setup_realignment): Update call accordingly.
15090         (vect_create_data_ref_ptr): Likewise.  Use vect_dr_behavior.
15091         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
15092         call to vect_create_addr_base_for_vector_ref.
15093         (vect_create_cond_for_align_checks): Likewise.
15094         * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
15095         STMT_VINFO_DR_WRT_VEC_LOOP as a block.
15096         (vect_recog_mask_conversion_pattern): Likewise.
15097         * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
15098         (new_stmt_vec_info): Remove redundant zeroing.
15100 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
15102         * common/config/arm/arm-common.c (arm_be8_option): New function.
15103         * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
15104         (ISA_ARMv6): Add isa_bit_be8.
15105         * config/arm/arm.h (arm_be8_option): Add prototype.
15106         (BE8_SPEC_FUNCTION): New define.
15107         (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
15108         * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
15109         (mlittle-endian): Similarly.
15110         (mbe8, mbe32): New options.
15111         * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
15112         * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
15114 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
15116         * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
15118 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
15120         * tree-cfgcleanup.c (want_merge_blocks_p): New function.
15121         (cleanup_tree_cfg_bb): Use it.
15122         * profile-count.h (profile_count::of_for_merging, profile_count::merge):
15123         New functions.
15124         * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
15126 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
15128         PR bootstrap/81285
15129         * loop-doloop.c (add_test): Update profile.
15131 2017-07-03  Martin Liska  <mliska@suse.cz>
15133         PR sanitize/81040
15134         * sanopt.c (rewrite_usage_of_param): New function.
15135         (sanitize_rewrite_addressable_params): Likewise.
15136         (pass_sanopt::execute): Call rewrite_usage_of_param.
15138 2017-07-03  Richard Biener  <rguenther@suse.de>
15140         * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
15141         back to using VIEW_CONVERT_EXPR.
15143 2017-07-03  Martin Liska  <mliska@suse.cz>
15145         PR other/78366
15146         * doc/extend.texi: Document when a resolver function is
15147         generated for target_clones.
15149 2017-07-03  Martin Liska  <mliska@suse.cz>
15151         * asan.c (asan_emit_stack_protection): Unpoison just red zones
15152         and shadow memory of auto variables which are subject of
15153         use-after-scope sanitization.
15154         (asan_expand_mark_ifn): Add do set only when is_poison.
15156 2016-07-03  Richard Biener  <rguenther@suse.de>
15158         * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
15159         reduction PHIs.
15160         (vect_force_simple_reduction): Record reduction def -> phi mapping.
15161         (vectorizable_reduction): Perform reduction PHI creation when
15162         visiting a reduction PHI and adjust and simplify code generation
15163         phase of the reduction op.  Cache dts, use fold_binary, not fold_build2.
15164         (vect_transform_loop): Visit reduction PHIs.
15165         * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
15166         defs into the SLP tree.
15167         (vect_build_slp_tree): Reduction defs terminate the recursion.
15168         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
15169         of reduction defs.
15170         (vect_get_vec_defs_for_stmt_copy): Export.
15171         (vect_get_vec_defs): Likewise.
15172         * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
15173         purpose.
15174         (vect_get_vec_defs_for_stmt_copy): Declare.
15175         (vect_get_vec_defs): Likewise.
15177 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
15179         * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
15180         parameter with a "loop" parameter and use it instead of the
15181         loop containing DR_STMT.  Don't check simple_iv when doing
15182         BB analysis.  Describe the two analysis modes in the comment.
15184 2017-07-03  Tom de Vries  <tom@codesourcery.com>
15186         PR tree-optimization/69468
15187         * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
15188         (find_same_succ_bb): Handle ignore_edge_flags.
15190 2017-07-03  Tom de Vries  <tom@codesourcery.com>
15192         PR tree-optimization/81192
15193         * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
15194         hash.
15195         (same_succ::equal): Don't find bbs to be equal if bb->loop_father
15196         differs.
15197         (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
15199 2017-07-03  Tom de Vries  <tom@codesourcery.com>
15201         PR tree-optimization/81192
15202         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
15203         BB_SAME_SUCC (bb) == NULL.
15205 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
15207         * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
15208         consistency.
15210 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
15212         * dumpfile.c: Include profile-count.h
15213         * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
15214         update profile.
15215         (insert_cond_bb): Update profile.
15216         * tree-cfg.h (insert_cond_bb): Update prototype.
15217         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
15218         * tree-dump.c: Do not include tree-cfg.
15220 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
15222         * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
15224 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
15226         * expect.c (dw2_build_landing_pads): Update profile of the landing pad
15227         bb.
15229 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
15231         * tree-complex.c (expand_complex_div_wide): update profile.
15233 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
15234             Alan Hayward  <alan.hayward@arm.com>
15235             David Sherwood  <david.sherwood@arm.com>
15237         * Makefile.in (MACHMODE_H): Remove insn-modes.h
15238         (CORETYPES_H): New define.
15239         (MOSTLYCLEANFILES): Add insn-modes-inline.h.
15240         (insn-modes-inline.h, s-modes-inline-h): New rules.
15241         (generated_files): Add insn-modes-inline.h.
15242         (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
15243         (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
15244         (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
15245         (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
15246         (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
15247         (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
15248         (build/gencodes.o, build/genconditions.o): Likewise.
15249         (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
15250         (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
15251         (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
15252         (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
15253         (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
15254         (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
15255         * coretypes.h: Include everything up to real.h for generators.
15256         Include insn-modes.h first.  Include wide-int-print.h after
15257         wide-int.h.  Include insn-modes-inline.h and then machmode.h.
15258         * machmode.h: Don't include insn-modes.h here.
15259         * function-tests.c: Remove includes of signop.h, machmode.h,
15260         double-int.h and wide-int.h.
15261         * rtl.h: Likewise.
15262         * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
15263         and wide-int.h.
15264         * optc-save-gen.awk: Likewise.
15265         * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
15266         * godump.c: Remove include of wide-int-print.h.
15267         * pretty-print.h: Likewise.
15268         * wide-int-print.cc: Likewise.
15269         * wide-int.cc: Likewise.
15270         * hash-map-tests.c: Remove include of signop.h.
15271         * hash-set-tests.c: Likewise.
15272         * rtl-tests.c: Likewise.
15273         * mkconfig.sh: Remove include of machmode.h.
15274         * genmodes.c (emit_insn_modes_h): Split emission of inline functions
15275         into...
15276         (emit_insn_modes_inline_h): ...this new function.  Emit the code
15277         into an insn-modes-inline.h header file, adding appropriate
15278         include guards and end comments.
15279         (emit_insn_modes_c_header): Remove include of machmode.h.
15280         (emit_min_insn_modes_c_header): Include coretypes.h rather than
15281         machmode.h.
15282         (main): Handle -i flag and call emit_insn_modes_inline_h when
15283         it is passed.
15285 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
15287         * tree-ssa-strlen.c (strinfo): Rename the length field to
15288         nonzero_chars.  Add a full_string_p field.
15289         (compare_nonzero_chars, zero_length_string_p): New functions.
15290         (get_addr_stridx): Add an offset_out parameter.
15291         Use compare_nonzero_chars.
15292         (get_stridx): Update accordingly.  Use compare_nonzero_chars.
15293         (new_strinfo): Update after above changes to strinfo.
15294         (set_endptr_and_length): Set full_string_p.
15295         (get_string_length): Update after above changes to strinfo.
15296         (unshare_strinfo): Update call to new_strinfo.
15297         (maybe_invalidate): Likewise.
15298         (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
15299         Use compare_nonzero_chars and zero_string_p.  Treat nonzero_chars
15300         as a uhwi instead of an shwi.  Update after above changes to
15301         strinfo and new_strinfo.
15302         (zero_length_string): Assert that chainsi contains full strings.
15303         Use zero_length_string_p.  Update call to new_strinfo.
15304         (adjust_related_strinfos): Update after above changes to strinfo.
15305         Copy full_string_p from origsi.
15306         (adjust_last_stmt): Use zero_length_string_p.
15307         (handle_builtin_strlen): Update after above changes to strinfo and
15308         new_strinfo.  Install the lhs as the string length if the previous
15309         entry didn't describe a full string.
15310         (handle_builtin_strchr): Update after above changes to strinfo
15311         and new_strinfo.
15312         (handle_builtin_strcpy): Likewise.
15313         (handle_builtin_strcat): Likewise.
15314         (handle_builtin_malloc): Likewise.
15315         (handle_pointer_plus): Likewise.
15316         (handle_builtin_memcpy): Likewise.  Track nonzero characters
15317         that aren't necessarily followed by a nul terminator.
15318         (handle_char_store): Likewise.
15320 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
15322         PR tree-optimization/80769
15323         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
15324         for malloc and calloc.  Document the new invariant that all related
15325         strinfos have delayed lengths or none do.
15326         (verify_related_strinfos): Move earlier in file.
15327         (set_endptr_and_length): New function, split out from...
15328         (get_string_length): ...here.  Also set the lengths of related
15329         strinfos.
15330         (zero_length_string): Assert that chainsi has known (rather than
15331         delayed) lengths.
15332         (adjust_related_strinfos): Likewise.
15334 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
15336         PR tree-optimization/81136
15337         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
15338         assert that two references with the same misalignment have the same
15339         compile-time misalignment if those compile-time misalignments
15340         are known.
15342 2017-07-01  Andi Kleen  <ak@linux.intel.com>
15344         * print-tree.c (print_node): Print all attributes.
15346 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
15348         * cfg.c (scale_bbs_frequencies): New function.
15349         * cfg.h (scale_bbs_frequencies): Declare it.
15350         * cfgloopanal.c (single_likely_exit): Cleanup.
15351         * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
15352         as parameter.
15353         (scale_loop_profile): Likewise.
15354         (loop_version): Likewise.
15355         (create_empty_loop_on_edge): Update.
15356         * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
15357         scale_loop_frequencies, scale_loop_profile, loopify,
15358         loop_version): Update prototypes.
15359         * modulo-sched.c (sms_schedule): Update.
15360         * predict.c (unlikely_executed_edge_p): Also check probability.
15361         (probably_never_executed_edge_p): Fix typo.
15362         * tree-if-conv.c (version_loop_for_if_conversion): Update.
15363         * tree-parloops.c (gen_parallel_loop): Update.
15364         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
15365         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
15366         * tree-ssa-loop-split.c (split_loop): Update.
15367         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
15368         * tree-vect-loop-manip.c (vect_do_peeling): Update.
15369         (vect_loop_versioning): Update.
15370         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
15372 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
15374         * trans-mem.c (split_bb_make_tm_edge): Update profile.
15376 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
15378         * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
15379         to keep profile consistent.
15381 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
15383         * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
15384         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
15385         * profile-count.h (max_safe_multiplier): Make unsigned.
15386         (profile_count::guessed_zero): New.
15388 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
15390         * bb-reorder.c (fix_up_crossing_landing_pad,
15391         fix_crossing_conditional_branches): Use make_single_succ_edge
15392         to keep profile consistent.
15394 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
15396         * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
15397         to update profile.
15399 2017-07-01  Jakub Jelinek  <jakub@redhat.com>
15401         PR sanitizer/81262
15402         * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
15403         the right scopes, make sure cond_jump isn't preserved between multiple
15404         iterations.  Search for fallthru edge whenever there are 3+ edges and
15405         use find_fallthru_edge for it.
15407 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
15409         Patch by Alexander Monakov <amonakov@ispras.ru>
15410         * sel-sched-ir.c (compute_succs_info): Handle uninitialized
15411         probabilities consistently.
15413 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
15415         * pa.c (pa_expand_compare_and_swap_loop): Update call of
15416         emit_cmp_and_jump_insns.
15418 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
15420         PR ipa/81261
15421         * tree-inline.c (expand_call_inline): Combine profile statuses.
15423 2017-06-30  Andrew Pinski  <apinski@cavium.com>
15425         * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
15426         fold_stmt returned true.
15428 2017-06-30  Nathan Sidwell  <nathan@acm.org>
15430         * ggc.h (empty_string): Delete.
15431         * cfgexpand.c (expand_asm_stmt): Use plain "".
15432         * optabs.c (expand_asm_memory_barrier): Likewise.
15433         * stringpool.c (empty_string): Delete.
15434         (digit_vector, digit_string): Delete.
15435         (ggc_alloc_string): Use plain "", don't optimize single digit
15436         strings.  Use ggc_alloc_atomic.
15438 2017-06-30  Richard Earnshaw  <rearnsha@arm.com>
15440         * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
15441         comparison set and one other set, use the cost of the non-comparison
15442         set.
15444 2017-06-30  Nathan Sidwell  <nathan@acm.org>
15446         * ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
15447         some formatting.
15449 2017-06-30  Peter Bergner  <bergner@vnet.ibm.com>
15451         * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
15452         loops.  Remove now unneeded calls to gimple_switch_set_label() that
15453         just set removed labels to NULL_TREE.
15455 2017-06-30  Aldy Hernandez  <aldyh@redhat.com>
15457         * tree-ssanames.c (set_range_info_raw): Abstract from ...
15458         (set_range_info): ...here.  Only call set_range_info_raw if domain
15459         is useful.
15460         (set_nonzero_bits): Call set_range_info_raw.
15461         * tree-ssanames.h (set_range_info_raw): New.
15463 2017-06-30  Jakub Jelinek  <jakub@redhat.com>
15465         PR target/81225
15466         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
15467         V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
15468         of nonimmediate_operand and <store_mask_constraint> instead of m
15469         for the input operand.  For V8FI iterator, always split if input
15470         is a MEM.  For V16FI and V8SF_256 iterators, don't test if both
15471         operands are MEM if <mask_applied>.  For VI4F_256 iterator, use
15472         <store_mask_predicate> instead of register_operand and
15473         <store_mask_constraint> instead of v for the input operand.  Make
15474         sure both operands aren't MEMs for if not <mask_applied>.
15476 2017-06-30  Sylvestre Ledru  <sylvestre@debian.org>
15478         * lto-wrapper.c (copy_file) Close both file descriptors before
15479         exiting normally.
15481 2017-06-30  Martin Liska  <mliska@suse.cz>
15483         PR ipa/81214
15484         * multiple_target.c (create_dispatcher_calls): Make ifunc
15485         also for function that don't have calls or are not referenced.
15487 2017-06-30  Richard Biener  <rguenther@suse.de>
15489         * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
15490         analyze the first scalar stmt.  Move vector type computation
15491         for the BB case here from ...
15492         * tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
15493         live operation processing in the SLP case properly.
15495 2017-06-30  Richard Biener  <rguenther@suse.de>
15497         * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
15499 2017-06-30  Martin Liska  <mliska@suse.cz>
15501         PR sanitizer/81021
15502         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
15503         before BUILT_IN_UNWIND_RESUME when ASAN is used.
15505 2017-06-30  Yvan Roux  <yvan.roux@linaro.org>
15507         * doc/invoke.texi (AArch64): Add missing options and remove redundant
15508         ones.
15510 2017-06-30  Richard Biener  <rguenther@suse.de>
15512         PR tree-optimization/81249
15513         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
15514         condition reduction result to original scalar type.
15516 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15518         * profile-count.h (enum profile_quality): Fix typos and whitespace
15519         issues.
15521 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15523         * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
15524         type for branch probabilities.
15526 2017-06-29  Julian Brown  <julian@codesourcery.com>
15527             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
15529         * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
15530         * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
15531         (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
15532         (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
15534 2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
15536         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
15537         check for CC usage into AARCH64_FUSE_CMP_BRANCH.
15538         * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
15539         CC usage from generic code to here.
15540         * sched-deps.c (sched_macro_fuse_insns): Move the condition for
15541         CC usage into the target macros.
15543 2017-06-29  Maya Rashish  <coypu@sdf.org>
15545         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
15546         objects.
15548 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
15550         * arm/arm-builtins.c: Include profile-count.h
15551         * except.c (sjlj_emit_function_enter): Use
15552         profile_probability::unlikely.
15554 2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
15556         * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
15557         and tocrel_offset be pointer args rather than implicitly using
15558         static versions.
15559         (legitimate_constant_pool_address_p, rs6000_emit_move,
15560         const_load_sequence_p, adjust_vperm): Add local tocrel_base and
15561         tocrel_offset and use in toc_relative_expr_p call.
15562         (print_operand, print_operand_address): Use static tocrel_base_oac
15563         and tocrel_offset_oac.
15564         (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
15565         tocrel_offset_oac.
15567 2017-06-29  Maya Rashish  <coypu@sdf.org>
15569         * config/vax/builtins.md (ffssi2_internal): Correct constraint.
15571 2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
15573         * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
15574         objects, take into account only the alignment of 'op0' and 'mode1' if
15575         'op0' is a MEM.
15577 2017-06-29  Steve Ellcey  <sellcey@cavium.com>
15579         * ccmp.c (ccmp_tree_comparison_p): New function.
15580         (ccmp_candidate_p): Update to use above function.
15581         (get_compare_parts): New function.
15582         (expand_ccmp_next): Update to use new functions.
15583         (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
15584         new functions.
15585         (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
15586         take mode as argument.
15587         * ccmp.h (expand_ccmp_expr): Add mode as argument.
15588         * expr.c (expand_expr_real_1): Pass mode as argument.
15590 2017-06-29  Segher Boessenkool  <segher@kernel.crashing.org>
15592         * combine.c (combine_instructions): Print insns to dump_file, together
15593         with their costs.
15595 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
15597         * asan.c (asan_emit_stack_protection): Update.
15598         (create_cond_insert_point): Update.
15599         * auto-profile.c (afdo_propagate_circuit): Update.
15600         * basic-block.h (struct edge_def): Turn probability to
15601         profile_probability.
15602         (EDGE_FREQUENCY): Update.
15603         * bb-reorder.c (find_traces_1_round): Update.
15604         (better_edge_p): Update.
15605         (sanitize_hot_paths): Update.
15606         * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
15607         (make_single_succ_edge): Update.
15608         (check_bb_profile): Update.
15609         (dump_edge_info): Update.
15610         (update_bb_profile_for_threading): Update.
15611         * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
15612         probabilitycount to 0.
15613         * cfgbuild.c (compute_outgoing_frequencies): Update.
15614         * cfgcleanup.c (try_forward_edges): Update.
15615         (outgoing_edges_match): Update.
15616         (try_crossjump_to_edge): Update.
15617         * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
15618         (expand_gimple_tailcall): Update.
15619         (construct_init_block): Use make_single_succ_edge.
15620         (construct_exit_block): Use make_single_succ_edge.
15621         * cfghooks.c (verify_flow_info): Update.
15622         (redirect_edge_succ_nodup): Update.
15623         (split_edge): Update.
15624         (account_profile_record): Update.
15625         * cfgloopanal.c (single_likely_exit): Update.
15626         * cfgloopmanip.c (scale_loop_profile): Update.
15627         (set_zero_probability): Remove.
15628         (duplicate_loop_to_header_edge): Update.
15629         * cfgloopmanip.h (loop_version): Update prototype.
15630         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
15631         (force_nonfallthru_and_redirect): Update.
15632         (update_br_prob_note): Update.
15633         (rtl_verify_edges): Update.
15634         (purge_dead_edges): Update.
15635         (rtl_lv_add_condition_to_bb): Update.
15636         * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
15637         * cgraphunit.c (init_lowered_empty_function): Update.
15638         (cgraph_node::expand_thunk): Update.
15639         * cilk-common.c: Include profile-count.h
15640         * dojump.c (inv): Remove.
15641         (jumpifnot): Update.
15642         (jumpifnot_1): Update.
15643         (do_jump_1): Update.
15644         (do_jump): Update.
15645         (do_jump_by_parts_greater_rtx): Update.
15646         (do_compare_rtx_and_jump): Update.
15647         * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
15648         do_jump_1. do_compare_rtx_and_jump): Update prototype.
15649         * dwarf2cfi.c: Include profile-count.h
15650         * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
15651         (sjlj_emit_dispatch_table): Likewise.
15652         * explow.c: Include profile-count.h
15653         * expmed.c (emit_store_flag_force): Update.
15654         (do_cmp_and_jump): Update.
15655         * expr.c (compare_by_pieces_d::generate): Update.
15656         (compare_by_pieces_d::finish_mode): Update.
15657         (emit_block_move_via_loop): Update.
15658         (store_expr_with_bounds): Update.
15659         (store_constructor): Update.
15660         (expand_expr_real_2): Update.
15661         (expand_expr_real_1): Update.
15662         * expr.h (try_casesi, try_tablejump): Update prototypes.
15663         * gimple-pretty-print.c (dump_probability): Update.
15664         (dump_profile): New.
15665         (dump_gimple_label): Update.
15666         (dump_gimple_bb_header): Update.
15667         * graph.c (draw_cfg_node_succ_edges): Update.
15668         * hsa-gen.c (convert_switch_statements): Update.
15669         * ifcvt.c (cheap_bb_rtx_cost_p): Update.
15670         (find_if_case_1): Update.
15671         (find_if_case_2): Update.
15672         * internal-fn.c (expand_arith_overflow_result_store): Update.
15673         (expand_addsub_overflow): Update.
15674         (expand_neg_overflow): Update.
15675         (expand_mul_overflow): Update.
15676         (expand_vector_ubsan_overflow): Update.
15677         * ipa-cp.c (good_cloning_opportunity_p): Update.
15678         * ipa-split.c (split_function): Use make_single_succ_edge.
15679         * ipa-utils.c (ipa_merge_profiles): Update.
15680         * loop-doloop.c (add_test): Update.
15681         (doloop_modify): Update.
15682         * loop-unroll.c (compare_and_jump_seq): Update.
15683         (unroll_loop_runtime_iterations): Update.
15684         * lra-constraints.c (lra_inheritance): Update.
15685         * lto-streamer-in.c (input_cfg): Update.
15686         * lto-streamer-out.c (output_cfg): Update.
15687         * mcf.c (adjust_cfg_counts): Update.
15688         * modulo-sched.c (sms_schedule): Update.
15689         * omp-expand.c (expand_omp_for_init_counts): Update.
15690         (extract_omp_for_update_vars): Update.
15691         (expand_omp_ordered_sink): Update.
15692         (expand_omp_for_ordered_loops): Update.
15693         (expand_omp_for_generic): Update.
15694         (expand_omp_for_static_nochunk): Update.
15695         (expand_omp_for_static_chunk): Update.
15696         (expand_cilk_for): Update.
15697         (expand_omp_simd): Update.
15698         (expand_omp_taskloop_for_outer): Update.
15699         (expand_omp_taskloop_for_inner): Update.
15700         * omp-simd-clone.c (simd_clone_adjust): Update.
15701         * optabs.c (expand_doubleword_shift): Update.
15702         (expand_abs): Update.
15703         (emit_cmp_and_jump_insn_1): Update.
15704         (expand_compare_and_swap_loop): Update.
15705         * optabs.h (emit_cmp_and_jump_insns): Update prototype.
15706         * predict.c (predictable_edge_p): Update.
15707         (edge_probability_reliable_p): Update.
15708         (set_even_probabilities): Update.
15709         (combine_predictions_for_insn): Update.
15710         (combine_predictions_for_bb): Update.
15711         (propagate_freq): Update.
15712         (estimate_bb_frequencies): Update.
15713         (force_edge_cold): Update.
15714         * profile-count.c (profile_count::dump): Add missing space into dump.
15715         (profile_count::debug): Add newline.
15716         (profile_count::differs_from_p): Explicitly convert to unsigned.
15717         (profile_count::stream_in): Update.
15718         (profile_probability::dump): New member function.
15719         (profile_probability::debug): New member function.
15720         (profile_probability::differs_from_p): New member function.
15721         (profile_probability::differs_lot_from_p): New member function.
15722         (profile_probability::stream_in): New member function.
15723         (profile_probability::stream_out): New member function.
15724         * profile-count.h (profile_count_quality): Rename to ...
15725         (profile_quality): ... this one.
15726         (profile_probability): New.
15727         (profile_count): Update.
15728         * profile.c (compute_branch_probabilities): Update.
15729         * recog.c (peep2_attempt): Update.
15730         * sched-ebb.c (schedule_ebbs): Update.
15731         * sched-rgn.c (find_single_block_region): Update.
15732         (compute_dom_prob_ps): Update.
15733         (schedule_region): Update.
15734         * sel-sched-ir.c (compute_succs_info): Update.
15735         * stmt.c (struct case_node): Update.
15736         (do_jump_if_equal): Update.
15737         (get_outgoing_edge_probs): Update.
15738         (conditional_probability): Update.
15739         (emit_case_dispatch_table): Update.
15740         (expand_case): Update.
15741         (expand_sjlj_dispatch_table): Update.
15742         (emit_case_nodes): Update.
15743         * targhooks.c: Update.
15744         * tracer.c (better_p): Update.
15745         (find_best_successor): Update.
15746         * trans-mem.c (expand_transaction): Update.
15747         * tree-call-cdce.c: Update.
15748         * tree-cfg.c (gimple_split_edge): Upate.
15749         (move_sese_region_to_fn): Upate.
15750         * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
15751         * tree-eh.c (lower_resx): Upate.
15752         (cleanup_empty_eh_move_lp): Upate.
15753         * tree-if-conv.c (version_loop_for_if_conversion): Update.
15754         * tree-inline.c (copy_edges_for_bb): Update.
15755         (copy_cfg_body): Update.
15756         * tree-parloops.c (gen_parallel_loop): Update.
15757         * tree-profile.c (gimple_gen_ic_func_profiler): Update.
15758         (gimple_gen_time_profiler): Update.
15759         * tree-ssa-dce.c (remove_dead_stmt): Update.
15760         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
15761         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
15762         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
15763         (unloop_loops): Update.
15764         (try_peel_loop): Update.
15765         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
15766         * tree-ssa-loop-split.c (connect_loops): Update.
15767         (split_loop): Update.
15768         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
15769         (hoist_guard): Update.
15770         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
15771         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
15772         (value_replacement): Update.
15773         * tree-ssa-reassoc.c (branch_fixup): Update.
15774         * tree-ssa-tail-merge.c (replace_block_by): Update.
15775         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
15776         (create_edge_and_update_destination_phis): Update.
15777         (compute_path_counts): Update.
15778         (recompute_probabilities): Update.
15779         (update_joiner_offpath_counts): Update.
15780         (freqs_to_counts_path): Update.
15781         (duplicate_thread_path): Update.
15782         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
15783         (struct switch_conv_info): Update.
15784         (gen_inbound_check): Update.
15785         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
15786         (vect_do_peeling): Update.
15787         (vect_loop_versioning): Update.
15788         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
15789         (optimize_mask_stores): Update.
15790         * ubsan.c (ubsan_expand_null_ifn): Update.
15791         * value-prof.c (gimple_divmod_fixed_value): Update.
15792         (gimple_divmod_fixed_value_transform): Update.
15793         (gimple_mod_pow2): Update.
15794         (gimple_mod_pow2_value_transform): Update.
15795         (gimple_mod_subtract): Update.
15796         (gimple_mod_subtract_transform): Update.
15797         (gimple_ic): Update.
15798         (gimple_stringop_fixed_value): Update.
15799         (gimple_stringops_transform): Update.
15800         * value-prof.h: Update.
15802 2017-06-29  Carl Love  <cel@us.ibm.com>
15804         * config/rs6000/rs6000-c.c: Add support for built-in functions
15805         vector signed int vec_signed (vector float);
15806         vector signed long long vec_signed (vector double);
15807         vector signed int vec_signed2 (vector double, vector double);
15808         vector signed int vec_signede (vector double);
15809         vector signed int vec_signedo (vector double);
15810         * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
15811         instruction generator.
15812         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
15813         UNSPEC_VSX_VSIGNED2): Add UNSPECS.
15814         (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
15815         Add define_insn.
15816         (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
15817         vunsignede_v2df): Add define_expands.
15818         * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
15819         VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
15820         VEC_UNSIGNEDO): Add definitions.
15821         * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
15822         UNSPEC_VSX_VSIGNED2): Add UNSPECs.
15823         (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
15824         (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
15825         vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
15826         * config/rs6000/altivec.h (vec_signed, vec_signed2,
15827         vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
15828         vec_unsignede, vec_unsignedo): Add builtin defines.
15829         * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
15830         declaration.
15831         * doc/extend.texi: Update the built-in documentation file for the
15832         new built-in functions.
15834 2017-06-29  Richard Biener  <rguenther@suse.de>
15836         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
15837         reduction chains to LOOP_VINFO_REDUCTIONS.
15838         * tree-vect-slp.c (vect_analyze_slp): Continue looking for
15839         SLP reductions after processing reduction chains.
15841 2017-06-29  Nathan Sidwell  <nathan@acm.org>
15843         * builtins.c (fold_builtin_FUNCTION): Use
15844         lang_hooks.decl_printable_name.
15846 2017-06-29  Peter Bergner  <bergner@vnet.ibm.com>
15848         PR middle-end/81194
15849         * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
15850         with only one label.
15851         * stmt.c (expand_case): Assert NCASES is greater than one.
15853 2017-06-29  Richard Biener  <rguenther@suse.de>
15855         * tree-cfg.c (group_case_labels_stmt): Return whether we changed
15856         anything.
15857         (group_case_labels): Likewise.
15858         (find_taken_edge): Push sanity checking on val to workers...
15859         (find_taken_edge_cond_expr): ... here
15860         (find_taken_edge_switch_expr): ... and here, handle cases
15861         with just a default label.
15862         * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
15863         (group_case_labels): Likewise.
15864         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
15865         group_case_labels does anything cleanup the CFG again.
15867 2017-06-29  Bin Cheng  <bin.cheng@arm.com>
15869         PR tree-optimization/81196
15870         * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
15871         exit condition comparing two IVs.
15873 2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
15875         * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
15876         profile to the dummy entry at the end of the list of architectures.
15877         * config/arm/arm-cpu-cdata.h: Regenerated.
15879 2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15880             Michael Collison <michael.collison@arm.com>
15882         PR target/70119
15883         * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
15884         New pattern.
15885         (*aarch64_reg_<mode>3_neg_mask2): New pattern.
15886         (*aarch64_reg_<mode>3_minus_mask): New pattern.
15887         (*aarch64_<optab>_reg_di3_mask2): New pattern.
15888         * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
15889         of shift when the shift amount is masked with constant equal to
15890         the size of the mode.
15891         * config/aarch64/predicates.md (subreg_lowpart_operator): New
15892         predicate.
15894 2017-06-29  Martin Liska  <mliska@suse.cz>
15896         * config/i386/i386.opt: Change range from [1,5] to [0,5].
15898 2017-06-29  Yury Gribov  <tetra2005@gmail.com>
15900         PR bootstrap/80565
15901         * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
15902         code.
15903         * ipa-inline.h
15904         (edge_growth_cache_entry::edge_growth_cache_entry): New
15905         function.
15906         (reset_edge_growth_cache): Update to use constructor.
15908 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15910         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
15911         (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
15912         (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
15914 2017-06-28  Sebastian Peryt  <sebastian.peryt@intel.com>
15916         * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
15917         (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
15919 2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
15921         * config.gcc (*-linux-musl*): Add t-musl tmake_file.
15922         (*-linux-uclibc*): Add t-uclibc tmake_file.
15923         * config/t-musl: New.
15924         * config/t-uclibc: New.
15926 2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
15928         * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
15929         context.
15930         (gen_comm_data): Emit architectural setting of arch_prof.
15931         * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
15932         profile.
15933         (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
15934         (armv8-m.base, armv8-m.main): Likewise.
15935         * arm-protos.h (arm_build_target): Add profile field.
15936         (arch_option): Likewise.
15937         * config/arm/arm.c (arm_configure_build_target): Copy the profile to
15938         the active target.
15939         * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
15940         arm_active_target.profile.
15942 2017-06-28  Richard Biener  <rguenther@suse.de>
15944         PR middle-end/81227
15945         * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
15946         TYPE_OVERFLOW_WRAPS.
15947         * match.pd (negate_expr_p): Likewise.
15948         * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
15949         fold_build2, not fold_binary.
15951 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
15953         * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
15954         Convert memory address to Pmode.
15955         (aarch64_print_operand): Assert MEM operands are always Pmode.
15957 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
15959         PR target/79665
15960         * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
15961         Remove redundant if.
15962         (aarch_forward_to_shift_is_not_shifted_reg): Remove.
15963         * config/arm/aarch-common-protos.h
15964         (aarch_forward_to_shift_is_not_shifted_re): Remove.
15965         * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
15967 2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
15969         PR ipa/81238
15970         * multiple_target.c (create_dispatcher_calls): Set the default
15971         clone to be static, not public.
15973 2017-06-28  Richard Biener  <rguenther@suse.de>
15975         * tree-vect-loop.c (vectorizable_reduction): Move special
15976         cond reduction IV var creation ...
15977         (vect_create_epilog_for_reduction): ... here.  Remove induction_index
15978         parameter.  Use STMT_VINFO_VECTYPE.
15979         * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
15980         constant_p.
15982 2017-06-28  Martin Liska  <mliska@suse.cz>
15984         PR ipa/81128
15985         * ipa-visibility.c (non_local_p): Handle visibility.
15987 2017-06-28  Martin Liska  <mliska@suse.cz>
15989         PR driver/79659
15990         * common.opt: Add IntegerRange to various options.
15991         * opt-functions.awk (integer_range_info): New function.
15992         * optc-gen.awk: Add integer_range_info to cl_options struct.
15993         * opts-common.c (decode_cmdline_option): Handle
15994         CL_ERR_INT_RANGE_ARG.
15995         (cmdline_handle_error): Likewise.
15996         * opts.c (print_filtered_help): Show valid interval in
15997         when --help is provided.
15998         * opts.h (struct cl_option): Add range_min and range_max fields.
15999         * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
16001 2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
16003         * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
16004         (x * C EQ/NE y * C): New transformation.
16006 2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
16008         * genmultilib (combination_space): Accept '+' in option names.
16010 2017-06-28  Martin Liska  <mliska@suse.cz>
16012         PR sanitizer/81224
16013         * asan.c (instrument_derefs): Bail out inner references
16014         that are hard register variables.
16016 2017-06-28  Jakub Jelinek  <jakub@redhat.com>
16018         PR target/81175
16019         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
16020         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
16022 2017-06-28  Richard Biener  <rguenther@suse.de>
16024         * tree-vectorizer.h (vect_get_vec_defs): Remove.
16025         (vect_get_slp_defs): Adjust.
16026         * tree-vect-loop.c (get_initial_defs_for_reduction): Split
16027         out from ...
16028         * tree-vect-slp.c (vect_get_constant_vectors): ... here and
16029         simplify.
16030         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
16031         get_initial_defs_for_reduction instead of vect_get_vec_defs.
16032         (vectorizable_reduction): Adjust.
16033         * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
16034         handling.
16035         (vect_get_slp_defs): Likewise.
16036         * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
16037         (vectorizable_bswap): Adjust.
16038         (vectorizable_call): Likewise.
16039         (vectorizable_conversion): Likewise.
16040         (vectorizable_assignment): Likewise.
16041         (vectorizable_shift): Likewise.
16042         (vectorizable_operation): Likewise.
16043         (vectorizable_store): Likewise.
16044         (vectorizable_condition): Likewise.
16045         (vectorizable_comparison): Likewise.
16047 2017-06-28  Michael Collison  <michael.collison@arm.com>
16049         PR target/68535
16050         * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
16051         set of base_reg
16052         (arm_gen_movmemqi): Removed unused variable 'i'.
16053         Convert 'for' loop into 'while' loop.
16054         (arm_expand_prologue): Remove last unnecessary set of insn.
16055         (thumb_pop): Remove unused variable 'pushed_words'.
16056         (thumb_exit): Remove last unnecessary set of regs_to_pop.
16058 2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16060         * config/s390/predicates.md: Use s390_rel_address_ok_p.
16061         * config/s390/s390-protos.h: Add prototype of
16062         s390_rel_address_ok_p.
16063         * config/s390/s390.c (s390_got_symbol): New function.
16064         (s390_rel_address_ok_p): New function.
16065         (legitimize_pic_address): Use s390_rel_address_ok_p.
16066         (s390_load_got): Use s390_got_symbol.
16067         (s390_option_override): Issue error if
16068         -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
16069         * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
16070         New macro.
16071         * config/s390/s390.opt: New option mpic-data-is-text-relative.
16073 2017-06-27  Andrew Pinski  <apinski@cavium.com>
16075         * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
16076         (X * copysign (1.0, X)): New pattern.
16077         (X * copysign (1.0, -X)): New pattern.
16078         (copysign (-1.0, CST)): New pattern.
16080 2017-06-27  Joseph Myers  <joseph@codesourcery.com>
16082         * genmultilib (combination_space): Remove variable.
16083         Validate reuse rules against regular expression for any sequence
16084         of multilib options in any order.
16086 2017-06-27  Michael Collison  <michael.collison@arm.com>
16088         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
16089         call aarch64_split_simd_combine.
16090         * (aarch64_combine_internal<mode>): Delete pattern.
16091         * config/aarch64/aarch64.c (aarch64_split_simd_combine):
16092         Allow register and subreg operands.
16094 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
16096         * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
16097         specific need, just fallback on defaults.
16098         (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
16100 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
16101             Olivier Hainque  <hainque@adacore.com>
16103         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
16104         map for 64bits.
16105         (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
16106         targets. Pick a default if no particular attempt applied.
16107         (STACK_CHECK_PROTECT): Double for 64bit targets, which have
16108         larger contexts.
16110 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
16112         * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
16113         (x86_64-wrs-vxworks7): Likewise.
16115 2017-06-27  Marek Polacek  <polacek@redhat.com>
16117         PR sanitizer/81223
16118         * ubsan.c (instrument_null): Check get_base_address's result for null.
16120 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
16122         * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
16124 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
16126         * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
16127         BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
16128         (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
16129         BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
16130         New function types.
16131         * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
16132         BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
16133         BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
16134         BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
16135         BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
16136         BUILT_IN_FEUPDATEENV): New builtins.
16137         * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
16138         TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
16139         * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
16140         fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
16141         macros.
16142         (builtin_structptr_types): Adjust size.
16143         * tree.c (builtin_structptr_types): Add four entries.
16145 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
16146             Olivier Hainque  <hainque@adacore.com>
16148         * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
16149         (TLS_SYM): New local macro, forcing reference to __tls__ on
16150         link command lines for VxWorks 7 RTPs, triggering initialization
16151         of tlsLib.
16152         (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
16153         OS features TLS support, true for RTPs on VxWorks 7.
16154         * config/vxworks.c (vxworks_override_options): Setup emutls
16155         accordingly.
16157 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
16159         * predict.c (test_prediction_value_range): Use -1U instead of -1
16160         to avoid narrowing conversion warning.
16161         * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
16162         to avoid narrowing conversion warning.
16163         * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
16164         -1.
16165         * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
16167 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
16169         * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
16170         64bit configurations.
16171         (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
16172         (SIZE_TYPE): Likewise.
16173         * config/vxworks.c (vxworks_emutls_var_fields): Use
16174         long_unsigned_type_node instead of unsigned_type_node as the offset
16175         field type, which is "pointer" mode in emutls.c.
16177 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
16179         PR sanitizer/81209
16180         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
16182         PR middle-end/81207
16183         * gimple-fold.c (replace_call_with_call_and_fold): Handle
16184         gimple_vuse copying separately from gimple_vdef copying.
16186 2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
16188         * value-prof.c (free_hist): Remove call to memset and the enclosing if
16189         condition.
16191 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
16192             Olivier Hainque  <hainque@adacore.com>
16194         * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
16195         for all vxworks7 targets.
16196         * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
16197         (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
16198         (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
16199         variations for VX6/VX7 and 32/64bits later on in ...
16200         (VXWORKS_LIB_SPEC): Leverage new macros.
16201         (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
16202         as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
16204 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
16206         * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
16207         _VX_TOOL_FAMILY and _VX_TOOL to gnu.
16209 2017-06-26  Carl Love  <cel@us.ibm.com>
16211         * config/rs6000/rs6000-c.c: Add support for built-in functions
16212         vector bool char vec_reve (vector bool char);
16213         vector signed char vec_reve (vector signed char);
16214         vector unsigned char vec_reve (vector unsigned char);
16215         vector bool int vec_reve (vector bool int);
16216         vector signed int vec_reve (vector signed int);
16217         vector unsigned int vec_reve (vector unsigned int);
16218         vector bool long long vec_reve (vector bool long long);
16219         vector signed long long vec_reve (vector signed long long);
16220         vector unsigned long long vec_reve (vector unsigned long long);
16221         vector bool short vec_reve (vector bool short);
16222         vector signed short vec_reve (vector signed short);
16223         vector double vec_reve (vector double);
16224         vector float vec_reve (vector float);
16225         * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
16226         VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
16227         * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
16228         (altivec_vreve): New pattern.
16229         * config/rs6000/altivec.h (vec_reve): New define.
16230         * doc/extend.texi (vec_rev): Update the built-in documentation file
16231         for the new built-in functions.
16233 2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16235         PR tree-optimization/71815
16236         * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
16237         function.
16238         (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
16239         has_single_use.
16240         (slsr_process_phi): Likewise.
16241         (replace_uncond_cands_and_profitable_phis): Don't replace a
16242         multiply candidate with a stride of 1 (copy or cast).
16243         (phi_incr_cost): Call uses_consumed_by_stmt rather than
16244         has_single_use.
16245         (lowest_cost_path): Likewise.
16246         (total_savings): Likewise.
16248 2017-06-26  Richard Biener  <rguenther@suse.de>
16250         PR target/81175
16251         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
16252         Use def_builtin_pure for all gather builtins.
16254 2017-06-26  Richard Biener  <rguenther@suse.de>
16256         PR tree-optimization/81203
16257         * tree-tailcall.c (find_tail_calls): Do not move stmts into
16258         non-dominating BBs.
16260 2017-06-26  Marek Polacek  <polacek@redhat.com>
16262         PR c/80116
16263         * doc/invoke.texi: Document -Wmultistatement-macros.
16265 2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
16267         * doc/sourcebuild.texi (ARM-specific attributes): Document new
16268         arm_neon_ok_no_float_abi effective target.
16270 2017-06-26  Richard Biener  <rguenther@suse.de>
16272         PR tree-optimization/80928
16273         * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
16274         (copy_bbs): Set BB_DUPLICATED flag early.
16275         (execute_on_growing_pred): Do not execute for BB_DUPLICATED
16276         marked blocks.
16277         (execute_on_shrinking_pred): Likewise.
16278         * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
16279         BB_DUPLICATED blocks.
16280         * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
16281         iterate over all PHIs considering removal of *gsi.
16283 2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
16285         * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
16286         qdf24xx.
16288 2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
16290         * config/rs6000/rs6000-string.c: (expand_block_clear,
16291         do_load_for_compare, select_block_compare_mode,
16292         compute_current_alignment, expand_block_compare,
16293         expand_strncmp_align_check, expand_strn_compare,
16294         expand_block_move, rs6000_output_load_multiple)
16295         Move functions related to string/block move/compare
16296         to a separate file.
16297         * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
16298         * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
16299         for this function which is now used in two files.
16300         * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
16301         * config.gcc: Add rs6000-string.o to extra_objs for
16302         targets powerpc*-*-* and rs6000*-*-*.
16304 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16306         PR target/80510
16307         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
16308         32-bit, since indexed is not valid for DImode.
16309         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
16310         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
16311         (define_peephole2 for Altivec d-form load): Add 32-bit support.
16312         (define_peephole2 for Altivec d-form store): Likewise.
16314         PR ipa/81185
16315         * multiple_target.c (create_dispatcher_calls): Only create the
16316         dispatcher call if the function is the default clone of a
16317         versioned function.
16319 2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
16321         PR middle-end/80902
16322         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
16323         a call, force the call to not be a tail call.
16325 2017-06-23  Jeff Law  <law@redhat.com>
16327         * doc/contrib.texi: Add entry for Steven Pemberton's work on
16328         enquire.
16330 2017-06-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
16332         * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
16333         update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
16334         handling for early expansion of vector shifts (sl,sr,sra,rl).
16335         (builtin_function_type): Add vector shift right instructions
16336         to the unsigned argument list.
16338 2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16340         rtl-optimizatoin/79286
16341         * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
16342         * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
16343         trap.  PIC register plus a const unspec without offset can never trap.
16345 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
16347         * tree.h (builtin_structptr_type): New type.
16348         (builtin_structptr_types): Declare new array.
16349         * tree.c (builtin_structptr_types): New array.
16350         (free_lang_data, build_common_tree_nodes): Use it.
16352 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
16354         PR c++/81187
16355         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
16356         -Wnoexcept.
16358 2017-06-22  Matt Turner  <mattst88@gmail.com>
16360         * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
16361         Lake models to skylake case.  Assume skylake for unknown
16362         models with clflushopt.
16364 2017-06-22  Jeff Law  <law@redhat.com>
16366         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
16367         frame sizes that do not satisfy aarch64_uimm12_shift.
16369 2017-06-22  Jan Hubicka <hubicka@ucw.cz>
16371         * profile-count.h (apply_probability,
16372         apply_scale, probability_in): Fix checks for zero.
16374 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16376         * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
16377         * doc/cppdiropts.texi (-I @var{dir}): Document it.
16379 2016-06-22  Richard Biener  <rguenther@suse.de>
16381         * tree-vect-loop.c (vect_model_reduction_cost): Handle
16382         COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
16383         REDUC_MAX_EXPR support.
16384         (vectorizable_reduction): Likewise.
16385         (vect_create_epilog_for_reduction): Likewise.
16387 2017-06-22  James Greenhalgh  <james.greenhalgh@arm.com>
16389         * match.pd (A / (1 << B) -> A >> B): New.
16390         * generic-match-head.c: Include optabs-tree.h.
16391         * gimple-match-head.c: Likewise.
16392         * optabs-tree.h (target_supports_op_p): New.
16393         * optabs-tree.c (target_supports_op_p): New.
16395 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16397         * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
16398         $gcc_cv_ld --help output.
16399         (gcc_cv_ld_demangle): Likewise.
16400         (gcc_cv_ld_eh_frame_hdr): Likewise.
16401         (gcc_cv_ld_pie): Likewise.
16402         (gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
16403         (gcc_cv_ld_buildid): Likewise.
16404         (gcc_cv_ld_sysroot): Likewise.
16405         (ld_bndplt_support): Likewise.
16406         (ld_pushpopstate_support): Likewise.
16407         * configure: Regenerate.
16408         * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
16410 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
16412         PR target/81151
16413         * config/i386/sse.md (round<mode>2): Renumber match_dup and
16414         operands indexes to avoid gap between operands and match_dups.
16416 2017-06-21  Andrew Pinski  <apinski@cavium.com>
16418         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
16419         Increment Arith_shift and Arith_shift_reg by 1.
16420         * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
16421         New tuning flag.
16422         * config/aarch64/aarch64.c (thunderx_tunings): Enable
16423         AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
16424         (aarch64_strip_extend): Add new argument and test for it.
16425         (aarch64_cheap_mult_shift_p): New function.
16426         (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
16427         add a cost if it is true.
16428         Update calls to aarch64_strip_extend.
16429         (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
16431 2017-06-21  Andrew Pinski  <apinski@cavium.com>
16433         * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
16434         tunings.
16435         (thunderxt88): Likewise.
16436         * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
16437         (thunderx_prefetch_tune): New variable.
16438         (thunderx2t99_prefetch_tune): Update for the correct values.
16439         (thunderxt88_tunings): New variable.
16440         (thunderx_tunings): Use thunderx_prefetch_tune instead of
16441         generic_prefetch_tune.
16442         (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
16444 2017-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16446         * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
16447         SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
16448         (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
16449         (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
16450         (aarch64_atomic_cas<mode>, GPI): Likewise.
16452 2017-06-21  Martin Liska  <mliska@suse.cz>
16454         * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
16455         statements on cold and hot labels.
16456         * predict.c (tree_estimate_probability_bb): Remove the
16457         prediction from this place.
16459 2017-06-21  Martin Liska  <mliska@suse.cz>
16461         PR tree-optimization/79489
16462         * gimplify.c (maybe_add_early_return_predict_stmt): New
16463         function.
16464         (gimplify_return_expr): Call the function.
16465         * predict.c (tree_estimate_probability_bb): Remove handling
16466         of early return.
16467         * predict.def: Update comment about early return predictor.
16468         * gimple-predict.h (is_gimple_predict): New function.
16469         * predict.def: Change default value of early return to 66.
16470         * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
16471         statements.
16472         * passes.def: Put pass_strip_predict_hints to the beginning of
16473         IPA passes.
16475 2017-06-21  Pierre-Marie de Rodat  <derodat@adacore.com>
16477         * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
16478         FUNCTION_DECL declarations.
16479         (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
16480         declarations.
16481         (dwaf2out_decl): Likewise.
16482         * godump.c (go_early_global_decl): Skip call to the real debug hook
16483         for FUNCTION_DECL declarations.
16484         * passes.c (rest_of_decl_compilation): Skip call to the
16485         early_global_decl debug hook for FUNCTION_DECL declarations, unless
16486         -fdump-go-spec is passed.
16488 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
16490         * config/i386/i386.c (struct builtin_isa): New field pure_p.
16491         Reorder for compactness.
16492         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
16493         (def_builtin_pure, def_builtin_pure2): New functions.
16494         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
16496 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
16498         * match.pd (nop_convert): New predicate.
16499         ((A +- CST1) +- CST2): Allow some NOP conversions.
16501 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
16503         PR c++/81130
16504         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
16505         with ctors/dtors if GOVD_SHARED is set.
16507 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
16509         * config/aarch64/aarch64.md (movti_aarch64):
16510         Emit mov rather than orr.
16511         (movtf_aarch64): Likewise.
16512         * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
16513         Emit mov rather than orr.
16515 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
16517         * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
16518         Swap alternatives, make integer dup more expensive.
16520 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
16522         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
16523         Return true for non-tls symbols.
16525 2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>
16527         * config/aarch64/aarch64-cores.def (cortex-a55): New.
16528         (cortex-a75): Likewise.
16529         (cortex-a75.cortex-a55): Likewise.
16530         * config/aarch64/aarch64-tune.md: Regenerate.
16531         * doc/invoke.texi (-mtune): Document new values for -mtune.
16533 2017-06-21  Tom de Vries  <tom@codesourcery.com>
16535         * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
16536         stack_size feature.
16537         (Effective-Target Keywords, Other attributes): Suggest using
16538         dg-add-options stack_size feature to get stack limit in stack_size
16539         effective target documentation.
16541 2017-06-21  Julian Brown  <julian@codesourcery.com>
16542             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
16544         * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
16545         (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
16546         * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
16547         reservation.
16548         * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
16549         attribute type list for neon_multiply.
16550         * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
16551         attribute type list for neon_multiply.
16552         * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
16553         * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
16554         attribute type list for neon_multiply.
16555         * config/arm/types.md (crypto_pmull): Add.
16556         * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
16557         attribute type list.
16559 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
16561         * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
16562         arm1176jzf-s.
16564 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
16566         * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
16567         to make sure not to dereference a NULL cost_classes_ptr pointer.
16569 2017-06-20  Carl Love  <cel@us.ibm.com>
16571         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16572         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
16573         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
16574         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
16575         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
16576         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
16577         VMULOSW): New enum "unspec" values.
16578         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
16579         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
16580         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
16581         altivec_vmulosw): New patterns.
16582         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
16583         VMULOSW): Add definitions.
16585 2017-06-20  Julia Koval  <julia.koval@intel.com>
16587         * config/i386/i386.c: Fix rounding expand for new pattern.
16588         * config/i386/subst.md: Fix pattern (parallel -> unspec).
16590 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
16592         * config/aarch64/aarch64-option-extensions.def (rcpc): New.
16593         * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
16595 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
16597         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
16598         feature string.
16600 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
16602         * config/aarch64/aarch64-cores.def: Rearrange to sort by
16603         architecture, then by implementer ID.
16604         * config/aarch64/aarch64-tune.md: Regenerate.
16606 2017-06-20  Richard Biener  <rguenther@suse.de>
16608         PR middle-end/81097
16609         * fold-const.c (split_tree): Fold to type before negating.
16611 2017-06-20  David Malcolm  <dmalcolm@redhat.com>
16613         * diagnostic-show-locus.c
16614         (selftest::test_fixit_deletion_affecting_newline): New function.
16615         (selftest::diagnostic_show_locus_c_tests): Call it.
16617 2017-06-20  Andreas Schwab  <schwab@suse.de>
16619         PR target/80970
16620         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
16621         instead of "+d".
16623 2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
16625         * config/arm/arm-c.c (arm_cpu_builtins): New block to define
16626         __ARM_FEATURE_COPROC according to support.
16628 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
16630         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
16631         Rewritten to avoid overflow for > 32-bit pointers.
16633         PR sanitizer/81125
16634         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
16635         by removing enum keyword.
16636         (ubsan_type_descriptor): Likewise.  Formatting fix.
16638         PR target/81121
16639         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
16640         splitter): Require TARGET_SSE2 in the condition.
16642 2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
16644         PR target/79799
16645         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
16646         for doing vector set of SFmode on ISA 3.0.
16647         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
16648         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
16649         element.
16650         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
16651         SFmode value into a V4SF variable that was extracted from another
16652         V4SF variable without converting the element to double precision
16653         and back to single precision vector format.
16654         (vsx_insert_extract_v4sf_p9_2): Likewise.
16656 2017-06-19  Jakub Jelinek  <jakub@redhat.com>
16658         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
16659         in UWHI to avoid undefined overflow.
16661         PR sanitizer/81125
16662         * ubsan.h (enum ubsan_encode_value_phase): New.
16663         (ubsan_encode_value): Change second argument to
16664         enum ubsan_encode_value_phase with default value of
16665         UBSAN_ENCODE_VALUE_GENERIC.
16666         * ubsan.c (ubsan_encode_value): Change second argument to
16667         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
16668         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
16669         create_tmp_var_raw instead of create_tmp_var and use a
16670         TARGET_EXPR.
16671         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
16672         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
16673         ubsan_encode_value callers.
16675         PR sanitizer/81111
16676         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
16677         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
16678         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
16680 2017-06-19  Richard Biener  <rguenther@suse.de>
16682         PR middle-end/81118
16683         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
16684         estimates if we changed anything.
16686 2017-06-19  Richard Biener  <rguenther@suse.de>
16688         PR tree-optimization/80887
16689         * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
16690         (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
16691         simplified lookups, then reset mprts_hook.
16692         (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
16693         simplifying.
16694         (try_to_simplify): Likewise.
16696 2017-06-19  Martin Liska  <mliska@suse.cz>
16698         PR sanitizer/80879
16699         * gimplify.c (gimplify_switch_expr):
16700         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
16702 2017-06-19  Martin Liska  <mliska@suse.cz>
16704         * doc/install.texi: Document that PGO runs in 4 stages.
16706 2017-06-19  Martin Liska  <mliska@suse.cz>
16708         PR ipa/80732
16709         * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
16710         to dispatcher function name.
16711         * multiple_target.c (replace_function_decl): New function.
16712         (create_dispatcher_calls): Redirect both edges and references.
16714 2017-06-19  Jan Hubicka <hubicka@ucw.cz>
16716         * profile-count.c (profile_count::dump): Dump quality.
16717         (profile_count::differs_from_p): Update for unsigned val.
16718         * profile-count.h (profile_count_quality): New enum.
16719         (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
16721 2017-06-19  Richard Biener  <rguenther@suse.de>
16723         * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
16724         struct function as arg.
16725         (estimate_numbers_of_iterations): Export overload with loop arg.
16726         (free_numbers_of_iterations_estimates_loop): Use an overload of
16727         free_numbers_of_iterations_estimates instead.
16728         * tree-cfg.c (remove_bb): Adjust.
16729         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
16730         * tree-parloops.c (gen_parallel_loop): Likewise.
16731         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
16732         Likewise.
16733         (tree_unroll_loops_completely): Likewise.
16734         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
16735         Use an overload instead and export.
16736         (estimated_loop_iterations): Adjust.
16737         (max_loop_iterations): Likewise.
16738         (likely_max_loop_iterations): Likewise.
16739         (estimate_numbers_of_iterations): Take struct function as arg
16740         and adjust.
16741         (loop_exits_before_overflow): Adjust.
16742         (free_numbers_of_iterations_estimates_loop): Use an overload.
16743         * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
16744         * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
16746 2017-06-19  Richard Biener  <rguenther@suse.de>
16748         PR ipa/81112
16749         * ipa-prop.c (find_constructor_constant_at_offset): Handle
16750         RANGE_EXPR conservatively.
16752 2017-06-16  Carl Love  <cel@us.ibm.com>
16754         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16755         definitions for vec_float, vec_float2, vec_floato,
16756         vec_floate built-ins.
16757         * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
16758         for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
16759         floate.
16760         * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
16761         FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
16762         UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
16763         * config/altivec.md (define_insn "p8_vmrgew_<mode>",
16764         define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
16765         * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
16766         vec_floato): Add builtin defines.
16767         * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
16768         Update the built-in documentation file for the new built-in
16769         functions.
16771 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16773         * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
16774         (mthumb): Mark as the negative of -marm.
16776 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16778         * doc/invoke.texi (ARM Options, -mcpu): Document supported
16779         extension options.
16780         (ARM Options, -mtune): Document that this accepts the same
16781         extension options as -mcpu.
16782         (ARM Options, -mfpu): Document addition of -mfpu=auto.
16784 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16786         * doc/invoke.texi (ARM Options, -march=): Document new syntax and
16787         permitted extensions.
16789 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16791         * config/arm/arm-cpus.in (armv7): Add extension +nofp.
16792         (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
16793         (armv8-m.main): Add option +nodsp.
16794         * config/arm/arm-cpu-cdata.h: Regenerated.
16796 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16798         * config/arm/t-fuchsia: New file.
16799         * config.gcc (arm*-*-fuchsia*): Use it.
16801 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16803         * config/arm/t-symbian: Rewrite for new option infrastructure.
16805 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16807         * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
16808         (MULTILIB_REQUIRED): Likewise.
16810 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16812         * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
16813         (MULTILIB_RESUE): Likewise.
16814         (MULTILIB_MATCHES): Likewise.
16815         (MULTLIB_REQUIRED): Likewise.
16817 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16819         * config/arm/t-rtems: Rewrite for new option framework.
16821 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16823         * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
16824         (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
16825         (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
16826         (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
16827         * config/arm/t-multilib: ... here.
16828         (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
16829         (MULTILIB_MATCHES): Use armv7 libraries for armv7-r.  Also use for
16830         armv7-a and armv8*-a when A-profile libraries have not been built.
16831         * config/arm/t-rmprofile: Rewrite.
16833 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16835         * genmultilib (multilib_reuse): Allow an explicit period to be escaped
16836         with a backslash.  Remove the backslash after substituting unescaped
16837         periods.
16838         * doc/fragments.texi (MULTILIB_REUSE): Document it.
16840 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16842         * config.gcc: (arm*-*-*): When building a-profile libraries, force
16843         the driver to pass through the default setting of -mfloat-abi.
16844         * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
16845         rather than NULL.
16846         * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
16847         (all_feat_combs): New rule.
16848         (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories.  Rework
16849         default libraries.
16850         * config/arm/t-aprofile: Rewrite.
16852 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16854         * config/arm/arm.h (FPUTYPE_AUTO): Define.
16855         * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
16856         fpu is not specified by the user/command-line.
16857         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
16858         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
16859         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
16860         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
16861         * common/config/arm/arm-common.c (arm_canon_arch_option): Use
16862         FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
16864 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16866         * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
16867         * config/arm/t-arm-elf: Rewritten.
16869 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16871         * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
16872         have some floating-point instructions.
16873         (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
16874         (TARGET_MAYBE_HARD_FLOAT): New macro.
16875         * config/arm/arm-builtins.c (arm_init_builtins): Use
16876         TARGET_MAYBE_HARD_FLOAT.
16877         * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
16879 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16881         * common/config/arm/arm-common.c: Define INCLUDE_LIST.
16882         (configargs.h): Include it.
16883         (arm_print_hint_for_fpu_option): New function.
16884         (arm_parse_fpu_option): New function.
16885         (candidate_extension): New class.
16886         (arm_canon_for_multilib): New function.
16887         * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
16888         (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
16889         (ARCH_CANONICAL_SPECS): New macro.
16890         (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
16892 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16894         * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
16895         are set after handling multilib fragments.  Set target_cpu_default2
16896         from with_cpu.
16898 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16900         * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
16901         cpu name.
16902         (arm*-*-*): Set target_cpu_default2 to a quoted string.
16903         * config/arm/parsecpu.awk (check_cpu): Validate any extension
16904         options.
16905         (check_arch): Likewise.
16906         * config/arm/arm.c (arm_configure_build_target): Handle
16907         TARGET_CPU_DEFAULT being a string constant.  Scan any feature
16908         options in the default.
16910 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16912         * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
16913         when an option is an alias of another.
16914         * config/arm/parsecpu.awk (optalias): New parser token.
16915         (gen_comm_data): Mark non-alias options as such.  Emit entries
16916         for extension aliases.
16917         * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
16918         (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
16919         (armv6kz, armv6zk, armv6t2): Likewise.
16920         (armv7): Make vfpv3-d16 an alias.
16921         (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases.  Sort in
16922         canonical order.
16923         (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
16924         Sort in canonical order.
16925         (armv8-a): Sort in canonical order.
16926         (armv8.1-a, armv8.2-a):  Likewise.
16927         (generic-armv7-a): Make neon and neon-vfpv3 aliases.  Sort in
16928         canonical order.
16929         (cortex-a9): Sort in canonical order.
16930         * config/arm/arm.c (selftests.h): Include it.
16931         (arm_test_cpu_arch_data): New function.
16932         (arm_run_self_tests): New function.
16933         (TARGET_RUN_TARGET_SELFTESTS): Redefine.
16934         (targetm): Move declaration to the end of the file.
16935         * arm-cpu-cdata.h: Regenerated.
16937 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16939         * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
16940         call to target_mode_check describing the type of option passed.
16941         * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
16942         (arm_target_thumb_only): Use arm_parse_arch_option_name or
16943         arm_parse_cpu_option_name to match parameters against list of
16944         available targets.
16945         * config/arm/parsecpu.awk (gen_comm_data): Don't generate
16946         arm_arch_core_flags data structure.
16947         * config/arm/arm-cpu_cdata.h: Regenerated.
16949 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16951         * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
16952         config/arm/arm.c.
16953         (arm_print_hint_for_cpu_option): Likewise.
16954         (arm_print_hint_for_arch_option): Likewise.
16955         (arm_parse_cpu_option_name): Likewise.
16956         (arm_parse_arch_option_name): Likewise.
16957         * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
16958         of entries in the all_fpus list.
16959         * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
16960         (arm_parse_cpu_option_name): Declare.
16961         (arm_parse_arch_option_name): Declare.
16962         (arm_parse_option_features): Declare.
16963         (arm_intialize_isa): Declare.
16964         * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
16965         data tables to ...
16966         (gen_comm_data): ... here.  Make definitions non-static.
16967         * config/arm/arm-cpu-data.h: Regenerated.
16968         * config/arm/arm-cpu-cdata.h: Regenerated.
16970 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16972         * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
16973         (cpu_arch_extension): New structure.
16974         (cpu_arch_option, arch_option, cpu_option): New structures.
16975         * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
16976         architecture types.
16977         (gen_data): Generate new format data tables.
16978         * config/arm/arm.c (cpu_tune): New structure.
16979         (cpu_option, processors): Delete.
16980         (arm_print_hint_for_core_or_arch): Delete.  Replace with ...
16981         (arm_print_hint_for_cpu_option): ... this and ...
16982         (arm_print_hint_for_arch_option): ... this.
16983         (arm_parse_arch_cpu_name): Delete.  Replace with ...
16984         (arm_parse_cpu_option_name): ... this and ...
16985         (arm_parse_arch_option_name): ... this.
16986         (arm_unrecognized_feature): Change type of target parameter to
16987         cpu_arch_option.
16988         (arm_parse_arch_cpu_features): Delete.  Replace with ...
16989         (arm_parse_option_features): ... this.
16990         (arm_configure_build_target): Rework to use new configuration data
16991         tables.
16992         (arm_print_tune_info): Rework for new configuration data tables.
16993         * config/arm/arm-cpu-data.h: Regenerated.
16994         * config/arm/arm-cpu.h: Regenerated.
16996 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16998         * Makefile.in (OBJS): Move sbitmap.o from here ...
16999         (OBJS-libcommon): ... to here.
17001 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
17003         * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
17004         (ISA_ALL_CRYPTO): New macro.
17005         (ISA_ALL_SIMD): New macro
17006         (ISA_ALL_FP): New macro.
17007         * config/arm/arm.c (fpu_bitlist): Update initializer.
17008         * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
17009         simd or fp.
17010         (arm9e): Add fpu.  Add option for nofp
17011         (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
17012         (arm926ej-s, arm1026ej-s): Likewise.
17013         (generic-armv7-a): Add fpu.  Add options for simd, vfpv3, vfpv3-d16,
17014         vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
17015         neon-fp16, neon-vfpv4, nofp and nosimd.
17016         (cortex-a5, cortex-a7): Add fpu.  Add options for nosimd and nofp.
17017         (cortex-a8): Add fpu.  Add option for nofp.
17018         (cortex-a9): Add fpu.  Add options for nosimd and nofp.
17019         (cortex-a12, cortex-a15, cortex-a17): Add fpu.  Add option for nofp.
17020         (cortex-r4f): Add fpu.
17021         (cortex-r5): Add fpu.  Add options for nofp.dp and nofp.
17022         (cortex-r7): Use idiv option from architecture.  Add fpu.  Add option
17023         for nofp.
17024         (cortex-r8): Likewise.
17025         (cortex-m4): Add fpu.  Add option for nofp.
17026         (cortex-a15.cortex-a7): Add fpu.  Add option for nofp.
17027         (cortex-a17.cortex-a7): Likewise.
17028         (cortex-a32): Add fpu.  Add options for crypto and nofp.
17029         (cortex-a35, cortex-a53): Likewise.
17030         (cortex-a57): Add fpu.  Add option for crypto.
17031         (cortex-a72, cortex-a73): Likewise.
17032         (exynos-m1): Likewise.
17033         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
17034         (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
17035         (cortex-m33): Add fpu.  Add option for nofp.
17036         * config/arm/arm-cpu-cdata.h: Regenerated
17037         * config/arm/arm-cpu-data.h: Regenerated.
17039 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
17041         * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
17042         (armv5te, armv5tej): Likewise.
17043         (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
17044         (armv7): Add options fp and vfpv3-d16.
17045         (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
17046         vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
17047         nofp and nosimd.
17048         (armv7ve): Likewise.
17049         (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
17050         (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
17051         (armv8-a): Add nocrypto option.
17052         (armv8.1-a, armv8.2-a): Likewise.
17053         (armv8-m.main): add options fp, fp.dp and nofp.
17055 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
17057         * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
17058         nofp.
17059         (armv8-a+crc): Delete.
17060         (armv8.1-a): Add options simd, crypto and nofp.
17061         (armv8.2-a): Add options fp16, simd, crypto and nofp.
17062         (armv8.2-a+fp16): Delete.
17063         (armv8-m.main): Add option dsp.
17064         (armv8-m.main+dsp): Delete.
17065         (cortex-a8): Add fpu.  Add nofp option.
17066         (cortex-a9): Add fpu.  Add nofp and nosimd options.
17067         * config/arm/parsecpu.awk (gen_data): Generate option tables and
17068         link to main cpu and architecture data structures.
17069         (gen_comm_data): Only put isa attributes from the main architecture
17070         in common tables.
17071         (option): New statement for architecture and CPU entries.
17072         * arm.c (struct cpu_option): New structure.
17073         (struct processors): Add entry for options.
17074         (arm_unrecognized_feature): New function.
17075         (arm_parse_arch_cpu_name): Ignore any characters after the first
17076         '+' character.
17077         (arm_parse_arch_cpu_feature): New function.
17078         (arm_configure_build_target): Separate out any CPU and architecture
17079         features and parse separately.  Don't error out if -mfpu=auto is
17080         used with only an architecture string.
17081         (arm_print_asm_arch_directives): New function.
17082         (arm_file_start): Call it.
17083         * config/arm/arm-cpu-cdata.h: Regenerated.
17084         * config/arm/arm-cpu-data.h: Likewise.
17085         * config/arm/arm-tables.opt: Likewise.
17087 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
17089         * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
17090         assembler when it is not -mfpu=auto.
17092 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
17094         * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
17095         (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
17096         (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
17097         (ASM_CPU_SPEC): Rewrite.
17098         (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
17099         (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
17100         MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
17101         reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
17102         * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
17103         copied string is NUL-terminated.  Also strip any characters prefixed
17104         by '+'.
17105         (arm_rewrite_selected_arch): New function.
17106         (arm_rewrite_march): New function.
17108 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
17110         * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
17111         (x_arm_cpu_string, x_arm_tune_string): Likewise.
17112         (march, mcpu, mtune): Convert to string-based options.
17113         * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
17114         (arm_parse_arch_cpu_name): New function.
17115         (arm_configure_build_target): Use arm_parse_arch_cpu_name to
17116         identify selected architecture or CPU.
17117         (arm_option_save): New function.
17118         (TARGET_OPTION_SAVE): Redefine.
17119         (arm_option_restore): Restore string options.
17120         (arm_option_print): Print string options.
17122 2017-06-16  Martin Sebor  <msebor@redhat.com>
17124         PR tree-optimization/80933
17125         PR tree-optimization/80934
17126         * builtins.c (fold_builtin_3): Do not handle bcmp here.
17127         * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
17128         (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
17129         (gimple_fold_builtin): Call them.
17131 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
17133         * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
17134         as unlikely; update profile.
17136 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
17138         * predict.c (force_edge_cold): Handle declaring edges impossible
17139         more aggresively.
17141 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
17143         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
17144         profile.
17145         (try_unroll_loop_completely): Fix reporting.
17147 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
17149         * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
17151 2017-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
17153         PR target/71778
17154         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
17155         if given a non-constant argument for an intrinsic which requires a
17156         constant.
17158 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
17160         * profile.c (compare_freqs): New function.
17161         (branch_prob): Sort edge list.
17162         (find_spanning_tree): Assume that the list is priority sorted.
17164 2017-06-16  Richard Biener  <rguenther@suse.de>
17166         PR tree-optimization/81090
17167         * passes.def (pass_record_bounds): Remove.
17168         * tree-pass.h (make_pass_record_bounds): Likewise.
17169         * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
17170         make_pass_record_bounds): Likewise.
17171         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
17172         not free niter estimates at the beginning but at the end.
17173         * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
17175 2017-06-16  Richard Biener  <rguenther@suse.de>
17177         * tree-switch-conversion.c (emit_case_bit_tests): Adjust
17178         initializer to workaround ICE in host GCC 4.8.
17180 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
17182         * ipa-inline-transform.c (update_noncloned_frequencies): Update also
17183         counts.
17184         (clone_inlined_nodes): Update.
17186 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17188         * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
17189         prefetch settings, and enable prefetching by default at -O3.
17191 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17193         * config/aarch64/aarch64.c (aarch64_override_options_internal):
17194         Set flag_prefetch_loop_arrays according to tuning data.
17196 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17198         * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
17199         New tune structure.
17200         (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
17201         [Unrelated to main purpose of the patch] Place the pointer field last
17202         to enable type checking errors when tune structure are wrongly merged.
17203         * config/aarch64/aarch64.c (generic_prefetch_tune,)
17204         (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
17205         (thunderx2t99_prefetch_tune): New tune constants.
17206         (tune_params *_tunings): Update all tunings (no functional change).
17207         (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
17208         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
17209         from tunings structures.
17211 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
17213         PR sanitizer/81094
17214         * ubsan.c (instrument_null): Add T argument, use it instead
17215         of computing it based on IS_LHS.
17216         (instrument_object_size): Likewise.
17217         (pass_ubsan::execute): Adjust instrument_null and
17218         instrument_object_size callers to pass gimple_get_lhs or
17219         gimple_assign_rhs1 result to it.  Use instrument_null instead of
17220         calling get_base_address and instrument_mem_ref.  Handle
17221         aggregate call arguments for object-size sanitization.
17223 2017-06-16  Yury Gribov  <tetra2005@gmail.com>
17225         PR tree-optimization/81089
17226         * tree-vrp.c (is_masked_range_test): Validate operands of
17227         subexpression.
17229 2017-06-15  Martin Sebor  <msebor@redhat.com>
17231         PR c++/80560
17232         * dumpfile.c (dump_register): Avoid calling memset to initialize
17233         a class with a default ctor.
17234         * gcc.c (struct compiler): Remove const qualification.
17235         * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
17236         * hash-table.h: Ditto.
17237         * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
17238           assignment.
17239         * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
17240         * omp-low.c (lower_omp_ordered_clauses): Replace memset with
17241         default ctor.
17242         * params.h (struct param_info): Make struct members non-const.
17243         * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
17244         with default initialization.
17245         * vec.h (vec_copy_construct, vec_default_construct): New helper
17246         functions.
17247         (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
17248         with vec_copy_construct.
17249         (vect<T>::quick_grow_cleared): Replace memset with default ctor.
17250         (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
17251         * doc/invoke.texi (-Wclass-memaccess): Document.
17253 2017-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17255         * emit-rtl.h (is_leaf): Update comment about local
17256         register allocator.
17258 2017-06-15  Jozef Lawrynowicz   <jozef.l@somniumtech.com>
17260         PR target/78818
17261         * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
17262         for a variable to have a section before checking if the section has a
17263         name.
17264         Set section to.persistent if persistent attribute is set.
17265         Warn if .persistent attribute is used on an automatic variable.
17267 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
17269         PR rtl-optimization/80474
17270         * reorg.c (update_block): Do not ignore instructions in a delay slot.
17272 2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
17274         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
17275         of REGNO.
17277 2017-06-14  Maciej W. Rozycki  <macro@imgtec.com>
17279         * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
17280         (casesi): Emit bounds checking as RTL.
17281         (casesi_internal_mips16_<mode>): Remove bounds checking.
17283 2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
17285         * config/xtensa/xtensa.c (xtensa_option_override): Append
17286         MASK_CONST16 to target_flags in the absence of TARGET_L32R.
17287         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
17288          xtensa_doloop_hooks): Define unconditionally.
17289         (xtensa_reorg_loops): Only call reorg_loops in the presence of
17290         TARGET_LOOPS.
17291         * config/xtensa/xtensa.h (TARGET_L32R): New definition.
17292         (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
17293         for it in xtensa_option_override.
17294         (HARD_FRAME_POINTER_IS_FRAME_POINTER,
17295          HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
17297 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
17299         * doc/cppopts.texi: Document '-' special value to -MF.
17301 2017-06-14  Wilco Dijkstra  <wdijkstr@arm.com>
17303         * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
17304         (cortex_a53_fconst): Likewise.
17305         (cortex_a53_fpmul): Likewise.
17306         (cortex_a53_f_load_64): Likewise.
17307         (cortex_a53_f_load_many): Likewise.
17308         (cortex_a53_advsimd_alu): Likewise.
17309         (cortex_a53_advsimd_alu_q): Likewise.
17310         (cortex_a53_advsimd_mul): Likewise.
17311         (cortex_a53_advsimd_mul_q): Likewise.
17312         (fpmac bypass): Add new bypass for fpmac-fpmac case.
17313         Add missing fmul, r2f_cvt and fconst cases.
17315 2017-06-14  Richard Biener  <rguenther@suse.de>
17317         PR middle-end/81088
17318         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
17319         literal constants.
17320         (fold_binary_loc): When associating do not treat pre-existing
17321         TREE_OVERFLOW on literal constants as a reason to allow
17322         TREE_OVERFLOW on associated literal constants.
17324 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
17326         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
17327         (MASK_FEATURES): New macro.
17328         * config/sparc/sparc.c (sparc_option_override): Remove the special
17329         handling of -mfpu and generalize it to all MASK_FEATURES switches.
17331 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
17333         * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
17334         a division of 0 if non-call exceptions are enabled.
17336 2017-06-14  Andrew Pinski  <apinski@cavium.com>
17337             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
17339         PR target/71663
17340         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
17341         Improve vector initialization code gen for only variable case.
17343 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
17345         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
17347 2017-06-14  Richard Biener  <rguenther@suse.de>
17349         PR tree-optimization/81083
17350         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
17351         as values.
17353 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
17355         * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
17356         (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
17357         * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
17358         * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
17359         * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
17360         * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
17362 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
17364         * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
17365         * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
17367 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
17369         * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
17371 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
17373         * config/rs6000/t-rtems: Don't handle SPE.
17375 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
17377         * config/rs6000/t-linux: Don't handle SPE.
17379 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
17381         * config/rs6000/eabispe.h: Delete file.
17383 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
17385         * config/rs6000/t-spe: Delete file.
17387 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
17389         * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
17390         (rs6000_legitimate_offset_address_p): Return false for anything in
17391         V2SImode or V2SFmode.
17393 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
17395         * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
17396         except V2SF and V2SI.  Rearrange the vector modes, and add comments.
17397         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
17398         and V4HImode.
17399         (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
17400         (rs6000_legitimate_offset_address_p): Ditto.
17401         (rs6000_emit_move): Ditto.
17402         (rs6000_init_builtins): Remove V4HI_type_node.
17404 2017-06-13  Martin Liska  <mliska@suse.cz>
17406         PR sanitize/78204
17407         * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
17408         (gate_asan): Likewise.
17409         * asan.h (asan_no_sanitize_address_p): Remove the function.
17410         (sanitize_flags_p): New function.
17411         * builtins.def: Fix coding style.
17412         * common.opt: Use renamed enum value.
17413         * convert.c (convert_to_integer_1): Use sanitize_flags_p.
17414         * doc/extend.texi: Document no_sanitize attribute.
17415         * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
17416         to SANITIZE_UNDEFINED_NONDEFAULT.
17417         * gcc.c (sanitize_spec_function): Use the renamed enum value.
17418         * gimple-fold.c (optimize_atomic_compare_exchange_p):
17419         Use sanitize_flags_p.
17420         * gimplify.c (gimplify_function_tree): Likewise.
17421         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
17422         * opts.c (parse_no_sanitize_attribute): New function.
17423         (common_handle_option): Use renamed enum value.
17424         * opts.h (parse_no_sanitize_attribute): Declare.
17425         * tree.c (sanitize_flags_p): New function.
17426         * tree.h: Declared here.
17427         * tsan.c: Use sanitize_flags_p.
17428         * ubsan.c (ubsan_expand_null_ifn): Likewise.
17429         (instrument_mem_ref): Likewise.
17430         (instrument_bool_enum_load): Likewise.
17431         (do_ubsan_in_current_function): Remove the function.
17432         (pass_ubsan::execute): Use sanitize_flags_p.
17433         * ubsan.h: Remove do_ubsan_in_current_function
17434         * tree-cfg.c (print_no_sanitize_attr_value): New function.
17435         (dump_function_to_file): Use it here.
17437 2017-06-13  Martin Jambor  <mjambor@suse.cz>
17439         PR tree-optimization/80803
17440         PR tree-optimization/81063
17441         * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
17442         (propagate_subaccesses_across_link): Enqueue subtree whenever
17443         necessary instead of relying on the caller.
17445 2017-06-13  Martin Jambor  <mjambor@suse.cz>
17447         * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
17448         that have a first_link.
17449         (sort_and_splice_var_accesses): Do not check first_link before
17450         enquing.
17451         (subtree_mark_written_and_enqueue): Likewise.
17452         (propagate_all_subaccesses): Likewise and do not stop at first
17453         parent with a first_link.
17455 2017-06-13  Martin Jambor  <mjambor@suse.cz>
17457         * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
17458         instead of f.
17460 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
17462         * match.pd: New pattern.
17464 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
17466         * tree-vrp.c (is_masked_range_test): New function.
17467         (register_edge_assert_for): Determine ranges for
17468         some bit tests.
17470 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
17472         PR tree-optimization/67328
17473         * fold-const.c (maskable_range_p): New function.
17474         (build_range_check): Generate bittests if possible.
17476 2017-06-13  Martin Liska  <mliska@suse.cz>
17478         * gimple-pretty-print.c (dump_probability): Add new argument.
17479         (dump_edge_probability): Dump both probability and count.
17480         (dump_gimple_label): Likewise.
17481         (dump_gimple_bb_header): Likewise.
17483 2017-06-13  Georg-Johann Lay  <avr@gjlay.de>
17485         PR target/81072
17486         * config/avr/avr-devices.c: Fix indentation.
17487         * config/avr/gen-avr-mmcu-specs.c: Dito.
17489 2017-06-13  Richard Biener  <rguenther@suse.de>
17491         * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
17492         instead get vector type from stmt_info.
17493         (vectorizable_reduction): Adjust.  Remove dead code.
17495 2017-06-13  Richard Biener  <rguenther@suse.de>
17497         PR middle-end/81065
17498         * fold-const.c (extract_muldiv_1): Remove bogus distribution
17499         case of C * (x * C2 + C3).
17500         (fold_addr_of_array_ref_difference): Properly fold index difference.
17502 2017-06-12  David S. Miller  <davem@davemloft.net>
17504         PR target/80968
17505         * config/sparc/sparc.md (return expander): Emit frame blockage if
17506         function uses alloca.
17508 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
17510         * combine.c (make_field_assignment): Check len rather than the mode
17511         precision when calling force_to_mode.
17513 2017-06-12  Georg-Johann Lay  <avr@gjlay.de>
17515         Support multilibs and devices that see flash in RAM address range.
17517         PR target/81072
17518         * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
17519         (avr_mcu_t) <flash_pm_offset>: New field.
17520         (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
17521         * config/avr/avr.h (AVR_SHORT_CALLS): New define.
17522         (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
17523         (AVR_TINY_PM_OFFSET): Remove macro.
17524         * config/avr/avr.opt (-mshort-calls): New option.
17525         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
17526         [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
17527         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
17528         <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
17529         <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
17530         instead of avr_arch->have_jmp_call.
17531         <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
17532         [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
17533         avr_arch->flash_pm_offset to define.
17534         * config/avr/avr-devices.c (avr_arch_types): Add initializers for
17535         new field flash_pm_offset.  Add entry for avrxmega3.
17536         (avr_texinfo): Add entry for avrxmega3.
17537         * config/avr/avr-mcus.def: Add entries for: avrxmega3,
17538         attiny212, attiny214,
17539         attiny412, attiny414, attiny416, attiny417,
17540         attiny814, attiny816, attiny817,
17541         attiny1614, attiny1616, attiny1617,
17542         attiny3214, attiny3216, attiny3217.
17543         * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
17544         avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
17545         (avr_print_operand_address) [AVR_TINY]: Same.
17546         (avr_asm_init_sections) <readonly_data_section>: Only patch
17547         callback if avr_arch->flash_pm_offset = 0.
17548         (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
17549         for rodata if avr_arch->flash_pm_offset != 0.
17550         (avr_encode_section_info) [AVR_TINY]: Adjust comment.
17551         * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
17552         (opts) [AVR_ISA_RCALL]: Append opt_rcall.
17553         (m_options): Append opt_rcall.
17554         (m_dirnames): Append dir_rcall.
17555         * config/avr/t-multilib: Regenerate.
17557         * configure.ac [target=avr]: Check whether avrxmega3 default
17558         linker description file works as needed.
17559         * configure: Regenerate.
17560         * doc/avr-mmcu.texi: Regenerate.
17561         * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
17562         <__AVR_ARCH__>: Document avrxmega3 and 103.
17563         <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
17564         <__AVR_SHORT_CALLS__>: Document it.
17565         <__AVR_PM_BASE_ADDRESS__>: Document it.
17566         * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
17567         (AVR Variable Attributes) <progmem>: Document this is
17568         not needed for avrxmega3.
17569         (AVR Named Address Spaces) <__flash>: Dito.
17571 2017-06-12  Jan Hubicka  <hubicka@ucw.cz>
17573         * cgraph.c (cgraph_node::dump): Complain about profile insanities.
17575 2017-06-12  Doug Rupp  <rupp@adacore.com>
17577         * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
17578         Append vxworks-stdint.h to the tm_file list.
17579         * config/vxworks-stdint.h: New file.
17581 2017-06-12  Martin Liska  <mliska@suse.cz>
17583         PR tree-optimization/81041
17584         * tree-profile.c (gimple_gen_ic_func_profiler):
17585         Create an extra BB in profile-generate
17586         (gimple_gen_time_profiler): Likewise.
17588 2017-06-12  Jakub Jelinek  <jakub@redhat.com>
17590         PR tree-optimization/81003
17591         * tree-ssa-reassoc.c (force_into_ssa_name): New function.
17592         (update_range_test): Use it instead of force_gimple_operand_gsi.
17594 2017-06-12  Richard Biener  <rguenther@suse.de>
17596         PR tree-optimization/81053
17597         * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
17598         with backedge value not defined in loop.  Simplify def stmt
17599         compute.
17601 2017-06-11  Tom de Vries  <tom@codesourcery.com>
17603         PR target/79939
17604         * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
17605         Return true.
17606         (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
17607         nvptx_cannot_force_const_mem.
17609 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
17611         * opts.c (finish_options): Move test for flag_split_stack after
17612         it has been initialized.
17614 2017-06-11  Jason Merrill  <jason@redhat.com>
17616         * tree.h (id_equal): New.
17617         * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
17618         omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
17619         instead of strcmp of IDENTIFIER_POINTER.
17621 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
17623         * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
17624         (mark_all_inlined_calls_cdtor): Fix formating.
17625         (inline_transform): Rescale profile before inlining.
17627 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
17629         * cgraph.h (cgraph_edge::clone): Update prototype.
17630         * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
17631         (cgraph_node::create_clone): Update.
17632         (cgraph_node::create_version_clone): Update.
17633         * tree-inline.c (copy_bb): Update.
17634         (expand_call_inline): Update.
17636 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
17638         * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
17639         factored out from ...
17640         (rs6000_emit_prologue): ... here.
17642 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
17644         * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
17645         factored out from ...
17646         (rs6000_emit_prologue): ... here.
17648 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
17650         * predict.c (drop_profile): Also drop individual bb/edge and cgraph
17651         edge counts.
17652         (handle_missing_profiles): Fix computation of tp_first_run.
17653         (counts_to_freqs): Do not touch freqs when count is 0.
17655 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
17657         * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
17658         profile.
17660 2017-06-10  Tom de Vries  <tom@codesourcery.com>
17662         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
17663         attributes): Document signal effective target.
17665 2017-06-10  Tom de Vries  <tom@codesourcery.com>
17667         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
17668         Document effective target stack_size.
17670 2017-06-09  David Malcolm  <dmalcolm@redhat.com>
17672         * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
17673         to the edit_context if they can be auto-applied.
17675 2017-06-9  Ian Lance Taylor  <iant@golang.org>
17677         * opts.c (finish_options): If -fsplit-stack, disable implicit
17678         -forder-blocks-and-partition.
17679         * doc/invoke.texi (Optimize Options): Document that when using
17680         -fsplit-stack -forder-blocks-and-partition is not implicitly
17681         enabled.
17683 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
17685         * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
17686         ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
17687         ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
17688         * builtins.def (abort, trap, unreachable): Declare cold.
17689         * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
17690         * tree-core.h (ECF_COLD): New.
17691         * tree.c (set_call_expr_flags): Handle ECF_COLD.
17692         (build_common_builtin_nodes): Mark unreachable and abort as cold.
17694 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
17696         * predict.c (unlikely_executed_stmt_p): Cleanup.
17698 2017-06-09  Richard Biener  <rguenther@suse.de>
17700         * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
17701         model if the ref is always written to.
17703 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
17705         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
17707 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
17709         * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
17710         than udiv.
17712 2017-06-09  Tom de Vries  <tom@codesourcery.com>
17714         PR target/80855
17715         * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
17716         "target cannot support label values" when encountering LABEL_REF.
17718 2017-06-09  Martin Liska  <mliska@suse.cz>
17720         * tree-profile.c (gimple_gen_ic_profiler): Update comment.
17721         (gimple_gen_ic_func_profiler): Emit direct comparison
17722         of __gcov_indirect_call_callee with NULL.
17723         (gimple_gen_time_profiler): Change probability from
17724         PROB_VERY_UNLIKELY to PROB_UNLIKELY.
17726 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
17728         * profile.c (edge_gcov_counts): Turn to pointer.
17729         (compute_branch_probabilities, compute_branch_probabilities): Update.
17730         (branch_prob): Do not clear edge_gcov_count.
17731         * profile.h (edge_gcov_counts): Turn to pointer.
17732         (edge_gcov_count): Update.
17734 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
17736         * gimple.h (gimple_check_failed): Mark cold.
17738 2017-06-09  Richard Biener  <rguenther@suse.de>
17740         PR tree-optimization/66623
17741         * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
17742         refactor check_reduction into two parts, properly computing
17743         whether we have to check reduction validity for outer loop
17744         vectorization.
17746 2017-06-09  Richard Biener  <rguenther@suse.de>
17748         PR tree-optimization/79483
17749         * graphite-scop-detection.c (order): New global.
17750         (get_order): Compute bb to order mapping that satisfies code
17751         generation constraints.
17752         (cmp_pbbs): New helper.
17753         (build_scops): Start domwalk at entry block, sort generated
17754         pbbs.
17756 2017-06-09  Richard Biener  <rguenther@suse.de>
17758         PR middle-end/81007
17759         * ipa-polymorphic-call.c
17760         (ipa_polymorphic_call_context::restrict_to_inner_class):
17761         Skip FIELD_DECLs with error_mark_node type.
17762         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
17763         last again.
17765 2017-06-09  Martin Liska  <mliska@suse.cz>
17767         * predict.c (struct branch_predictor): New struct.
17768         (test_prediction_value_range): New test.
17769         (predict_c_tests): New function.
17770         * selftest-run-tests.c (selftest::run_tests): Run the function.
17771         * selftest.h: Declare new tests.
17773 2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
17775         PR target/80966
17776         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
17777         gen_add3_insn did not fail.
17778         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
17779         r0, construct that number in a temporary reg and add that reg to r0.
17780         If asked to put the result in r0 as well, fail.
17782 2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
17784         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
17785         for early expansion of vec_eqv.
17787 2017-06-08  Jakub Jelinek  <jakub@redhat.com>
17789         PR middle-end/81005
17790         * ubsan.c (instrument_null): Avoid pointless code temporary.
17791         (pass_ubsan::execute): Instrument aggregate arguments of calls.
17793 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
17795         PR target/81015
17796         Revert:
17797         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
17799         PR target/59874
17800         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
17801         (*clzhi2): Ditto.
17803 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17805         * predict.c (unlikely_executed_edge_p): Move ahead.
17806         (probably_never_executed_edge_p): Use it.
17808 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17810         PR middle-end/79988
17811         * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
17812         gimple_call_builtin_p call.
17814 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17816         * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
17817         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
17818         rtl_check_failed_type2, rtl_check_failed_code1,
17819         rtl_check_failed_code2, rtl_check_failed_code_mode,
17820         rtl_check_failed_block_symbol, cwi_check_failed_bounds,
17821         rtvec_check_failed_bounds, rtl_check_failed_flag,
17822         _fatal_insn_not_found, _fatal_insn): Likewise.
17823         * tree.h (tree_contains_struct_check_failed,
17824         tree_check_failed, tree_not_check_failed,
17825         tree_class_check_failed, tree_range_check_failed,
17826         tree_not_class_check_failed, tree_int_cst_elt_check_failed,
17827         tree_vec_elt_check_failed, phi_node_elt_check_failed,
17828         tree_operand_check_failed, omp_clause_check_failed,
17829         omp_clause_operand_check_failed, omp_clause_range_check_failed):
17830         Likewise.
17832 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17834         * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
17835         flag_branch_probabilities.
17836         * ipa-inline.c (edge_badness): Likewise.
17837         * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
17838         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
17839         * predict.c (maybe_hot_frequency_p): Likewise.
17840         (probably_never_executed): Likewise.
17841         * sched-ebb.c (schedule_ebbs): Likewise.
17842         * sched-rgn.c (find_single_block_region): Likewise.
17843         * tracer.c (tail_duplicate): Likewise.
17845 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17847         * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
17848         longer requires x_flag_profile_use.
17850 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17852         * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
17853         instead of flag_reorder_blocks_and_partition.
17854         * dbxout.c (dbxout_function_end): Likewise.
17855         * dwarf2out.c (gen_subprogram_die): Likewise.
17856         * haifa-sched.c (sched_create_recovery_edges): Likewise.
17857         * hw-doloop.c (reorg_loops): Likewise.
17858         * varasm.c (assemble_start_function,
17859         assemble_end_function): Likewise.
17860         (decide_function_section): Do not check for
17861         flag_reorder_blocks_and_partition.
17863 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17865         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
17866         New function.
17867         (chkp_get_hard_register_fake_addr_expr): Ditto.
17868         (chkp_build_addr_expr): Add check for hard reg case.
17869         (chkp_parse_array_and_component_ref): Ditto.
17870         (chkp_find_bounds_1): Ditto.
17871         (chkp_process_stmt): Don't generate bounds store for
17872         hard reg case.
17874 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17876         * predict.c (maybe_hot_bb_p): Do not check profile status.
17877         (maybe_hot_edge_p): Likewise.
17878         (probably_never_executed): Check for zero counts even if profile
17879         is not read.
17880         (unlikely_executed_edge_p): New function.
17881         (unlikely_executed_stmt_p): New function.
17882         (unlikely_executed_bb_p): New function.
17883         (set_even_probabilities): Use unlikely predicates.
17884         (combine_predictions_for_bb): Likewise.
17885         (predict_paths_for_bb): Likewise.
17886         (predict_paths_leading_to_edge): Likewise.
17887         (determine_unlikely_bbs): New function.
17888         (estimate_bb_frequencies): Use it.
17889         (compute_function_frequency): Use zero counts even if profile is
17890         not read.
17891         * profile-count.h: Fix typo.
17893 2017-08-08  Julia Koval  <julia.koval@intel.com>
17895         * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
17896         _mm512_mask_cvtsepi16_storeu_epi8,
17897         _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
17898         * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
17899         _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
17900         _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
17901         _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
17902         * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
17903         (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
17904         VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
17905         * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
17906         __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
17907         __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
17908         __builtin_ia32_pmovuswb256mem_mask,
17909         __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
17910         __builtin_ia32_pmovwb512mem_mask): New builtins.
17912 2017-08-08  Julia Koval  <julia.koval@intel.com>
17914         PR target/73350,80862
17915         * config/i386/subst.md (round): Fix round pattern.
17916         * config/i386/i386.c (ix86_erase_embedded_rounding):
17917         Fix erasing rounding for the fixed pattern.
17919 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17921         * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
17923 2017-06-08  Martin Liska  <mliska@suse.cz>
17925         PR gcov-profile/80911
17926         * gcov.c (block_info::block_info): New constructor.
17928 2017-06-07  Carl Love  <cel@us.ibm.com>
17930         * config/rs6000/rs6000-c: The return type of the following
17931         built-in functions was implemented as int not long long.  Fix sign
17932         of return value for the unsigned version of vec_mulo and vec_mule.
17933         vector unsigned long long vec_bperm (vector unsigned long long,
17934                                              vector unsigned char)
17935         vector signed long long vec_mule (vector signed int,
17936                                           vector signed int)
17937         vector unsigned long long vec_mule (vector unsigned int,
17938                                             vector unsigned int)
17939         vector signed long long vec_mulo (vector signed int,
17940                                           vector signed int)
17941         vector unsigned long long vec_mulo (vector unsigned int,
17942                                             vector unsigned int)
17943         * doc/extend.texi: Fix the documentation for the built-in
17944         functions.
17946 2017-06-07  Carl Love  <cel@us.ibm.com>
17948         PR target/80982
17949         * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
17950         for BE.
17952 2017-06-07  Carl Love  <cel@us.ibm.com>
17954         * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
17955         support, Generate       doublehv for signed int/float for BE case only.
17957 2017-06-07  Alexander Monakov  <amonakov@ispras.ru>
17959         * doc/invoke.texi (mcx16): Rewrite.
17961 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17963         * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
17964         * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
17965         *mov<mode>_softfloat, and an anonymous splitter): Use
17966         nonimmediate_operand instead of rs6000_nonimmediate_operand.
17968 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17970         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
17971         SPEFSCR registers.
17972         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
17973         (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
17974         (rs6000_debug_reg_global): Adjust.
17975         (rs6000_init_hard_regno_mode_ok): Adjust.
17976         (rs6000_dbx_register_number): Adjust.
17977         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
17978         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
17979         Remove SPE_ACC and SPEFSCR.
17980         (REG_ALLOC_ORDER): Ditto.
17981         (FRAME_POINTER_REGNUM): Change to 111.
17982         (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
17983         (REG_CLASS_NAMES): Ditto.
17984         (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
17985         (REGISTER_NAMES): Ditto.
17986         (ADDITIONAL_REG_NAMES): Ditto.
17987         (rs6000_reg_names): Ditto.
17988         * config/rs6000/rs6000.md: Renumber some register number
17989         define_constants.
17991 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17993         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
17994         registers.
17995         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
17996         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
17997         to 117.
17998         (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
17999         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
18000         Delete the SPE high registers.
18001         (REG_ALLOC_ORDER): Ditto.
18002         (enum reg_class): Remove SPE_HIGH_REGS.
18003         (REG_CLASS_NAMES): Ditto.
18004         (REG_CLASS_CONTENTS): Delete the SPE high registers.
18005         (REGISTER_NAMES): Ditto.
18006         (rs6000_reg_names): Ditto.
18007         * doc/tm.texi.in: Remove SPE as example.
18008         * doc/tm.texi: Regenerate.
18010 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
18012         * config/rs6000/8540.md (ppc8540_brinc): Delete.
18013         * config/rs6000/e500mc.md (e500mc_brinc): Delete.
18014         * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
18015         * config/rs6000/rs6000.md (type): Remove "brinc".
18017 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
18019         * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
18020         (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
18021         * config/rs6000/linuxspe.h: Delete file.
18022         * config/rs6000/rs6000.md: Don't include spe.md.
18023         * config/rs6000/spe.h: Delete file.
18024         * config/rs6000/spe.md: Delete file.
18025         * config/rs6000/t-rs6000: Remove spe.md.
18027 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
18029         * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
18030         (reg_or_none500mem_operand): Delete.
18031         * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
18032         instead of reg_or_none500mem_operand.
18034 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
18036         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
18037         handling of SPE flags.
18038         * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
18040 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
18042         * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
18043         SPE ABI handling.
18044         * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
18045         (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
18046         paired_divv2sf3): Similar.
18047         * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
18048         SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
18049         * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
18050         RS6000_BUILTIN_S.
18051         Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
18052         Rename the paired_* instruction patterns.
18053         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
18054         define __SPE__.
18055         * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
18056         * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
18057         (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
18058         spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
18059         TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
18060         PAIRED_VECTOR_MODE.
18061         (struct machine_function): Delete field spe_insn_chain_scanned_p.
18062         (spe_func_has_64bit_regs_p): Delete.
18063         (spe_expand_predicate_builtin): Delete.
18064         (spe_expand_evsel_builtin): Delete.
18065         (TARGET_DWARF_REGISTER_SPAN): Do not define.
18066         (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
18067         (invalid_e500_subreg): Delete.
18068         (rs6000_legitimize_address): Always force_reg op2 as well, for
18069         paired single memory accesses.
18070         (rs6000_member_type_forces_blk): Delete.
18071         (rs6000_spe_function_arg): Delete.
18072         (rs6000_expand_unop_builtin): Delete SPE handling.
18073         (rs6000_expand_binop_builtin): Ditto.
18074         (spe_expand_stv_builtin): Delete.
18075         (bdesc_2arg_spe): Delete.
18076         (spe_expand_builtin): Delete.
18077         (spe_expand_predicate_builtin): Delete.
18078         (spe_expand_evsel_builtin): Delete.
18079         (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
18080         (spe_init_builtins): Delete.
18081         (spe_func_has_64bit_regs_p): Delete.
18082         (savres_routine_name): Delete "info" parameter.  Adjust callers.
18083         (rs6000_emit_stack_reset): Ditto.
18084         (rs6000_dwarf_register_span): Delete.
18085         * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
18086         UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
18087         SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
18088         Delete.
18089         * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
18090         Delete.
18091         * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
18092         * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
18093         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
18094         mulv2sf3, divv2sf3): Delete expanders.
18096 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
18098         config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
18100 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
18102         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
18103         * config/rs6000/rs6000.c: Ditto.
18105 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
18107         * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
18108         * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
18109         comparison_operator.
18111 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
18113         * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
18114         * config/rs6000/rs6000.opt: Ditto.
18115         * config/rs6000/t-rtems: Ditto.
18117 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
18119         * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
18120         TARGET_E500_SINGLE by 0, simplify.
18121         * config/rs6000/rs6000.c: Ditto.
18122         (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
18123         (spe_build_register_parallel): Delete.
18124         * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
18125         TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
18126         * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
18127         TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
18128         (E500_CONVERT): Delete.
18129         * config/rs6000/spe.md: Remove many patterns and all define_constants.
18131 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
18133         * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
18134         * config/rs6000/dfp.md: Ditto.
18135         (negdd2, *negdd2_fpr): Merge.
18136         (absdd2, *absdd2_fpr): Merge.
18137         (negtd2, *negtd2_fpr): Merge.
18138         (abstd2, *abstd2_fpr): Merge.
18139         * config/rs6000/e500.h: Delete file.
18140         * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
18141         TARGET_FPRS by 1 and simplify.
18142         * config/rs6000/rs6000-c.c: Ditto.
18143         * config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
18144         TARGET_DF_SPE by 0.
18145         * config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
18146         TARGET_DF_SPE.
18147         * config/rs6000/rs6000.md: Ditto.
18148         (floatdidf2, *floatdidf2_fpr): Merge.
18149         (move_from_CR_gt_bit): Delete.
18150         * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
18151         (E500_CR_IOR_COMPARE): Delete.
18152         (All patterns that require !TARGET_FPRS): Delete.
18153         * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
18155 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
18157         * passes.def (pass_iv_canon): Move before pass_loop_distribution.
18159 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
18161         * graphds.c (add_edge): Intitialize edge's attached data.
18162         (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
18163         pointer parameter.  Call pointed function on each edge during
18164         graph traversing.  Skip traversing the edge when the function
18165         returns true.
18166         (graphds_dfs, graphds_scc): Ditto.
18167         (for_each_edge): New parameter.  Pass the new parameter to callback
18168         function.
18169         * graphds.h (skip_edge_callback): New function pointer type.
18170         (graphds_dfs, graphds_scc): New function pointer parameter.
18171         (graphds_edge_callback, for_each_edge): New parameter.
18173 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
18175         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
18176         out code checking if runtime alias check is possible to below ...
18177         Call the new function.
18178         * tree-data-ref.c (runtime_alias_check_p): ... to new function.
18179         * tree-data-ref.h (runtime_alias_check_p): New decalaration.
18181 2017-06-07  Marek Polacek  <polacek@redhat.com>
18183         PR sanitizer/80932
18184         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
18185         TYPE_OVERFLOW_WRAPS check.
18187 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
18189         * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
18190         if versioning is required.
18191         * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
18192         peeling with the check for versioning.
18194 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
18196         * tree-vectorizer.h (vect_build_loop_niters): New parameter.
18197         * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
18198         Set true to new parameter if new ssa variable is defined.
18199         (vect_gen_vector_loop_niters): Refactor.  Set range information
18200         for the new vector loop bound variable.
18201         (vect_do_peeling): Ditto.
18203 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
18205         * tree-affine.c (ssa.h): Include header file.
18206         (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
18207         has wrapping overflow behavior.
18209 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
18211         * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
18213 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
18215         (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
18216         (tree_to_aff_combination): ... here.
18218 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
18220         * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
18221         reg_pressure model function.
18222         (ivopts_global_cost_for_size): Delete.
18223         (determine_set_costs, iv_ca_recount_cost): Call new model function
18224         ivopts_estimate_reg_pressure.
18226 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
18228         * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
18229         expensive than udiv.  Remove floating point cases from mod.
18231 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
18233         * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
18234         Increase idiv cost.
18236 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
18238         * config/aarch64/aarch64.md
18239         (copysignsf3): Fix mask generation.
18241 2017-06-07  Jakub Jelinek  <jakub@redhat.com>
18243         * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
18244         TDI_gimple.
18245         (class dump_manager): Add register_dumps method.
18246         * dumpfile.c: Include langhooks.h.
18247         (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
18248         (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
18249         (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
18250         (dump_manager::dump_register): Start with 512 entries instead of 32.
18251         (dump_manager::register_dumps): New method.
18252         * toplev.c (general_init): Instead of invoking register_dumps
18253         langhook, invoke register_dumps method on the dump manager.
18254         * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
18255         TDI_generic.
18257 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
18259         * doc/md.texi: Clarify the restrictions on a define_insn condition.
18260         Say that # requires an associated define_split to exist, and that
18261         the define_split must be suitable for use after register allocation.
18263 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
18265         * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
18266         (compute_outgoing_frequencies): Also initialize zero counts.
18267         (find_many_sub_basic_blocks): Do not produce uninitialized profile
18268         around loops; preserve more of profile when nothing changes.
18270 2017-06-06  Jim Wilson  <jim.wilson@linaro.org>
18272         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
18273         here.
18274         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
18275         * config/arm/arm-cpu-cdata.h: Regenerate.
18276         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
18277         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
18278         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
18279         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
18280         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
18281         support.
18282         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
18283         support.
18284         * config/arm/t-rmprofile: Likewise.
18285         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
18287 2017-06-06  David S. Miller  <davem@davemloft.net>
18289         PR target/80968
18290         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
18291         blockage if function uses alloca.
18293 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
18295         * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
18296         New "uid" fields to hold pretty-print IDs of group and ref.
18297         Memory references are now identified as <group_id>:<ref_id>
18298         instead of using [random] addresses.
18299         (dump_mem_details): Simplify, no functional change.
18300         (dump_mem_ref): Simplify and make output more concise.
18301         Replace couple of fprintf's throughout code with calls to dump_mem_ref.
18302         (find_or_create_group): Initialize group uid.
18303         (record_ref): Initialize ref uid.  Improve debug output.
18304         (prune_group_by_reuse, should_issue_prefetch_p,)
18305         (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
18306         (mark_nontemporal_store, determine_loop_nest_reuse):
18307         Improve debug output.
18309 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
18311         * dbgcnt.def (prefetch): New debug counter.
18312         * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
18313         (schedule_prefetches): Stop issueing prefetches if debug counter
18314         tripped.
18316 2017-06-06  Tom de Vries  <tom@codesourcery.com>
18318         * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
18319         gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
18321 2017-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18323         * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
18324         Use aarch64_reg_or_zero predicate for operand 4.
18325         (aarch64_compare_and_swap<mode> define_insn_and_split):
18326         Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
18327         (aarch64_store_exclusive<mode>): Likewise for operand 2.
18329 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18331         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
18332         (arm_compute_save_core_reg_mask): This.
18333         (thumb1_compute_save_reg_mask): Rename into ...
18334         (thumb1_compute_save_core_reg_mask): This.
18335         (arm_compute_save_reg0_reg12_mask): Adapt comment.
18336         (arm_compute_frame_layout): Likewise.
18338 2017-06-06  Richard Biener  <rguenther@suse.de>
18340         PR tree-optimization/80974
18341         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
18342         keep or clear leaders SSA info.
18344 2017-06-06  Tom de Vries  <tom@codesourcery.com>
18346         * config/nvptx/nvptx.c (split_mode_p): New function.
18347         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
18349 2017-06-06  Tom de Vries  <tom@codesourcery.com>
18351         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
18353 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
18355         PR bootstrap/80978
18356         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
18357         profile.
18359 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
18361         * shrink-wrap.c (handle_simple_exit): Update profile.
18362         (try_shrink_wrapping): Upate profile.
18364 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
18366         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
18367         (tree_guess_outgoing_edge_probabilities): New.
18368         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
18369         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
18371 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
18373         * ipa-split.c (split_function): Initialize return bb profile.
18375 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
18377         * profile.c (compute_branch_probabilities): Also initialize
18378         EXIT_BLOCK profile.
18380 2017-06-06  Richard Biener  <rguenther@suse.de>
18382         PR tree-optimization/80928
18383         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
18384         (vect_analyze_loop_operations): Properly guard analysis for
18385         pure SLP case.
18386         (vect_transform_loop): Likewise.
18387         (vect_analyze_loop_2): Also reset SLP type on PHIs.
18388         (vect_model_induction_cost): Do not cost for pure SLP.
18389         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
18390         of induction in inner loop vectorization.
18391         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
18392         (vect_get_and_check_slp_defs): Handle vect_induction_def.
18393         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
18394         recursion.
18395         (vect_analyze_slp_cost_1): Cost induction.
18396         (vect_detect_hybrid_slp_stmts): Handle PHIs.
18397         (vect_get_slp_vect_defs): Likewise.
18398         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
18399         (vect_transform_stmt): Handle SLP reductions.
18400         * tree-vectorizer.h (vectorizable_induction): Adjust.
18402 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
18404         * config/rs6000/rs6000.c (make_resolver_func): Update
18405         init_lowered_empty_function call.
18407 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18409         * doc/invoke.texi: Document the -fprofile-abs-path option.
18410         * common.opt (fprofile-abs-path): New option.
18411         * gcov-io.h (gcov_write_filename): Declare.
18412         * gcov-io.c (gcov_write_filename): New function.
18413         * coverage.c (coverage_begin_function): Use gcov_write_filename.
18414         * profile.c (output_location): Likewise.
18416 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
18418         * shring-wrap.c: Revert accidental commit.
18420 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
18422         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
18424 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
18426         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
18427         new edge.
18428         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
18429         profile in callgraph edge.
18430         * profile-count.h (apply_probability): If THIS is 0, then result is 0
18431         (apply_scale): Likewise.
18432         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
18433         Also scale profile when inlining function with zero profile.
18434         (initialize_cfun): Update exit block profile even when it is zero.
18435         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
18436         when profile is read.
18438 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
18440         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
18441         (CLONE_*): New constants to define the processors we can generate
18442         code for with the target_clone attribute.
18443         (rs6000_clone_map): New array to identify which clone processors
18444         the current program is running on.
18445         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
18446         target_clone attribute.
18447         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
18448         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
18449         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
18450         (cpu_expand_builtin): Add support for target_clone attribute.
18451         (rs6000_valid_attribute_p): Allow "default" attribute.
18452         (get_decl_name): New debug function to simplify printing the
18453         current function name in debugging statements.
18454         (rs6000_clone_priority): New functions to support the target_clone
18455         attribute, and be able to generate code to switch between ISA 2.05
18456         through ISA 3.0 (power6 through power9).
18457         (rs6000_compare_version_priority): Likewise.
18458         (rs6000_get_function_versions_dispatcher): Likewise.
18459         (make_resolver_func): Likewise.
18460         (add_condition_to_bb): Likewise.
18461         (dispatch_function_versions): Likewise.
18462         (rs6000_generate_version_dispatcher_body): Likewise.
18463         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
18464         (fusion_gpr_load_p): Fix a spacing issue.
18465         * doc/extend.texi (Common Function Attributes): Document that the
18466         PowerPC supports the target_clone attribute.
18468 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18470         * config/arm/arm.h: explain F symbol found in description of ARM
18471         register allocation in its legend.
18473 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
18475         * config/mips/frame-header-opt.c: Include profile-count.h.
18476         * config/riscv/riscv.c: Include profile-count.h
18478 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
18480         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
18481         update profile.
18482         (sm_set_flag_if_changed): Add bbs field.
18483         (execute_sm_if_changed_flag_set): Pass BBS.
18484         (execute_sm): Update.
18486 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18488         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
18489         New pattern.
18491 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18493         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
18494         (peephole2): New peephole2 to emit the above.
18495         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
18497 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18499         * config/aarch64/aarch64.c (define_peephole2 above
18500         *sub_<shift>_<mode>): New peephole.
18502 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
18504         * config/i386/i386.c (make_resolver_func): Update.
18505         * Makefile.in: Add profile-count.h and profile-count.o
18506         * auto-profile.c (afdo_indirect_call): Update to new API.
18507         (afdo_set_bb_count): Update.
18508         (afdo_propagate_edge): Update.
18509         (afdo_propagate_circuit): Update.
18510         (afdo_calculate_branch_prob): Update.
18511         (afdo_annotate_cfg): Update.
18512         * basic-block.h: Include profile-count.h
18513         (struct edge_def): Turn count to profile_count.
18514         (struct basic_block_def): Likewie.
18515         (REG_BR_PROB_BASE): Move to profile-count.h
18516         (RDIV): Move to profile-count.h
18517         * bb-reorder.c (max_entry_count): Turn to profile_count.
18518         (find_traces): Update.
18519         (rotate_loop):Update.
18520         (connect_traces):Update.
18521         (sanitize_hot_paths):Update.
18522         * bt-load.c (migrate_btr_defs): Update.
18523         * cfg.c (RDIV): Remove.
18524         (init_flow): Use alloc_block.
18525         (alloc_block): Uninitialize count.
18526         (unchecked_make_edge): Uninitialize count.
18527         (check_bb_profile): Update.
18528         (dump_edge_info): Update.
18529         (dump_bb_info): Update.
18530         (update_bb_profile_for_threading): Update.
18531         (scale_bbs_frequencies_int): Update.
18532         (scale_bbs_frequencies_gcov_type): Update.
18533         (scale_bbs_frequencies_profile_count): New.
18534         * cfg.h (update_bb_profile_for_threading): Update.
18535         (scale_bbs_frequencies_profile_count): Declare.
18536         * cfgbuild.c (compute_outgoing_frequencies): Update.
18537         (find_many_sub_basic_blocks): Update.
18538         * cfgcleanup.c (try_forward_edges): Update.
18539         (try_crossjump_to_edge): Update.
18540         * cfgexpand.c (expand_gimple_tailcall): Update.
18541         (construct_exit_block): Update.
18542         * cfghooks.c (verify_flow_info): Update.
18543         (dump_bb_for_graph): Update.
18544         (split_edge): Update.
18545         (make_forwarder_block): Update.
18546         (duplicate_block): Update.
18547         (account_profile_record): Update.
18548         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
18549         (get_estimated_loop_iterations): Update.
18550         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
18551         (single_likely_exit): Update.
18552         * cfgloopmanip.c (scale_loop_profile): Update.
18553         (loopify): Update.
18554         (set_zero_probability): Update.
18555         (lv_adjust_loop_entry_edge): Update.
18556         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
18557         (purge_dead_edges): Update.
18558         (rtl_account_profile_record): Update.
18559         * cgraph.c (cgraph_node::create): Uninitialize count.
18560         (symbol_table::create_edge): Uninitialize count.
18561         (cgraph_update_edges_for_call_stmt_node): Update.
18562         (cgraph_edge::dump_edge_flags): Update.
18563         (cgraph_node::dump): Update.
18564         (cgraph_edge::maybe_hot_p): Update.
18565         * cgraph.h: Include profile-count.h
18566         (create_clone), create_edge, create_indirect_edge): Update.
18567         (cgraph_node): Turn count to profile_count.
18568         (cgraph_edge0: Likewise.
18569         (make_speculative, clone): Update.
18570         (create_edge): Update.
18571         (init_lowered_empty_function): Update.
18572         * cgraphclones.c (cgraph_edge::clone): Update.
18573         (duplicate_thunk_for_node): Update.
18574         (cgraph_node::create_clone): Update.
18575         * cgraphunit.c (cgraph_node::analyze): Update.
18576         (cgraph_node::expand_thunk): Update.
18577         * final.c (dump_basic_block_info): Update.
18578         * gimple-streamer-in.c (input_bb): Update.
18579         * gimple-streamer-out.c (output_bb): Update.
18580         * graphite.c (print_global_statistics): Update.
18581         (print_graphite_scop_statistics): Update.
18582         * hsa-brig.c: Include basic-block.h.
18583         * hsa-dump.c: Include basic-block.h.
18584         * hsa-gen.c (T sum_slice): Update.
18585         (convert_switch_statements):Update.
18586         * hsa-regalloc.c: Include basic-block.h.
18587         * ipa-chkp.c (chkp_produce_thunks): Update.
18588         * ipa-cp.c (struct caller_statistics): Update.
18589         (init_caller_stats): Update.
18590         (gather_caller_stats): Update.
18591         (ipcp_cloning_candidate_p): Update.
18592         (good_cloning_opportunity_p): Update.
18593         (get_info_about_necessary_edges): Update.
18594         (dump_profile_updates): Update.
18595         (update_profiling_info): Update.
18596         (update_specialized_profile): Update.
18597         (perhaps_add_new_callers): Update.
18598         (decide_about_value): Update.
18599         (ipa_cp_c_finalize): Update.
18600         * ipa-devirt.c (struct odr_type_warn_count): Update.
18601         (struct decl_warn_count): Update.
18602         (struct final_warning_record): Update.
18603         (possible_polymorphic_call_targets): Update.
18604         (ipa_devirt): Update.
18605         * ipa-fnsummary.c (redirect_to_unreachable): Update.
18606         * ipa-icf.c (sem_function::merge): Update.
18607         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
18608         * ipa-inline.c (compute_uninlined_call_time): Update.
18609         (compute_inlined_call_time): Update.
18610         (want_inline_small_function_p): Update.
18611         (want_inline_self_recursive_call_p): Update.
18612         (edge_badness): Update.
18613         (lookup_recursive_calls): Update.
18614         (recursive_inlining): Update.
18615         (inline_small_functions): Update.
18616         (dump_overall_stats): Update.
18617         (dump_inline_stats): Update.
18618         * ipa-profile.c (ipa_profile_generate_summary): Update.
18619         (ipa_propagate_frequency): Update.
18620         (ipa_profile): Update.
18621         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
18622         * ipa-utils.c (ipa_merge_profiles): Update.
18623         * loop-doloop.c (doloop_modify): Update.
18624         * loop-unroll.c (report_unroll): Update.
18625         (unroll_loop_runtime_iterations): Update.
18626         * lto-cgraph.c (lto_output_edge): Update.
18627         (lto_output_node): Update.
18628         (input_node): Update.
18629         (input_edge): Update.
18630         (merge_profile_summaries): Update.
18631         * lto-streamer-in.c (input_cfg): Update.
18632         * lto-streamer-out.c (output_cfg): Update.
18633         * mcf.c (create_fixup_graph): Update.
18634         (adjust_cfg_counts): Update.
18635         (sum_edge_counts): Update.
18636         * modulo-sched.c (sms_schedule): Update.
18637         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
18638         * predict.c (maybe_hot_count_p): Update.
18639         (probably_never_executed): Update.
18640         (dump_prediction): Update.
18641         (combine_predictions_for_bb): Update.
18642         (propagate_freq): Update.
18643         (handle_missing_profiles): Update.
18644         (counts_to_freqs): Update.
18645         (rebuild_frequencies): Update.
18646         (force_edge_cold): Update.
18647         * predict.h: Include profile-count.h
18648         (maybe_hot_count_p, counts_to_freqs): UPdate.
18649         * print-rtl-function.c: Do not include cfg.h
18650         * print-rtl.c: Include basic-block.h
18651         * profile-count.c: New file.
18652         * profile-count.h: New file.
18653         * profile.c (is_edge_inconsistent): Update.
18654         (correct_negative_edge_counts): Update.
18655         (is_inconsistent): Update.
18656         (set_bb_counts): Update.
18657         (read_profile_edge_counts): Update.
18658         (compute_frequency_overlap): Update.
18659         (compute_branch_probabilities): Update; Initialize and deinitialize
18660         gcov_count tables.
18661         (branch_prob): Update.
18662         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
18663         (edge_gcov_count): New.
18664         (bb_gcov_count): New.
18665         * shrink-wrap.c (try_shrink_wrapping): Update.
18666         * tracer.c (better_p): Update.
18667         * trans-mem.c (expand_transaction): Update.
18668         (ipa_tm_insert_irr_call): Update.
18669         (ipa_tm_insert_gettmclone_call): Update.
18670         * tree-call-cdce.c: Update.
18671         * tree-cfg.c (gimple_duplicate_sese_region): Update.
18672         (gimple_duplicate_sese_tail): Update.
18673         (gimple_account_profile_record): Update.
18674         (execute_fixup_cfg): Update.
18675         * tree-inline.c (copy_bb): Update.
18676         (copy_edges_for_bb): Update.
18677         (initialize_cfun): Update.
18678         (freqs_to_counts): Update.
18679         (copy_cfg_body): Update.
18680         (expand_call_inline): Update.
18681         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
18682         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
18683         (try_unroll_loop_completely): Update.
18684         (try_peel_loop): Update.
18685         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
18686         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
18687         * tree-ssa-loop-split.c (connect_loops): Update.
18688         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
18689         * tree-ssa-reassoc.c (branch_fixup): Update.
18690         * tree-ssa-tail-merge.c (replace_block_by): Update.
18691         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
18692         (compute_path_counts): Update.
18693         (update_profile): Update.
18694         (recompute_probabilities): Update.
18695         (update_joiner_offpath_counts): Update.
18696         (estimated_freqs_path): Update.
18697         (freqs_to_counts_path): Update.
18698         (clear_counts_path): Update.
18699         (ssa_fix_duplicate_block_edges): Update.
18700         (duplicate_thread_path): Update.
18701         * tree-switch-conversion.c (case_bit_test_cmp): Update.
18702         (struct switch_conv_info): Update.
18703         * tree-tailcall.c (decrease_profile): Update.
18704         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
18705         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
18706         * value-prof.c (check_counter): Update.
18707         (gimple_divmod_fixed_value): Update.
18708         (gimple_mod_pow2): Update.
18709         (gimple_mod_subtract): Update.
18710         (gimple_ic_transform): Update.
18711         (gimple_stringop_fixed_value): Update.
18712         * value-prof.h (gimple_ic): Update.
18714 2017-06-02  Carl Love  <cel@us.ibm.com>
18716         * config/rs6000/rs6000-c: Add support for built-in functions
18717         vector double vec_doublee (vector signed int);
18718         vector double vec_doublee (vector unsigned int);
18719         vector double vec_doublee (vector float);
18720         vector double vec_doubleh (vector signed int);
18721         vector double vec_doubleh (vector unsigned int);
18722         vector double vec_doubleh (vector float);
18723         vector double vec_doublel (vector signed int);
18724         vector double vec_doublel (vector unsigned int);
18725         vector double vec_doublel (vector float);
18726         vector double vec_doubleo (vector signed int);
18727         vector double vec_doubleo (vector unsigned int);
18728         vector double vec_doubleo (vector float);.
18729         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
18730         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
18731         UNS_DOUBLEL.
18732         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
18733         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
18734         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
18735         VS_sxwsp.
18736         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
18737         vec_doublel, vec_doubleh.
18738         * doc/extend.texi: Update the built-in documentation file for the
18739         new built-in functions.
18741 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
18743         PR jit/80954
18744         * ipa-inline-analysis.c (free_growth_caches): Set
18745         edge_removal_hook_holder to NULL after removing it.
18747 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
18749         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
18750         comparision with zero.
18752 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
18753         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
18754         for early expansion of vec_min and vec_max builtins.
18755         (builtin_function_type): Add min/max unsigned variants to those
18756         identified as having unsigned arguments.
18758 2017-06-02  Olivier Hainque  <hainque@adacore.com>
18760         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
18762 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18764         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
18765         Use VALL_F16 iterator rather than VALL.
18767 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18769         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
18770         Emit CBNZ inside loop when doing a strong exchange and comparing
18771         against zero.  Generate the CC flags after the loop.
18773 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
18775         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
18776         (dl_section_ref): New.
18777         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
18778         On AIX, append an expression to subtract the size of the
18779         section length to dl_section_ref.
18781 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
18783         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
18784         for early expansion of vector absolute builtins.
18786 2017-06-02  Richard Biener  <rguenther@suse.de>
18788         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
18789         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
18791 2017-06-02  Richard Biener  <rguenther@suse.de>
18793         PR tree-optimization/80948
18794         * tree-tailcall.c (find_tail_calls): Track stmts to move in
18795         stmt order as well.
18797 2017-06-02  Richard Biener  <rguenther@suse.de>
18799         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
18800         PHIs are ok.
18801         * tree-vect-stmts.c (process_use): Do not mark backedge defs
18802         for inductions as relevant.
18804 2017-06-02  Richard Biener  <rguenther@suse.de>
18806         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
18807         (vectorizable_induction): ... this.  Remove dead code.
18809 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
18811         * builtins. (expand_builtin_alloca): Remove second parameter and
18812         infer its value from the first parameter instead.
18813         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
18815 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
18817         PR rtl-optimization/80903
18818         * loop-doloop.c (add_test): Unshare sequence.
18820 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18822         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
18824 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18826         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
18827         static.
18828         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
18829         xlogue_layout::get_instance, logue_layout::xlogue_layout,
18830         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
18831         (xlogue_layout::get_stub_rtx): Make static.
18832         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
18833         (xlogue_layout::compute_stub_managed_regs): Rename to...
18834         (xlogue_layout::count_stub_managed_regs): ...this.
18835         (xlogue_layout::is_stub_managed_reg): New function.
18836         (xlogue_layout::m_stub_names): Rename to...
18837         (xlogue_layout::s_stub_names): ...this, make static.
18838         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
18839         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
18840         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
18841         xlogue_layout::s_stub_names): Instantiate statics.
18842         (stub_managed_regs): Remove.
18843         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
18844         (disable_call_ms2sysv_xlogues): Rename to...
18845         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
18846         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
18847         warning logic.
18848         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
18849         change after reload_completed.
18850         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
18851         directly.
18852         (ix86_expand_prologue): Likewise.
18853         (ix86_expand_epilogue): Likewise.
18854         (ix86_expand_split_stack_prologue): Likewise.
18855         (ix86_compute_frame_layout): Remove frame parameter ...
18856         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
18857         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
18858         only if necessary.
18859         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
18860         (ix86_frame): Move from here ...
18861         * config/i386/i386.h (ix86_frame): ... to here.
18862         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
18863         complete ix86_frame data structure instead.  Remove some_ld_name.
18865 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
18867         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
18868         symbols that hold a DECL_VALUE_EXPR.
18870 2017-06-01  Martin Jambor  <mjambor@suse.cz>
18872         PR tree-optimization/80898
18873         * tree-sra.c (process_subtree_disqualification): Removed.
18874         (disqualify_candidate): Do not acll
18875         process_subtree_disqualification.
18876         (subtree_mark_written_and_enqueue): New function.
18877         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
18878         RHS has been disqualified and re-queue LHS if necessary.  Apart
18879         from that, ignore disqualified RHS.
18881 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18883         * config/s390/s390.c (s390_emit_epilogue): Disable early return
18884         address fetch for z10 or later.
18886 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18888         * config/arc/arc.md (tst_movb): Add guard when splitting.
18890 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18892         * config/arc/arc.c (arc_can_eliminate): Test against
18893         arc_frame_pointer_needed.
18895 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18897         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
18898         to prevent store reordering.
18899         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
18900         (type): Add block type.
18901         (stack_tie): Define special instruction to be used in
18902         expand_prologue.
18904 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18906         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
18907         constraint. It is not valid for the pattern.
18908         (noncommutative_binary_comparison): Likewise.
18910 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18912         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
18913         scaled addresses.
18915 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18917         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
18918         be used by the reg-alloc.
18920 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18922         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
18923         reg-alloc when having mul64 or mul32x16 instructions.
18924         (mulsidi3): Likewise.
18925         (umulsidi3): Likewise.
18926         (mulsi32x16): New pattern.
18927         (mulsi64): Likewise.
18928         (mulsidi64): Likewise.
18929         (umulsidi64): Likewise.
18930         (MUL32x16_REG): Define.
18931         (mul64_600): Use MUL32x16_REG.
18932         (mac64_600): Likewise.
18933         (umul64_600): Likewise.
18934         (umac64_600): Likewise.
18936 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18938         * config/arc/arc.md (mulsi3_700): Make it commutative.
18940 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
18942         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
18943         type for movstouw.
18944         (*sign_extendsidi2_insn): Likewise for movstosw.
18946 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
18948         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
18949         the type of the input discriminant value.  Convert the
18950         discriminant value of signedness vary.
18952 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
18954         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
18955         Add to -Wall section.
18957 2017-06-01  Richard Biener  <rguenther@suse.de>
18959         PR middle-end/66313
18960         * fold-const.c (fold_plusminus_mult_expr): If the factored
18961         factor may be zero use a wrapping type for the inner operation.
18962         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
18963         and handle moved defs.
18964         (process_assignment): Properly guard the unary op case.  Return a
18965         tri-state indicating that moving the stmt before the call may allow
18966         to continue.  Pass through to_move.
18967         (find_tail_calls): Handle moving unrelated defs before
18968         the call.
18970 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
18972         PR target/80618
18973         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
18974         splitter result in the canonical way.
18976 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
18978         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
18979         also for 32bit target.  Update insn attributes.
18980         (zero-extendsidi2 splitter): Allow all registers for operand 1.
18982 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
18984         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
18985         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
18986         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
18987         (_mm_maskz_min_ss): New intrinsics.
18989 2017-05-31  Martin Liska  <mliska@suse.cz>
18991         * tree-vect-loop.c (vect_create_epilog_for_reduction):
18992         Change comment style to one we normally use.
18993         (vectorizable_reduction): Likewise.
18994         (vectorizable_induction): Likewise.
18995         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
18996         (vectorizable_call): Likewise.
18997         (vectorizable_simd_clone_call): Likewise.
18998         (vectorizable_conversion): Likewise.
18999         (vectorizable_assignment): Likewise.
19000         (vectorizable_shift): Likewise.
19001         (vectorizable_operation): Likewise.
19002         (vectorizable_store): Likewise.
19003         (vectorizable_load): Likewise.
19004         * tree-vectorizer.h: Likewise.
19006 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
19008         * passes.c (emergency_dump_function): New.
19009         * tree-pass.h (emergency_dump_function): Declare.
19010         * plugin.c (plugins_internal_error_function): Remove.
19011         * plugin.h (plugins_internal_error_function): Remove declaration.
19012         * toplev.c (internal_error_function): New static function.  Use it...
19013         (general_init): ...here.
19015 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
19017         * config/arc/arc.c (arc_print_operand): Handle constant operands.
19018         (arc_rtx_costs): Add costs for new patterns.
19019         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
19020         * config/arc/predicates.md: Add _1_2_3_operand predicate.
19022 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
19024         * tree-ssa-strlen.c (get_next_strinfo): New function.
19025         (get_stridx_plus_constant): Use it.
19026         (zero_length_string): Likewise.
19027         (adjust_related_strinfos): Likewise.
19028         (adjust_last_stmt): Likewise.
19030 2017-05-31  Richard Biener  <rguenther@suse.de>
19032         PR target/80880
19033         * config/i386/i386.c (ix86_expand_builtin): Remove assert
19034         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
19036 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
19038         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
19039         loop_vinfo argument and use of dependence distance vectors.
19040         Check instead whether the two references differ only in their
19041         initial value and assume that they have the same alignment if the
19042         difference is a multiple of the vector alignment.
19043         (vect_analyze_data_refs_alignment): Update call accordingly.
19045 2017-05-31  Martin Liska  <mliska@suse.cz>
19047         PR target/79155
19048         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
19050 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
19052         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
19053         (create_intersect_range_checks): Move from ...
19054         * tree-data-ref.c (create_intersect_range_checks_index)
19055         (create_intersect_range_checks): ... to here.
19056         (create_runtime_alias_checks): New function factored from ...
19057         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
19058         here.  Call above function.
19059         * tree-data-ref.h (create_runtime_alias_checks): New function.
19061 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
19063         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
19064         segment length for dr_b and compute it in wide_int.
19066 2017-05-31  Richard Biener  <rguenther@suse.de>
19068         PR tree-optimization/80906
19069         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
19070         and pass through iv_map.
19071         (copy_bb_and_scalar_dependences): Adjust.
19072         (translate_pending_phi_nodes): Likewise.
19073         (copy_loop_close_phi_args): Handle code-generating IVs instead
19074         of ICEing.
19076 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
19078         * diagnostic-color.c (color_dict): Add "type-diff".
19079         (parse_gcc_colors): Update comment.
19080         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
19081         -fdiagnostics-show-template-tree and -fno-elide-type.
19082         (GCC_COLORS): Add type-diff to example.
19083         (type-diff=): New.
19084         (-fdiagnostics-show-template-tree): New.
19085         (-fno-elide-type): New.
19086         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
19087         the pp_format_decoder callback.  Call any m_format_postprocessor's
19088         "handle" method.
19089         (pretty_printer::pretty_printer): Initialize
19090         m_format_postprocessor.
19091         (pretty_printer::~pretty_printer): Delete any
19092         m_format_postprocessor.
19093         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
19094         (class format_postprocessor): New class.
19095         (struct pretty_printer::format_decoder): Document the new parameters.
19096         (struct pretty_printer::m_format_postprocessor): New field.
19097         * tree-diagnostic.c (default_tree_printer): Update for new
19098         bool and const char ** params.
19099         * tree-diagnostic.h (default_tree_printer): Likewise.
19101 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
19103         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
19104         (lwa_operand): Delete rs6000_gen_cell_microcode test.
19105         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
19106         rs6000_gen_cell_microcode code.
19107         (rs6000_final_prescan_insn): Delete.
19108         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
19109         "warn-cell-microcode" entries.
19110         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
19111         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
19112         throughout.  Change cc_reg_not_micro_cr0_operand to
19113         cc_reg_not_cr0_operand throughout.
19114         (*extendhi<mode>2_noload): Delete.
19115         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
19116         (mwarn-cell-microcode): Delete.
19117         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
19118         -mgen-cell-microcode and -mwarn-cell-microcode.
19120 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
19122         PR target/80833
19123         * config/i386/constraints.md (Yd): New constraint.
19124         (Ye): Ditto.
19125         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
19126         and (?Yd, r) alternatives.  Update insn attributes.
19127         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
19128         and (?*Yd, r) alternatives.  Update insn attributes.
19129         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
19131 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
19133         * gimplify.c (gimplify_modify_expr): Don't create a
19134         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
19135         function.
19137 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
19139         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
19141 2017-05-30  Richard Biener  <rguenther@suse.de>
19143         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
19144         and reduc_def fields.
19145         (STMT_VINFO_REDUC_TYPE): New define.
19146         (STMT_VINFO_REDUC_DEF): Likewise.
19147         (vect_force_simple_reduction): Adjust prototype.
19148         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
19149         (vect_is_simple_reduction): Remove check_reduction argument.
19150         (vect_force_simple_reduction): Adjust and set
19151         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
19152         (vectorizable_reduction): Do not re-do reduction analysis
19153         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
19154         * tree-parloops.c (gather_scalar_reductions): Adjust.
19156 2017-05-30  Richard Biener  <rguenther@suse.de>
19158         PR middle-end/80901
19159         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
19160         split_edge code.
19162 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
19164         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
19165         Introduce unknown_misalignment parameter and remove vf.
19166         (vect_peeling_hash_get_lowest_cost):
19167         Pass unknown_misalignment parameter.
19168         (vect_enhance_data_refs_alignment):
19169         Fix unsupportable data ref treatment.
19171 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
19173         * tree-vect-data-refs.c (vect_get_data_access_cost):
19174         Workaround for SLP handling.
19175         (vect_enhance_data_refs_alignment):
19176         Compute costs for doing no peeling at all, compare to the best
19177         peeling costs so far and avoid peeling if cheaper.
19179 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
19181         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
19182         Return peeling info and set costs to zero for unlimited cost
19183         model.
19184         (vect_enhance_data_refs_alignment): Also inspect all datarefs
19185         with unknown misalignment. Compute and costs for unknown
19186         misalignment, compare them to the costs for known misalignment
19187         and choose the cheapest for peeling.
19189 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
19191         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
19192         (vect_get_peeling_costs_all_drs): Create function.
19193         (vect_peeling_hash_get_lowest_cost):
19194         Use vect_get_peeling_costs_all_drs.
19195         (vect_peeling_supportable): Create function.
19196         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
19198 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
19200         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
19201         DR_HAS_NEGATIVE_STEP.
19202         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
19203         (vect_enhance_data_refs_alignment): Use.
19204         (vect_duplicate_ssa_name_ptr_info): Use.
19205         * tree-vectorizer.h (dr_misalignment): Use.
19206         (known_alignment_for_access_p): Use.
19208 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
19210         PR target/78838
19211         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
19212         .lowtext.
19213         (has_section_name): New function.
19215 2017-05-30  Martin Liska  <mliska@suse.cz>
19217         PR other/80909
19218         * auto-profile.c (get_function_decl_from_block): Fix
19219         parenthesis.
19221 2017-05-30  Richard Biener  <rguenther@suse.de>
19223         PR middle-end/80876
19224         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
19226 2017-05-30  Martin Liska  <mliska@suse.cz>
19228         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
19229         * dumpfile.h (struct dump_file_info): Remove ctors.
19231 2017-05-30  Martin Liska  <mliska@suse.cz>
19233         * predict.def: Fix GNU coding style.
19235 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
19237         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
19238         Mark 'to' argument with ATTRIBUTE_UNUSED.
19240 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
19242         * config/xtensa/xtensa.c (xtensa_emit_call): Use
19243         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
19244         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
19245         format string.
19247 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
19249         * doc/install.texi (Options specification): Restore entry of
19250         --enable-sjlj-exceptions.
19252 2017-05-27  Michael Eager  <eager@eagercon.com>
19254         Revert:
19255         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
19257         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
19259         * config/microblaze/microblaze.h
19260         (FIXED_REGISTERS): Update in macro.
19261         (CALL_USED_REGISTERS): Update in macro.
19263 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
19265         * doc/install.texi: Add links to macOS binary distributions.
19267 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
19269         PR bootstrap/80887
19270         Revert:
19271         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
19273         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
19275 2017-05-26  Martin Liska  <mliska@suse.cz>
19277         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
19279 2017-05-26  Martin Liska  <mliska@suse.cz>
19281         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
19282         always leading ';; '.
19283         (dump_bb_info): Likewise.
19284         (brief_dump_cfg): Likewise.
19285         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
19286         * dumpfile.c: Remove usage of TDF_VERBOSE.
19287         * dumpfile.h (enum dump_kind): Likewise.
19288         (dump_gimple_bb_header): Do not use TDF_COMMENT.
19289         * print-tree.c (debug_verbose): Remove.
19290         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
19291         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
19292         * tree-diagnostic.c (default_tree_printer): Replace
19293         TDF_DIAGNOSTIC with TDF_SLIM.
19295 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
19297         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
19298         in parameter loop, rather than loop_vinfo.
19299         (create_intersect_range_checks): Ditto.
19300         (vect_create_cond_for_alias_checks): Update call to above functions.
19302 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
19304         PR tree-optimization/80815
19305         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
19306         for merging runtime alias checks.  Handle negative DR_STEPs.
19308 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
19310         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
19311         Move from ...
19312         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
19313         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
19314         out code pruning runtime alias checks.
19315         * tree-data-ref.c (prune_runtime_alias_test_list): New function
19316         factored out from above.
19317         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
19318         Move from ...
19319         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
19320         ... to here.
19321         (prune_runtime_alias_test_list): New decalaration.
19323 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
19325         * tree-vect-data-refs.c (compare_tree): Rename and move ...
19326         * tree-data-ref.c (data_ref_compare_tree): ... to here.
19327         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
19328         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
19329         (operator==, comp_dr_with_seg_len_pair): Ditto.
19330         (vect_prune_runtime_alias_test_list): Ditto.
19332 2017-05-26  Martin Liska  <mliska@suse.cz>
19334         PR ipa/80663
19335         * params.def: Bound partial-inlining-entry-probability param.
19337 2017-05-26  Marek Polacek  <polacek@redhat.com>
19339         PR sanitizer/80875
19340         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
19341         can be negated.
19343 2017-05-26  Richard Biener  <rguenther@suse.de>
19345         PR tree-optimization/80842
19346         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
19347         value.
19349 2017-05-26  Richard Biener  <rguenther@suse.de>
19351         PR tree-optimization/80844
19352         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
19354 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
19356         * doc/md.texi (Machine Constraints): Update x86 family
19357         machine constraints section to match 'config/i386/constraints.md'.
19359 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
19361         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
19363 2017-05-25  Nathan Sidwell  <nathan@acm.org>
19365         * doc/invoke.texi (--enable-languages): Update documentation.
19367 2017-05-25  Martin Liska  <mliska@suse.cz>
19369         * dumpfile.c: Add TDF_FOLDING.
19370         * dumpfile.h (enum dump_kind): Likewise.
19371         * genmatch.c (dt_simplify::gen_1): Use it.
19373 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
19375         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
19377 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
19379         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
19380         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
19382 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
19384         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
19385         * match.pd (X == C): Rewrite it here.
19386         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
19387         with_certain_nonzero_bits2): New predicates.
19388         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
19390 2017-05-24  Nathan Sidwell  <nathan@acm.org>
19392         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
19393         avoid warning.
19395         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
19396         warning.
19398 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
19400         * config/powerpcspe: New port.  Files are copied from the rs6000
19401         port, with "rs6000" in filenames replaced by "powerpcspe".
19403 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
19405         PR rtl-optimization/80754
19406         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
19408 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
19410         * config/sparc/sparc.md (length): Return the correct value for -mflat
19411         sibcalls to match output_sibcall.
19413 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
19415         PR bootstrap/80860
19416         PR bootstrap/80843
19417         * config/rs6000/rs6000.c (struct machine_function): Add new field
19418         n_components.
19419         (rs6000_get_separate_components): Init that field, use it.
19420         (rs6000_components_for_bb): Use the field.
19422 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19424         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
19426 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
19428         PR middle-end/80823
19429         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
19431 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19433         PR target/80725
19434         * config/s390/s390.c (s390_check_qrst_address): Check incoming
19435         address against address_operand predicate.
19436         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
19438 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
19440         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
19441         parameters passed indirectly.
19443 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
19445         * config/i386/i386.md (*movdi_internal): Remove SSE4
19446         alternative 18 (?r, *v).  Update insn attributes.
19447         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
19448         Update insn attributes.
19449         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
19450         Update insn attributes.
19451         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
19452         alternative 1 (r, v). Remove isa attribute.
19453         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
19454         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
19455         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
19457 2017-05-23  Tom de Vries  <tom@codesourcery.com>
19459         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
19460         dg-line directive.
19462 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
19464         * cgraphunit.c (symbol_table::process_new_functions): Update.
19465         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
19466         (inline_generate_summary): Rename to ...
19467         (ipa_fn_summary_generate): ... this one.
19468         (inline_read_summary): Rename to ...
19469         (ipa_fn_summary_read): ... this one.
19470         (inline_write_summary): Rename to ...
19471         (ipa_fn_summary_write): ... this one.
19472         (inline_free_summary): Rename to ...
19473         (ipa_free_fn_summary): ... this one.
19474         (pass_data_local_fn_summary, pass_local_fn_summary,
19475         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
19476         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
19477         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
19478         make_pass_ipa_fn_summary): New.
19479         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
19480         inline_write_summary, inline_free_summary): Remove.
19481         (ipa_free_fn_summary) : New.
19482         * ipa-inline.c (ipa_inline): Update.
19483         (pass_ipa_inline): Do not generate summaries.
19484         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
19485         Remove.
19486         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
19487         and add pass_ipa_fn_summary.
19488         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
19489         New.
19490         (make_pass_inline_parameters): Remove.
19492 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
19494         * omp-low.c (struct omp_context): Remove "default_kind" member.
19495         Adjust all users.
19497         * omp-offload.c (execute_oacc_device_lower): Remove the
19498         parallelism dimensions function attributes for unparallelized
19499         OpenACC kernels constructs.
19501 2017-05-23  Martin Liska  <mliska@suse.cz>
19503         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
19504         functions.
19505         (cgraph_edge::make_speculative): Likewise.
19506         (cgraph_edge::resolve_speculation): Likewise.
19507         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
19508         (cgraph_node::dump): Likewise.
19509         * cgraph.h: Likewise.
19510         * cgraphunit.c (analyze_functions): Likewise.
19511         (symbol_table::compile): Likewise.
19512         * ipa-cp.c (print_all_lattices): Likewise.
19513         (determine_versionability): Likewise.
19514         (initialize_node_lattices): Likewise.
19515         (ipcp_verify_propagated_values): Likewise.
19516         (estimate_local_effects): Likewise.
19517         (update_profiling_info): Likewise.
19518         (create_specialized_node): Likewise.
19519         (perhaps_add_new_callers): Likewise.
19520         (decide_about_value): Likewise.
19521         (decide_whether_version_node): Likewise.
19522         (identify_dead_nodes): Likewise.
19523         (ipcp_store_bits_results): Likewise.
19524         * ipa-devirt.c (dump_targets): Likewise.
19525         (ipa_devirt): Likewise.
19526         * ipa-icf.c (sem_item::dump): Likewise.
19527         (sem_function::equals): Likewise.
19528         (sem_variable::equals): Likewise.
19529         (sem_item_optimizer::read_section): Likewise.
19530         (sem_item_optimizer::execute): Likewise.
19531         (congruence_class::dump): Likewise.
19532         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
19533         (dump_inline_summary): Likewise.
19534         (estimate_node_size_and_time): Likewise.
19535         (inline_analyze_function): Likewise.
19536         * ipa-inline-transform.c (inline_call): Likewise.
19537         * ipa-inline.c (report_inline_failed_reason): Likewise.
19538         (want_early_inline_function_p): Likewise.
19539         (edge_badness): Likewise.
19540         (update_edge_key): Likewise.
19541         (inline_small_functions): Likewise.
19542         * ipa-profile.c (ipa_profile): Likewise.
19543         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
19544         (ipa_make_edge_direct_to_target): Likewise.
19545         (remove_described_reference): Likewise.
19546         (ipa_impossible_devirt_target): Likewise.
19547         (propagate_controlled_uses): Likewise.
19548         (ipa_print_node_params): Likewise.
19549         (ipcp_transform_function): Likewise.
19550         * ipa-pure-const.c (pure_const_read_summary): Likewise.
19551         (propagate_pure_const): Likewise.
19552         * ipa-reference.c (generate_summary): Likewise.
19553         (read_write_all_from_decl): Likewise.
19554         (propagate): Likewise.
19555         (ipa_reference_read_optimization_summary): Likewise.
19556         * ipa-utils.c (ipa_merge_profiles): Likewise.
19557         * ipa.c (walk_polymorphic_call_targets): Likewise.
19558         (symbol_table::remove_unreachable_nodes): Likewise.
19559         (ipa_single_use): Likewise.
19560         * passes.c (execute_todo): Likewise.
19561         * predict.c (drop_profile): Likewise.
19562         * symtab.c (symtab_node::get_dump_name): New function.
19563         (symtab_node::dump_name): Likewise.
19564         (symtab_node::dump_asm_name): Likewise.
19565         (symtab_node::dump_references): Likewise.
19566         (symtab_node::dump_referring): Likewise.
19567         (symtab_node::dump_base): Likewise.
19568         (symtab_node::debug_symtab): Likewise.
19569         * tree-sra.c (convert_callers_for_node): Likewise.
19570         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
19571         * value-prof.c (init_node_map): Likewise.
19573 2017-05-23  Martin Liska  <mliska@suse.cz>
19575         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
19576         and symtab_node::debug_symtab to symbol_table::debug.
19577         * cgraphunit.c (analyze_functions): Use the renamed function.
19578         (symbol_table::compile): Likewise.
19579         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
19580         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
19581         * passes.c (execute_todo): Likewise.
19582         * symtab.c (symbol_table::dump): New function.
19583         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
19585 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
19587         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
19588         that nonconst implies exec.
19590 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
19592         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
19593         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
19594         (inline_edge_summary_vec): Turn into ...
19595         (ipa_call_summaries): ... this one.
19596         (redirect_to_unreachable, edge_set_predicate,
19597         evaluate_properties_for_edge, inline_summary_alloc,
19598         reset_ipa_call_summary, reset_inline_summary,
19599         inline_summary_t::duplicate): Update.
19600         (inline_edge_duplication_hook): Turn to ...
19601         (ipa_call_summary_t::duplicate): ... this one.
19602         (inline_edge_removal_hook): Turn to ...
19603         (ipa_call_summary_t::remove): ... this one.
19604         (dump_inline_edge_summary): Turn to ...
19605         (dump_ipa_call_summary): ... this one.
19606         (estimate_function_body_sizes): Update.
19607         (inline_update_callee_summaries): Update.
19608         (remap_edge_change_prob): Update.
19609         (remap_edge_summaries): Update.
19610         (inline_merge_summary): Update.
19611         (do_estimate_edge_time): Update.
19612         (inline_generate_summary): Update.
19613         (inline_read_section): Update.
19614         (inline_read_summary): Update.
19615         (inline_free_summary): Update.
19616         * ipa-inline.c (can_inline_edge_p): Update.
19617         (compute_inlined_call_time): Update.
19618         (want_inline_small_function_p): Update.
19619         (edge_badness): Update.
19620         (early_inliner): Update.
19621         * ipa-inline.h (inline_edge_summary): Turn to ...
19622         (ipa_call_summary): ... this one.
19623         (ipa_call_summary_t): New class.
19624         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
19625         (ipa_call_summaries): New.
19626         (inline_edge_summary): Remove.
19627         (estimate_edge_growth): Update.
19628         * ipa-profile.c (ipa_propagate_frequency_1): Update.
19629         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
19630         * ipa-split.c (execute_split_functions): Update.
19631         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
19633 2017-05-23  Tom de Vries  <tom@codesourcery.com>
19635         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
19636         attributes): Document rdrand effective target.
19638 2017-05-23  Tom de Vries  <tom@codesourcery.com>
19640         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
19641         attributes): Sort alphabetically.
19643 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
19645         * config/avr/genmultilib.awk: Use gsub instead of gensub.
19647 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
19649         PR target/80718
19650         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
19651         V2DF/V2DI splat into two separate patterns, one that handles
19652         registers, and the other that only handles memory.  Drop support
19653         for splatting from a GPR on ISA 2.07 and then splitting the
19654         splat into direct move and splat.
19655         (vsx_splat_<mode>_reg): Likewise.
19656         (vsx_splat_<mode>_mem): Likewise.
19658 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
19660         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
19662 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
19664         PR middle-end/80809
19665         * omp-low.c (finish_taskreg_remap): New function.
19666         (finish_taskreg_scan): If unit size of ctx->record_type
19667         is non-constant, unshare the size expression and replace
19668         decls in it with possible outer var refs.
19670         PR middle-end/80809
19671         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
19672         GOVD_SHARED rather than GOVD_PRIVATE with it.
19673         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
19674         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
19676         PR middle-end/80853
19677         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
19678         as last argument to build_outer_var_ref for pointer bases of array
19679         section reductions.
19681 2017-05-19  Martin Sebor  <msebor@redhat.com>
19683         * print-tree.c (print_node): Print DECL_READ_P flag.
19685 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
19687         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
19688         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
19689         * cgraph.c: Likewise.
19690         * cgraphunit.c: Likewise.
19691         * gengtype.c: Likewise.
19692         * ipa-cp.c: Likewise.
19693         * ipa-devirt.c: Likewise.
19694         * ipa-icf.c: Likewise.
19695         * ipa-predicate.c: Likewise.
19696         * ipa-profile.c: Likewise.
19697         * ipa-prop.c: Likewise.
19698         * ipa-split.c: Likewise.
19699         * ipa.c: Likewise.
19700         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
19701         edge_predicate_pool, dump_inline_hints,
19702         inline_summary::account_size_time, redirect_to_unreachable,
19703         edge_set_predicate, set_hint_predicate,
19704         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
19705         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
19706         inline_summary_t::remove, remap_hint_predicate_after_duplication,
19707         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
19708         ipa_call_summary_t::remove, initialize_growth_caches,
19709         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
19710         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
19711         mark_modified, unmodified_parm_1, unmodified_parm,
19712         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
19713         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
19714         compute_bb_predicates, will_be_nonconstant_expr_predicate,
19715         will_be_nonconstant_predicate, record_modified_bb_info,
19716         get_minimal_bb, record_modified, param_change_prob,
19717         phi_result_unknown_predicate, predicate_for_phi_result,
19718         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
19719         estimate_function_body_sizes, compute_inline_parameters,
19720         compute_inline_parameters_for_curren, pass_data_inline_parameters,
19721         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
19722         inline_update_callee_summaries, remap_edge_change_prob,
19723         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
19724         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
19725         inline_analyze_function, inline_summary_t::insert,
19726         inline_generate_summary, read_ipa_call_summary, inline_read_section,
19727         inline_read_summary, write_ipa_call_summary, inline_write_summary,
19728         inline_free_summary): Move to ipa-fnsummary.h
19729         (predicate_t): Remove.
19730         * ipa-fnsummary.c: New file.
19731         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
19732         (enum inline_hints_vals, inline_hints, agg_position_info,
19733         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
19734         inline_summaries, ipa_call_summary, ipa_call_summary_t,
19735         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
19736         dump_inline_summary, dump_inline_hints, inline_generate_summary,
19737         inline_read_summary, inline_write_summary, inline_free_summary,
19738         inline_analyze_function, initialize_inline_failed,
19739         inline_merge_summary, inline_update_overall_summary,
19740         compute_inline_parameters): Move to ipa-fnsummary.h
19741         * ipa-fnsummary.h: New file.
19742         * ipa-inline-transform.h: Include ipa-inline.h.
19743         * ipa-inline.c: LIkewise.
19745 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
19747         * ipa-inline.c (edge_badness): Use inlined_time instead of
19748         inline_summaries->get.
19750 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
19752         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
19754 2017-05-22  Nathan Sidwell  <nathan@acm.org>
19756         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
19757         (fdump-lang): Document 'raw' option.
19758         * dumpfile.h (TDI_tu): Delete.
19759         * dumpfile.c (dump_files): Remove translation-unit.
19760         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
19762 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
19764         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
19765         command option from $(AWK) call.
19766         * config/avr/genmultilib.awk: Simplify and rewrite so that it
19767         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
19768         [FORMAT]: Remove handling of variable.
19769         * config/avr/t-multilib: Regenerate.
19771 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
19773         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
19774         self_time.
19775         (dump_inline_summary): Do not print self_time.
19776         (estimate_function_body_sizes): Do not set self_time.
19777         (compute_inline_parameters): Likewise.
19778         (inline_read_section, inline_write_summary): Do not stream self_time.
19779         * ipa-inline.h (inline_summary): Drop self_time.
19781 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
19783         * ipa-inline-analysis.c (account_size_time): Rename to ...
19784         (inline_summary::account_size_time): ... this one.
19785         (reset_ipa_call_summary): Turn to ...
19786         (ipa_call_summary::reset): ... this one.
19787         (reset_inline_summary): Turn to ...
19788         (inline_summary::reset): ... this one.
19789         (inline_summary_t::remove): Update.
19790         (inline_summary_t::duplicate): Update.
19791         (ipa_call_summary_t::remove): Update.
19792         (dump_inline_summary): Update.
19793         (estimate_function_body_sizes): Update.
19794         (compute_inline_parameters): Update.
19795         (estimate_node_size_and_time): Update.
19796         (inline_merge_summary): Update.
19797         (inline_update_overall_summary): Update.
19798         (inline_read_section): Update.
19799         (inline_write_summary): Update.
19800         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
19801         add account_size_time and reset member functions.
19802         (ipa_call_summary): Add reset function.
19803         * ipa-predicate.h (predicate::operator &): Constify.
19805 2017-05-22  Richard Biener  <rguenther@suse.de>
19807         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
19809 2017-05-19  Jason Merrill  <jason@redhat.com>
19811         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
19813 2017-05-19  Marek Polacek  <polacek@redhat.com>
19815         PR sanitizer/80800
19816         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
19817         TYPE_OVERFLOW_WRAPS checks.
19819 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
19821         * tree-core.h (enum omp_clause_default_kind): Add
19822         "OMP_CLAUSE_DEFAULT_PRESENT".
19823         * tree-pretty-print.c (dump_omp_clause): Handle it.
19824         * gimplify.c (enum gimplify_omp_var_data): Add
19825         "GOVD_MAP_FORCE_PRESENT".
19826         (gimplify_adjust_omp_clauses_1): Map it to
19827         "GOMP_MAP_FORCE_PRESENT".
19828         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
19830         * gimplify.c (oacc_default_clause): Clarify.
19832 2017-05-19  Nathan Sidwell  <nathan@acm.org>
19834         LANG_HOOK_REGISTER_DUMPS
19835         * toplev.c (general_init): Call register dump lang hook.
19836         * doc/invoke.texi: Document -fdump-lang option family.
19837         * dumpfile.c (dump_files): Remove class dump here.
19838         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
19839         * dumpfile.h (tree_dump_index): Remove TDI_class.
19840         * langhooks-def.h (lhd_register_dumps): Declare.
19841         (LANG_HOOKS_REGISTER_DUMPS): Define.
19842         (LANG_HOOKS_INITIALIZER): Add it.
19843         * langhooks.c (lhd_register_dumps): Define.
19844         * langhooks.h (struct lang_hooks): Add register_dumps.
19846 2017-05-19  Nathan Sidwell  <nathan@acm.org>
19848         * context.h (context::set_passes): New.
19849         * context.c (context::context): Do not create pass manager.
19850         * toplev.c (general_init): Create pass manager here.
19852 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
19854         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
19855         use this splitter if two add or or instructions would also work for
19856         the constant we want to generate.
19858 2017-05-19  Richard Biener  <rguenther@suse.de>
19860         PR build/80821
19861         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
19862         predicate evaluation.
19864 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
19866         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
19867         add ctor.
19868         * ipa-inline.c (want_inline_small_function_p): Do not cast to
19869         unsigned.
19871 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
19873         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
19874         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
19875         (inline_edge_summary_vec): Turn into ...
19876         (ipa_call_summaries): ... this one.
19877         (redirect_to_unreachable, edge_set_predicate,
19878         evaluate_properties_for_edge, inline_summary_alloc,
19879         reset_ipa_call_summary, reset_inline_summary,
19880         inline_summary_t::duplicate): Update.
19881         (inline_edge_duplication_hook): Turn to ...
19882         (ipa_call_summary_t::duplicate): ... this one.
19883         (inline_edge_removal_hook): Turn to ...
19884         (ipa_call_summary_t::remove): ... this one.
19885         (dump_inline_edge_summary): Turn to ...
19886         (dump_ipa_call_summary): ... this one.
19887         (estimate_function_body_sizes): Update.
19888         (inline_update_callee_summaries): Update.
19889         (remap_edge_change_prob): Update.
19890         (remap_edge_summaries): Update.
19891         (inline_merge_summary): Update.
19892         (do_estimate_edge_time): Update.
19893         (inline_generate_summary): Update.
19894         (inline_read_section): Update.
19895         (inline_read_summary): Update.
19896         (inline_free_summary): Update.
19897         * ipa-inline.c (can_inline_edge_p): Update.
19898         (compute_inlined_call_time): Update.
19899         (want_inline_small_function_p): Update.
19900         (edge_badness): Update.
19901         (early_inliner): Update.
19902         * ipa-inline.h (inline_edge_summary): Turn to ...
19903         (ipa_call_summary): ... this one.
19904         (ipa_call_summary_t): New class.
19905         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
19906         (ipa_call_summaries): New.
19907         (inline_edge_summary): Remove.
19908         (estimate_edge_growth): Update.
19909         * ipa-profile.c (ipa_propagate_frequency_1): Update.
19910         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
19911         * ipa-split.c (execute_split_functions): Update.
19912         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
19914 2017-05-19  Richard Biener  <rguenther@suse.de>
19916         PR middle-end/80764
19917         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
19919 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
19921         * config/rs6000/rs6000.c (struct machine_function): Add field
19922         fpr_is_wrapped_separately.
19923         (rs6000_get_separate_components): Use 64 components.  Handle the
19924         new FPR components.
19925         (rs6000_components_for_bb): Handle the FPR components.
19926         (rs6000_emit_prologue_components): Handle the FPR components.
19927         (rs6000_emit_epilogue_components): Handle the FPR components.
19928         (rs6000_set_handled_components): Handle the FPR components.
19929         (rs6000_emit_prologue): Don't output prologue code for those FPRs
19930         that are already separately shrink-wrapped.
19931         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
19932         that are already separately shrink-wrapped.
19934 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
19936         PR target/80510
19937         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
19938         New predicate.
19940         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
19941         (define_peephole2 for Altivec d-form load): Add peepholes to catch
19942         cases where the register allocator uses a move and an offsettable
19943         memory operation to/from a FPR register on ISA 2.06/2.07.
19944         (define_peephole2 for Altivec d-form store): Likewise.
19946 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
19948         PR target/80799
19949         * config/i386/mmx.md (*mov<mode>_internal): Enable
19950         alternatives 11, 12, 13 and 14 also for 32bit targets.
19951         Remove alternatives 15, 16, 17 and 18.
19952         * config/i386/sse.md (vec_concatv2di): Change
19953         alternative (!x, *y) to (x, ?!*Yn).
19955 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
19957         * dumpfile.h (enum dump_kind): Remove stray comma.
19959 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
19961         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
19962         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
19963         predicate::num_conditions
19964         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
19965         (CHANGED): turn into predicate::changed.
19966         (agg_position_info): Move to ipa-predicate.h
19967         (add_condition, predicate::add_clause, predicate::operator &=,
19968         predicate::or_with, predicate::evaluate, predicate::probability,
19969         dump_condition, dump_clause, predicate::dump,
19970         predicate::remap_after_duplication, predicate::remap_after_inlining,
19971         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
19972         (evaluate_conditions_for_known_args): Update.
19973         (set_cond_stmt_execution_predicate): Update.
19974         * ipa-inline.h: Include ipa-predicate.h
19975         (condition, inline_param_summary, conditions, agg_position_info,
19976         predicate): Move to ipa-predicate.h
19977         * ipa-predicate.c: New file.
19978         * ipa-predicate.h: New file.
19980 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
19982         * final.c (leaf_function_p): Check we are not in a sequence.
19984 2017-05-18  Martin Liska  <mliska@suse.cz>
19986         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
19987         * dumpfile.c (dump_register): Use new enum dump_kind.
19988         (get_dump_file_name): Likewise.
19989         (dump_enable_all): Likewise.
19990         (dump_switch_p_1): Likewise.
19991         (enable_rtl_dump_file): Remove usage of TDF_RTL.
19992         * dumpfile.h (enum dump_kind): New enum type.
19993         (struct dump_file_info): Create constructor and
19994         format fields and comments.
19995         * passes.c (pass_manager::register_one_dump_file):
19996         Use num dump_kind.
19997         * statistics.c (statistics_early_init): Likewise.
19998         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
19999         TDF_TREE with TDF_SLIM.
20000         (gather_memory_references_ref): Likewise.
20002 2017-05-18  Martin Liska  <mliska@suse.cz>
20004         * vec.h (struct vnull): Use it.
20006 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
20008         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
20009         (true_predicate, false_predicate, true_predicate_p,
20010         false_predicate_p): Remove.
20011         (single_cond_predicate, not_inlined_predicate): Turn to member function
20012         in ipa-inline.h
20013         (add_condition): Update.
20014         (add_clause): Turn to...
20015         (predicate::add_clause): ... this one; update; allow passing NULL
20016         as parameter.
20017         (and_predicates): Turn to ...
20018         (predicate::operator &=): ... this one.
20019         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
20020         (or_predicates): Turn to ...
20021         (predicate::or_with): ... this one.
20022         (evaluate_predicate): Turn to ...
20023         (predicate::evaluate): ... this one.
20024         (predicate_probability): Turn to ...
20025         (predicate::probability): ... this one.
20026         (dump_condition): Update.
20027         (dump_predicate): Turn to ...
20028         (predicate::dump): ... this one.
20029         (account_size_time): Update.
20030         (edge_set_predicate): Update.
20031         (set_hint_predicate): UPdate.
20032         (evaluate_conditions_for_known_args): Update.
20033         (evaluate_properties_for_edge): Update.
20034         (remap_predicate_after_duplication): Turn to...
20035         (predicate::remap_after_duplication): ... this one.
20036         (remap_hint_predicate_after_duplication): Update.
20037         (inline_summary_t::duplicate): UPdate.
20038         (dump_inline_edge_summary): Update.
20039         (dump_inline_summary): Update.
20040         (set_cond_stmt_execution_predicate): Update.
20041         (set_switch_stmt_execution_predicate): Update.
20042         (compute_bb_predicates): Update.
20043         (will_be_nonconstant_expr_predicate): Update.
20044         (will_be_nonconstant_predicate): Update.
20045         (phi_result_unknown_predicate): Update.
20046         (predicate_for_phi_result): Update.
20047         (array_index_predicate): Update.
20048         (estimate_function_body_sizes): Update.
20049         (estimate_node_size_and_time): Update.
20050         (estimate_ipcp_clone_size_and_time): Update.
20051         (remap_predicate): Rename to ...
20052         (predicate::remap_after_inlining): ... this one.
20053         (remap_hint_predicate): Update.
20054         (inline_merge_summary): Update.
20055         (inline_update_overall_summary): Update.
20056         (estimate_size_after_inlining): Update.
20057         (read_predicate): Rename to ...
20058         (predicate::stream_in): ... this one.
20059         (read_inline_edge_summary): Update.
20060         (write_predicate): Rename to ...
20061         (predicate::stream_out): ... this one.
20062         (write_inline_edge_summary): Update.
20063         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
20064         (clause_t): Turn to uint32_t
20065         (predicate): Turn to class; implement constructor and operators
20066         ==, !=, &
20067         (size_time_entry): Update.
20068         (inline_summary): Update.
20069         (inline_edge_summary): Update.
20071 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
20073         * fold-const.c (fold_binary_loc): Move transformation...
20074         * match.pd (C - X CMP X): ... here.
20076 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
20078         * config/sparc/sparc.c (sparc_option_override): Set function
20079         alignment for -mcpu=niagara7 to 64 to match the I$ line.
20080         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
20081         latency to 1.
20082         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
20083         latency to 2.
20084         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
20086 2017-05-18  Marek Polacek  <polacek@redhat.com>
20088         PR sanitizer/80797
20089         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
20090         (pass_ubsan::execute): Call gimple_assign_single_p instead of
20091         gimple_assign_load_p.
20093 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
20095         PR middle-end/80692
20096         * real.c (do_compare): Give decimal_do_compare preference over
20097         comparing just the signs.
20099 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
20101         * doc/md.texi (Canonicalization of Instructions): Describe the
20102         canonical form of instructions that inherently set a condition
20103         code register.
20105 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
20107         PR middle-end/80775
20108         * tree-cfg.c: Move deletion of unreachable case statements to after
20109         the merging of consecutive case labels.
20111 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20113         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
20114         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
20115         restoring of callee-saved registers.
20117 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
20119         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
20120         * config/visium/visium.c (single_set_and_flags): Likewise.
20121         * config/visium/visium.md (Substitutions): Likewise.
20123 2017-05-17  Martin Liska  <mliska@suse.cz>
20125         * cfg.c: Introduce dump_flags_t type and
20126         use it instead of int type.
20127         * cfg.h: Likewise.
20128         * cfghooks.c: Likewise.
20129         * cfghooks.h (struct cfg_hooks): Likewise.
20130         * cfgrtl.c: Likewise.
20131         * cfgrtl.h: Likewise.
20132         * cgraph.c (cgraph_node::get_body): Likewise.
20133         * coretypes.h: Likewise.
20134         * domwalk.c: Likewise.
20135         * domwalk.h: Likewise.
20136         * dumpfile.c (struct dump_option_value_info): Likewise.
20137         (dump_enable_all): Likewise.
20138         (dump_switch_p_1): Likewise.
20139         (opt_info_switch_p): Likewise.
20140         * dumpfile.h (enum tree_dump_index): Likewise.
20141         (struct dump_file_info): Likewise.
20142         * genemit.c: Likewise.
20143         * generic-match-head.c: Likewise.
20144         * gengtype.c (open_base_files): Likewise.
20145         * gimple-pretty-print.c: Likewise.
20146         * gimple-pretty-print.h: Likewise.
20147         * graph.c (print_graph_cfg): Likewise.
20148         * graphite-scop-detection.c (dot_all_sese): Likewise.
20149         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
20150         * loop-unroll.c (report_unroll): Likewise.
20151         * passes.c (pass_manager::register_one_dump_file): Likewise.
20152         * print-tree.c: Likewise.
20153         * statistics.c: Likewise.
20154         * tree-cfg.c: Likewise.
20155         * tree-cfg.h: Likewise.
20156         * tree-dfa.c: Likewise.
20157         * tree-dfa.h: Likewise.
20158         * tree-dump.c (dump_function): Likewise.
20159         * tree-dump.h (struct dump_info): Likewise.
20160         * tree-pretty-print.c: Likewise.
20161         * tree-pretty-print.h: Likewise.
20162         * tree-ssa-live.c: Likewise.
20163         * tree-ssa-live.h: Likewise.
20164         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
20165         * tree-vect-loop.c: Likewise.
20166         * tree-vect-slp.c: Likewise.
20168 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20169             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20171         PR tree-optimization/80457
20172         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
20173         of all arguments to a statement as scalar_to_vec operations.
20174         (vectorizable_call): Adjust call to vect_model_simple_cost for
20175         new parameter.
20176         (vectorizable_conversion): Likewise.
20177         (vectorizable_assignment): Likewise.
20178         (vectorizable_shift): Likewise.
20179         (vectorizable_operation): Likewise.
20180         (vectorizable_comparison): Likewise.
20181         (vect_is_simple_cond): Record the def types for operands.
20182         (vectorizable_condition): Likewise, call vect_model_simple_cost.
20183         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
20184         for statement argument count.
20186 2017-05-16  Carl Love  <cel@us.ibm.com>
20188         * config/rs6000/rs6000-c: Add support for built-in functions
20189         vector unsigned long long vec_bperm (vector unsigned long long,
20190                                              vector unsigned char)
20191         vector signed long long vec_mule (vector signed int,
20192                                           vector signed int)
20193         vector unsigned long long vec_mule (vector unsigned int,
20194                                             vector unsigned int)
20195         vector signed long long vec_mulo (vector signed int,
20196                                           vector signed int)
20197         vector unsigned long long vec_mulo (vector unsigned int,
20198                                             vector unsigned int)
20199         vector signed char vec_sldw (vector signed char,
20200                                      vector signed char,
20201                                      const int)
20202         vector unsigned char vec_sldw (vector unsigned char,
20203                                        vector unsigned char,
20204                                        const int)
20205         vector signed short vec_sldw (vector signed short,
20206                                       vector signed short,
20207                                       const int)
20208         vector unsigned short vec_sldw (vector unsigned short,
20209                                         vector unsigned short,
20210                                         const int)
20211         vector signed int vec_sldw (vector signed int,
20212                                     vector signed int,
20213                                     const int)
20214         vector unsigned int vec_sldw (vector unsigned int,
20215                                       vector unsigned int,
20216                                       const int)
20217         vector signed long long vec_sldw (vector signed long long,
20218                                           vector signed long long,
20219                                           const int)
20220         vector unsigned long long vec_sldw (vector unsigned long long,
20221                                             vector unsigned long long,
20222                                             const int)
20223         * config/rs6000/rs6000-c: Add support for built-in functions
20224         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
20225         * config/rs6000/altivec.h: Add defintion for vec_sldw.
20226         * doc/extend.texi: Update the built-in documentation for the
20227         new built-in functions.
20229 2017-05-16  Marek Polacek  <polacek@redhat.com>
20231         PR sanitizer/80536
20232         PR sanitizer/80386
20233         * tree.c (save_expr): Don't fold the expression.
20235 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
20237         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
20238         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
20239         and (?*y,m).  Update insn attributes.
20241 2017-05-16  Martin Liska  <mliska@suse.cz>
20243         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
20244         flags argument of print_gimple_stmt, print_gimple_expr,
20245         print_generic_stmt and print_generic_expr.
20246         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
20247         * coretypes.h: Likewise.
20248         * except.c (dump_eh_tree): Likewise.
20249         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
20250         * gimple-pretty-print.h: Likewise.
20251         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
20252         (backprop::push_to_worklist): Likewise.
20253         (backprop::pop_from_worklist): Likewise.
20254         (backprop::process_use): Likewise.
20255         (backprop::intersect_uses): Likewise.
20256         (note_replacement): Likewise.
20257         * gimple-ssa-store-merging.c
20258         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
20259         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
20260         (pass_store_merging::execute): Likewise.
20261         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
20262         (ssa_base_cand_dump_callback): Likewise.
20263         (dump_incr_vec): Likewise.
20264         (replace_refs): Likewise.
20265         (replace_mult_candidate): Likewise.
20266         (create_add_on_incoming_edge): Likewise.
20267         (create_phi_basis): Likewise.
20268         (insert_initializers): Likewise.
20269         (all_phi_incrs_profitable): Likewise.
20270         (introduce_cast_before_cand): Likewise.
20271         (replace_one_candidate): Likewise.
20272         * gimplify.c (gimplify_expr): Likewise.
20273         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
20274         (set_rename): Likewise.
20275         (rename_uses): Likewise.
20276         (copy_loop_phi_nodes): Likewise.
20277         (add_close_phis_to_merge_points): Likewise.
20278         (copy_loop_close_phi_args): Likewise.
20279         (copy_cond_phi_args): Likewise.
20280         (graphite_copy_stmts_from_block): Likewise.
20281         (translate_pending_phi_nodes): Likewise.
20282         * graphite-poly.c (print_pdr): Likewise.
20283         (dump_gbb_cases): Likewise.
20284         (dump_gbb_conditions): Likewise.
20285         (print_scop_params): Likewise.
20286         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
20287         (build_cross_bb_scalars_use): Likewise.
20288         (gather_bbs::before_dom_children): Likewise.
20289         * hsa-dump.c (dump_hsa_immed): Likewise.
20290         * ipa-cp.c (print_ipcp_constant_value): Likewise.
20291         (get_replacement_map): Likewise.
20292         * ipa-inline-analysis.c (dump_condition): Likewise.
20293         (estimate_function_body_sizes): Likewise.
20294         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
20295         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
20296         * ipa-prop.c (ipa_dump_param): Likewise.
20297         (ipa_print_node_jump_functions_for_edge): Likewise.
20298         (ipa_modify_call_arguments): Likewise.
20299         (ipa_modify_expr): Likewise.
20300         (ipa_dump_param_adjustments): Likewise.
20301         (ipa_dump_agg_replacement_values): Likewise.
20302         (ipcp_modif_dom_walker::before_dom_children): Likewise.
20303         * ipa-pure-const.c (check_stmt): Likewise.
20304         (pass_nothrow::execute): Likewise.
20305         * ipa-split.c (execute_split_functions): Likewise.
20306         * omp-offload.c (dump_oacc_loop_part): Likewise.
20307         (dump_oacc_loop): Likewise.
20308         * trans-mem.c (tm_log_emit): Likewise.
20309         (tm_memopt_accumulate_memops): Likewise.
20310         (dump_tm_memopt_set): Likewise.
20311         (dump_tm_memopt_transform): Likewise.
20312         * tree-cfg.c (gimple_verify_flow_info): Likewise.
20313         (print_loop): Likewise.
20314         * tree-chkp-opt.c (chkp_print_addr): Likewise.
20315         (chkp_gather_checks_info): Likewise.
20316         (chkp_get_check_result): Likewise.
20317         (chkp_remove_check_if_pass): Likewise.
20318         (chkp_use_outer_bounds_if_possible): Likewise.
20319         (chkp_reduce_bounds_lifetime): Likewise.
20320         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
20321         (chkp_mark_completed_bounds): Likewise.
20322         (chkp_register_incomplete_bounds): Likewise.
20323         (chkp_mark_invalid_bounds): Likewise.
20324         (chkp_maybe_copy_and_register_bounds): Likewise.
20325         (chkp_build_returned_bound): Likewise.
20326         (chkp_get_bound_for_parm): Likewise.
20327         (chkp_build_bndldx): Likewise.
20328         (chkp_get_bounds_by_definition): Likewise.
20329         (chkp_generate_extern_var_bounds): Likewise.
20330         (chkp_get_bounds_for_decl_addr): Likewise.
20331         * tree-chrec.c (chrec_apply): Likewise.
20332         * tree-data-ref.c (dump_data_reference): Likewise.
20333         (dump_subscript): Likewise.
20334         (dump_data_dependence_relation): Likewise.
20335         (analyze_overlapping_iterations): Likewise.
20336         * tree-inline.c (expand_call_inline): Likewise.
20337         (tree_function_versioning): Likewise.
20338         * tree-into-ssa.c (dump_defs_stack): Likewise.
20339         (dump_currdefs): Likewise.
20340         (dump_names_replaced_by): Likewise.
20341         (dump_update_ssa): Likewise.
20342         (update_ssa): Likewise.
20343         * tree-object-size.c (pass_object_sizes::execute): Likewise.
20344         * tree-parloops.c (build_new_reduction): Likewise.
20345         (try_create_reduction_list): Likewise.
20346         (ref_conflicts_with_region): Likewise.
20347         (oacc_entry_exit_ok_1): Likewise.
20348         (oacc_entry_exit_single_gang): Likewise.
20349         * tree-pretty-print.h: Likewise.
20350         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
20351         (get_scalar_evolution): Likewise.
20352         (add_to_evolution): Likewise.
20353         (get_loop_exit_condition): Likewise.
20354         (analyze_evolution_in_loop): Likewise.
20355         (analyze_initial_condition): Likewise.
20356         (analyze_scalar_evolution): Likewise.
20357         (instantiate_scev): Likewise.
20358         (number_of_latch_executions): Likewise.
20359         (gather_chrec_stats): Likewise.
20360         (final_value_replacement_loop): Likewise.
20361         (scev_const_prop): Likewise.
20362         * tree-sra.c (dump_access): Likewise.
20363         (disqualify_candidate): Likewise.
20364         (create_access): Likewise.
20365         (reject): Likewise.
20366         (maybe_add_sra_candidate): Likewise.
20367         (create_access_replacement): Likewise.
20368         (analyze_access_subtree): Likewise.
20369         (analyze_all_variable_accesses): Likewise.
20370         (sra_modify_assign): Likewise.
20371         (initialize_constant_pool_replacements): Likewise.
20372         (find_param_candidates): Likewise.
20373         (decide_one_param_reduction): Likewise.
20374         (replace_removed_params_ssa_names): Likewise.
20375         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
20376         * tree-ssa-copy.c (dump_copy_of): Likewise.
20377         (copy_prop_visit_cond_stmt): Likewise.
20378         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
20379         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
20380         (record_equivalences_from_stmt): Likewise.
20381         * tree-ssa-dse.c (compute_trims): Likewise.
20382         (delete_dead_call): Likewise.
20383         (delete_dead_assignment): Likewise.
20384         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
20385         (forward_propagate_into_cond): Likewise.
20386         (pass_forwprop::execute): Likewise.
20387         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
20388         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
20389         Likewise.
20390         (move_computations_worker): Likewise.
20391         (execute_sm): Likewise.
20392         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
20393         (remove_exits_and_undefined_stmts): Likewise.
20394         (remove_redundant_iv_tests): Likewise.
20395         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
20396         (adjust_iv_update_pos): Likewise.
20397         * tree-ssa-math-opts.c (bswap_replace): Likewise.
20398         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
20399         (value_replacement): Likewise.
20400         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
20401         * tree-ssa-pre.c (print_pre_expr): Likewise.
20402         (get_representative_for): Likewise.
20403         (create_expression_by_pieces): Likewise.
20404         (insert_into_preds_of_block): Likewise.
20405         (eliminate_insert): Likewise.
20406         (eliminate_dom_walker::before_dom_children): Likewise.
20407         (eliminate): Likewise.
20408         (remove_dead_inserted_code): Likewise.
20409         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
20410         * tree-ssa-reassoc.c (get_rank): Likewise.
20411         (eliminate_duplicate_pair): Likewise.
20412         (eliminate_plus_minus_pair): Likewise.
20413         (eliminate_not_pairs): Likewise.
20414         (undistribute_ops_list): Likewise.
20415         (eliminate_redundant_comparison): Likewise.
20416         (update_range_test): Likewise.
20417         (optimize_range_tests_var_bound): Likewise.
20418         (optimize_vec_cond_expr): Likewise.
20419         (rewrite_expr_tree): Likewise.
20420         (rewrite_expr_tree_parallel): Likewise.
20421         (linearize_expr): Likewise.
20422         (break_up_subtract): Likewise.
20423         (linearize_expr_tree): Likewise.
20424         (attempt_builtin_powi): Likewise.
20425         (attempt_builtin_copysign): Likewise.
20426         (transform_stmt_to_copy): Likewise.
20427         (transform_stmt_to_multiply): Likewise.
20428         (dump_ops_vector): Likewise.
20429         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
20430         (print_scc): Likewise.
20431         (set_ssa_val_to): Likewise.
20432         (visit_reference_op_store): Likewise.
20433         (visit_use): Likewise.
20434         (sccvn_dom_walker::before_dom_children): Likewise.
20435         (run_scc_vn): Likewise.
20436         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
20437         Likewise.
20438         (expr_hash_elt::print): Likewise.
20439         (const_and_copies::pop_to_marker): Likewise.
20440         (const_and_copies::record_const_or_copy_raw): Likewise.
20441         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
20442         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
20443         (dump_predicates): Likewise.
20444         (find_uninit_use): Likewise.
20445         (warn_uninitialized_phi): Likewise.
20446         (pass_late_warn_uninitialized::execute): Likewise.
20447         * tree-ssa.c (verify_vssa): Likewise.
20448         (verify_ssa): Likewise.
20449         (maybe_optimize_var): Likewise.
20450         * tree-vrp.c (dump_value_range): Likewise.
20451         (dump_all_value_ranges): Likewise.
20452         (dump_asserts_for): Likewise.
20453         (register_edge_assert_for_2): Likewise.
20454         (vrp_visit_cond_stmt): Likewise.
20455         (vrp_visit_switch_stmt): Likewise.
20456         (vrp_visit_stmt): Likewise.
20457         (vrp_visit_phi_node): Likewise.
20458         (simplify_cond_using_ranges_1): Likewise.
20459         (fold_predicate_in): Likewise.
20460         (evrp_dom_walker::before_dom_children): Likewise.
20461         (evrp_dom_walker::push_value_range): Likewise.
20462         (evrp_dom_walker::pop_value_range): Likewise.
20463         (execute_early_vrp): Likewise.
20465 2017-05-16  Richard Biener  <rguenther@suse.de>
20467         * dwarf2out.c (loc_list_from_tree_1): Do not create
20468         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
20470 2017-05-16  Richard Biener  <rguenther@suse.de>
20472         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
20473         just generated.
20474         (note_variable_value_in_expr): If we resolved the decl ref
20475         do not push to the stack.
20477 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
20479         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
20480         operations in fast-math mode.
20481         (vaddq_f16): Likewise.
20482         (vmul_f16): Likewise.
20483         (vmulq_f16): Likewise.
20484         (vsub_f16): Likewise.
20485         (vsubq_f16): Likewise.
20486         * config/arm/neon.md (add<mode>3): New.
20487         (sub<mode>3): New.
20488         (fma:<VH:mode>3): New.  Also remove outdated comment.
20489         (mul<mode>3): New.
20491 2017-05-16  Martin Liska  <mliska@suse.cz>
20493         PR ipa/79849.
20494         PR ipa/79850.
20495         * ipa-devirt.c (warn_types_mismatch): Fix typo.
20496         (odr_types_equivalent_p): Likewise.
20498 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
20500         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
20502 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
20504         PR target/80425
20505         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
20506         non-interunit SSE move alternatives with '?'.
20507         (zero-extendsidi peephole2): New peephole to skip intermediate
20508         general register in SSE zero-extend sequence.
20510 2017-05-15  Jeff Law  <law@redhat.com>
20512         * reorg.c (relax_delay_slots): Create a new variable to hold
20513         the temporary target rather than clobbering TARGET_LABEL.
20515         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
20516         missing argument to extract_bit_field call.
20517         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
20519 2017-05-15  Martin Liska  <mliska@suse.cz>
20521         PR driver/31468
20522         * gcc.c (process_command): Do not allow empty argument of -o option.
20524 2017-05-15  Renlin Li  <renlin.li@arm.com>
20526         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
20527         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
20528         * config/aarch64/constraints.md (Usf): Add long call check.
20529         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
20530         (call_value): Likewise.
20531         (sibcall): Likewise.
20532         (sibcall_value): Likewise.
20533         (call_insn): New.
20534         (call_value_insn): New.
20535         (sibcall_insn): Update rtx pattern.
20536         (sibcall_value_insn): Likewise.
20537         (call_internal): Remove.
20538         (call_value_internal): Likewise.
20539         (sibcall_internal): Likewise.
20540         (sibcall_value_internal): Likewise.
20541         (call_reg): Likewise.
20542         (call_symbol): Likewise.
20543         (call_value_reg): Likewise.
20544         (call_value_symbol): Likewise.
20546 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
20548         PR target/80600
20549         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
20551 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
20553         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
20554         compatible with CCGOCmode and with CCZmode.
20556 2017-05-14  Martin Sebor  <msebor@redhat.com>
20558         PR middle-end/77671
20559         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
20560         (gimple_fold_builtin_snprintf): Same.
20561         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
20562         (gimple_fold_builtin_snprintf): Same.
20563         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
20564         of character types.
20565         (is_call_safe): New function.
20566         (try_substitute_return_value): Call it.
20567         (try_simplify_call): New function.
20568         (pass_sprintf_length::handle_gimple_call): Call it.
20570 2017-05-14  Martin Sebor  <msebor@redhat.com>
20572         PR middle-end/80669
20573         * builtins.c (expand_builtin_stpncpy): Simplify.
20575 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
20577         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
20578         * config/i386/i386.h
20579         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
20580         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
20581         (struct machine_function): Add new members call_ms2sysv,
20582         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
20583         (struct machine_frame_state): New fields sp_realigned and
20584         sp_realigned_offset.
20585         * config/i386/i386.c
20586         (enum xlogue_stub): New enum.
20587         (enum xlogue_stub_sets): New enum.
20588         (class xlogue_layout): New class.
20589         (struct ix86_frame): New fields stack_realign_allocate_offset,
20590         stack_realign_offset and outlined_save_offset.  Modify comments to
20591         detail stack layout when using out-of-line stubs.
20592         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
20593         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
20594         -mcall-ms2sysv-xlogues.
20595         (stub_managed_regs): New static variable.
20596         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
20597         registers managed by out-of-line stub.
20598         (disable_call_ms2sysv_xlogues): New function.
20599         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
20600         m->call_ms2sysv when appropriate and compute frame layout for
20601         out-of-line stubs.
20602         (sp_valid_at, fp_valid_at): New inline functions.
20603         (choose_basereg): New function.
20604         (choose_baseaddr): Add align parameter, use choose_basereg and modify
20605         all callers.
20606         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
20607         Use align parameter of choose_baseaddr to generated aligned SSE movs
20608         when possible.
20609         (pro_epilogue_adjust_stack): Modify to track
20610         machine_frame_state::sp_realigned.
20611         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
20612         (ix86_nsaved_sseregs): Likewise.
20613         (ix86_emit_save_regs): Likewise.
20614         (ix86_emit_save_regs_using_mov): Likewise.
20615         (ix86_emit_save_sse_regs_using_mov): Likewise.
20616         (get_scratch_register_on_entry): Likewise.
20617         (gen_frame_set): New function.
20618         (gen_frame_load): Likewise.
20619         (gen_frame_store): Likewise.
20620         (emit_outlined_ms2sysv_save): Likewise.
20621         (emit_outlined_ms2sysv_restore): Likewise.
20622         (ix86_expand_prologue): Modify stack re-alignment code and call
20623         emit_outlined_ms2sysv_save when appropriate.
20624         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
20625         parameter rtx_insn *insn, which allows the function to be used to only
20626         generate the notes.
20627         (ix86_expand_epilogue): Modify validity checks of frame and stack
20628         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
20629         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
20630         * config/i386/predicates.md
20631         (save_multiple): New predicate.
20632         (restore_multiple): Likewise.
20633         * config/i386/sse.md
20634         (save_multiple<mode>): New pattern.
20635         (save_multiple_realign<mode>): Likewise.
20636         (restore_multiple<mode>): Likewise.
20637         (restore_multiple_and_return<mode>): Likewise.
20638         (restore_multiple_leave_return<mode>): Likewise.
20639         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
20641 2017-05-14  Julia Koval  <julia.koval@intel.com>
20643         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
20644         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
20645         (__builtin_ia32_xsetbv): New builtins.
20646         * config/i386/i386.c (ix86_expand_special_args_builtin):
20647         Process new types.
20648         (ix86_expand_builtin): Special expand for new intrinsics.
20649         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
20650         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
20651         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
20653 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20655         * cfganal.c (inverted_post_order_compute): Change argument type
20656         to vec *.
20657         * cfganal.h (inverted_post_order_compute): Adjust prototype.
20658         * df-core.c (rest_of_handle_df_initialize): Adjust.
20659         (rest_of_handle_df_finish): Likewise.
20660         (df_analyze_1): Likewise.
20661         (df_analyze): Likewise.
20662         (loop_inverted_post_order_compute): Change argument to be a vec *.
20663         (df_analyze_loop): Adjust.
20664         (df_get_n_blocks): Likewise.
20665         (df_get_postorder): Likewise.
20666         * df.h (struct df_d): Change field to be a vec.
20667         * lcm.c (compute_laterin): Adjust.
20668         (compute_available): Likewise.
20669         * lra-lives.c (lra_create_live_ranges_1): Likewise.
20670         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
20671         * tree-ssa-pre.c (compute_antic): Likewise.
20673 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20675         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
20676         (depth_first_search::depth_first_search): Change structure init
20677         function to this constructor.
20678         (depth_first_search::add_bb): Rename function to this member.
20679         (depth_first_search::execute): Likewise.
20680         (flow_dfs_compute_reverse_finish): Adjust.
20682 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20684         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
20685         (longest_simple_path): Likewise.
20686         * shrink-wrap.c (spread_components): Likewise.
20687         (disqualify_problematic_components): Likewise.
20688         (emit_common_heads_for_components): Likewise.
20689         (emit_common_tails_for_components): Likewise.
20690         (insert_prologue_epilogue_for_components): Likewise.
20692 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20694         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
20695         auto_sbitmap.
20697 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20699         * df-core.c (df_set_blocks): Start using auto_bitmap.
20700         (df_compact_blocks): Likewise.
20701         * df-problems.c (df_rd_confluence_n): Likewise.
20702         * df-scan.c (df_insn_rescan_all): Likewise.
20703         (df_process_deferred_rescans): Likewise.
20704         (df_update_entry_block_defs): Likewise.
20705         (df_update_exit_block_uses): Likewise.
20706         (df_entry_block_bitmap_verify): Likewise.
20707         (df_exit_block_bitmap_verify): Likewise.
20708         (df_scan_verify): Likewise.
20709         * lra-constraints.c (lra_constraints): Likewise.
20710         (undo_optional_reloads): Likewise.
20711         (lra_undo_inheritance): Likewise.
20712         * lra-remat.c (calculate_gen_cands): Likewise.
20713         (do_remat): Likewise.
20714         * lra-spills.c (assign_spill_hard_regs): Likewise.
20715         (spill_pseudos): Likewise.
20716         * tree-ssa-pre.c (bitmap_set_and): Likewise.
20717         (bitmap_set_subtract_values): Likewise.
20719 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20721         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
20722         management with auto_bitmap.
20723         (fix_inter_tick): Likewise.
20724         (fix_recovery_deps): Likewise.
20725         * ira.c (add_store_equivs): Likewise.
20726         (find_moveable_pseudos): Likewise.
20727         (split_live_ranges_for_shrink_wrap): Likewise.
20728         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
20729         (rtx_reuse_manager::seen_def_p): Likewise.
20730         (rtx_reuse_manager::set_seen_def): Likewise.
20731         * print-rtl.h (class rtx_reuse_manager): Likewise.
20733 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20735         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
20736         lifetime.
20737         (migrate_btr_def): Likewise.
20738         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
20739         * df-core.c (loop_post_order_compute): Likewise.
20740         (loop_inverted_post_order_compute): Likewise.
20741         * hsa-common.h: Likewise.
20742         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
20743         * init-regs.c (initialize_uninitialized_regs): Likewise.
20744         * ipa-inline.c (resolve_noninline_speculation): Likewise.
20745         (inline_small_functions): Likewise.
20746         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
20747         * ira.c (combine_and_move_insns): Likewise.
20748         (build_insn_chain): Likewise.
20749         * loop-invariant.c (find_invariants): Likewise.
20750         * lower-subreg.c (propagate_pseudo_copies): Likewise.
20751         * predict.c (tree_predict_by_opcode): Likewise.
20752         (predict_paths_leading_to): Likewise.
20753         (predict_paths_leading_to_edge): Likewise.
20754         (estimate_loops_at_level): Likewise.
20755         (estimate_loops): Likewise.
20756         * shrink-wrap.c (try_shrink_wrapping): Likewise.
20757         (spread_components): Likewise.
20758         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
20759         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
20760         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
20761         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
20762         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
20763         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
20764         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
20765         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
20766         (mark_threaded_blocks): Likewise.
20767         (thread_through_all_blocks): Likewise.
20768         * tree-ssa.c (verify_ssa): Likewise.
20769         (execute_update_addresses_taken): Likewise.
20770         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
20772 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20774         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
20775         auto_vec.
20776         (post_order_compute): Likewise.
20777         (inverted_post_order_compute): Likewise.
20778         (pre_and_rev_post_order_compute_fn): Likewise.
20780 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20782         * genrecog.c (int_set::int_set): Explicitly construct our
20783         auto_vec base class.
20784         * vec.h (auto_vec::auto_vec): New constructor.
20786 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20788         * bitmap.h (class auto_bitmap): New constructor taking
20789         bitmap_obstack * argument.
20791 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20793         * bitmap.h (class auto_bitmap): Change type of m_bits to
20794         bitmap_head, and adjust ctor / dtor and member operators.
20796 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
20798         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
20799         when returned register mode doesn't match original mode.
20801 2017-05-12  Jeff Law  <law@redhat.com>
20802             Jakub Jelinek  <jakub@redhat.com>
20804         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
20805         we look for cc setter after the compare-elim changes.
20806         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
20807         within the vector to match what compare-elim now expects.
20808         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
20809         (xorsi3_flags, one_cmplsi2_flags): Likewise.
20811         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
20812         after the compare-elim changes.
20813         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
20814         the vector to match what compare-elim now expects.
20815         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
20816         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
20817         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
20818         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
20819         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
20821         * config/visium/visium.c (single_set_and_flags): Fix where
20822         we look for cc setter after the compare-elim changes.
20823         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
20824         with the vector to match what compare-elim now expects.
20825         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
20826         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
20827         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
20828         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
20829         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
20830         (neg<mode>2_insn_set_overflow): Likewise.
20832 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
20834         PR middle-end/79794
20835         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
20836         maybe_expand_insn call, set ops[0].target.  If still set after call,
20837         set alt_rtl.  Add extra arg to recursive calls.
20838         (extract_bit_field): Add alt_rtl argument.  Pass to
20839         extract_bit_field.
20840         * expmed.h (extract_bit_field): Fix prototype.
20841         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
20842         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
20843         to extract_bit_field_calls.
20844         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
20845         Pass alt_rtl to extract_bit_field calls.
20846         * calls.c (store_unaligned_arguments_into_psuedos)
20847         load_register_parameters): Pass extra NULL to extract_bit_field calls.
20848         * optabs.c (maybe_legitimize_operand): Clear op->target when call
20849         gen_reg_rtx.
20850         * optabs.h (struct expand_operand): Add target bitfield.
20852 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
20854         * compare-elim.c (try_eliminate_compare): Canonicalize
20855         operation with embedded compare to
20856         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
20857          (set (reg) (operation)].
20859         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
20861 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
20863         PR target/80723
20864         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
20865         cost of adding a carry flag for ADC instruction.
20866         [case MINUS]: Ignore the cost of subtracting a carry flag
20867         for SBB instruction.
20869 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
20871         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
20872         and x86intrin.h
20873         * config/rs6000/bmiintrin.h: New file.
20874         * config/rs6000/bmi2intrin.h: New file.
20875         * config/rs6000/x86intrin.h: New file.
20877 2017-05-12  Jeff Law  <law@redhat.com>
20879         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
20880         markers.
20882 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
20884         PR middle-end/80707
20885         * tree-cfg.c: Remove cfg edges of unreachable case statements.
20887 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
20889         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
20890         early expansion of vector divide builtins.
20891         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
20892         builtins identified as having unsigned arguments.
20894 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
20896         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
20897         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
20898         expansion of vector logical operations (and, andc, or, xor,
20899         nor, orc, nand).
20901 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
20903         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
20904         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
20906 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
20908         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
20909         early GIMPLE expansion of vector multiplies.
20911 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
20913         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
20914         TARGET_HAVE_MOVT conditional.
20915         (movt splitter): Likewise.
20917 2017-05-12  Richard Biener  <rguenther@suse.de>
20919         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
20920         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20921         Fold all stmts not inplace.
20923 2017-05-12  Richard Biener  <rguenther@suse.de>
20925         PR tree-optimization/80713
20926         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
20927         inserted_exprs bit for not removed stmts.
20929 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
20931         PR middle-end/69921
20932         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
20933         parallelized" attribute for parallelized OpenACC kernels.
20934         * omp-offload.c (execute_oacc_device_lower): Use it.
20936         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
20937         Set "oacc kernels" attribute.
20938         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
20939         parameter.  Adjust all users.
20940         (oacc_fn_attrib_kernels_p): Remove function.
20941         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
20942         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
20943         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
20944         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
20945         assert "oacc kernels" attribute is set.
20947 2017-05-11  Carl Love  <cel@us.ibm.com>
20949         * config/rs6000/rs6000-c: Add support for built-in functions
20950         vector unsigned char vec_popcnt (vector signed char)
20951         vector unsigned char vec_popcnt (vector unsigned char)
20952         vector unsigned short vec_popcnt (vector signed short)
20953         vector unsigned short vec_popcnt (vector unsigned short)
20954         vector unsigned int vec_popcnt (vector signed int)
20955         vector unsigned int vec_popcnt (vector unsigned int)
20956         vector unsigned long long vec_popcnt (vector signed long long)
20957         vector unsigned long long vec_popcnt (vector unsigned long long)
20958         vector signed long long vec_slo (vector signed long long,
20959                                          vector signed char)
20960         vector signed long long vec_slo (vector signed long long,
20961                                          vector unsigned char)
20962         vector unsigned long long vec_slo (vector unsigned long long,
20963                                            vector signed char)
20964         vector unsigned long long vec_slo (vector unsigned long long,
20965                                            vector unsigned char)
20966         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
20967         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
20968         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
20969         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
20970         * doc/extend.texi: Update the built-in documentation file for the
20971         new built-in functions.
20973 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
20975         * attribs.h (sorted_attr_string): Move machine independent
20976         functions for target clone support from the i386 port to common
20977         code.  Rename ix86_function_versions to common_function_versions.
20978         Rename make_name to make_unique_name.
20979         (common_function_versions): Likewise.
20980         (make_unique_name): Likewise.
20981         (make_dispatcher_decl): Likewise.
20982         (is_function_default_version): Likewise.
20983         * attribs.c (attr_strcmp): Likewise.
20984         (sorted_attr_string): Likewise.
20985         (common_function_versions): Likewise.
20986         (make_unique_name): Likewise.
20987         (make_dispatcher_decl): Likewise.
20988         (is_function_default_version): Likewise.
20989         * config/i386/i386.c (attr_strcmp): Likewise.
20990         (sorted_attr_string): Likewise.
20991         (ix86_function_versions): Likewise.
20992         (make_name): Likewise.
20993         (make_dispatcher_decl): Likewise.
20994         (is_function_default_version): Likewise.
20995         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
20997 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20999         PR target/80695
21000         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
21001         Account for direct move costs for vec_construct of integer
21002         vectors.
21004 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
21006         PR target/80706
21007         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
21008         (UNSPEC_STX_ATOMIC): Ditto.
21009         (loaddi_via_sse): New insn.
21010         (storedi_via_sse): Ditto.
21011         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
21012         Update corresponding peephole2 patterns.
21013         (atomic_storedi_fpu): Ditto.
21015 2017-05-11  Julia Koval  <julia.koval@intel.com>
21017         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
21018         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
21019         New intrinsics.
21020         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
21021         (__builtin_ia32_rsqrt14ss_mask): New builtins.
21022         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
21024 2017-05-11  Nathan Sidwell  <nathan@acm.org>
21026         * graphite-poly.c: Include dumpfile.h.
21028         * dumpfle.h (dump_function): Declare here ...
21029         * tree-dump.h (dump_function): ... not here.
21030         * dumpfile.c: #include tree-cfg.h.
21031         (dump_function): Move here from ...
21032         * tree-dump.c (dump_function): ... here.
21033         * gimplify.c: #include splay-tree.h, not tree-dump.h.
21034         * graphite-poly.c: Don't include tree-dump.h.
21035         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
21036         * print-tree.c: Likewise.
21037         * stor-layout.c: Likewise.
21038         * tree-nested.c: Likewise.
21040         * dumpfile.c (dump_start): Use TDF_FLAGS.
21041         (dump_enable_all): Fix TDF_KIND check thinko.
21043 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
21045         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21046         array entries to represent two legal parameterizations of the
21047         overloaded __builtin_cmpb function, as represented by the
21048         P6_OV_BUILTIN_CMPB constant.
21049         (altivec_resolve_overloaded_builtin): Add special case handling
21050         for the __builtin_cmpb function, as represented by the
21051         P6_OV_BUILTIN_CMPB constant.
21052         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
21053         (BU_P6_64BIT_2): New macro.
21054         (BU_P6_OVERLOAD_2): New macro
21055         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
21056         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
21057         (CMPB): Add overload support to represent both 32-bit and 64-bit
21058         compare-bytes function.
21059         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
21060         support for TARGET_CMPB.
21061         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
21062         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
21063         documentation of the __builtin_cmpb overloaded built-in function.
21065 2017-05-11  Richard Biener  <rguenther@suse.de>
21067         PR tree-optimization/80705
21068         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
21069         bases are not vectorizable.
21071 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21073         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
21074         when counting register pressure.
21076 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21078         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
21079         (iv_ca_more_deps): Renamed to ...
21080         (iv_ca_compare_deps): ... this.
21081         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
21083 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21085         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
21086         to ...
21087         (determine_group_iv_costs): ... here.
21088         (find_inv_vars_cb): Record inv var if it's not recorded before.
21090 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21092         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
21093         (get_shiftadd_cost): Ditto.
21095 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21097         * tree-ssa-address.c: Include header file.
21098         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
21099         address.
21100         (add_to_parts): Refactor.
21101         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
21102         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
21103         in new order.
21105 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21107         PR tree-optimization/53090
21108         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
21109         COMP_IV_EXPR_2.
21110         (extract_cond_operands): Detect condition with IV on both sides
21111         and return COMP_IV_EXPR_2.
21112         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
21113         (rewrite_use_compare): Simplify by removing call to function
21114         extract_cond_operands.
21116 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21118         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
21119         (extract_cond_operands): Detect condition comparing against non-
21120         invariant bound and return appropriate enum value.
21121         (find_interesting_uses_cond): Update use of extract_cond_operands.
21122         Handle its return value accordingly.
21123         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
21125 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21127         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
21128         nonlinear iv_use computation in loop invariant sensitive way.
21130 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21132         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
21133         (find_iv_candidates): Call relate_compare_use_with_all_cands.
21135 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21137         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
21138         (dump_cand): Support iv_cand.inv_exprs.
21139         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
21140         for candidates.
21141         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
21142         iv_cand.inv_exprs.
21144 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21146         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
21147         from ...
21148         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
21149         as local function.  Include necessary header files.
21150         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
21152 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21154         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
21156 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21158         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
21159         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
21160         RSHIFT_EXPR and BIT_NOT_EXPR.
21162 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21164         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
21165         (adjust_setup_cost): New parameter supporting round up adjustment.
21166         (struct address_cost_data): Delete.
21167         (force_expr_to_var_cost): Don't bound cost with spill_cost.
21168         (split_address_cost, ptr_difference_cost): Delete.
21169         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
21170         (struct ainc_cost_data): New struct.
21171         (get_address_cost_ainc): New function.
21172         (get_address_cost, get_computation_cost): Reimplement.
21173         (determine_group_iv_cost_address): Record inv_expr for all uses of
21174         a group.
21175         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
21176         (iv_ca_has_deps): Reimplemented to ...
21177         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
21178         than OLD_CP.
21179         (iv_ca_extend): Call iv_ca_more_deps.
21181 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21183         * tree-ssa-address.c (struct mem_address): Move to header file.
21184         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
21185         * tree-ssa-address.h (struct mem_address): Move from C file.
21186         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
21188 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21190         * tree-affine.h (aff_combination_type): New interface.
21191         (aff_combination_zero_p): Remove static.
21192         (aff_combination_const_p): New interface.
21193         (aff_combination_singleton_var_p): New interfaces.
21195 2017-05-11  Richard Biener  <rguenther@suse.de>
21197         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21198         Skip unreachable blocks and destinations.
21199         (eliminate): Move stmt removal and fixup ...
21200         (fini_eliminate): ... here.  Skip inserted exprs.
21201         (pass_pre::execute): Move fini_pre after fini_eliminate.
21202         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
21203         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
21204         PRE to get rid of dead code that has invalid SSA form and
21205         split critical edges again.
21207 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
21209         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
21211 2017-05-11  Richard Biener  <rguenther@suse.de>
21213         * passes.c (execute_function_todo): Verify loops if they are
21214         said to be up-to-date.
21215         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
21216         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
21218 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
21220         PR target/80090
21221         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
21222         handle calling assemble_external ourself.
21224         PR target/79027
21225         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
21226         modes with zero size.  Enhance comment.
21228 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21230         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
21231         built-ins for vec_xl and vec_xst with short and char pointer
21232         arguments.
21234 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
21236         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
21237         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
21238         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
21239         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
21240         (_mm_maskz_min_round_ss): New intrinsics.
21241         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
21242         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
21243         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
21244         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
21245         (__builtin_ia32_minss_mask_round): New builtins.
21246         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21247         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
21248         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
21249         Rename to ...
21250         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
21251         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
21252         Change to ...
21253         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
21254         ... this.
21256 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
21258         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
21259         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
21260         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
21261         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
21262         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
21263         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
21264         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
21265         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21266         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
21267         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
21268         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
21269         (__builtin_ia32_mulss_mask_round): New builtins.
21270         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21271         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
21272         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
21273         Rename to ...
21274         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
21275         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
21276         Change to ...
21277         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
21278         ... this.
21280 2017-05-10  Julia Koval  <julia.koval@intel.com>
21282         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
21283         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
21284         (_mm256_setr_m128i): New intrinsics.
21286 2017-05-10  Julia Koval  <julia.koval@intel.com>
21288         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
21289         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
21290         (_mm_maskz_rcp14_ss): New intrinsics.
21291         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
21292         (__builtin_ia32_rcp14ss_mask): New builtins.
21293         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
21295 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
21297         PR tree-optimization/51513
21298         * tree-cfg.c (gimple_seq_unreachable_p): New function.
21299         (assert_unreachable_fallthru_edge_p): Use it.
21300         (group_case_labels_stmt): Likewise.
21301         * tree-cfg.h: Prototype it.
21302         * stmt.c: Include cfghooks.h and tree-cfg.h.
21303         (emit_case_dispatch_table) <gap_label>: New local variable.
21304         Use it to fill dispatch table gaps.
21305         Test for default_label before updating probabilities.
21306         (expand_case) <default_label>: Remove unneeded initialization.
21307         Test for unreachable default case statement and remove its edge.
21308         Set default_label accordingly.
21309         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
21311 2017-05-10  Carl Love  <cel@us.ibm.com>
21313         * config/rs6000/rs6000-c: Add support for built-in functions
21314         vector signed char      vec_neg (vector signed char)
21315         vector signed short int vec_neg (vector short int)
21316         vector signed int       vec_neg (vector signed int)
21317         vector signed long long vec_neg (vector signed long long)
21318         vector float            vec_neg (vector float)
21319         vector double           vec_neg (vector double)
21320         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
21321         overload.
21322         * config/rs6000/altivec.h: Add define for vec_neg
21323         * doc/extend.texi: Update the built-in documentation for the
21324         new built-in functions.
21326 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21328         PR tree-optimization/77644
21329         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
21331 2017-05-10  Nathan Sidwell  <nathan@acm.org>
21333         * dumpfile.h (TDI_lang_all): New.
21334         (TDF_KIND): New. Renumber others
21335         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
21336         than bits.
21337         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
21338         lang-all.
21339         (get_dump_file_name): Adjust suffix generation.
21340         (dump_enable_all): Use TDF_KIND.
21341         * doc/invoke.texi (-fdump-lang-all): Document.
21343         * dumpfile.h: Tabify.
21345 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
21347         PR target/80671
21348         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
21349         Move member access before delete.
21351 2017-05-10  Alexandre Oliva <aoliva@redhat.com>
21353         * tree-inline.c (expand_call_inline): Split block at stmt
21354         before the call.
21356 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
21358         PR target/68163
21359         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
21360         are now unused after splitting mov{sf,sd}_hardfloat.
21361         (f32_lr2): Likewise.
21362         (f32_lm): Likewise.
21363         (f32_lm2): Likewise.
21364         (f32_li): Likewise.
21365         (f32_li2): Likewise.
21366         (f32_lv): Likewise.
21367         (f32_sr): Likewise.
21368         (f32_sr2): Likewise.
21369         (f32_sm): Likewise.
21370         (f32_sm2): Likewise.
21371         (f32_si): Likewise.
21372         (f32_si2): Likewise.
21373         (f32_sv): Likewise.
21374         (f32_dm): Likewise.
21375         (f32_vsx): Likewise.
21376         (f32_av): Likewise.
21377         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
21378         For movsf, order stores so the VSX stores occur before the GPR
21379         store which encourages the register allocator to use a traditional
21380         FPR instead of a GPR.  For movsd, order the stores so that the GPR
21381         store comes before the VSX stores to allow the power6 to work.
21382         This is due to the power6 not having a 32-bit integer store
21383         instruction from a FPR.
21384         (movsf_hardfloat): Likewise.
21385         (movsd_hardfloat): Likewise.
21387 2017-05-09  Martin Sebor  <msebor@redhat.com>
21389         PR translation/80280
21390         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
21391         added in r247778.
21393         PR translation/80280
21394         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
21395         data member added in r247778.
21396         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
21398 2017-05-09  Nathan Sidwell  <nathan@acm.org>
21400         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
21402         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
21403         typedefs.
21405 2017-05-09  Marek Polacek  <polacek@redhat.com>
21407         * doc/invoke.texi: Fix typo.
21409 2017-05-09  Richard Biener  <rguenther@suse.de>
21411         * tree-vrp.c (vrp_val_is_max): Adjust comment.
21412         (vrp_val_is_min): Likewise.
21413         (set_value_range_to_value): Likewise.
21414         (set_value_range_to_nonnegative): Likewise.
21415         (gimple_assign_nonzero_p): Likewise.
21416         (gimple_stmt_nonzero_p): Likewise.
21417         (vrp_int_const_binop): Likewise.  Remove unreachable case.
21418         (adjust_range_with_scev): Adjust comments.
21419         (compare_range_with_value): Likewise.
21420         (extract_range_from_phi_node): Likewise.
21421         (test_for_singularity): Likewise.
21423 2017-05-09  Richard Biener  <rguenther@suse.de>
21425         * tree-vrp.c (get_single_symbol): Add assert that we don't
21426         get overflowed constants as invariant part.
21427         (compare_values_warnv): Add comment before the TREE_NO_WARNING
21428         checks.  Use wi::cmp instead of recursing for integer constants.
21429         (compare_values): Just ignore whether we assumed undefined
21430         overflow instead of failing the compare.
21431         (extract_range_for_var_from_comparison_expr): Add comment before the
21432         TREE_NO_WARNING sets.
21433         (test_for_singularity): Likewise.
21434         (extract_range_from_comparison): Do not disable optimization
21435         when we assumed undefined overflow.
21436         (extract_range_basic): Remove init of unused var.
21438 2017-05-09  Richard Biener  <rguenther@suse.de>
21440         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
21441         (extract_range_from_multiplicative_op_1): Adjust.
21442         (extract_range_from_binary_expr_1): Use int_const_binop.
21444 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
21446         PR target/80101
21447         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
21448         rs6000_store_data_bypass_p in seven define_bypass directives and
21449         in several comments.
21450         * config/rs6000/rs6000-protos.h: Add prototype for
21451         rs6000_store_data_bypass_p function.
21452         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
21453         function implements slightly different (rs6000-specific) semantics
21454         than store_data_bypass_p, returning false rather than aborting
21455         with assertion error when arguments do not satisfy the
21456         requirements of store data bypass.
21457         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
21458         rs6000_store_data_bypass_p.
21460 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
21462         * config/xtensa/xtensa-protos.h
21463         (xtensa_initial_elimination_offset): New declaration.
21464         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
21465         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
21466         macro definition, add case for FRAME_POINTER_REGNUM when
21467         FRAME_GROWS_DOWNWARD.
21468         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
21469         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
21470         xtensa_initial_elimination_offset.
21472 2017-05-08  Nathan Sidwell  <nathan@acm.org>
21474         * doc/invoke.texi: Alphabetize -fdump options.
21476 2017-05-08  Martin Sebor  <msebor@redhat.com>
21478         PR translation/80280
21479         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
21481 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21483         * target.def (compute_frame_layout): New optional target hook.
21484         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
21485         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
21486         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
21487         target hook.
21488         * reload1.c (verify_initial_elim_offsets): Likewise.
21489         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
21490         (use_simple_return_p): Call arm_compute_frame_layout if needed.
21491         (arm_get_frame_offsets): Split up into this ...
21492         (arm_compute_frame_layout): ... and this function.
21494 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
21496         * config/aarch64/constraints.md (Usa): New constraint.
21497         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
21499 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21501         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
21502         with_multilib_list after it has been checked.
21504 2017-05-08  Richard Biener  <rguenther@suse.de>
21506         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
21507         (bitmap_set_subtract_values): Likewise.
21509 2017-05-08  Richard Biener  <rguenther@suse.de>
21511         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
21512         (gimple_assign_nonzero): ... this and remove strict_overflow_p
21513         argument.
21514         (gimple_stmt_nonzero_warnv_p): Rename to ...
21515         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
21516         argument.
21517         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
21518         (extract_range_basic): Adjust, do not disable propagation on
21519         strict overflow sensitive simplification.
21520         (vrp_visit_cond_stmt): Likewise.
21522 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
21524         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
21525         body size unconditionally.
21527 2017-05-07  Jeff Law  <law@redhat.com>
21529         Revert:
21530         2017-05-06  Jeff Law  <law@redhat.com>
21531         PR tree-optimization/78496
21532         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
21533         code.
21535         PR tree-optimization/78496
21536         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
21537         (simplify_stmt_using_ranges): Call it.
21538         (vrp_dom_walker::before_dom_children): Extract equivalences
21539         from an ASSERT_EXPR with an equality comparison against a
21540         constant.
21542 2017-05-06  Jeff Law  <law@redhat.com>
21544         PR tree-optimization/78496
21545         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
21546         code.
21548         PR tree-optimization/78496
21549         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
21550         (simplify_stmt_using_ranges): Call it.
21551         (vrp_dom_walker::before_dom_children): Extract equivalences
21552         from an ASSERT_EXPR with an equality comparison against a
21553         constant.
21555 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
21557         * lra-constraints.c (lra_copy_reg_equiv): New function.
21558         (split_reg): Use it to copy equivalence information from the
21559         original register to the spill register.
21561 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
21563         PR rtl-optimization/75964
21564         * simplify-rtx.c (simplify_const_relational_operation): Remove
21565         invalid handling of comparisons of integer ABS.
21567 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
21569         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
21570         initialize to zero.
21571         (init_regs): Remove declaration.
21572         (function_arg_advance_32): Initialize error_p as boolean variable.
21574 2017-05-05  Nathan Sidwell  <nathan@acm.org>
21576         * store-motion.c (remove_reachable_equiv_notes): Reformat long
21577         lines.  Use for (;;).
21579 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21581         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
21582         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
21583         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
21584         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
21585         VF=2 that require versioning.
21587 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
21589         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
21590         int.
21592 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
21594         * diagnostic.h (diagnostic_override_option_index): Convert from
21595         macro to inline function.
21597 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
21599         * diagnostic.c (last_module_changed_p): New function.
21600         (set_last_module): New function.
21601         (diagnostic_report_current_module): Convert macro usage to
21602         the above functions.
21603         * diagnostic.h (diagnostic_context::last_module): Strengthen
21604         from const line_map * to const line_map_ordinary *.
21605         (diagnostic_last_module_changed): Delete macro.
21606         (diagnostic_set_last_module): Delete macro.
21608 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
21610         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
21611         with diagnostic_report_diagnostic.
21612         (diagnostic_n_impl_richloc): Likewise.
21613         * diagnostic.h (report_diagnostic): Delete macro.
21614         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
21615         with diagnostic_report_diagnostic.
21616         * substring-locations.c (format_warning_va): Likewise.
21618 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
21620         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
21621         save/restor of format_spec.  Move option-printing code to...
21622         (print_option_information): ...this new function, and
21623         reimplement by simply printing to the pretty_printer,
21624         rather than appending to the format string.
21626 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
21628         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
21629         handling logic into...
21630         (update_effective_level_from_pragmas): ...this new function.
21632 2017-05-04  Andrew Waterman  <andrew@sifive.com>
21634         * config/riscv/riscv.opt (mstrict-align): New option.
21635         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
21636         (SLOW_UNALIGNED_ACCESS): Define.
21637         (riscv_slow_unaligned_access): Declare.
21638         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
21639         field.
21640         (riscv_slow_unaligned_access): New variable.
21641         (rocket_tune_info): Set slow_unaligned_access to true.
21642         (optimize_size_tune_info): Set slow_unaligned_access to false.
21643         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
21644         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
21645         (riscv_option_override): Set riscv_slow_unaligned_access.
21646         * doc/invoke.texi: Add -mstrict-align to RISC-V.
21648 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
21650         * config/riscv/riscv.md: Unify indentation.
21652 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
21654         PR target/79038
21655         PR target/79202
21656         PR target/79203
21657         * config/rs6000/rs6000.md (u code attribute): Add FIX and
21658         UNSIGNED_FIX.
21659         (extendsi<mode>2): Add support for doing sign extension via
21660         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
21661         don't have ISA 3.0 instructions.
21662         (extendsi<mode>2 splitter): Likewise.
21663         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
21664         generate the normal insns since SImode can now go in vector
21665         registers.  Disallow the special UNSPECs needed for previous
21666         machines to hide SImode being used.  Add new insns
21667         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
21668         (fix_trunc<mode>si2_stfiwx): Likewise.
21669         (fix_trunc<mode>si2_internal): Likewise.
21670         (fixuns_trunc<mode>si2): Likewise.
21671         (fixuns_trunc<mode>si2_stfiwx): Likewise.
21672         (fctiw<u>z_<mode>_smallint): Likewise.
21673         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
21674         of floating point to 32-bit integer from doing a direct move to
21675         the GPR registers to do a store.
21676         (fctiwz_<mode>): Break long line.
21678 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
21680         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
21681         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
21682         (addr_list, addr_offset_valid_p): New.
21683         (split_address_groups): Check offset validity with above function.
21684         (gt-tree-ssa-loop-ivopts.h): Include header file.
21686 2017-05-05  Nathan Sidwell  <nathan@acm.org>
21688         * config.gcc (arm*-*-*): Add missing 'fi'.
21690 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
21692         * doc/invoke.texi (-fopt-info): Explicitly say order of options
21693         included in -fopt-info does not matter.
21694         * doc/optinfo.texi (-fopt-info): Fix description of default
21695         behavour. Explicitly say order of options included in -fopt-info
21696         does not matter.
21698 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21700         * config.gcc: Allow combinations of aprofile and rmprofile values for
21701         --with-multilib-list.
21702         * config/arm/t-multilib: New file.
21703         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
21704         variables.  Remove setting of ISA and floating-point ABI in
21705         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
21706         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
21707         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
21708         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
21709         CPU options.
21710         * config/arm/t-rmprofile: Likewise except for the matches changes.
21711         * doc/install.texi (--with-multilib-list): Document the combination of
21712         aprofile and rmprofile values and warn about pitfalls in doing that.
21714 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
21716         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
21717         (movdi_aarch64): Likewise.
21719 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
21721         PR tree-optimization/80632
21722         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
21723         field.
21724         (build_arrays): Initialize it for virtual phis.
21725         (fix_phi_nodes): Use it for virtual phis.
21727         PR tree-optimization/80558
21728         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
21729         [x, y] op z into [x op, y op z] for op & or | if conditions
21730         are met.
21732 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
21733             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
21735         PR target/71607
21736         * config/arm/arm.md (use_literal_pool): Remove.
21737         (64-bit immediate split): No longer takes cost into consideration
21738         if arm_disable_literal_pool is enabled.
21739         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
21740         used when arm_disable_literal_pool is enabled.
21741         (arm_max_const_double_inline_cost): Remove use of
21742         arm_disable_literal_pool.
21743         (push_minipool_fix): Add assert.
21744         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
21745         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
21746         (no_literal_pool_sf_immediate): New.
21748 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21750         PR tree-optimization/80613
21751         * tree-ssa-dce.c (propagate_necessity): Remove cases for
21752         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
21754 2017-05-05  Richard Biener  <rguenther@suse.de>
21756         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
21758 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
21760         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
21761         of this flag from insn conditions due to removal from r247495.
21763 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
21765         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
21766         New function.
21767         (arm_early_store_addr_dep_ptr): Likewise.
21768         * config/arm/aarch-common-protos.h
21769         (arm_early_load_addr_dep_ptr): Add prototype.
21770         (arm_early_store_addr_dep_ptr): Likewise.
21771         * config/arm/cortex-a53.md: Add new bypasses.
21773 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
21775         * tree.c (next_type_uid): Change type to unsigned.
21776         (type_hash_canon): Decrement back next_type_uid if
21777         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
21778         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
21779         if possible.
21781 2017-05-04  Martin Sebor  <msebor@redhat.com>
21783         * builtins.c: Fix a trivial typo in a comment.
21785         PR middle-end/79234
21786         * builtins.c (check_sizes): Adjust to handle reading past the end.
21787         Avoid printing excessive upper bound of ranges.  Use %E to print
21788         tree nodes instead of converting them to %wu.
21789         (expand_builtin_memchr): New function.
21790         (compute_dest_size): Rename...
21791         (compute_objsize): ...to this.
21792         (expand_builtin_memcpy): Adjust.
21793         (expand_builtin_mempcpy): Adjust.
21794         (expand_builtin_strcat): Adjust.
21795         (expand_builtin_strcpy): Adjust.
21796         (check_strncat_sizes): Adjust.
21797         (expand_builtin_strncat): Adjust.
21798         (expand_builtin_strncpy): Adjust and simplify.
21799         (expand_builtin_memset): Adjust.
21800         (expand_builtin_bzero): Adjust.
21801         (expand_builtin_memcmp): Adjust.
21802         (expand_builtin): Handle memcmp.
21803         (maybe_emit_chk_warning): Check strncat just once.
21805 2017-05-04  Martin Sebor  <msebor@redhat.com>
21807         PR preprocessor/79214
21808         PR middle-end/79222
21809         PR middle-end/79223
21810         * builtins.c (check_sizes): Add inlining context and issue
21811         warnings even when -Wno-system-headers is set.
21812         (check_strncat_sizes): Same.
21813         (expand_builtin_strncat): Same.
21814         (expand_builtin_memmove): New function.
21815         (expand_builtin_stpncpy): Same.
21816         (expand_builtin): Handle memmove and stpncpy.
21818 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
21820         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
21821         which is not used any more.
21823 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
21825         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
21827 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
21829         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
21830         (cortexa53_tunings): Likewise.
21831         (cortexa57_tunings): Likewise.
21832         (cortexa72_tunings): Likewise.
21833         (cortexa73_tunings): Likewise.
21835 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
21837         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
21838         Set loop alignment to 8.
21840 2017-05-04  Martin Sebor  <msebor@redhat.com>
21842         PR translation/80280
21843         * builtins.c (expand_builtin_object_size): Add missing quoting to
21844         %D and like directives.
21845         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
21846         (hsa_type_for_tree_type): Same.
21847         (verify_function_arguments): Same.
21848         * symtab.c (symbol_table::change_decl_assembler_name): Same.
21849         * varasm.c (get_section): Same.
21850         (mark_weak): Same.
21852 2017-05-04  Martin Sebor  <msebor@redhat.com>
21854         PR translation/80280
21855         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
21857 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
21859         * config/aarch64/aarch64.c (generic_addrcost_table):
21860         Change HI/TI mode setting.
21862 2017-05-04  Martin Jambor  <mjambor@suse.cz>
21864         PR tree-optimization/80622
21865         * tree-sra.c (comes_initialized_p): New function.
21866         (build_accesses_from_assign): Only set write lazily when
21867         comes_initialized_p is false.
21868         (analyze_access_subtree): Use comes_initialized_p.
21869         (propagate_subaccesses_across_link): Assert !comes_initialized_p
21870         instead of testing for PARM_DECL.
21872 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21874         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
21875         constraint on operand 0 to allow more general addressing modes.
21876         Adjust output template.
21877         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
21878         New function.
21879         * config/aarch64/aarch64-protos.h
21880         (aarch64_address_valid_for_prefetch_p): Declare prototype.
21881         * config/aarch64/constraints.md (Dp): New address constraint.
21882         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
21883         predicate.
21885 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
21887         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
21888         update use of estimate_ipcp_clone_size_and_time.
21889         (estimate_local_effects): Update use of
21890         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
21891         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
21892         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
21893         Return nonspecialized time.
21895 2017-05-04  Richard Biener  <rguenther@suse.de>
21897         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
21898         for the last VUSE which def dominates the PHI.  Directly call
21899         maybe_skip_until.
21900         (get_continuation_for_phi_1): Remove.
21902 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
21904         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
21905         to explain the use of truncating division.  Cap the number of
21906         iterations to the maximum given by nb_iterations_upper_bound,
21907         if defined.
21909 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21911         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
21912         * configure: Regenerate.
21913         * config.in: Regenerate.
21914         * config/i386/driver-mingw32.c: new file.
21915         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
21916         * config.host: Link driver-mingw32.o on MinGW host.
21917         * doc/install.texi: Document new --enable-mingw-wildcard configure
21918         option.
21920 2017-05-04  Marek Polacek  <polacek@redhat.com>
21922         PR tree-optimization/80612
21923         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
21925 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
21926             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
21928         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
21929         (movt splitter): Likewise.
21930         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
21931         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
21932         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
21933         block for Thumb-1 with MOVT.
21934         (thumb2_legitimate_address_p): Move code block ...
21935         (can_avoid_literal_pool_for_label_p): ... into this new function.
21936         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
21937         literal pool.
21938         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
21939         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
21940         "M-profile targets with the MOVT instruction".
21942 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
21944         * config/arm/arm-builtins.c (arm_init_builtins): Rename
21945         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
21946         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
21948 2017-05-04  Martin Liska  <mliska@suse.cz>
21950         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
21951         variable cond_code.
21953 2017-05-04  Richard Biener  <rguenther@suse.de>
21955         * tree.c (array_at_struct_end_p): Handle arrays at struct
21956         end with flexarrays more conservatively.  Refactor and treat
21957         arrays of arrays or aggregates more strict.  Fix
21958         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
21959         * tree.c (array_at_struct_end_p): Adjust prototype.
21960         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
21961         * gimple-fold.c (get_range_strlen): Likewise.
21962         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
21964 2017-05-04  Richard Biener  <rguenther@suse.de>
21966         PR tree-optimization/31130
21967         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
21968         false.
21969         (supports_overflow_infinity): Likewise.
21970         (is_negative_overflow_infinity): Likewise.
21971         (is_positive_overflow_infinity): Likewise.
21972         (is_overflow_infinity): Likewise.
21973         (stmt_overflow_infinity): Likewise.
21974         (overflow_infinity_range_p): Likewise.
21975         (usable_range_p): Remove as always returning true.
21976         (make_overflow_infinity): Remove.
21977         (negative_overflow_infinity): Likewise.
21978         (positive_overflow_infinity): Likewise.
21979         (avoid_overflow_infinity): Likewise.
21980         (set_value_range): Adjust accordingly.
21981         (set_value_range_to_nonnegative): Likewise, remove now unused
21982         overflow_infinity arg.
21983         (vrp_operand_equal_p): Adjust.
21984         (update_value_range): Likewise.
21985         (range_int_cst_singleton_p): Likewise.
21986         (operand_less_p): Likewise.
21987         (compare_values_warnv): Likewise.
21988         (extract_range_for_var_from_comparison_expr): Likewise.
21989         (vrp_int_const_binop): Likewise.
21990         (zero_nonzero_bits_from_vr): Likewise.
21991         (extract_range_from_multiplicative_op_1): Likewise.
21992         (extract_range_from_binary_expr_1): Likewise.
21993         (extract_range_from_unary_expr): Likewise.
21994         (extract_range_from_comparison): Likewise.
21995         (extract_range_basic): Likewise.
21996         (adjust_range_with_scev): Likewise.
21997         (compare_ranges): Likewise.
21998         (compare_range_with_value): Likewise.
21999         (dump_value_range): Likewise.
22000         (test_for_singularity): Likewise, remove strict_overflow_p parameter
22001         never used.
22002         (simplify_cond_using_ranges): Adjust.
22004 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
22006         * brig-builtins.def: Added a builtin for class_f64.
22007         * builtin-types.def: Added a builtin type needed by class_f64.
22009 2017-05-03  Jason Merrill  <jason@redhat.com>
22011         * timevar.def: Add TV_CONSTEXPR.
22013 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
22015         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
22017 2017-05-03  Martin Jambor  <mjambor@suse.cz>
22019         * ipa-prop.c (ipa_update_after_lto_read): Removed.
22020         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
22021         * ipa-cp.c (ipcp_propagate_stage): Do not call
22022         ipa_update_after_lto_read.
22023         * ipa-inline.c (ipa_inline): Likewise.
22025 2017-05-03  Martin Jambor  <mjambor@suse.cz>
22027         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
22028         tag.  Added a default constructor and a destructor.
22029         (ipa_edge_args_sum_t): New class;
22030         (ipa_edge_args_sum): Declare.
22031         (ipa_edge_args_vector): Remove declaration.
22032         (IPA_EDGE_REF): Use ipa_edge_args_sum.
22033         (ipa_free_edge_args_substructures): Remove declaration.
22034         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
22035         (ipa_edge_args_info_available_for_edge_p): Likewise.
22036         * ipa-prop.c (ipa_edge_args_vector): Removed.
22037         (edge_removal_hook_holder): Likewise.
22038         (edge_duplication_hook_holder): Likewise.
22039         (ipa_edge_args_sum): New variable.
22040         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
22041         ipa_edge_args_vector.
22042         (ipa_free_edge_args_substructures): Likewise.
22043         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
22044         ipa_edge_args_vector.
22045         (ipa_edge_removal_hook): Turned into method
22046         ipa_edge_args_sum_t::remove.
22047         (ipa_edge_duplication_hook): Turned into method
22048         ipa_edge_args_sum_t::duplicate.
22049         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
22050         registering edge hooks.
22051         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
22052         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
22053         ipa_edge_args_sum instead of ipa_edge_args_vector.
22054         * ipa-profile.c (ipa_profile): Likewise.
22056 2017-05-03  Martin Jambor  <mjambor@suse.cz>
22058         * symbol-summary.h (function_summary): New method exists.
22059         (function_summary::symtab_removal): Deallocate through release.
22060         (call_summary): New class.
22061         (gt_ggc_mx): New overload.
22062         (gt_pch_nx): Likewise.
22063         (gt_pch_nx): Likewise.
22065 2017-05-03  Jeff Law  <law@redhat.com>
22067         PR tree-optimization/78496
22068         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
22069         from simplify_cond_using_ranges.  Split off code to walk
22070         backwards through casts into ...
22071         (simplify_cond_using_ranges_2): New function.
22072         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
22073         (execute_vrp): After identifying jump threads, call
22074         simplify_cond_using_ranges_2.
22076 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
22078         PR bootstrap/80609
22079         * ipa-inline.h (inline_summary): Add ctor.
22080         (create_ggc): Do not use ggc_cleared_alloc.
22082 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
22083             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22085         * gcc.c (handle_braces): Support escaping in switch matching
22086         text.
22087         * doc/invoke.texi (Spec Files): Document it.
22088         Remove superfluous @code markup in items.
22090 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
22092         * diagnostic-show-locus.c (struct column_range): New struct.
22093         (get_affected_columns): New function.
22094         (get_printed_columns): New function.
22095         (struct correction): New struct.
22096         (correction::ensure_capacity): New function.
22097         (correction::ensure_terminated): New function.
22098         (struct line_corrections): New struct.
22099         (line_corrections::~line_corrections): New dtor.
22100         (line_corrections::add_hint): New function.
22101         (layout::print_trailing_fixits): Reimplement in terms of the new
22102         classes.
22103         (selftest::test_overlapped_fixit_printing): New function.
22104         (selftest::diagnostic_show_locus_c_tests): Call it.
22106 2017-05-03  Nathan Sidwell  <nathan@acm.org>
22108         Canonicalize canonical type hashing
22109         * tree.h (type_hash_canon_hash): Declare.
22110         * tree.c (type_hash_list, attribute_hash_list): Move into
22111         type_hash_canon_hash.
22112         (build_type_attribute_qual_variant): Break out hash code calc into
22113         type_hash_canon_hash.
22114         (type_hash_canon_hash): New.  Generic type hash computation.
22115         (build_range_type_1, build_array_type_1, build_function_type,
22116         build_method_type_directly, build_offset_type, build_complex_type,
22117         make_vector_type): Call it.
22119 2017-05-03  Richard Biener  <rguenther@suse.de>
22121         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
22122         When all DRs have unknown misaligned do not always peel
22123         when there is a store but apply the same costing model as if
22124         there were only loads.
22126 2017-05-03  Richard Biener  <rguenther@suse.de>
22128         Revert
22129         PR tree-optimization/80492
22130         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
22131         compare_base_decls returning dont-know properly.
22133 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22135         * config/arm/iterators.md (CCSI): New mode iterator.
22136         (arch): New mode attribute.
22137         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
22138         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
22139         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
22140         code iterator for success result mode.
22141         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
22142         the corresponding new insn generators.
22144 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
22146         Revert r247509
22147         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
22148         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
22150 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
22152         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
22153         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
22154         (DDR_A): Wrap DDR argument in brackets.
22155         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
22156         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
22157         (DDR_REVERSED_P): Likewise.
22159 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
22161         PR tree-optimization/79472
22162         * tree-switch-conversion.c (struct switch_conv_info): Add
22163         contiguous_range and default_case_nonstandard fields.
22164         (collect_switch_conv_info): Compute contiguous_range and
22165         default_case_nonstandard fields, don't clear final_bb if
22166         contiguous_range and only the default case doesn't have the required
22167         structure.
22168         (check_all_empty_except_final): Set default_case_nonstandard instead
22169         of failing if contiguous_range and the default case doesn't have empty
22170         block.
22171         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
22172         and only the default case doesn't have the required constants.  Skip
22173         virtual phis.
22174         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
22175         if default_case_nonstandard.
22176         (build_constructors): Build constant 1 just once.  Assert that default
22177         values aren't inserted in between cases if contiguous_range.  Skip
22178         virtual phis.
22179         (build_arrays): Skip virtual phis.
22180         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
22181         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
22182         Handle virtual phis.
22183         (gen_inbound_check): Handle default_case_nonstandard case.
22184         (process_switch): Adjust check_final_bb caller.  Call
22185         gather_default_values with the first non-default case instead of
22186         default case if default_case_nonstandard.
22188 2017-05-02  Nathan Sidwell  <nathan@acm.org>
22190         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
22191         check.  Fix formatting.
22193 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
22195         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
22196         errors when comparing specialized and unspecialized times.
22198 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
22200         * diagnostic-show-locus.c
22201         (layout::should_print_annotation_line_p): Make private.
22202         (layout::print_annotation_line): Make private.
22203         (layout::annotation_line_showed_range_p): Make private.
22204         (layout::show_ruler): Make private.
22205         (layout::print_source_line): Make private.  Pass in line and
22206         line_width, rather than calling location_get_source_line.  Drop
22207         returned value.
22208         (layout::print_leading_fixits): New method.
22209         (layout::print_any_fixits): Rename to...
22210         (layout::print_trailing_fixits): ...this, and make private.
22211         Don't print newline fixits.
22212         (diagnostic_show_locus): Move logic for printing one row into...
22213         (layout::print_line): ...this new function.  Move the
22214         location_get_source_line call and error-handling from
22215         print_source_line to here.  Call print_leading_fixits, and rename
22216         print_any_fixits to print_trailing_fixits.
22217         (selftest::test_fixit_insert_containing_newline): Update now that
22218         newlines are partially supported.
22219         (selftest::test_fixit_insert_containing_newline_2): New test.
22220         (selftest::test_fixit_replace_containing_newline): Update comments.
22221         (selftest::diagnostic_show_locus_c_tests): Call the new test.
22222         * edit-context.c (class added_line): New class.
22223         (class edited_line): Describe newline handling in comment.
22224         (edited_line::actually_edited_p): New method.
22225         (edited_line::print_content): Delete redundant decl.
22226         (edited_line::m_predecessors): New field.
22227         (edited_file::print_content): Call edited_line::print_content.
22228         (edited_file::print_diff): Update to support newlines.
22229         (edited_file::print_diff_hunk): Likewise.
22230         (edited_file::print_run_of_changed_lines): New function.
22231         (edited_file::print_diff_line): Convert to...
22232         (print_diff_line): ...this.
22233         (edited_file::get_effective_line_count): New function.
22234         (edited_line::edited_line): Initialize new field m_predecessors.
22235         (edited_line::~edited_line): Clean up m_predecessors.
22236         (edited_line::apply_fixit): Handle newlines.
22237         (edited_line::get_effective_line_count): New function.
22238         (edited_line::print_content): New function.
22239         (edited_line::print_diff_lines): New function.
22240         (selftest::test_applying_fixits_insert_containing_newline): New
22241         test.
22242         (selftest::test_applying_fixits_replace_containing_newline): New
22243         test.
22244         (selftest::insert_line): New function.
22245         (selftest::test_applying_fixits_multiple_lines): Add example of
22246         inserting a line.
22247         (selftest::edit_context_c_tests): Call the new tests.
22249 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
22251         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
22252         parameter cand.  Update dump information.
22253         (get_computation_cost): Update uses.
22255 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
22257         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
22258         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
22259         (get_computation_at, rewrite_use_address): Update use of
22260         get_computation_aff.
22262 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
22264         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
22265         (get_computation): Delete.
22266         (get_computation_cost): Implement like get_computation_cost_at.
22267         Use get_computation_at.
22268         (get_computation_cost_at): Delete.
22269         (rewrite_use_nonlinear_expr): Use get_computation_at.
22270         (rewrite_use_compare, remove_unused_ivs): Ditto.
22272 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
22274         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
22276 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
22278         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
22279         (ivopts_global_cost_for_size): Rename parameter and update uses.
22280         (iv_ca_recount_cost): Update uses.
22281         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
22282         candidates seperately in n_invs and n_cands.
22283         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
22285 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
22287         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
22288         (find_inv_vars_cb): New.
22289         (find_depends): Renamed to ...
22290         (find_inv_vars): ... this.
22291         (add_candidate_1, force_var_cost): Call find_inv_vars.
22292         (split_address_cost, determine_group_iv_cost_cond): Ditto.
22294 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
22296         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
22297         inv_vars.  Add inv_exprs.
22298         (struct iv_cand): Rename depends_on to inv_vars.
22299         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
22300         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
22301         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
22302         (dump_cand): Dump inv_vars.
22303         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
22304         (record_invariant, find_depends, add_candidate_1): Ditto.
22305         (set_group_iv_cost, force_var_cost): Ditto.
22306         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
22307         (get_computation_cost_at, get_computation_cost): Ditto.
22308         (determine_group_iv_cost_generic): Ditto.
22309         (determine_group_iv_cost_address): Ditto.
22310         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
22311         (determine_group_iv_costs): Ditto.
22312         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
22313         (iv_ca_set_remove_invariants): Renamed to ...
22314         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
22315         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
22316         (iv_ca_set_add_invariants):  Renamed to ...
22317         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
22318         (iv_ca_set_cp): Use iv_ca_set_add_invs.
22319         (iv_ca_has_deps): Support inv_vars and inv_exprs.
22320         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
22321         (create_new_ivs): Remove useless dump.
22323 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
22325         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
22326         iv_cand code.
22327         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
22328         (iv_ca_set_no_cp, create_new_iv): Ditto.
22330 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
22332         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
22334 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
22336         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
22337         function tree_check2.
22339 2017-05-02  Martin Liska  <mliska@suse.cz>
22341         * doc/gcov.texi: Add missing preposition.
22342         * gcov.c (function_info::function_info): Properly fill up
22343         all member variables.
22345 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
22347         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
22349 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
22351         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
22353 2017-05-02  Martin Liska  <mliska@suse.cz>
22355         PR lto/77954.
22356         * lto-streamer-in.c (lto_read_tree_1): Remove
22357         LTO_STREAMER_DEBUG.
22358         * lto-streamer.c (struct tree_hash_entry): Likewise.
22359         (struct tree_entry_hasher): Likewise.
22360         (tree_entry_hasher::hash): Likewise.
22361         (tree_entry_hasher::equal): Likewise.
22362         (lto_streamer_init): Likewise.
22363         (lto_orig_address_map): Likewise.
22364         (lto_orig_address_get): Likewise.
22365         (lto_orig_address_remove): Likewise.
22366         * lto-streamer.h: Likewise.
22367         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
22368         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
22370 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
22372         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
22373         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
22374         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
22375         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
22376         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
22377         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
22378         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
22379         (mm_maskz_sub_ss): New intrinsics.
22380         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
22381         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
22382         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
22383         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
22384         (__builtin_ia32_subss_mask_round): New builtins.
22385         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
22386         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
22387         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
22388         Renamed to ...
22389         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
22390         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
22391         Changed to ...
22392         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
22393         ... this.
22395 2017-05-02  Martin Jambor  <mjambor@suse.cz>
22397         PR tree-optimization/78687
22398         * tree-sra.c (access): New field parent.
22399         (process_subtree_disqualification): New function.
22400         (disqualify_candidate): Call it.
22401         (build_accesses_from_assign): Reset write flag if creating an
22402         assighnment link.
22403         (build_access_subtree): Fill in parent field and also prpagate
22404         down grp_write flag.
22405         (create_artificial_child_access): New parameter set_grp_write, set
22406         grp_write to its value.
22407         (propagate_subaccesses_across_link): Also propagate grp_write flag
22408         values.
22409         (propagate_all_subaccesses): Push the closest parent back to work
22410         queue if add_access_to_work_queue returned true.
22412 2017-05-02  Richard Biener  <rguenther@suse.de>
22414         * common.opt (fstrict-overflow): Alias negative to fwrapv.
22415         * doc/invoke.texi (fstrict-overflow): Remove all traces of
22416         -fstrict-overflow documentation.
22417         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
22418         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
22419         flag_strict_overflow.
22420         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
22421         * lto-opts.c (lto_write_options): Do not stream it.
22422         * lto-wrapper.c (merge_and_complain): Do not handle it.
22423         * opts.c (default_options_table): Do not set -fstrict-overflow.
22424         (finish_options): Likewise do not clear it when sanitizing.
22425         * simplify-rtx.c (simplify_const_relational_operation): Do not
22426         test flag_strict_overflow.
22428 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
22430         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
22431         using enabled attribute.
22432         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
22433         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
22434         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
22435         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
22436         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
22437         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
22438         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
22439         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
22440         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
22441         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
22443 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
22445         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
22447 2017-05-02  Richard Biener  <rguenther@suse.de>
22449         PR tree-optimization/80591
22450         Revert
22451         2017-04-10  Richard Biener  <rguenther@suse.de>
22453         * tree-ssa-structalias.c (find_func_aliases): Properly handle
22454         asm inputs.
22456 2017-05-02  Richard Biener  <rguenther@suse.de>
22458         PR tree-optimization/80549
22459         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
22460         (cleanup_tree_cfg_noloop): Create forwarders to known loop
22461         headers if they do not have a preheader.
22463 2017-05-02  Martin Liska  <mliska@suse.cz>
22465         PR other/80589
22466         * common.opt: Fix typo.
22467         * doc/invoke.texi: Likewise.
22469 2017-05-01  Jan Beulich  <jbeulich@suse.com>
22471         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
22472         swapping, add (x,x,m,x,n) alternative.
22474 2017-05-01  Nathan Sidwell  <nathan@acm.org>
22476         * calls.c (combine_pending_stack_adjustment_and_call): Remove
22477         unnecessary unadjusted_alignment check.
22479 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
22481         PR c++/80038
22482         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
22483         operations here.
22484         * gimplify.c (gimplify_cilk_detach): New function.
22485         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
22486         * tree-core.h: Document EXPR_CILK_SPAWN.
22487         * tree.h (EXPR_CILK_SPAWN): Define.
22489 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
22491         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
22492         to use new fixit_hint representation, using the "replace" logic.
22493         (get_line_span_for_fixit_hint): Likewise.
22494         (layout::print_any_fixits): Likewise.
22495         (selftest::test_one_liner_many_fixits): Rename to...
22496         (selftest::test_one_liner_many_fixits_1): ...this, and update
22497         comment and expected output to reflect that the multiple fix-it
22498         hints are now consolidated into one insertion.
22499         (selftest::test_one_liner_many_fixits_2): New test.
22500         (selftest::test_diagnostic_show_locus_one_liner): Update for
22501         above.
22502         (selftest::test_fixit_consolidation): Update for fix-it API
22503         change.
22504         * diagnostic.c (print_parseable_fixits): Likewise.
22505         * edit-context.c (edited_line::m_line_events): Convert from
22506         auto_vec <line_event *> to auto_vec <line_event>.
22507         (class line_event): Convert from abstract base class to a concrete
22508         class, taking over the role of replace_event.
22509         (class insert_event): Delete.
22510         (class replace_event): Rename to class line_event.  Convert to
22511         half-open range.
22512         (edit_context::add_fixits): Reimplement.
22513         (edit_context::apply_insert): Delete.
22514         (edit_context::apply_replace): Rename to...
22515         (edit_context::apply_fixit): ...this.  Convert to half-open range.
22516         (edited_file::apply_insert): Delete.
22517         (edited_file::apply_replace): Rename to...
22518         (edited_file::apply_fixit): ...this.
22519         (edited_line::~edited_line): Drop deletion of events.
22520         (edited_line::apply_insert): Delete.
22521         (edited_line::apply_replace): Rename to...
22522         (edited_line::apply_fixit): ...this.  Convert to half-open range.
22523         Update for change to type of m_line_events.
22524         * edit-context.h (edit_context::apply_insert): Delete.
22525         (edit_context::apply_replace): Rename to...
22526         (edit_context::apply_fixit): ...this.
22528 2017-05-01  Martin Sebor  <msebor@redhat.com>
22530         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
22531         known.
22533 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
22535         PR target/68491
22536         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
22537         __get_cpuid_max returns 0.
22538         (__get_cpuid_count): Ditto.
22540 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
22542         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
22543         replacement expression is another instance of one of its arguments.
22545 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
22547         PR target/79430
22548         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
22549         check for stack push/pop autoinc.
22550         * config/i386/i386.c (ix86_agi_dependent): Return false
22551         if the only reason why modified_in_p returned true is that
22552         addr is SP based and set_insn is a push or pop.
22554 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
22556         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
22557         overflow check.
22559 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
22561         PR ipa/79224
22562         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
22563         (account_size_time): Use two predicates - exec_pred and
22564         nonconst_pred_ptr.
22565         (evaluate_conditions_for_known_args): Compute both clause and
22566         nonspec_clause.
22567         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
22568         (inline_summary_t::duplicate): Update.
22569         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
22570         separately.
22571         (compute_inline_parameters): Likewise.
22572         (estimate_edge_size_and_time): Update caluclation of time.
22573         (estimate_node_size_and_time): Compute both time and nonspecialized
22574         time.
22575         (estimate_ipcp_clone_size_and_time): Update.
22576         (inline_merge_summary): Update.
22577         (do_estimate_edge_time): Update.
22578         (do_estimate_edge_size): Update.
22579         (do_estimate_edge_hints): Update.
22580         (inline_read_section, inline_write_summary): Stream both new predicates.
22581         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
22582         as argument.
22583         (compute_inlined_call_time): Cleanup.
22584         (big_speedup_p): Update.
22585         (edge_badness): Update.
22586         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
22587         (size_time_entry): Replace predicate by exec_predicate and
22588         nonconst_predicate.
22589         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
22590         (estimate_edge_time): Return also nonspec_time.
22591         (reset_edge_growth_cache): Update.
22593 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
22595         PR rtl-optimization/80491
22596         * ifcvt.c (noce_process_if_block): When looking for x setter
22597         with missing else_bb, don't check only the insn right before
22598         cond_earliest, but look for the last insn that x is modified in
22599         within the same bb.
22601         PR rtl-optimization/80491
22602         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
22604 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
22606         PR tree-optimization/80487
22607         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
22609 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
22611         PR tree-optimization/79697
22612         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
22613         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
22614         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
22615         BUILT_IN_STRNDUP.
22616         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
22617         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
22619 2017-04-28  Martin Sebor  <msebor@redhat.com>
22621         PR tree-optimization/80523
22622         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
22623         (init_target_to_host_charmap, target_to_host, target_strtol10): New
22624         functions.
22625         (maybe_warn, format_directive, parse_directive): Use new functions.
22626         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
22628 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
22630         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
22632 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22634         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
22635         target_header_dir): Set correctly.
22636         * configure: Regenerated.
22637         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
22638         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
22639         instead of SYSTEM_HEADER_DIR.
22641 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
22643         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
22644         (estimate_local_effects): Likewise.
22645         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
22646         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
22647         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
22648         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
22649         do_estimate_edge_time, estimate_edge_time): Likewise.
22650         * ipa-inline-analysis.c (estimate_node_size_and_time,
22651         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
22652         (estimate_time_after_inlining): Remove.
22654 2017-04-28  Martin Liska  <mliska@suse.cz>
22656         * doc/gcov.texi: Enhance documentation of gcov.
22658 2017-04-28  Martin Liska  <mliska@suse.cz>
22660         * doc/gcov.texi: Sort options in alphabetic order.
22661         * doc/gcov-dump.texi: Likewise.
22662         * doc/gcov-tool.texi: Likewise.
22663         * gcov.c (print_usage): Likewise.
22664         * gcov-dump.c (print_usage): Likewise.
22665         * gcov-tool.c (print_merge_usage_message): Likewise.
22666         (print_rewrite_usage_message): Likewise.
22667         (print_overlap_usage_message): Likewise.
22669 2017-04-28  Martin Liska  <mliska@suse.cz>
22671         PR gcov-profile/53915
22672         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
22674 2017-04-28  Martin Liska  <mliska@suse.cz>
22676         PR gcov-profile/79891
22677         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
22678         is marked by compiler as living on a line.
22679         (get_cycles_count): Remove usage of the union.
22680         (output_intermediate_file): Likewise.
22681         (find_source): Fix GNU coding style.
22682         (accumulate_line_counts): Remove old non-all block mode.
22683         (output_lines): Remove usage of the union.
22684         * profile.c (output_location): Include all BBs, even if
22685         belonging to a same line (and file) as a previous BB.
22687 2017-04-28  Martin Liska  <mliska@suse.cz>
22689         * gcov.c (process_args): Handle new argument 'w'.
22690         (read_graph_file): Assign ID to BBs.
22691         (output_branch_count): Display BB # if verbose flag is set.
22692         (output_lines): Likewise for arcs.
22693         (print_usage): Add '--verbose' option help.
22694         * doc/gcov.texi: Document --verbose (-w) option.
22696 2017-04-28  Martin Liska  <mliska@suse.cz>
22698         * gcov.c (struct block_location_info): New struct.
22699         (process_file): Fill up the new structure.
22700         (read_graph_file): Replace usage of encoding by the newly added
22701         struct.
22702         (add_line_counts): Likewise.
22703         (accumulate_line_counts): Remove usage of the union.
22704         (function_info::function_info): New function.
22705         (function_info::~function_info): Likewise.
22706         (process_file): Call delete instead of release_function.
22707         (release_function): Release the function.
22708         (release_structures): Call delete instead of release_function.
22709         (solve_flow_graph): Replace usage of num_blocks.
22710         (find_exception_blocks): Likewise.
22711         (output_lines): Fix GNU coding style.
22713 2017-04-28  Martin Liska  <mliska@suse.cz>
22715         PR driver/56469
22716         * coverage.c (coverage_remove_note_file): New function.
22717         * coverage.h: Declare the function.
22718         * toplev.c (finalize): Clean if an error has been seen.
22720 2017-04-28  Martin Liska  <mliska@suse.cz>
22722         PR gcov-profile/80031
22723         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
22724         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
22725         * gcov.c (read_graph_file): Read just number of blocks.
22726         * profile.c (branch_prob): Do not stream 0 flags per a basic
22727         block.
22729 2017-04-28  Martin Liska  <mliska@suse.cz>
22731         * gcov-dump.c (tag_*): Add new argument to declarations.
22732         (dump_gcov_file): Likewise.
22733         (tag_blocks): Add and use new argument depth.
22734         (tag_arcs): Likewise.
22735         (tag_lines): Likewise.
22736         (tag_counters): Likewise.
22737         (tag_summary): Likewise.
22738         (dump_working_sets): Use depth to do a proper indentation.
22740 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
22742         PR bootstrap/80531
22743         * cgraph.h (symtab_node::debug_symtab): No longer inline.
22744         * symtab.c (symtab_node::debug_symtab): Move definition here.
22746 2017-04-28  Richard Biener  <rguenther@suse.de>
22748         * lto-streamer.h (LTO_major_version): Bump to 7.
22750 2017-04-28  Richard Biener  <rguenther@suse.de>
22752         * tree-vrp.c (assert_info): New struct.
22753         (add_assert_info): New helper.
22754         (register_edge_assert_for_2): Refactor to add asserts to a vector
22755         of assert_info.
22756         (register_edge_assert_for_1): Likewise.
22757         (register_edge_assert_for): Likewise.
22758         (finish_register_edge_assert_for): New helper actually registering
22759         asserts where live on edge.
22760         (find_conditional_asserts): Adjust.
22761         (find_switch_asserts): Likewise.
22762         (evrp_dom_walker::try_find_new_range): Generalize.
22763         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
22765 2017-04-27  Marek Polacek  <polacek@redhat.com>
22767         PR sanitizer/80349
22768         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
22769         arg10 and arg11 to itype.
22771 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
22773         * doc/extend.texi (Object Size Checking): Improve grammar.
22775 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
22777         PR target/80530
22778         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
22779         that the logic for permitting reciprocal estimates matches that
22780         in use_rsqrt_p.
22782 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
22784         PR c++/80534
22785         * tree.c (type_cache_hasher::equal): Only compare
22786         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
22787         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
22788         non-aggregate element types.
22789         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
22790         about the flag on ARRAY_TYPEs in the comment, formatting fix.
22792 2017-04-27  Richard Biener  <rguenther@suse.de>
22794         PR middle-end/80533
22795         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
22796         stripping ARRAY_REFs from MEM_EXPR make sure we're not
22797         keeping a reference to a trailing array.
22799 2017-04-27  Richard Biener  <rguenther@suse.de>
22801         PR middle-end/80539
22802         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
22803         being in loop-closed SSA form conservatively.
22804         (chrec_fold_multiply_poly_poly): Likewise.
22806 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
22808         PR middle-end/79665
22809         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
22810         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
22812 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
22814         PR target/77728
22815         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
22816         (aarch64_function_arg_alignment): Return unsigned int again, but still
22817         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
22818         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
22819         Don't emit -Wpsabi note.
22820         (aarch64_function_arg_boundary): Likewise.
22821         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
22822         caller.
22824 2017-04-26  Nathan Sidwell  <nathan@acm.org>
22826         * tree.h (crc32_unsigned_n): Declare.
22827         (crc32_unsigned, crc32_unsigned): Make inline.
22828         * tree.c (crc32_unsigned_bits): Replace with ...
22829         (crc32_unsigned_n): ... this.
22830         (crc32_unsigned, crc32_byte): Remove.
22831         (crc32_string): Remove unnecessary braces.
22833 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
22835         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
22836         * ipa-inline-analysis.c (MAX_TIME): Remove.
22837         (account_size_time): Use sreal for time.
22838         (dump_inline_summary): Update.
22839         (estimate_function_body_sizes): Update.
22840         (estimate_edge_size_and_time): Update.
22841         (estimate_calls_size_and_time): Update.
22842         (estimate_node_size_and_time): Update.
22843         (inline_merge_summary): Update.
22844         (inline_update_overall_summary): Update.
22845         (estimate_time_after_inlining): Update.
22846         (inline_read_section): Update.
22847         (inline_write_summary): Update.
22848         * ipa-inline.c (compute_uninlined_call_time): Update.
22849         (compute_inlined_call_time): Update.
22850         (recursive_inlining): Update.
22851         (inline_small_functions): Update.
22852         (dump_overall_stats): Update.
22853         * ipa-inline.h: Include sreal.h.
22854         (size_time_entry): Turn time to sreal.
22855         (inline_summary): Turn self_time nad time to sreal.
22857 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
22859         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
22860         data-streamer.h
22861         (sreal::stream_out, sreal::stream_in): New.
22862         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
22864 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
22866         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
22867         environment.
22869 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
22871         PR target/70799
22872         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
22873         Handle ASHIFTRT.
22874         (dimode_scalar_chain::compute_convert_gain): Ditto.
22875         (dimode_scalar_chain::make_vector_copies): Ditto.
22876         (dimode_scalar_chain::convert_reg): Ditto.
22877         (dimode_scalar_chain::convert_insn): Ditto.
22878         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
22879         (VI248_AVX512BW_1): New mode iterator.
22880         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
22881         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
22882         mode iterator.
22884 2017-04-25  Martin Sebor  <msebor@redhat.com>
22886         PR tree-optimization/80497
22887         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
22888         constants are representable in HOST_WIDE_INT.
22889         (parse_directive): Ditto.
22891 2017-04-25  Martin Sebor  <msebor@redhat.com>
22893         PR bootstrap/80486
22894         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
22895         (new_zero_array): Adjust signature.
22896         (dom_info::dom_init): Used unsigned rather that size_t.
22897         (dom_info::dom_info): Same.
22899 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22900             Jakub Jelinek  <jakub@redhat.com>
22902         PR target/77728
22903         * config/arm/arm.c: Include gimple.h.
22904         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
22905         returns negative, increment ncrn only if it returned positive.
22906         (arm_needs_doubleword_align): Return int instead of bool,
22907         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
22908         members, but if there is any such non-FIELD_DECL
22909         > PARM_BOUNDARY aligned decl, return -1 instead of false.
22910         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
22911         returns negative, increment nregs only if it returned positive.
22912         (arm_setup_incoming_varargs): Likewise.
22913         (arm_function_arg_boundary): Emit -Wpsabi note if
22914         arm_needs_doubleword_align returns negative, return
22915         DOUBLEWORD_ALIGNMENT only if it returned positive.
22917 2017-04-25  Marek Polacek  <polacek@redhat.com>
22919         PR sanitizer/80349
22920         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
22921         first argument to type.
22923 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
22925         PR target/80482
22926         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
22927         type checks to test for compatibility instead of equality.
22929 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22930             Jakub Jelinek  <jakub@redhat.com>
22932         PR target/77728
22933         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
22934         type.
22935         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
22936         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
22937         the alignment computation, but return their maximum in warn_alignment.
22938         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
22939         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
22940         is smaller.
22941         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
22942         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
22943         caller.
22945 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22947         * config/arc/simdext.md (dmpyh): Fix typo.
22949 2017-04-25  Richard Biener  <rguenther@suse.de>
22951         PR tree-optimization/80492
22952         * alias.c (compare_base_decls): Handle registers with asm
22953         specification conservatively.
22954         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
22955         compare_base_decls returning dont-know properly.
22957 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22959         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
22960         (legitimate_offset_address_p): New function.
22961         (arc_legitimate_address_p): Use above function.
22963 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22965         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
22967 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22969         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
22970         ACCH registers whenever they are available.
22972 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22974         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
22975         double regs fix when not used.
22977 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22979         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
22980         core registers.
22981         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
22982         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
22984 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22986         * config/arc/arc.c (arc_output_addsi): Check for h-register class
22987         when emitting short ADD instructions.
22989 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22991         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
22992         constraint.
22993         (cmpsi_cc_c_insn): Likewise.
22994         (cbranchsi4_scratch): Compute proper instruction length using
22995         compact_hreg_operand.
22996         * config/arc/predicates.md (compact_hreg_operand): New predicate.
22998 2017-04-25  Richard Biener  <rguenther@suse.de>
23000         PR middle-end/80509
23001         * passes.c (pass_manager::pass_manager): Initialize
23002         m_name_to_pass_map.
23004 2017-04-25  Richard Biener  <rguenther@suse.de>
23006         PR tree-optimization/79201
23007         * tree-ssa-sink.c (statement_sink_location): Handle calls.
23009 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23011         PR target/80464
23012         * config/s390/vector.md: Split MEM->GPR vector moves for
23013         non-s_operand addresses.
23015 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23017         PR target/79895
23018         * config/s390/predicates.md (reload_const_wide_int_operand): New
23019         predicate.
23020         * config/s390/s390.md ("movti"): Remove d/P alternative.
23021         ("movti_bigconst"): New pattern definition.
23023 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
23025         PR target/80080
23026         * s390-protos.h (s390_expand_cs_hqi): Removed.
23027         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
23028         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
23029         modes as well as CCZ1mode and CCZmode.
23030         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
23031         signature of s390_emit_compare_and_swap.
23032         (s390_expand_cs_hqi): Likewise, make static.
23033         (s390_expand_cs_tdsi): Generate an explicit compare before trying
23034         compare-and-swap, in some cases.
23035         (s390_expand_cs): Wrapper function.
23036         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
23037         atomic_exchange.
23038         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
23039         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
23040         patterns for small and large integers.  Forbid symref memory operands.
23041         Move expander to s390.c.  Require cc register.
23042         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
23043         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
23044         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
23045         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
23046         symref memory operands.  Remove CC mode and call s390_match_ccmode
23047         instead.
23048         ("atomic_exchange<mode>"): Allow and implement all integer modes.
23050 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
23052         * config/s390/s390.md (define_peephole2): New peephole to help
23053         combining the load-and-test pattern with volatile memory.
23055 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
23057         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
23058         with CCZmode for TARGET_Z196.
23060 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
23062         PR rtl-optimization/80501
23063         * combine.c (make_compound_operation_int): Set subreg_code to SET
23064         even for AND with mask of the sign bit of mode.
23066         PR rtl-optimization/80500
23067         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
23068         sum's initial value.
23070 2017-04-25  Julian Brown  <julian@codesourcery.com>
23071             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
23073         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
23075 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
23077         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
23079 2017-04-25  Julian Brown  <julian@codesourcery.com>
23080             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
23082         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
23083         (thunderx2t99_sha): New Reservation.
23085 2017-04-25  Julian Brown  <julian@codesourcery.com>
23086             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
23088         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
23089         type for 1-element load.
23091 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
23093         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
23095 2017-04-24  Martin Jambor  <mjambor@suse.cz>
23097         PR tree-optimization/80293
23098         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
23099         char arrays not totally scalarizable if it is false.
23100         (analyze_all_variable_accesses): Pass correct value in the new
23101         parameter.  Add a statistics counter.
23103 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
23105         PR middle-end/79931
23106         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
23108 2017-04-24  Richard Biener  <rguenther@suse.de>
23110         PR tree-optimization/80494
23111         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
23112         out for complex types.
23114 2017-04-24  Richard Biener  <rguenther@suse.de>
23116         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
23117         * tree-ssa-sccvn.c (print_scc): Print SCC size.
23118         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
23119         (DFS): Adjust and never fail.
23120         (sccvn_dom_walker::fail): Remove.
23121         (sccvn_dom_walker::before_dom_children): Adjust.
23122         (run_scc_vn): Likewise and never fail.
23123         * tree-ssa-pre.c (pass_pre::execute): Adjust.
23124         (pass_fre::execute): Likewise.
23126 2017-04-24  Richard Biener  <rguenther@suse.de>
23128         PR tree-optimization/79725
23129         * tree-ssa-sink.c (statement_sink_location): Return whether
23130         failure reason was zero uses.  Move that check later.
23131         (sink_code_in_bb): Deal with zero uses by removing the stmt
23132         if possible.
23134 2017-04-24  Richard Biener  <rguenther@suse.de>
23136         PR c++/2972
23137         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
23138         pointer-based references.
23140 2017-04-24  Richard Biener  <rguenther@suse.de>
23142         PR bootstrap/79814
23143         * pass_manager.h (pass_manager::operator new): Remove.
23144         (pass_manager::operator delete): Likewise.
23145         * passes.c (pass_manager::operator new): Remove.
23146         (pass_manager::operator delete): Likewise.
23147         (pass_manager::pass_manager): Zero individual pass members.
23149 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
23151         PR target/70799
23152         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
23153         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
23154         Check "XEXP (src, 1)" operand here.
23155         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
23156         Check "XEXP (src, 1)" operand here.
23157         (dimode_scalar_chain::make_vector_copies): Detect count register
23158         of a shift instruction.  Zero extend count register from QImode
23159         to DImode to satisfy vector shift pattern count operand predicate.
23160         Substitute vector shift count operand with a DImode copy.
23161         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
23162         vector register.
23164 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
23166         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
23167         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
23168         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
23169         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
23170         (UNSPEC_NOREX_MEM): Remove definition.
23172 2017-04-21  Richard Biener  <rguenther@suse.de>
23174         PR tree-optimization/79547
23175         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
23176         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
23177         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
23178         without any constraints.
23180 2017-04-21  Richard Biener  <rguenther@suse.de>
23182         PR tree-optimization/78847
23183         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
23185 2017-04-21  Richard Biener  <rguenther@suse.de>
23187         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
23188         (build_distinct_type_copy): Likewise.
23189         (build_variant_type_copy): Likewise.
23190         * tree.c (build_qualified_type): Pass down mem-stat info.
23191         (build_distinct_type_copy): Likewise.
23192         (build_variant_type_copy): Likewise.
23194 2017-04-21  Richard Biener  <rguenther@suse.de>
23196         PR tree-optimization/80237
23197         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
23198         defaulted to NULL.
23199         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
23200         for a simplified result.
23202 2016-04-21  Richard Biener  <rguenther@suse.de>
23204         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
23205         sth as strict as a simple_iv but a chrec without symbols and an
23206         operand defined in the loop we are peeling (and not some subloop).
23207         (propagate_constants_for_unrolling): Propagate all constants.
23209 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
23211         PR target/79804
23212         * config/i386/i386.c (print_reg): Remove assert for disalowed
23213         regno values, call output_operand_lossage instead.
23215 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
23217         PR target/78090
23218         * config/i386/constraints.md (Yc): New register constraint.
23219         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
23220         Use Yc constraint for alternative 2 of operand 0.  Remove
23221         preferred_for_speed attribute.
23223 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
23225         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
23226         lastprivate clauses in SIMT case.
23228 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
23230         * doc/invoke.texi (-Wextra-semi): Document new warning option.
23232 2017-04-20  Richard Biener  <rguenther@suse.de>
23234         PR tree-optimization/57796
23235         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
23236         as N scalar stores.
23237         (vect_model_load_cost): Cost gathers as N scalar loads.
23239 2017-04-20  Richard Biener  <rguenther@suse.de>
23241         * ggc-page.c (ggc_allocated_p): Rename to ...
23242         (safe_lookup_page_table_entry): ... this and return the lookup
23243         result.
23244         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
23246 2017-04-20  Richard Biener  <rguenther@suse.de>
23248         PR tree-optimization/80453
23249         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
23250         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
23251         from the conditions.
23252         (vn_phi_eq): Pass them down.
23253         (vn_phi_lookup): Record them.
23254         (vn_phi_insert): Likewise.
23256 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
23258         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
23259         uninitialized variable warning to avoid buffer overrun.
23261 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
23263         PR other/71250
23264         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
23265         is suppressed for '{ 0 }' in C.
23267 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
23269         * BASE-VER: Set to 8.0.0.
23271 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23273         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
23274         priority .init_array and .fini_array section with SECTION_NOTYPE
23275         flag.
23277 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
23279         PR middle-end/80423
23280         * tree.h (build_array_type): Add typeless_storage default argument.
23281         * tree.c (type_cache_hasher::equal): Also compare
23282         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
23283         (build_array_type): Add typeless_storage argument, set
23284         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
23285         recursive call.
23286         (build_nonshared_array_type): Adjust build_array_type_1 caller.
23287         (build_array_type): Likewise.  Add typeless_storage argument.
23289 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
23290             Jakub Jelinek  <jakub@redhat.com>
23292         PR tree-optimization/80426
23293         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
23294         operation on symbolic operands, also compute the overflow for the
23295         invariant part when the operation degenerates into a negation.
23297 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
23299         PR debug/80461
23300         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
23301         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
23303         PR debug/80436
23304         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
23306 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
23308         PR target/80462
23309         * config/avr/avr.c (tree.h): Include it.
23310         (cgraph.h): Include it.
23311         (avr_encode_section_info): Don't warn for uninitialized progmem
23312         variable if it's just an alias.
23314 2017-04-19  Richard Biener  <rguenther@suse.de>
23316         PR ipa/65972
23317         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
23318         when needed by AutoPGO.
23320 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
23322         PR lto/50345
23323         * doc/lto.texi: Remove an extra 'that'.
23325 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
23327         PR rtl-optimization/80429
23328         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
23329         are only used in debug insns.
23331 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
23332             Vladimir Makarov  <vmakarov@redhat.com>
23334         * config/sparc/predicates.md (input_operand): Add comment.  Return
23335         true for any memory operand when LRA is in progress.
23336         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
23338 2017-04-18  Jeff Law  <law@redhat.com>
23340         PR target/74563
23341         * mips.md ({return,simple_return}_internal): Do not overwrite
23342         operands[0].
23344 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
23346         PR tree-optimization/80443
23347         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
23348         instead of adding 1, subtract -1 and similarly instead of subtracting
23349         1 add -1.
23351 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
23353         PR rtl-optimization/80357
23354         * haifa-sched.c (tmp_bitmap): New variable.
23355         (model_recompute): Handle duplicate use records.
23356         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
23357         (free_global_sched_pressure_data): Free it.
23359 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
23361         Revert:
23362         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
23363         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
23364         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
23365         instead of SYSTEM_HEADER_DIR.
23367 2017-04-18  Jeff Law  <law@redhat.com>
23369         PR middle-end/80422
23370         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
23371         predecessors after walking up the insn chain.
23373 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
23375         PR debug/80263
23376         * dwarf2out.c (modified_type_die): Try harder not to emit internal
23377         sizetype type into debug info.
23379 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
23381         PR target/80099
23382         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
23383         unneeded test for TARGET_UPPER_REGS_SF.
23384         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
23386 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
23388         PR sanitizer/80444
23389         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
23390         instead of gsi_after_labels.
23392 2017-04-18  Jeff Law  <law@redhat.com>
23394         * regcprop.c (maybe_mode_change): Avoid creating copies of the
23395         stack pointer.
23397         Revert:
23398         2017-04-13  Jeff Law  <law@redhat.com>
23399         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
23400         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
23402 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
23404         PR target/79453
23405         * config/avr/avr.c (intl.h): Include it.
23406         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
23408 2017-04-18  Martin Liska  <mliska@suse.cz>
23410         PR gcov-profile/78783
23411         * gcov-tool.c (gcov_output_files): Validate that destination
23412         file is either removed by the tool or by a user.
23414 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
23415             Guy Benyei  <guybe@mellanox.com>
23417         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
23418         block, and do not negate it, the stored id is already negative.
23420 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
23422         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
23424 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
23426         PR target/80098
23427         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
23428         masks of options that should be turned off if the VSX vector
23429         options are turned off.
23430         (OTHER_P8_VECTOR_MASKS): Likewise.
23431         (OTHER_VSX_VECTOR_MASKS): Likewise.
23432         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
23433         rs6000_disable_incompatible_switches to validate no type switches
23434         like -mvsx.
23435         (rs6000_incompatible_switch): New function to disallow turning on
23436         other vector options if -mno-vsx, -mno-power8-vector, or
23437         -mno-power9-vector are specified.
23439 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
23441         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
23443 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
23445         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
23446         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
23447         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
23448         (ARG_POINTER_CFA_OFFSET): Likewise.
23450 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
23452         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
23453         conditions to take advantage of various optimizations.
23455 2017-04-13  Jeff Law  <law@redhat.com>
23457         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
23458         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
23459         (zero_extendsidi2_dext): Likewise.
23461 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
23463         PR sanitizer/80403
23464         * fold-const.c (fold_ternary_loc): Revert
23465         use op0 instead of fold_convert_loc (loc, type, arg0) part of
23466         2017-04-12 change.
23468 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
23470         PR rtl-optimization/80343
23471         * lra-remat.c (update_scratch_ops): Assign original hard reg to
23472         new scratch pseudo.
23474 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
23476         PR sanitizer/80414
23477         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
23478         to ubsan_encode_value.
23480 2017-04-13  Jeff Law  <law@redhat.com>
23482         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
23483         appearing in DEBUG_INSNs.
23485 2017-04-13  Martin Liska  <mliska@suse.cz>
23487         PR gcov-profile/80413
23488         * gcov-io.c (gcov_write_string): Copy to buffer just when
23489         allocated size is greater than zero.
23491 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
23493         PR debug/80321
23494         * dwarf2out.c (decls_for_scope): Ignore declarations of
23495         current_function_decl in BLOCK_NONLOCALIZED_VARS.
23497 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
23499         PR lto/69953
23500         * ipa-visibility.c (non_local_p): Fix typos.
23501         (localize_node): When localizing symbol in same comdat group,
23502         dissolve the group only when we know external symbols are going
23503         to be privatized.
23504         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
23506 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
23508         PR tree-optimization/79390
23509         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
23510         order does not result in usable sequence, retry with reversed operand
23511         order.
23513         PR sanitizer/80403
23514         PR sanitizer/80404
23515         PR sanitizer/80405
23516         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
23517         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
23518         op0 instead of fold_convert_loc (loc, type, arg0).
23520 2017-04-12  Jeff Law  <law@redhat.com>
23522         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
23523         has a delay slot in the generated code.
23525         * config/cris/cris.md (cris_preferred_reload_class): Return
23526         GENNONACR_REGS rather than GENERAL_REGS.
23528 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
23530         PR c/80163
23531         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
23532         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
23533         signedness of the result type.
23535 2017-04-12  Richard Biener  <rguenther@suse.de>
23536             Jeff Law  <law@redhat.com>
23538         PR tree-optimization/80359
23539         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
23540         trim stores to TARGET_MEM_REFs.
23542 2017-04-12  Richard Biener  <rguenther@suse.de>
23544         PR tree-optimization/79390
23545         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
23546         threading case even more.
23548 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
23550         PR target/80382
23551         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
23552         for quad_address_p for TImode, instead of just not indexed_address.
23554 2017-04-12  Richard Biener  <rguenther@suse.de>
23555             Bernd Edlinger  <bernd.edlinger@hotmail.de>
23557         PR middle-end/79671
23558         * alias.c (component_uses_parent_alias_set_from): Handle
23559         TYPE_TYPELESS_STORAGE.
23560         (get_alias_set): Likewise.
23561         * tree-core.h (tree_type_common): Add typeless_storage flag.
23562         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
23563         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
23564         for types containing members with TYPE_TYPELESS_STORAGE.
23565         (place_field): Likewise.
23566         (layout_type): Likewise for ARRAY_TYPE.
23567         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
23568         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
23569         TYPE_TYPELESS_STORAGE.
23570         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
23572 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
23574         PR sanitizer/80349
23575         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
23576         first argument to type.
23578 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23580         PR target/80376
23581         PR target/80315
23582         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
23583         CONST0_RTX (mode) rather than const0_rtx where appropriate.
23584         (rs6000_expand_binop_builtin): Likewise.
23585         (rs6000_expand_ternop_builtin): Likewise; also add missing
23586         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
23587         vshasigma built-ins.
23588         * doc/extend.texi: Document that vec_xxpermdi's third argument
23589         must be a constant.
23591 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
23593         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
23594         Use shift_const cost parameter when calculating gain of STV shifts.
23596 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
23598         PR rtl-optimization/70478
23599         * lra-constraints.c (process_alt_operands): Check memory for
23600         disfavoring memory insn operand.
23602 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
23604         PR middle-end/80100
23605         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
23606         left shift in unsigned HOST_WIDE_INT type.
23608         PR rtl-optimization/80385
23609         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
23610         (not (neg X)) into (plus X -1) for complex or non-integral modes.
23612         PR libgomp/80394
23613         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
23614         if they have any depend clauses.
23616 2017-04-11  Martin Liska  <mliska@suse.cz>
23618         PR ipa/80212
23619         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
23620         * ipa-split.c (split_function): Create a local comdat symbol
23621         if caller is in a comdat group.
23623 2017-04-11  Martin Liska  <mliska@suse.cz>
23625         PR ipa/80212
23626         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
23627         flags.
23629 2017-04-11  Martin Sebor  <msebor@redhat.com>
23631         PR middle-end/80364
23632         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
23633         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
23634         for INTEGER_TYPE.
23635         (directive::set_width, directive::set_precision, format_character):
23636         Adjust.
23637         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
23638         INTEGER_TYPE.
23640 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
23642         PR target/80389
23643         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
23644         conflict, set target->arch_name instead of target->cpu_name.
23646 2017-04-11  Richard Biener  <rguenther@suse.de>
23648         PR tree-optimization/80374
23649         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
23650         build_zero_cst, remove fold_convertible_p check again.
23652 2017-04-11  Martin Liska  <mliska@suse.cz>
23654         PR sanitizer/70878
23655         * ubsan.c (instrument_object_size): Do not instrument register
23656         variables.
23658 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
23660         PR target/80381
23661         * config/i386/i386-builtin-types.def
23662         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
23663         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
23664         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
23665         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
23666         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
23667         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
23668         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
23669         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
23670         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
23671         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
23672         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
23673         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
23674         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
23675         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
23676         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
23677         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
23678         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
23679         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
23680         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
23681         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
23682         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
23683         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
23684         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
23685         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
23686         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
23687         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
23688         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
23689         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
23690         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
23691         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
23692         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
23693         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
23694         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
23695         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
23696         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
23697         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
23698         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
23699         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
23700         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
23701         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
23702         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
23703         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
23704         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
23705         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
23706         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
23707         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
23708         aliases.
23709         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
23710         flag to second_arg_count, handle 4 argument function type _COUNT
23711         aliases, handle second_arg_count on second argument rather than last.
23713 2017-04-10  Jeff Law  <law@redhat.com>
23715         PR tree-optimization/80374
23716         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
23717         record anything if we can not convert integer_zero_node to the
23718         desired type.
23720 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
23722         PR target/80108
23723         * config/rs6000/rs6000.c (rs6000_option_override_internal):
23724         Enhance special handling given to the TARGET_P9_MINMAX option in
23725         relation to certain other options.
23727 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
23729         PR tree-optimization/80153
23730         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
23731         remove POINTER_PLUS_EXPR's base part directly, rather than through
23732         aff_tree.
23734 2017-04-10  Richard Biener  <rguenther@suse.de>
23735             Bin Cheng  <bin.cheng@arm.com>
23737         PR tree-optimization/80153
23738         * tree-affine.c (aff_combination_to_tree): Get base pointer from
23739         the first element of pointer type aff_tree.  Build result expr in
23740         aff_tree's type.
23741         (add_elt_to_tree): Convert to type unconditionally.  Remove other
23742         fold_convert calls.
23743         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
23744         (rewrite_use_nonlinear_expr): Check invariant using iv information.
23746 2017-04-10  Richard Biener  <rguenther@suse.de>
23748         * tree-ssa-structalias.c (find_func_aliases): Properly handle
23749         asm inputs.
23751 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
23753         PR rtl-optimization/70478
23754         * lra-constraints.c (curr_small_class_check): New.
23755         (update_and_check_small_class_inputs): New.
23756         (process_alt_operands): Update curr_small_class_check.  Disfavor
23757         alternative insn memory operands.  Check available regs for small
23758         class operands.
23760 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
23762         PR target/80057
23763         * config/mips/mips.opt (-mvirt): Update description.
23764         * doc/invoke.texi (-mvirt): Likewise.
23766 2017-04-10  Richard Biener  <rguenther@suse.de>
23768         PR middle-end/80362
23769         * fold-const.c (fold_binary_loc): Look at unstripped ops when
23770         looking for NEGATE_EXPR in -A / -B to A / B folding.
23772 2017-04-10  Martin Liska  <mliska@suse.cz>
23774         PR gcov-profile/80224
23775         * gcov.c (print_usage): Fix usage string.
23776         (get_gcov_intermediate_filename): Remove.
23777         (output_gcov_file): Use both for normal and intermediate format.
23778         (generate_results): Do not initialize special file for
23779         intermediate format.
23781 2017-04-10  Richard Biener  <rguenther@suse.de>
23783         PR tree-optimization/80304
23784         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
23785         for safelen.
23787 2017-04-10  Nathan Sidwell  <nathan@acm.org>
23789         PR target/79905
23790         * config/rs6000/rs6000.c (rs6000_vector_type): New.
23791         (rs6000_init_builtins): Use it.
23793 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23795         * config/arm/arm.md (<mrc>): Add mode to SET source.
23796         (<mrrc>): Likewise.
23798 2017-04-10  Richard Biener  <rguenther@suse.de>
23800         PR middle-end/80344
23801         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
23803 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
23805         PR target/80324
23806         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
23807         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
23808         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
23809         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
23810         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
23811         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
23812         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
23813         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
23814         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
23815         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
23816         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
23817         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
23818         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
23819         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
23820         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
23821         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
23822         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
23823         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
23824         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
23825         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
23826         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
23827         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
23828         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
23830 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
23832         PR rtl-optimization/70478
23833         * lra-constraints.c: Reverse the last patch.
23835 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
23837         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
23838         Add comment for WCHAR_T.
23840 2017-04-08  Martin Liska  <mliska@suse.cz>
23842         Revert:
23843         2017-04-07  Martin Liska  <mliska@suse.cz>
23845         PR ipa/80212
23846         * ipa-split.c (split_function): Add function part to a same comdat
23847         group.
23849 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
23851         PR target/80358
23852         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
23854 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
23856         * rs6000/rs6000.c (vec_load_pendulum): Rename...
23857         (vec_pairing): ...to this.
23858         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
23859         (rs6000_sched_init): Adjust for name change.
23860         (struct rs6000_sched_context): Likewise.
23861         (rs6000_init_sched_context): Likewise.
23862         (rs6000_set_sched_context): Likewise.
23864 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
23866         PR target/80322
23867         PR target/80323
23868         PR target/80325
23869         PR target/80326
23870         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
23871         intrinsics.
23872         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
23873         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
23874         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
23876 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
23878         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
23880 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
23882         PR rtl-optimization/70703
23883         * ira-color.c (update_conflict_hard_regno_costs): Use
23884         int64_t instead of HOST_WIDE_INT.
23886 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
23888         PR rtl-optimization/70478
23889         * lra-constraints.c (process_alt_operands): Disfavor alternative
23890         insn memory operands.
23892 2017-04-07  Jeff Law  <law@redhat.com>
23894         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
23895         CALL and NOTE_INSN_CALL_ARG_LOCATION.
23897 2017-04-07  Martin Liska  <mliska@suse.cz>
23899         PR target/79889
23900         * config/aarch64/aarch64.c (aarch64_process_target_attr):
23901         Show error message instead of an ICE.
23903 2017-04-07  Martin Liska  <mliska@suse.cz>
23905         PR ipa/80212
23906         * ipa-split.c (split_function): Add function part to a same comdat
23907         group.
23909 2017-04-07  Richard Biener  <rguenther@suse.de>
23911         PR middle-end/80341
23912         * tree.c (get_unwidened): Also handle ! for_type case for
23913         INTEGER_CSTs.
23914         * convert.c (do_narrow): Split out from ...
23915         (convert_to_integer_1): ... here.  Do not pass final truncation
23916         type to get_unwidened for TRUNC_DIV_EXPR.
23918 2017-04-07  Richard Biener  <rguenther@suse.de>
23920         * tree-affine.c (wide_int_ext_for_comb): Take type rather
23921         than aff_tree.
23922         (aff_combination_const): Adjust.
23923         (aff_combination_scale): Likewise.
23924         (aff_combination_add_elt): Likewise.
23925         (aff_combination_add_cst): Likewise.
23926         (aff_combination_convert): Likewise.
23927         (add_elt_to_tree): Likewise.  Remove unused argument.
23928         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
23930 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
23932         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
23933         definition.
23934         * config/arm/arm.c (arm_default_short_enums): Use
23935         ARM_DEFAULT_SHORT_ENUMS.
23936         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
23938 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
23940         PR debug/80234
23941         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
23942         members with redundant out-of-class redeclaration.
23944 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
23946         PR target/80286
23947         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
23948         * config/i386/i386.md (*zero_extendsidi2):
23949         Add (?*x,*x) and (?*v,*v) alternatives.
23951 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
23953         PR target/79733
23954         * config/i386/i386.c (ix86_expand_builtin)
23955         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
23956         mode from insn data. Convert operands to insn operand mode.
23957         Copy operands that don't satisfy insn predicate to a register.
23959 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
23961         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
23962         Update comments.
23964 2017-04-06  Richard Biener  <rguenther@suse.de>
23966         PR tree-optimization/80334
23967         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
23968         preserve alignment of accesses.
23970 2017-04-06  Richard Biener  <rguenther@suse.de>
23972         PR tree-optimization/80262
23973         * tree-sra.c (build_ref_for_offset): Preserve address-space
23974         information.
23975         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
23976         Drop useless address-space information on MEM_REF offsets.
23978 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
23980         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
23982 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
23984         PR rtl-optimization/70703
23985         * ira-color.c (update_conflict_hard_regno_costs): Use
23986         HOST_WIDE_INT instead of long.
23988 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
23990         PR target/80298
23991         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
23992         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
23993         is not defined.
23994         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
23995         for x86_64 target.  Handle -m3dnowa option.
23997 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
23999         PR rtl-optimization/70703
24000         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
24001         (update_conflict_hard_regno_costs): Use long instead of unsigned
24002         arithmetic for cost calculation.
24004 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
24005             Bernd Edlinger  <bernd.edlinger@hotmail.de>
24007         PR sanitizer/80308
24008         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
24009         for big endian.
24011 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
24013         PR target/78002
24014         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
24015         ptr_mode with Pmode throughout.
24016         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
24017         into probe_stack_range and use DImode.
24019 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
24021         PR target/79890
24022         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
24023         call_eh_return is true.
24025 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24027         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
24028         Initialize last_match_fntype_index.
24030 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
24032         PR target/80310
24033         * tree-nvr.c: Include internal-fn.h.
24034         (pass_return_slot::execute): Ignore internal calls without
24035         direct optab.
24037 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
24038             Richard Biener  <rguenther@suse.de>
24040         PR c++/80297
24041         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
24042         captures used multiple times, except for the last use.
24043         * generic-match-head.c: Include gimplify.h.
24045 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
24047         PR tree-optimization/79390
24048         * target.h (struct noce_if_info): Declare.
24049         * targhooks.h (default_noce_conversion_profitable_p): Declare.
24050         * target.def (noce_conversion_profitable_p): New target hook.
24051         * ifcvt.h (struct noce_if_info): New type, moved from ...
24052         * ifcvt.c (struct noce_if_info): ... here.
24053         (noce_conversion_profitable_p): Renamed to ...
24054         (default_noce_conversion_profitable_p): ... this.  No longer
24055         static nor inline.
24056         (noce_try_store_flag_constants, noce_try_addcc,
24057         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
24058         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
24059         instead of noce_conversion_profitable_p.
24060         * config/i386/i386.c: Include ifcvt.h.
24061         (ix86_option_override_internal): Don't override
24062         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
24063         (ix86_noce_conversion_profitable_p): New function.
24064         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
24065         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
24066         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
24067         * doc/tm.texi: Regenerated.
24069 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24071         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
24072         correction.
24074 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24076         PR target/80307
24077         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
24078         instructions for small multiply cores.
24080 2017-04-04  Jeff Law  <law@redhat.com>
24082         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
24083         added member.
24084         (mips_expand_vec_perm_const): Initialize elements in orig_perm
24085         that are not set by the loop over the elements.
24087 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
24089         PR target/80286
24090         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
24091         int mode, convert_modes it to mode as unsigned, otherwise use
24092         lowpart_subreg to mode rather than SImode.
24093         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
24094         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
24095         Use DImode instead of SImode for the shift count operand.
24096         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
24097         Likewise.
24099 2017-04-04  Richard Biener  <rguenther@suse.de>
24101         PR middle-end/80281
24102         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
24103         arithmetic done for the negate or the plus.  Simplify.
24104         (A - (-B) -> A + B): Likewise.
24105         * fold-const.c (split_tree): Make sure to not negate pointers.
24107 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
24109         PR rtl-optimization/60818
24110         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
24111         a compare of comparisons with the thing compared if this results
24112         in a different machine mode.
24114 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
24116         * alias.c (base_alias_check): Fix typo in comment.
24117         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
24118         * cgraphunit.c (symbol_table::compile): Likewise.
24119         * collect2.c (maybe_run_lto_and_relink): Likewise.
24120         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
24121         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
24122         * config/avr/avr.c (avr_map_op_t): Likewise.
24123         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
24124         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
24125         * config/epiphany/epiphany.md (movcc): Likewise.
24126         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
24127         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
24128         Likewise.
24129         * config/mips/mips.c (mips_save_restore_reg): Likewise.
24130         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
24131         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
24132         * config/sh/sh.c (sh_rtx_costs): Likewise.
24133         * fold-const.c (fold_truth_andor): Likewise.
24134         * genautomata.c (collapse_flag): Likewise.
24135         * gengtype.h (struct type::u::s): Likewise.
24136         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
24137         * input.c (FORMAT_AMOUNT): Likewise.
24138         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
24139         (known_aggs_to_agg_replacement_list): Likewise.
24140         * ipa-inline-analysis.c: Likewise.
24141         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
24142         * ipa-polymorphic-call.c
24143         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
24144         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
24145         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
24146         Likewise.
24147         * modulo-sched.c (apply_reg_moves): Likewise.
24148         * omp-expand.c (build_omp_regions_1): Likewise.
24149         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
24150         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
24151         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
24152         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
24153         * value-prof.c: Likewise.
24154         * var-tracking.c (val_reset): Likewise.
24156 2017-04-03  Richard Biener  <rguenther@suse.de>
24158         PR tree-optimization/80275
24159         * fold-const.c (split_address_to_core_and_offset): Handle
24160         POINTER_PLUS_EXPR.
24162 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
24164         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
24165         descriptors is at least equal to that of functions.
24167 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
24169         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
24171 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
24173         PR target/80250
24174         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
24175         (mov<IMOD4:mode>): New expander.
24176         (*mov<IMOD4:mode>_internal): New insn and split pattern.
24178 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
24180         PR rtl-optimization/79405
24181         * fwprop.c (propagations_left): New variable.
24182         (forward_propagate_into): Decrement it.
24183         (fwprop_init): Initialize it.
24184         (fw_prop): If the variable has reached zero, stop propagating.
24185         (fwprop_addr): Ditto.
24187 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
24189         PR debug/79255
24190         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
24191         a FUNCTION_DECL, pass it as decl instead of origin to
24192         process_scope_var.
24194 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
24196         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
24197         string.
24199 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
24201         PR target/80107
24202         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
24203         TARGET_VSX_SMALL_INTEGER.
24205 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24207         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
24208         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
24210 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
24212         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
24213         extraction from odd-numbered MSA register.
24215 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
24217         PR middle-end/80173
24218         * expmed.c (store_bit_field_1): Don't attempt to create
24219         a word subreg out of hard registers wider than word if they
24220         have HARD_REGNO_NREGS of 1 for their mode.
24222         PR middle-end/80163
24223         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
24224         conversions to integer types wider than word and pointer.
24226         PR debug/80025
24227         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
24228         (rtx_equal_for_cselib_p): Pass 0 to it.
24229         * cselib.c (cselib_hasher::equal): Likewise.
24230         (rtx_equal_for_cselib_1): Add depth argument.  If depth
24231         is 128, don't look up VALUE locs and punt.  Increment
24232         depth in recursive calls when walking VALUE locs.
24234 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
24236         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
24237         (make_gcov_file_name): Use the canonical path name for generating
24238         the MD5 value.
24239         (read_line): Fix handling of files with ascii null bytes.
24241 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
24243         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
24244         to initialise a vector register instead
24245         of using a const_int.
24247 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
24249         PR translation/80189
24250         * gimplify.c (omp_default_clause): Use %qs instead of %s in
24251         diagnostic messages.
24253 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
24255         PR target/80246
24256         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
24257         (dfp_diex_<mode>): Update mode of operand 1.
24258         * doc/extend.texi (dxex, dxexq): Document change to return type.
24259         (diex, diexq): Document change to argument type.
24261 2017-03-30  Martin Jambor  <mjambor@suse.cz>
24263         PR ipa/77333
24264         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
24265         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
24266         it reflects the signature changes performed at the callee side.
24267         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
24268         to cgraph_build_function_type_skip_args.
24269         (build_function_decl_skip_args): Adjust call to the above function.
24271 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
24273         PR target/80206
24274         * config/i386/sse.md
24275         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
24276         register as dest whenever it is a MEM not rtx_equal_p to the
24277         corresponding dup operand, and when forcing into reg move the
24278         reg into the memory afterwards.
24279         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
24280         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
24281         for the force_reg mode.
24282         (avx512vl_vextractf128<mode>): Use register as dest either
24283         always when a MEM, or when it is a MEM not rtx_equal_p to the
24284         corresponding dup operand, or even not when it is a CONST_VECTOR
24285         depending on the mode and lo vs. hi.
24286         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
24287         parens.
24288         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
24289         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
24290         Likewise.  Require that operands[2] is even.
24291         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
24292         Remove extraneous parens.  Require that operands[2] is a multiple
24293         of 4.
24294         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
24295         operands[0] is a MEM if <mask_applied>, the predicates/constraints
24296         disallow memory then.
24298 2017-03-30  Richard Biener  <rguenther@suse.de>
24300         PR tree-optimization/77498
24301         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
24302         to non-constants over backedges.
24304 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
24306         PR rtl-optimization/80233
24307         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
24308         as last_combined_insn.  Do not test for BARRIER_P separately.
24310 2017-03-29  Andreas Schwab  <schwab@suse.de>
24312         PR ada/80146
24313         * calls.c (prepare_call_address): Convert funexp to Pmode before
24314         copying to temp reg.
24316 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24318         PR tree-optimization/80158
24319         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
24320         Handle possible future case of more than one alternate
24321         interpretation.
24322         (replace_rhs_if_not_dup): Likewise.
24323         (replace_one_candidate): Likewise.
24325 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
24327         PR rtl-optimization/80193
24328         * ira.c (ira): Do not check allocation for LRA.
24330 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
24332         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
24333         (nvptx_output_simt_exit): Declare.
24334         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
24335         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
24336         (init_softstack_frame): Move initialization of crtl->is_leaf to...
24337         (nvptx_declare_function_name): ...here.  Emit declaration of local
24338         memory space buffer for omp_simt_enter insn.
24339         (nvptx_output_unisimt_switch): New.
24340         (nvptx_output_softstack_switch): New.
24341         (nvptx_output_simt_enter): New.
24342         (nvptx_output_simt_exit): New.
24343         * config/nvptx/nvptx.h (struct machine_function): New fields
24344         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
24345         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
24346         (UNSPECV_SIMT_EXIT): Ditto.
24347         (omp_simt_enter_insn): New insn.
24348         (omp_simt_enter): New expansion.
24349         (omp_simt_exit): New insn.
24350         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
24352         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
24353         (expand_GOMP_SIMT_ENTER_ALLOC): New.
24354         (expand_GOMP_SIMT_EXIT): New.
24355         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
24356         (GOMP_SIMT_ENTER_ALLOC): Ditto.
24357         (GOMP_SIMT_EXIT): Ditto.
24358         * target-insns.def (omp_simt_enter): New insn.
24359         (omp_simt_exit): Ditto.
24360         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
24361         simt_dlist.
24362         (lower_rec_simd_input_clauses): Implement SIMT privatization.
24363         (lower_rec_input_clauses): Likewise.
24364         (lower_lastprivate_clauses): Handle SIMT privatization.
24366         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
24367         (ompdevlow_adjust_simt_enter): New.
24368         (find_simtpriv_var_op): New.
24369         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
24370         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
24372         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
24373         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
24374         (copy_decl_for_dup_finish): Ditto.
24376         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
24378 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
24380         PR target/53383
24381         * config/i386/i386.c (ix86_option_override_internal): Always
24382         allow -mpreferred-stack-boundary=3 for 64-bit targets.
24384 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
24386         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
24388 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
24390         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
24391         mark new edge's irreducible flag accordign to it.
24392         (vect_do_peeling): Check loop preheader edge's irreducible flag
24393         and pass it to function slpeel_add_loop_guard.
24395 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
24397         PR tree-optimization/80218
24398         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
24399         Update block frequencies and counts.
24401 2017-03-28  Richard Biener  <rguenther@suse.de>
24403         PR tree-optimization/78644
24404         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
24405         of a simplification result we may not use it at all.
24407 2017-03-28  Richard Biener  <rguenther@suse.de>
24409         PR ipa/80205
24410         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
24411         without arguments, generate default definition of a SSA name.
24413 2017-03-28  Richard Biener  <rguenther@suse.de>
24415         PR middle-end/80222
24416         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
24417         TYPE_REF_CAN_ALIAS_ALL references.
24418         * fold-const.c (fold_indirect_ref_1): Likewise.
24420 2017-03-28  Martin Liska  <mliska@suse.cz>
24422         PR ipa/80104
24423         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
24424         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
24426 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
24427             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
24429         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
24430         (EXTRA_SPECS): Define.
24431         (SUBTARGET_EXTRA_SPECS): Likewise.
24432         (SUBTARGET_CPP_SPEC): Likewise.
24433         * config/arc/elf.h (EXTRA_SPECS): Renamed to
24434         SUBTARGET_EXTRA_SPECS.
24435         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
24437 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
24439         * config/arc/simdext.md (vst64_insn): Update pattern.
24440         (vld32wh_insn): Likewise.
24441         (vld32wl_insn): Likewise.
24442         (vld64_insn): Likewise.
24443         (vld32_insn): Likewise.
24445 2017-03-28  Marek Polacek  <polacek@redhat.com>
24447         PR sanitizer/80067
24448         * fold-const.c (fold_comparison): Use protected_set_expr_location
24449         instead of SET_EXPR_LOCATION.
24451 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
24453         * tree.c (add_expr): Avoid name lookup warning.
24455 2017-03-27  Jeff Law  <law@redhat.com>
24457         PR tree-optimization/80216
24458         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
24459         function name.  Limit recursion depth.
24460         (record_temporary_equivalences): Corresponding changes.
24462 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
24464         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
24465         covered first.
24467 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
24469         PR target/80102
24470         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
24471         notes.
24472         * cfgcleanup.c (reg_note_cfa_p): New array.
24473         (insns_have_identical_cfa_notes): New function.
24474         (old_insns_match_p): Don't cross-jump in between /f
24475         and non-/f instructions.  If both i1 and i2 are frame related,
24476         verify all CFA notes, their order and content.
24478 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
24480         PR target/78543
24481         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
24482         HImode and SImode with zero extend to DImode to one insn.
24483         (bswap<mode>2_extenddi): Likewise.
24484         (bswapsi2_extenddi): Likewise.
24485         (bswaphi2_extendsi): Likewise.
24486         (bswaphi2): Combine bswap HImode and SImode into one insn.
24487         Separate memory insns from swapping register.
24488         (bswapsi2): Likewise.
24489         (bswap<mode>2): Likewise.
24490         (bswaphi2_internal): Delete, no longer used.
24491         (bswapsi2_internal): Likewise.
24492         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
24493         store, and gpr<-gpr swap insns.
24494         (bswap<mode>2_store): Likewise.
24495         (bswaphi2_reg): Register only splitter, combine with the splitter.
24496         (bswaphi2 splitter): Likewise.
24497         (bswapsi2_reg): Likewise.
24498         (bswapsi2 splitter): Likewise.
24499         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
24500         the insns into load, store, and register/register insns.
24501         (bswapdi2_ldbrx): Likewise.
24502         (bswapdi2_load): Likewise.
24503         (bswapdi2_store): Likewise.
24504         (bswapdi2_reg): Likewise.
24506 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
24508         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
24509         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
24511 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
24513         PR target/80103
24514         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
24515         add comments.
24516         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
24517         special handling for target option conflicts between dform
24518         options (-mpower9-dform, -mpower9-dform-vector,
24519         -mpower9-dform-scalar) and -mno-direct-move.
24521 2017-03-27  Richard Biener  <rguenther@suse.de>
24523         PR tree-optimization/80181
24524         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
24526 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
24528         * config/arc/predicates.md (move_double_src_operand): Replace the
24529         call to move_double_src_operand with a call to address_operand.
24531 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
24533         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
24534         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
24535         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
24537 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
24539         * config/arc/predicates.md (long_immediate_loadstore_operand):
24540         Consider scaled addresses cases.
24542 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
24544         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
24545         restored when in interrupt.
24546         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
24547         doesn't have delay slot.
24549 2017-03-27  Richard Biener  <rguenther@suse.de>
24551         PR ipa/79776
24552         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
24553         inlined thunk clones.
24555 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
24557         PR sanitizer/80168
24558         * asan.c (instrument_derefs): Copy over last operand from
24559         original COMPONENT_REF to the new COMPONENT_REF with
24560         DECL_BIT_FIELD_REPRESENTATIVE.
24561         * ubsan.c (instrument_object_size): Likewise.
24563 2017-03-27  Richard Biener  <rguenther@suse.de>
24565         PR tree-optimization/80170
24566         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
24567         sure DR/SCEV didnt fold in constants we do not see when looking
24568         at the reference base alignment.
24570 2017-03-27  Richard Biener  <rguenther@suse.de>
24572         PR middle-end/80171
24573         * gimple-fold.c (fold_ctor_reference): Properly guard against
24574         NULL return value from canonicalize_constructor_val.
24576 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
24578         PR target/80180
24579         * config/i386/i386.c (ix86_expand_builtin)
24580         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
24581         flags reg setting and flags reg using instructions.
24582         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
24583         clobbering instructions to zero extend op2.
24585 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
24587         * doc/install.texi (Configuration) <--with-aix-soname>:
24588         Update link to AIX ld.
24590 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
24592         PR rtl-optimization/80160
24593         PR rtl-optimization/80159
24594         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
24595         reg_alternate_class into account.
24597 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
24599         PR target/80148
24600         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
24601         to consider in curr_insn_transform.
24603 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
24605         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
24606         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
24607         and emit_mode_inner.
24609 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24611         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
24612         argument to the overloaded builtin variants.  Use the new flag to
24613         deprecate certain builtin variants.
24614         * config/s390/s390-builtin-types.def: Add new builtin types.
24615         * config/s390/s390-builtins.h: Support new flags field for
24616         overloaded builtins.
24617         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
24618         (s390_macro_to_expand): Enable vector float data type.
24619         (s390_cpu_cpp_builtins_internal): Indicate support of the new
24620         builtins by incrementing the __VEC__ version number.
24621         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
24622         vec_xst.
24623         (s390_resolve_overloaded_builtin): Emit error messages depending
24624         on the builtin flags.
24625         * config/s390/s390.c (s390_expand_builtin): Support additional
24626         flags argument.  Change error message to match the messages
24627         emitted in s390-c.c.
24628         * config/s390/s390.md: New UNSPEC_* constants.
24629         (op_type): Add new instruction types.
24630         * config/s390/vecintrin.h: Add new builtins and test data class
24631         constants.
24632         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
24633         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
24634         (VEC_INEXACT, VEC_NOINEXACT): New constants.
24635         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
24636         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
24637         ("vec_mergel<mode>"): V_HW -> VEC_HW.
24639         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
24640         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
24641         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
24642         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
24644         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
24645         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
24646         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
24647         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
24649         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
24650         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
24651         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
24652         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
24653         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
24654         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
24655         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
24657         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
24658         ("vec_scatter_element<V_HW_4:mode>_DI")
24659         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
24660         ("vec_fpint<mode>", "vflls")
24661         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
24662         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
24663         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
24664         ("*vec_cmphe<mode>_cc"): ... these.
24666         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
24667         mode constant instead of magic value.
24669 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24671         * config/s390/s390.c (s390_expand_vec_compare): Support other
24672         vector floating point modes than just V2DF.
24673         (s390_expand_vcond): Likewise.
24674         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
24675         (s390_cannot_change_mode_class): Prevent mode changes between TF
24676         and V1TF in vector registers.
24677         * config/s390/s390.md (DF, SF): New mode attributes.
24678         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
24679         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
24680         SFmode support for VRs.
24681         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
24682         vector fp modes.
24683         (VFT, VF_HW): New mode iterators.
24684         (vw, sdx): New mode attributes.
24685         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
24686         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
24687         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
24688         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
24689         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
24690         also the new vector floating point modes.  Renaming to ...
24692         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
24693         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
24694         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
24695         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
24696         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
24697         ("vec_unordered<mode>"): ... these.
24699         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
24700         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
24701         ("*vec_extendv2df"): New insn definitions.
24703 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24705         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
24706         ("mulditi3_2", "*muldi3_sign"): New patterns.
24707         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
24708         rename the pattern definition.
24710 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24712         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
24713         expander.
24714         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
24716 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24718         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
24719         instruction if possible.
24720         * config/s390/vector.md (vec_halfnumelts): New mode
24721         attribute.
24722         ("*vec_vllezlf<mode>"): New pattern.
24724 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24726         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
24727         ("popcountv4si2", "popcountv2di2"): Rename to ...
24728         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
24729         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
24730         condition.
24731         ("popcount<mode>2_vxe"): New pattern.
24733 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24735         * common/config/s390/s390-common.c (processor_flags_table): Add
24736         arch12.
24737         * config.gcc: Add arch12.
24738         * config/s390/driver-native.c (s390_host_detect_local_cpu):
24739         Default to arch12 for unknown CPU model numbers.
24740         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
24741         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
24742         PROCESSOR_max sanity check.
24743         * config/s390/s390-opts.h (enum processor_type): Add
24744         PROCESSOR_ARCH12.
24745         * config/s390/s390.c (processor_table): Add arch12.
24746         (s390_expand_builtin): Add check for B_VXE flag.
24747         (s390_issue_rate): Add PROCESSOR_ARCH12.
24748         (s390_get_sched_attrmask): Likewise.
24749         (s390_get_unit_mask): Likewise.
24750         (s390_sched_score): Enable z13 scheduling for arch12.
24751         (s390_sched_reorder): Likewise.
24752         (s390_sched_variable_issue): Likewise.
24753         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
24754         PF_VXE.
24755         (s390_tune_attr): Use z13 scheduling also for arch12.
24756         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
24757         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
24758         (TARGET_VXE_P): New macros.
24759         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
24760         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
24761         * config/s390/s390.opt: Add arch12 as processor_type.
24763 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24765         * config/s390/s390.md
24766         ("fixuns_truncdddi2", "fixuns_trunctddi2")
24767         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
24768         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
24770         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
24771         Rename expanders to ...
24773         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
24774         ("fixuns_truncdddi2_emu"): ... these.
24776         ("fixuns_trunc<mode>si2_emu"): New expander.
24778         ("*fixuns_truncdfdi2_z13"): Rename to ...
24779         ("*fixuns_truncdfdi2_vx"): ... this.
24781 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24783         * config/s390/2964.md: Remove the single element vector compare
24784         instructions which are no longer used.
24785         * config/s390/s390.c (s390_select_ccmode): Remove handling of
24786         vector CCmodes.
24787         (s390_canonicalize_comparison): Remove handling of DFmode
24788         compares.
24789         (s390_expand_vec_compare_scalar): Remove function.
24790         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
24791         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
24792         pattern.
24793         ("*cmp<mode>_ccs"): Add wfcdb instruction.
24795 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24797         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
24798         FP zero.
24799         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
24800         will anyway by matched by mov<mode>_64dfp.
24802 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24804         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
24805         vlef/vstef.  Add missing operand to vleif.
24807 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24809         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
24810         pair for all vector types with 64 bit elements.
24811         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
24812         * config/s390/vector.md (V_HW_64): ... here.
24813         (V_128_NOSINGLE): New mode iterator.
24814         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
24815         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
24816         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
24817         ("*vec_load_pairv2di"): Change to ...
24818         ("*vec_load_pair<mode>"): ... this one.
24820 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24822         * config/s390/constraints.md: Add comments.
24823         (jKK): Reject element sizes > 8 bytes.
24824         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
24825         s_operands.
24826         * config/s390/s390.md: Add the s_operand checks formerly in
24827         s390_split_ok_p to various splitters where they are still
24828         required.
24829         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
24830         for 128 bit vectors.  Plus two splitters.
24832 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24834         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
24835         the file.
24837 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24839         PR target/79893
24840         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
24841         error if the boundary argument is not constant.
24843 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
24845         PR rtl-optimization/80112
24846         * loop-doloop.c (doloop_condition_get): Don't check condition
24847         if cmp isn't SET with IF_THEN_ELSE src.
24849 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24851         PR tree-optimization/80158
24852         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
24853         replacing a candidate statement, also replace it for the
24854         candidate's alternate interpretation.
24855         (replace_rhs_if_not_dup): Likewise.
24856         (replace_one_candidate): Likewise.
24858 2017-03-24  Richard Biener  <rguenther@suse.de>
24860         PR tree-optimization/80167
24861         * graphite-isl-ast-to-gimple.c
24862         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
24863         properly.
24864         (translate_isl_ast_to_gimple::get_rename): Likewise.
24866 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
24868         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
24869         handling of certain combinations of target options, including the
24870         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
24871         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
24873 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24875         PR target/71436
24876         * config/arm/arm.md (*load_multiple): Add reload_completed to
24877         matching condition.
24879 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24880             Richard Biener  <rguenth@suse.de>
24882         PR tree-optimization/79908
24883         PR tree-optimization/80136
24884         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
24885         been cast away, gimplify_and_add suffices.
24887 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
24889         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
24891 2017-03-23  Richard Biener  <rguenther@suse.de>
24893         PR tree-optimization/80032
24894         * gimplify.c (gimple_push_cleanup): Forced unconditional
24895         cleanups still have to go to the conditional_cleanups
24896         sequence.
24898 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
24900         PR tree-optimization/80072
24901         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
24902         to unsigned int.
24903         (next_operand_entry_id): Change type to unsigned int.
24904         (sort_by_operand_rank): Make sure to return the right return value
24905         even if unsigned fields are bigger than INT_MAX.
24906         (struct oecount): Change cnt and id type to unsigned int.
24907         (oecount_hasher::equal): Formatting fix.
24908         (oecount_cmp): Make sure to return the right return value
24909         even if unsigned fields are bigger than INT_MAX.
24910         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
24912         PR c++/80129
24913         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
24914         TREE_READONLY on result if writing it more than once.
24916         PR sanitizer/80110
24917         * doc/invoke.texi (-fsanitize=thread): Document that with
24918         -fnon-call-exceptions atomics are not able to throw
24919         exceptions.
24921         PR sanitizer/80110
24922         * tsan.c: Include tree-eh.h.
24923         (instrument_builtin_call): Call maybe_clean_eh_stmt or
24924         maybe_clean_or_replace_eh_stmt where needed.
24925         (instrument_memory_accesses): Add cfg_changed argument.
24926         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
24927         if it returned true.
24928         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
24930         PR rtl-optimization/63191
24931         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
24932         wrapper function, moved the whole old content into ...
24933         (ix86_delegitimize_address_1): ... this.  New inline function.
24934         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
24935         true as last argument instead of ix86_delegitimize_address.
24937 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
24939         * config/aarch64/aarch64.c (generic_branch_cost): Copy
24940         cortexa57_branch_cost.
24942 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
24944         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
24946 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
24948         PR target/80123
24949         * doc/md.texi (Constraints): Document wA constraint.
24950         * config/rs6000/constraints.md (wA): New.
24951         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
24952         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
24953         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
24954         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
24956 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
24958         PR c++/80029
24959         * gimplify.c (is_oacc_declared): New function.
24960         (oacc_default_clause): Use it to set default flags for acc declared
24961         variables inside parallel regions.
24962         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
24963         declared variables.
24964         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
24965         declare attribute to any decl as necessary.
24967 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24969         PR target/80082
24970         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
24971         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
24972         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
24973         (arm_arch_lpae): This.
24974         * config/arm/arm.c (arm_arch7ve): Rename into ...
24975         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
24976         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
24977         arm_arch_lpae.
24979 2017-03-22  Martin Liska  <mliska@suse.cz>
24981         PR target/79906
24982         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
24983         error message instead of an ICE.
24985 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24987         * doc/extend.texi (6.11 Additional Floating Types): Revise.
24989 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
24991         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
24992         comments.
24993         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
24994         comments.
24996 2017-03-21  Martin Sebor  <msebor@redhat.com>
24998         * doc/extend.texi: Use "cannot" instead of "can't."
24999         * doc/hostconfig.texi: Same.
25000         * doc/install.texi: Same.
25001         * doc/invoke.texi: Same.
25002         * doc/loop.texi: Same.
25003         * doc/md.texi: Same.
25004         * doc/objc.texi: Same.
25005         * doc/rtl.texi: Same.
25006         * doc/tm.texi: Same.
25007         * doc/tm.texi.in: Same.
25008         * doc/trouble.texi: Same.
25010 2017-03-21  Alexandre Oliva <aoliva@redhat.com>
25012         PR debug/63238
25013         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
25014         (collect_checksum_attributes): Set it.
25015         (die_checksum_ordered): Use it.
25017 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25019         PR tree-optimization/79908
25020         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
25021         change: For a VA_ARG whose LHS has been cast away, use
25022         force_gimple_operand to construct the side effects.
25024 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
25026         PR translation/80001
25027         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
25028         more amenable to translation.
25029         (oacc_loop_auto_partitions): Likewise.
25031 2017-03-21  Marek Polacek  <polacek@redhat.com>
25032             Martin Sebor  <msebor@redhat.com>
25034         PR tree-optimization/80109
25035         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
25036         on INTEGRAL_TYPE_P.
25038 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
25039             Segher Boessenkool  <segher@kernel.crashing.org>
25041         PR target/80125
25042         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
25043         check reg_used_between_p between insn and one of succ or succ2
25044         depending on if succ is artificial insn not inserted into insn
25045         stream.
25047 2017-03-21  Martin Liska  <mliska@suse.cz>
25049         PR gcov-profile/80081
25050         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
25051         * doc/gcc.texi: Include gcov-dump stuff.
25052         * doc/gcov-dump.texi: New file.
25054 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
25056         PR rtl-optimization/79150
25057         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
25058         conditional jump, if the jump is the last insn of the loop.
25060 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25061             Richard Biener  <rguenth@suse.de>
25063         PR tree-optimization/79908
25064         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
25065         been cast away, use force_gimple_operand to construct the side
25066         effects.
25068 2017-03-21  Martin Liska  <mliska@suse.cz>
25070         PR libfortran/79956
25071         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
25072         to NULL.
25074 2017-03-21  Brad Spengler <spender@grsecurity.net>
25076         PR plugins/80094
25077         * plugin.c (htab_hash_plugin): New function.
25078         (add_new_plugin): Use it and adjust.
25079         (parse_plugin_arg_opt): Adjust.
25080         (init_one_plugin): Likewise.
25082 2017-03-21  Richard Biener  <rguenther@suse.de>
25084         PR tree-optimization/80032
25085         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
25086         if set force the cleanup to happen unconditionally.
25087         (gimplify_target_expr): Push inserted clobbers with force_uncond
25088         to avoid them being removed by control-dependent DCE.
25090 2017-03-21  Richard Biener  <rguenther@suse.de>
25092         PR tree-optimization/80122
25093         * tree-inline.c (copy_bb): Do not expans va-arg packs or
25094         va_arg_pack_len when the inlined call stmt requires pack
25095         expansion itself.
25096         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
25098 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
25100         PR sanitizer/78158
25101         * tsan.c (instrument_builtin_call): If the memory model argument
25102         is not a constant, assume it is valid.
25104         PR c/67338
25105         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
25106         avoid UB.
25108 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
25110         PR rtl-optimization/79910
25111         * combine.c (can_combine_p): Do not allow combining an I0 or I1
25112         if its dest is used by an insn before I2 (other than the combined
25113         insns themselves, which are properly handled already).
25115 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
25117         Revert:
25118         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
25120         * combine.c (record_used_regs): New static function.
25121         (try_combine): Handle situations where there is an additional
25122         instruction between I2 and I3 which needs to have a LOG_LINK
25123         updated.
25125         Revert:
25126         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
25128         * combine.c (try_combine): Delete redundant i1 test.  Call
25129         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
25131 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
25133         PR target/80083
25134         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
25135         alternatives 13/14.
25137 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25139         PR tree-optimization/80054
25140         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
25141         the optimization if a PHI or any of its arguments is not dominated
25142         by the candidate's basis.  Use gphi* rather than gimple* as
25143         appropriate.
25144         (replace_profitable_candidates): Clean up a gimple* variable that
25145         should be a gphi* variable.
25147 2017-03-20  Martin Sebor  <msebor@redhat.com>
25149         PR c++/52477
25150         * doc/extend.texi (attribute constructor): Document present limitation.
25152 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
25154         PR target/79963
25155         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
25156         __POWER9_VECTOR__ #ifdef control, change template definition to
25157         use Power9-specific built-in function.
25158         (vec_any_eq): Likewise.
25159         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
25160         to control outcomes from this test.
25161         (vector_ae_<mode>p): For VEC_F modes, likewise.
25163 2017-03-20  Ian Lance Taylor  <iant@google.com>
25165         * config/i386/i386.c (ix86_function_regparm): Save an extra
25166         register for -fsplit-stack with DECL_STATIC_CHAIN.
25168 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
25170         PR target/79912
25171         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
25172         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
25174 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
25176         * config/riscv/riscv.c (riscv_print_operand): Use "fence
25177         iorw,ow".
25178         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
25179         iorw,iorw".
25181 2017-03-20  Marek Polacek  <polacek@redhat.com>
25183         PR sanitizer/80063
25184         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
25186 2017-03-20  Richard Biener  <rguenther@suse.de>
25188         PR tree-optimization/80113
25189         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
25190         allocate extra SSA name for PHI def.
25191         (add_close_phis_to_outer_loops): Likewise.
25192         (add_close_phis_to_merge_points): Likewise.
25193         (copy_loop_close_phi_args): Likewise.
25194         (copy_cond_phi_nodes): Likewise.
25196 2017-03-20  Martin Liska  <mliska@suse.cz>
25198         PR middle-end/79753
25199         * tree-chkp.c (chkp_build_returned_bound): Do not build
25200         returned bounds for a LHS that's not a BOUNDED_P type.
25202 2017-03-20  Martin Liska  <mliska@suse.cz>
25204         PR target/79769
25205         PR target/79770
25206         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
25207         COMPLEX_CST and VECTOR_CST.
25209 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25211         PR target/78857
25212         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
25213         target operand.  A new splitter adds the clobber statement in case
25214         the target operand is dead anyway.
25216 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
25218         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
25219         to age-old versions of binutils and glibc.
25221 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
25223         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
25225 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
25227         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
25229 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
25231         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
25232         requirement for binutils 2.13.
25234 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
25236         * combine.c (try_combine): Delete redundant i1 test.  Call
25237         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
25239 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
25241         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
25242         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
25243         contents.
25244         <riscv64-*-elf>: Re-arrange section
25245         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
25246         <riscv32-*-linux>: Likewise.
25247         <riscv64-*-elf>: Likewise
25248         <riscv64-*-linux>: Likewise.
25250 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
25252         PR target/80052
25253         * aarch64.opt(verbose-cost-dump): Fix typo.
25255 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
25257         PR target/79951
25258         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
25259         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
25261 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
25263         * reload.c (find_reloads): When reloading a nonoffsettable address,
25264         use RELOAD_OTHER for it and its address reloads.
25266         PR rtl-optimization/79910
25267         * combine.c (record_used_regs): New static function.
25268         (try_combine): Handle situations where there is an additional
25269         instruction between I2 and I3 which needs to have a LOG_LINK
25270         updated.
25272 2017-03-17  Jeff Law  <law@redhat.com>
25274         PR tree-optimization/71437
25275         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
25276         conditional in the hash table first.
25277         (vrp_dom_walker::before_dom_children): Extract condition from
25278         ASSERT_EXPR.  Record condition, its inverion and any implied
25279         conditions as well.
25281 2017-03-17  Marek Polacek  <polacek@redhat.com>
25282             Markus Trippelsdorf  <markus@trippelsdorf.de>
25284         PR tree-optimization/80079
25285         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
25286         m_stores_head.
25288 2017-03-17  Richard Biener  <rguenther@suse.de>
25290         PR middle-end/80075
25291         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
25292         Properly verify the LHS before the RHS possibly claims to be
25293         handled.
25294         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
25295         do not throw.
25297 2017-03-17  Martin Jambor  <mjambor@suse.cz>
25299         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
25300         (List of -O2 options): Likewise.
25301         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
25302         (-fipa-vrp) New.
25304 2017-03-17  Tom de Vries  <tom@codesourcery.com>
25306         * gcov-dump.c (print_usage): Print bug_report_url.
25308 2017-03-17  Richard Biener  <rguenther@suse.de>
25310         PR middle-end/80050
25311         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
25312         (parser::peek): Likewise.
25314 2017-03-17  Richard Biener  <rguenther@suse.de>
25316         PR tree-optimization/80048
25317         * sese.c (free_sese_info): Properly release rename_map and
25318         copied_bb_map elements.
25320 2017-03-16  Alexandre Oliva <aoliva@redhat.com>
25322         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
25323         Add linked-list forward and backlinks.  Insert on
25324         construction, remove on destruction.
25325         (class pass_store_merging): Add m_stores_head field.
25326         (pass_store_merging::terminate_and_process_all_chains):
25327         Iterate over m_stores_head list.
25328         (pass_store_merging::terminate_all_aliasing_chains):
25329         Likewise.
25330         (pass_store_merging::execute): Check for debug stmts first.
25331         Push new chains onto the m_stores_head stack.
25333 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
25335         PR target/71294
25336         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
25337         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
25338         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
25340 2017-03-16  Jeff Law  <law@redhat.com>
25342         PR tree-optimization/71437
25343         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
25344         member function.  Implementation moved into after_dom_children
25345         member function and into the threader's thread_outgoing_edges
25346         function.
25347         (dom_opt_dom_walker::after_dom_children): Simplify by moving
25348         some code into new thread_outgoing_edges.
25349         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
25350         definition.  Simplify marker handling (do it here).   Assume we always
25351         have the available expression and the const/copies tables.
25352         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
25353         and tree-vrp.c
25354         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
25355         * tree-vrp.c (equiv_stack): No longer file scoped.
25356         (vrp_dom_walker): New class.
25357         (vrp_dom_walker::before_dom_children): New member function.
25358         (vrp_dom_walker::after_dom_children): Likewise.
25359         (identify_jump_threads):  Setup domwalker.  Use it rather than
25360         walking edges in a random order by hand.  Simplify setup/finalization.
25361         (finalize_jump_threads): Remove.
25362         (vrp_finalize): Do not call identify_jump_threads here.
25363         (execute_vrp): Do it here instead and call thread_through_all_blocks
25364         here too.
25366         PR tree-optimization/71437
25367         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
25368         callers changed.
25369         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
25370         callers changed.
25371         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
25372         (dom_opt_dom_walker::thread_across_edge): Remove
25373         handle_dominating_asserts argument.  All callers changed.
25374         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
25375         changes.  Remove calls to lhs_of_dominating_assert.  Other
25376         uses of handle_dominating_asserts turn into unconditional code
25377         (simplify_control_stmt_condition_1): Likewise.
25378         (simplify_control_stmt_condition): Likewise.
25379         (thread_through_normal_block, thread_across_edge): Likewise.
25380         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
25381         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
25382         object if it is not an SSA_NAME.
25383         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
25384         before calling into the VRP specific simplifiers.
25385         (identify_jump_threads): Remove handle_dominating_asserts
25386         argument.
25388 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
25390         PR fortran/79886
25391         * tree-diagnostic.c (default_tree_printer): No longer static.
25392         * tree-diagnostic.h (default_tree_printer): New prototype.
25394 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
25396         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
25397         Change ins into fmov.
25399 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25401         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
25402         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
25403         Use h_con constraint for operand 1.
25404         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
25405         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
25407 2017-03-15  Jeff Law  <law@redhat.com>
25409         PR tree-optimization/71437
25410         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
25411         (record_temporary_equivalences): Use it.
25413         PR tree-optimization/71437
25414         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
25415         tree-ssa-scopedtables.
25416         (lookup_avail_expr, build_and_record_new_cond): Likewise.
25417         (record_conditions, record_cond, vuse_eq): Likewise.
25418         (record_edge_info): Adjust to API tweak of record_conditions.
25419         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
25420         (record_temporary_equivalences, optimize_stmt): Likewise.
25421         (eliminate_redundant_computations): Likewise.
25422         (record_equivalences_from_stmt): Likewise.
25423         * tree-ssa-scopedtables.c: Include options.h and params.h.
25424         (vuse_eq): New function, moved from tree-ssa-dom.c
25425         (build_and_record_new_cond): Likewise.
25426         (record_conditions): Likewise.  Accept vector of conditions rather
25427         than edge_equivalence structure for first argument.
25428         for the first argument.
25429         (avail_exprs_stack::lookup_avail_expr): New member function, moved
25430         from tree-ssa-dom.c.
25431         (avail_exprs_stack::record_cond): Likewise.
25432         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
25433         from tree-ssa-dom.c.
25434         (avail_exprs_stack): Add new member functions lookup_avail_expr
25435         and record_cond.
25436         (record_conditions): Declare.
25438 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
25440         PR target/80017
25441         * lra-constraints.c (process_alt_operands): Increase reject for
25442         reloading an input/output operand.
25444 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
25446         PR target/79038
25447         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
25448         insns to convert from signed/unsigned char/short to IEEE 128-bit
25449         floating point.
25450         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
25452 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
25454         PR target/80019
25455         * config/i386/i386.c (ix86_vector_duplicate_value): Create
25456         subreg of inner mode for values already in registers.
25458 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
25460         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
25461         iteration reg is used after the loop.
25463 2017-03-14  Martin Sebor  <msebor@redhat.com>
25465         PR tree-optimization/79800
25466         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
25467         precision in negative-positive range.
25468         (format_floating): Call non-const overload with adjusted precision.
25470 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
25472         PR target/79947
25473         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
25474         -mpowerpc-gfxopt.
25476 2017-03-14  Martin Sebor  <msebor@redhat.com>
25478         PR middle-end/80020
25479         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
25480         * builtins.def (aligned_alloc): Use it.
25482         PR c/79936
25483         * Makefile.in (GTFILES): Add calls.c.
25484         * calls.c: Include "gt-calls.h".
25486 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
25488         PR rtl-optimization/79728
25489         * regs.h (struct target_regs): New field
25490         x_contains_allocatable_regs_of_mode.
25491         (contains_allocatable_regs_of_mode): New macro.
25492         * reginfo.c (init_reg_sets_1): Initialize it, and change
25493         contains_reg_of_mode so it includes global regs as well.
25494         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
25495         rather than contains_regs_of_mode.
25497 2017-03-14  Martin Liska  <mliska@suse.cz>
25499         * doc/invoke.texi: Document options that can't be combined with
25500         -fcheck-pointer-bounds.
25502 2017-03-14  Martin Liska  <mliska@suse.cz>
25504         PR middle-end/79831
25505         * doc/invoke.texi (-Wchkp): Document the option.
25507 2017-03-14  Martin Liska  <mliska@suse.cz>
25509         * Makefile.in: Install gcov-dump.
25511 2017-03-14  Martin Liska  <mliska@suse.cz>
25513         * multiple_target.c (expand_target_clones): Bail out for
25514         an invalid attribute.
25516 2017-03-14  Richard Biener  <rguenther@suse.de>
25518         * alias.c (struct alias_set_entry): Pack properly.
25519         * cfgloop.h (struct loop): Likewise.
25520         * cse.c (struct set): Likewise.
25521         * ipa-utils.c (struct searchc_env): Likewise.
25522         * loop-invariant.c (struct invariant): Likewise.
25523         * lra-remat.c (struct cand): Likewise.
25524         * recog.c (struct change_t): Likewise.
25525         * rtl.h (struct address_info): Likewise.
25526         * symbol-summary.h (function_summary): Likewise.
25527         * tree-loop-distribution.c (struct partition): Likewise.
25528         * tree-object-size.c (struct object_size_info): Likewise.
25529         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
25530         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
25531         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
25532         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
25533         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
25534         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
25535         (struct _stmt_vec_info): Likewise.
25537 2017-03-14  Martin Liska  <mliska@suse.cz>
25539         PR target/79892
25540         * multiple_target.c (create_dispatcher_calls): Check that
25541         a target can create a function dispatcher.
25543 2017-03-14  Martin Liska  <mliska@suse.cz>
25545         PR lto/66295
25546         * multiple_target.c (expand_target_clones): Drop local.local
25547         flag for default implementation.
25549 2017-03-14  Richard Biener  <rguenther@suse.de>
25551         PR tree-optimization/80030
25552         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
25554 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
25556         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
25557         gcc_fallthrough() instead of __attribute__((fallthrough));
25559 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
25561         * doc/gcc.texi: Remove "up" link to (DIR).
25562         * doc/gccint.texi: Ditto.
25564 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
25566         * doc/install.texi (Specific) <avr>: Remove reference to
25567         binutils 2.13.
25569 2017-03-13  Jeff Law  <law@redhat.com>
25571         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
25572         attribute rather than comments.
25574         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
25575         match_scratch operand is highest.
25577 2017-03-13  Martin Liska  <mliska@suse.cz>
25579         PR middle-end/78339
25580         * ipa-pure-const.c (warn_function_noreturn): If the declarations
25581         is a CHKP clone, use original declaration.
25583 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
25585         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
25586         (arc_conditional_register_usage): Use a different allocation order
25587         when optimizing for size.
25588         * common/config/arc/arc-common.c (arc_option_optimization_table):
25589         Section anchors default on when optimizing for size.
25591 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
25593         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
25595 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
25597         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
25598         * config/arc/arc.md (cpu_facility): Add cd variant.
25599         (*movqi_insn): Add code density variant.
25600         (*movhi_insn): Likewise.
25601         (*movqi_insn): Likewise.
25602         (*addsi3_mixed): Likewise.
25603         (subsi3_insn): Likewise.
25605 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
25607         * config/arc/arc.md (movsi_cond_exec): Update constraint.
25609 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
25611         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
25612         expressions with MINUS and UNARY ops.
25614 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25616         PR target/79911
25617         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
25618         Rename to...
25619         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
25620         between vec_select and vector argument.
25621         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
25622         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
25623         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
25624         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
25625         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
25626         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
25628 2017-03-13  Richard Biener  <rguenther@suse.de>
25630         PR other/79991
25631         * params.def (vect-max-peeling-for-alignment): Fix typo.
25633 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
25635         * doc/install.texi (Specific) <mips-*-*>: Remove description of
25636         issue that only occurred with binutils below 2.18.
25638 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
25640         * doc/install.texi (Specific) <cris-axis-elf>: No longer
25641         refer to binutils 2.11/2.12 minimum.
25643 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
25645         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
25646         ftp.kernel.org and simplify binutils requirement.
25648 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
25650         * doc/invoke.texi (Warning Options): Fix spelling of link-time
25651         optimization.
25652         (Optimize Options): Ditto.  Also remove redundancy.
25654 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
25656         PR translation/79848
25657         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
25658         "%qs".
25659         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
25660         to G_ to avoid double translation.
25662 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
25664         PR translation/79923
25665         * auto-profile.c (get_combined_location): Convert leading
25666         character of diagnostics to lower case and remove trailing period.
25667         (read_profile): Likewise for various diagnostics.
25668         * config/arm/arm.c (arm_option_override): Remove trailing period
25669         from various diagnostics.
25670         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
25671         (msp430_expand_delay_cycles): Likewise.
25673 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
25675         PR target/79925
25676         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
25677         full command-line argument, rather than just "str".
25678         (aarch64_validate_march): Likewise.
25679         (aarch64_validate_mtune): Likewise.
25681 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
25683         PR rtl-optimization/78911
25684         * lra-assigns.c (must_not_spill_p): New function.
25685         (spill_for): Use it.
25687 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
25689         PR tree-optimization/79981
25690         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
25691         ATOMIC_COMPARE_EXCHANGE ifn result.
25692         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
25693         IFN_ATOMIC_COMPARE_EXCHANGE.
25695 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
25697         PR driver/79875
25698         * opts.c (parse_sanitizer_options): Add missing question mark to
25699         "did you mean" message.
25701 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25703         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
25704         built-in.
25705         (VMULEUH_UNS): Likewise.
25706         (VMULOUB_UNS): Likewise.
25707         (VMULOUH_UNS): Likewise.
25708         * config/rs6000/rs6000.c (builtin_function_type): Remove
25709         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
25711 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
25713         PR bootstrap/79952
25714         * read-rtl-function.c (function_reader::read_rtx_operand): Update
25715         x with result of extra_parsing_for_operand_code_0.
25716         (function_reader::extra_parsing_for_operand_code_0): Convert
25717         return type from void to rtx, returning x.  When reading
25718         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
25719         larger size containing struct block_symbol.
25721 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
25723         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
25724         -mfloat128-hardware without -m64.
25726 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
25728         PR target/79941
25729         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
25730         entries to the case statement that marks unsigned arguments to
25731         overloaded functions.
25733 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
25735         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
25736         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
25738 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
25740         PR target/79907
25741         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
25742         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
25744 2017-03-10  Martin Liska  <mliska@suse.cz>
25746         PR target/65705
25747         PR target/69804
25748         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
25749         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
25750         FIELD != NULL.
25752 2017-03-10  Olivier Hainque  <hainque@adacore.com>
25754         * tree-switch-conversion (array_value_type): Start by resetting
25755         candidate type to it's main variant.
25757 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
25759         PR rtl-optimization/79909
25760         * combine.c (try_combine): Use simplify_replace_rtx on individual
25761         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
25762         of the whole CALL_INSN_FUNCTION_USAGE.
25764         PR tree-optimization/79972
25765         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
25766         get_range_info on SSA_NAMEs.  Formatting fixes.
25768 2017-03-10  Richard Biener  <rguenther@suse.de>
25769             Jakub Jelinek  <jakub@redhat.com>
25771         PR tree-optimization/77975
25772         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
25773         edge to be constant.
25774         (get_val_for): For constant x return it.  Formatting fix.
25775         (loop_niter_by_eval): Avoid pointless looping if the next iteration
25776         would use the same bases as the current one.
25778 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25780         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
25781         instead of vec_select for V1TImode.
25782         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
25783         longer needed.
25784         (VSX_LE_128): Add V1TI to this mode iterator.
25785         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
25786         (*vsx_le_perm_store_<mode>): Likewise.
25787         (pre-reload splitter for VSX stores): Likewise.
25788         (post-reload splitter for VSX stores): Likewise.
25789         (*vsx_xxpermdi2_le_<mode>): Likewise.
25790         (*vsx_lxvd2x2_le_<mode>): Likewise.
25791         (*vsx_stxvd2x2_le_<mode>): Likewise.
25793 2017-03-09  Michael Eager  <eager@eagercon.com>
25795         Correct failures with --enable-checking=yes,rtl.
25797         * config/microblaze/microblaze.c (microblaze_expand_shift):
25798         Replace GET_CODE test with CONST_INT_P and INTVAL test with
25799         test for const0_rtx.
25800         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
25801         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
25803 2017-03-09  Richard Biener  <rguenther@suse.de>
25805         PR tree-optimization/79977
25806         * graphite-scop-detection.c (scop_detection::merge_sese):
25807         Handle the case of extra exits to blocks dominating the entry.
25809 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
25811         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
25812         Document rdynamic.
25814 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
25816         PR rtl-optimization/79949
25817         * lra-constraints.c (process_alt_operands): Check memory when
25818         trying to predict a cycle.  Print about the overall increase.
25820 2017-03-09  Richard Biener  <rguenther@suse.de>
25822         PR middle-end/79971
25823         * gimple-expr.c (useless_type_conversion_p): Preserve
25824         TYPE_SATURATING for fixed-point types.
25826 2017-03-09  Richard Biener  <rguenther@suse.de>
25828         PR ipa/79970
25829         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
25830         alignment of BLKmode params.
25832 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25834         PR target/79913
25835         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
25836         (VALL_NO_V2Q): Likewise.
25837         (VDQF_DF): Delete.
25838         * config/aarch64/aarch64-simd.md
25839         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
25840         iterator.
25841         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
25842         VALL_NO_V2Q mode iterator.
25843         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
25845 2017-03-09  Martin Liska  <mliska@suse.cz>
25847         PR tree-optimization/79631
25848         * tree-chkp-opt.c (chkp_is_constant_addr): Call
25849         tree_int_cst_sign_bit just for INTEGER constants.
25851 2017-03-09  Martin Liska  <mliska@suse.cz>
25853         PR target/65705
25854         PR target/69804
25855         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
25856         sanitizers.
25858 2017-03-09  Marek Polacek  <polacek@redhat.com>
25860         PR c++/79672
25861         * tree.c (inchash::add_expr): Handle TREE_VEC.
25863 2017-03-09  Martin Liska  <mliska@suse.cz>
25865         PR ipa/79764
25866         (chkp_narrow_size_and_offset): New function.
25867         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
25868         (void chkp_parse_bit_field_ref): New function.
25869         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
25870         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
25872 2017-03-09  Martin Liska  <mliska@suse.cz>
25874         PR ipa/79761
25875         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
25876         (chkp_find_bounds_1): Remove gcc_unreachable.
25878 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
25880         PR sanitizer/79944
25881         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
25882         BUILT_IN_SYNC*, determine the access type from the size suffix and
25883         always build a MEM_REF with that type.  Handle forgotten
25884         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
25886         PR target/79932
25887         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
25888         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
25889         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
25890         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
25891         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
25892         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
25893         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
25894         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
25895         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
25896         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
25897         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
25898         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
25899         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
25900         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
25901         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
25902         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
25903         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
25904         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
25905         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
25906         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
25907         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
25908         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
25909         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
25910         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
25911         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
25912         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
25913         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
25914         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
25915         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
25916         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
25917         definitions outside of __OPTIMIZE__ guarded section.
25919         PR target/79932
25920         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
25921         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
25922         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
25923         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
25924         guarded section.
25926 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25928         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
25929         ("vfenez<mode>"): Add missing constraints.
25931 2017-03-08  Martin Sebor  <msebor@redhat.com>
25933         PR target/79928
25934         * config/nds32/nds32.c (nds32_option_override):
25935         Fix misspelled diagnostic.
25937 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
25939         PR c/79940
25940         * gimplify.c (gimplify_omp_for): Replace index var in outer
25941         taskloop statement with an artificial variable and add
25942         OMP_CLAUSE_PRIVATE clause for it.
25944 2017-03-08  Richard Biener  <rguenther@suse.de>
25946         PR tree-optimization/79955
25947         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
25948         for accesses that are completely outside of the variable.
25950 2017-03-08  Andrew Haley  <aph@redhat.com>
25952         PR tree-optimization/79943
25953         * tree-ssa-loop-split.c (compute_new_first_bound): When
25954         calculating the new upper bound, (END-BEG) should be added, not
25955         subtracted.
25957 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
25959         * config/avr/avr.md (setmemhi): Make sure match_dup
25960         operand number comes before match_scratch.
25962 2017-03-08  Richard Biener  <rguenther@suse.de>
25964         PR tree-optimization/79920
25965         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
25966         with ncopies == 1 to ...
25967         (vect_transform_slp_perm_load): ... here.  Properly compute
25968         all element loads by iterating VF times over the group.  Do
25969         not handle ncopies (computed in a broken way) in
25970         vect_create_mask_and_perm.
25972 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
25974         PR sanitizer/79904
25975         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
25976         is a uniform vector, use uniform_vector_p return value instead of
25977         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
25979 2017-03-07  Marek Polacek  <polacek@redhat.com>
25981         PR middle-end/79809
25982         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
25983         (alloca_call_type): Likewise.
25985 2017-03-07  Martin Liska  <mliska@suse.cz>
25987         * gcov.c (process_args): Put comment to correct location.
25989 2017-03-07  Martin Liska  <mliska@suse.cz>
25991         PR middle-end/68270
25992         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
25993         Use array_at_struct_end_p instead of DECL_CHAIN (field).
25994         (chkp_narrow_bounds_for_field): Likewise.
25995         (chkp_parse_array_and_component_ref): Pass one more argument to
25996         call.
25998 2017-03-07  Richard Biener  <rguenther@suse.de>
26000         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
26001         preheaders.
26003 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
26005         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
26006         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
26008 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26010         PR c/79855
26011         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
26012         to end of description.
26013         (PARAM_MAX_STORES_TO_MERGE): Likewise.
26015 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
26017         PR rtl-optimization/79901
26018         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
26019         ...
26020         (*avx512f_<code><mode>3<mask_name>): ... this.
26021         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
26022         iterator instead of VI8_AVX2_AVX512BW.
26024         PR rtl-optimization/79901
26025         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
26026         min/max expander, expand it using expand_vec_cond_expr.
26028         PR sanitizer/79897
26029         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
26030         temporary.
26032 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
26034         PR c++/79821
26035         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
26036         to void * for PCH reasons.
26037         * dwarf2out.c (output_loc_operands, output_die): Cast
26038         v.val_vec.array to unsigned char *.
26040 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
26042         PR target/77850
26043         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
26044         vector types.
26046 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
26048         PR rtl-optimization/79571
26049         * lra-constraints.c (process_alt_operands): Calculate static
26050         reject and subtract it from overall when only addresses will be
26051         reloaded.
26053 2017-03-06  Julia Koval  <julia.koval@intel.com>
26055         PR target/79793
26056         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
26057         incoming stack boundary to 128 for 64-bit targets.
26059 2017-03-06  Richard Biener  <rguenther@suse.de>
26061         PR tree-optimization/79894
26062         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
26063         to NULL after folding it.
26065 2017-03-06  Richard Biener  <rguenther@suse.de>
26067         PR tree-optimization/79824
26068         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
26069         check disabling peeling for gaps.
26071 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
26073         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
26074         attributes): Document gettimeofday.
26076 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
26078         * config/s390/s390.c (s390_option_override_internal): Set
26079         PARAM_MIN_VECT_LOOP_BOUND
26081 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
26083         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
26084         * config/s390/s390.md: Likewise.
26086 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
26088         PR target/79812
26089         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
26090         (<avx2_avx512>_perm<mode>): Rename to ...
26091         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
26092         of VI8F_256_512.
26093         (<avx512>_perm<mode>_mask): Rename to ...
26094         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
26095         of VI8F_256_512.
26096         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
26097         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
26098         instead of VI8F_256_512.
26099         (avx512f_perm<mode>): New define_expand.
26100         (avx512f_perm<mode>_mask): Likewise.
26101         (avx512f_perm<mode>_1<mask_name>): New define_insn.
26102         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
26104 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
26106         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
26107         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
26108         if_then_else.
26109         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
26111 2017-03-06  Martin Liska  <mliska@suse.cz>
26113         PR sanitize/79783
26114         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
26115         when having a SSA NAME w/o VAR_DECL assigned to it.
26117 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
26119         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
26120         msa_dpsub_<su>_d): Fix MODE for vec_select.
26122 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
26124         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
26125         argument.
26126         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
26128 2017-03-06  Richard Biener  <rguenther@suse.de>
26130         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
26131         * plugin.c (register_plugin_info): Likewise.
26132         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
26134 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
26136         * config/i386/sse.md (sse_storehps, sse_storelps,
26137         avx_<castmode><avxsizesuffix>_<castmode>,
26138         avx512f_<castmode><avxsizesuffix>_<castmode>,
26139         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
26140         in condition that at least one operand is not a MEM.
26142 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
26144         PR middle-end/79805
26145         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
26146         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
26147         ECF_NOTHROW.
26148         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
26149         gimple_call_nothrow_p flag based on whether original builtin can throw.
26150         If it can, emit following stmts on the fallthrough edge.
26151         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
26152         don't create new bb if inserting just debug stmts on the edge, try to
26153         insert them on the fallthru bb or just reset debug stmts.
26155 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
26157         PR target/43763
26158         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
26159         restore recog_data (including the operand rtxes inside it) around
26160         the call to get_insn_template.
26162 2017-03-03  Martin Sebor  <msebor@redhat.com>
26164         PR tree-optimization/79699
26165         * context.c (context::~context): Free MPFR caches to avoid
26166         a memory leak on program exit.
26168 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26170         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
26171         Use wide_int::ulow () instead of .elt (0).
26173 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
26175         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
26176         (*pushxf): Limit oF constraint to 32bit targets and add oC
26177         constraint for 64bit targets.
26178         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
26179         (*pushdf): Change rmF constraint to rmC.
26181 2017-03-03  Martin Liska  <mliska@suse.cz>
26183         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
26184         Remove unused variable.
26186 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
26188         PR target/79807
26189         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
26190         is a memory operand, increase num_memory.
26191         (ix86_expand_args_builtin): Likewise.
26193 2017-03-03  Jan Hubicka  <jh@suse.cz>
26195         PR lto/79760
26196         * ipa-devirt.c (maybe_record_node): Properly handle
26197         __cxa_pure_virtual visibility.
26199 2017-03-03  Martin Liska  <mliska@suse.cz>
26201         PR tree-optimization/79803
26202         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
26203         assert.
26204         (pass_loop_prefetch::execute): Disabled optimization if an
26205         assumption about L1 cache size is not met.
26207 2017-03-03  Martin Liska  <mliska@suse.cz>
26209         PR rtl-optimization/79574
26210         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
26211         (hash_scan_set): Likewise.
26212         (dump_hash_table): Likewise.
26213         (hoist_code): Likewise.
26215 2017-03-03  Richard Biener  <rguenther@suse.de>
26217         * fixed-value.c (fixed_from_string): Restore use of elt (1)
26218         in place of uhigh ().
26219         (fixed_convert_from_real): Likewise.
26221 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
26223         PR target/79514
26224         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
26226 2017-03-03  Richard Biener  <rguenther@suse.de>
26228         PR middle-end/79818
26229         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
26230         TYPE_OVERFLOW_UNDEFINED check.
26232 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26234         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
26235         numbers.
26236         (vector_ae_<mode>_p): Likewise.
26237         (vector_nez_<mode>_p): Likewise.
26238         (vector_ne_v2di_p): Likewise.
26239         (vector_ae_v2di_p): Likewise.
26240         (vector_ne_<mode>_p): Likewise.
26241         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
26242         numbers.
26243         (vsx_tsqrt<mode>2_fe): Likewise.
26245 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
26247         PR target/79514
26248         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
26250 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
26252         PR rtl-optimization/79780
26253         * cprop.c (one_cprop_pass): When second and further conditional trap
26254         in a single basic block is turned into an unconditional trap, turn it
26255         into a deleted note to avoid RTL verification failures.
26257 2017-03-02  Richard Biener  <rguenther@suse.de>
26259         * fold-const.c (const_binop): Use ulow () instead of elt (0).
26261 2017-03-02  Richard Biener  <rguenther@suse.de>
26263         PR tree-optimization/79345
26264         PR c++/42000
26265         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
26266         param and abort the walk, returning -1 if it is hit.
26267         (walk_aliased_vdefs): Take a limit param and pass it on.
26268         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
26269         defaulting to 0 and return a signed int.
26270         * tree-ssa-uninit.c (struct check_defs_data): New struct.
26271         (check_defs): New helper.
26272         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
26273         about uninitialized memory.
26274         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
26275         bogus uninitialized warning.
26276         (fixed_convert_from_real): Likewise.
26278 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
26280         PR tree-optimization/66768
26281         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
26282         iv_use if base object can't be determined.
26284 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
26286         PR tree-optimization/79345
26287         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
26288         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
26289         (get_pattern_stats): Initialize it.
26290         * genemit.c (gen_expand): Verify match_scratch numbers come after
26291         match_operand/match_dup numbers.
26292         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
26293         match_scratch numbers.
26294         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
26295         Likewise.
26296         * config/s390/s390.md (trunctdsd2): Likewise.
26298 2017-03-02  Richard Biener  <rguenther@suse.de>
26300         * wide-int.h (wide_int_storage::operator=): Implement in terms
26301         of wi::copy.
26303 2017-03-02  Richard Biener  <rguenther@suse.de>
26305         PR tree-optimization/79777
26306         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
26307         the to insert expression to sth existing.
26309 2017-03-01  Martin Sebor  <msebor@redhat.com>
26311         PR middle-end/79692
26312         * gimple-ssa-sprintf.c
26313         (directive::known_width_and_precision): New function.
26314         (format_integer): Use it.
26315         (get_mpfr_format_length): Consider the full range of precision
26316         when computing %g output with the # flag.  Set the likely byte
26317         count to 3 rather than 1 when precision is indeterminate.
26318         (format_floating): Correct the lower bound of precision.
26320 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26322         * doc/invoke.texi: Document default code model for 64-bit Linux.
26324 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
26326         PR target/79752
26327         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
26328         udiv rather than div since input pattern is unsigned.
26330 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
26332         * config/i386/i386.c (print_reg): Warn for values of
26333         unsupported size in integer register.
26335 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
26337         PR target/79439
26338         * config/rs6000/predicates.md (current_file_function_operand): Do
26339         not allow self calls to be local if the function is replaceable.
26341 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
26343         PR target/79395
26344         * config/rs6000/altivec.h (vec_ctz and others): Change the
26345         preprocessor macro that controls conditional compilation from
26346         _ARCH_PWR9 to __POWER9_VECTOR__.
26347         (vec_all_ne): Change parameterization of __altivec_scalar_pred
26348         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
26349         control (instead of _ARCH_PWR9 control) so that template
26350         definition uses power9-specific function.
26351         (vec_any_eq): Likewise.
26352         (vec_all_ne): Change macro definition to use a power9-specific
26353         expansion under #ifdef __POWER9_VECTOR__ control (instead of
26354         _ARCH_PWR9 control).
26355         (vec_any_eq) Likewise.
26356         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
26357         expansion for CMPNEF to remove support for xvcmpnesp instruction.
26358         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
26359         support for xvcmpnedp instruction.
26360         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
26361         macro expansion so that Power9 implementation of vec_all_ne does
26362         not use the AltiVec predicate framework.
26363         (VCMPNEH_P): Likewise.
26364         (VCMPNEW_P): Likewise.
26365         (VCMPNED_P): Likewise.
26366         (VCMPNEFP_P): Likewise.
26367         (VCMPNEDP_P): Likewise.
26368         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
26369         implementation of vec_any_eq to not use AltiVec predicate
26370         framework.
26371         (VCMPAEH_P): Likewise.
26372         (VCMPAEW_P): Likewise.
26373         (VCMPAED_P): Likewise.
26374         (VCMPAEFP_P): Likewise.
26375         (VCMPAEDP_P): Likewise.
26376         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
26377         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
26378         not use the AltiVec predicate framework.
26379         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
26380         of vec_any_eq to not use AltiVec predicate framework.
26381         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
26382         support for predefined __POWER9_VECTOR__ macro to indicate that
26383         Power9 instruction selection is enabled.
26384         (altivec_overloaded_builtins): Remove extraneous
26385         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
26386         function argument types RS6000_BTI_bool_V16QI and
26387         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
26388         entry for overloaded function argument types RS6000_BTI_bool_V4SI
26389         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
26390         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
26391         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
26392         Power9 for implementations of vec_cmpne.  Change the signature for
26393         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
26394         (representing vec_all_ne) to remove the previously described first
26395         argument of type RS6000_BTI_INTSI, as this was an artifact of
26396         reliance on the AltiVec predicate framework, which is no longer
26397         used in the implementation of these functions.  Add
26398         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
26399         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
26400         since, unlike the AltiVec predicate framework implementation, we
26401         do not share function descriptors between vec_alle and vec_anyeq.
26402         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
26403         set of modes that receive special treatment even when
26404         TARGET_P9_VECTOR is true.  The special treatment emits code that
26405         does not depend on Power9 instructions.
26406         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
26407         define_expand to not rely on AltiVec predicate framework.
26408         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
26409         function.
26410         (vector_ne_v2di_p): Change this define_expand to not rely on
26411         AltiVec predicate framework.
26412         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
26413         function.
26414         (vector_ne_<mode>_p): Change this define_expand to not rely on
26415         AltiVec predicate framework.
26416         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
26417         function.
26418         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
26419         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
26420         define_insn pattern.
26421         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
26422         define_insn pattern because the xvcmpne<VSs>. instruction is not
26423         supported.
26424         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
26425         instruction is not supported.
26427 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
26429         * config/nvptx/nvptx.c: Include intl.h.
26431 2017-03-01  Martin Jambor  <mjambor@suse.cz>
26433         PR lto/78140
26434         * ipa-prop.h (ipa_bits): Removed field known.
26435         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
26436         to pointers.  Adjusted their comments to warn about their sharing.
26437         (ipcp_transformation_summary): Change bits to a vector of pointers.
26438         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
26439         (ipa_get_ipa_bits_for_value): Declare.
26440         * tree-vrp.h (value_range): Mark as GTY((for_user)).
26441         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
26442         (ipa_bits_hash_table): Likewise.
26443         (ipa_vr_ggc_hash_traits): Likewise.
26444         (ipa_vr_hash_table): Likewise.
26445         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
26446         being pointers and vr_known being removed.
26447         (ipa_set_jf_unknown): Likewise.
26448         (ipa_get_ipa_bits_for_value): New function.
26449         (ipa_set_jfunc_bits): Likewise.
26450         (ipa_get_value_range): New overloaded functions.
26451         (ipa_set_jfunc_vr): Likewise.
26452         (ipa_compute_jump_functions_for_edge): Use the above functions to
26453         construct bits and vr parts of jump functions.
26454         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
26455         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
26456         exist.
26457         (ipcp_grow_transformations_if_necessary): Also allocate
26458         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
26459         exist.
26460         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
26461         them.  Fix too long lines.
26462         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
26463         vr_known being removed.
26464         (ipa_read_jump_function): Use new setter functions to construct bits
26465         and vr parts of jump functions or set them to NULL.
26466         (write_ipcp_transformation_info): Adjust for bits being pointers.
26467         (read_ipcp_transformation_info): Likewise.
26468         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
26469         space.
26470         Include gt-ipa-prop.h.
26471         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
26472         being pointers.
26473         (ipcp_store_bits_results): Likewise.
26474         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
26475         Do not write to existing jump functions but use a temporary instead.
26477 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
26479         PR c++/79681
26480         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
26481         attempt to use its first operand as BIT_FIELD_REF base.
26483 2017-03-01  Richard Biener  <rguenther@suse.de>
26485         PR middle-end/79721
26486         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
26487         interpolating formula in wrapping arithmetic.
26488         (chrec_apply): Convert chrec_evaluate return value to wanted type.
26490 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
26492         PR tree-optimization/79734
26493         * tree-vect-generic.c (expand_vector_condition): Optimize
26494         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
26495         Handle VEC_COND_EXPR where comparison has different inner width from
26496         type's inner width.
26498 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
26500         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
26501         markup, and similar issues.  Remove @opindex entries for things
26502         that aren't options.  Add missing -mmpy-option entries.
26504 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
26506         PR tree-optimization/79737
26507         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
26508         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
26509         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
26510         instead of byte_size.  Formatting fix.
26511         (shift_bytes_in_array_right): Formatting fix.
26513 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
26515         PR target/79749
26516         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
26517         condition on optimize for the leaf function test.
26519 2017-02-28  Martin Liska  <mliska@suse.cz>
26521         PR lto/79625
26522         * read-rtl-function.c (function_reader::handle_unknown_directive):
26523         Bail out when one uses -flto.
26525 2017-02-28  Martin Liska  <mliska@suse.cz>
26527         * common.opt: Replace space with tabular for options of <number>
26528         type.
26529         * config/i386/i386.opt: Show <number> value for
26530         -mlarge-data-threshold.
26531         * opts.c (print_filtered_help): Do not display number in hexadecimal
26532         format.
26534 2017-02-28  Martin Liska  <mliska@suse.cz>
26536         * common.opt: Fix --help=option -Q for options which are of
26537         an enum type.
26539 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
26541         * config/i386/i386.c (print_reg): Error out for values
26542         of 8-bit size in invalid integer register.
26544 2017-02-28  Martin Sebor  <msebor@redhat.com>
26546         PR tree-optimization/79691
26547         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
26549 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
26551         PR target/79729
26552         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
26553         gcc_unreachable with output_operand_lossage.
26555 2017-02-28  Richard Biener  <rguenther@suse.de>
26557         PR tree-optimization/79740
26558         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
26559         inserts.
26560         (visit_nary_op): Insert the nary into the hashtable if we
26561         pattern-matched sth.
26562         * tree-ssa-pre.c (eliminate_insert): Robustify.
26564 2017-02-28  Richard Biener  <rguenther@suse.de>
26566         PR middle-end/79731
26567         * fold-const.c (decode_field_reference): Reject out-of-bound
26568         accesses.
26570 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
26572         * config/i386/i386.c: Include intl.h.
26573         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
26574         instead of just cond ? "..." : "...".
26575         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
26576         * coverage.c (read_counts_file): Likewise.
26577         * omp-offload.c: Include intl.h.
26578         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
26579         of just cond ? "..." : "...".
26580         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
26581         of just cond ? "..." : "...".
26583 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
26585         PR target/79742
26586         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
26587         entry, if present.
26588         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
26589         'tune for' CPU name.
26590         * config/arm/arm-cpu-data.h: Regenerated.
26592 2017-02-28  Richard Biener  <rguenther@suse.de>
26594         PR tree-optimization/79732
26595         * tree-inline.c (expand_call_inline): Do not shadow var.
26597 2017-02-28  Richard Biener  <rguenther@suse.de>
26599         PR tree-optimization/79723
26600         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
26601         address-space properly.
26603 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
26605         * doc/optinfo.texi (Optimization groups): Fix option used for
26606         OPTGROUP_ALL.
26607         * doc/invoke.texi (-fopt-info): Document "omp".
26608         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
26609         (OPTGROUP_ALL): Add OPTGROUP_OMP.
26610         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
26611         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
26612         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
26614         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
26615         all users.
26616         * dumpfile.c (optgroup_options): Instead of "openmp", associate
26617         OPTGROUP_OMP with "omp".
26619 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
26621         PR target/79544
26622         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
26623         for arithmetic shift of unsigned V2DI.
26625 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
26627         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
26628         arc/linux.h headers.
26629         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
26630         (LINK_SPEC): Likewise.
26631         (ARC_TLS_EXTRA_START_SPEC): Likewise.
26632         (EXTRA_SPECS): Likewise.
26633         (STARTFILE_SPEC): Likewise.
26634         (ENDFILE_SPEC): Likewise.
26635         (LIB_SPEC): Likewise.
26636         (TARGET_SDATA_DEFAULT): Likewise.
26637         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
26638         (MULTILIB_DEFAULTS): Likewise.
26639         (DWARF2_UNWIND_INFO): Likewise.
26640         * config/arc/big.h: New file.
26641         * config/arc/elf.h: Likewise.
26642         * config/arc/linux.h: Likewise.
26643         * config/arc/t-uClibc: Remove.
26645 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
26647         PR tree-optimization/77536
26648         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
26649         (tree_transform_and_unroll_loop): Use above function to compute the
26650         estimated niter of unrolled loop and use it when scaling profile.
26651         Also use count info rather than frequency if it's non-zero.
26652         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
26653         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
26654         (vect_transform_loop): Call above function.
26656 2017-02-27  Richard Biener  <rguenther@suse.de>
26658         PR tree-optimization/45397
26659         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
26660         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
26661         (visit_nary_op): Add pattern matching for CSEing sign-changed
26662         or truncated operations with wider ones.
26664 2017-02-27  Richard Biener  <rguenther@suse.de>
26666         PR tree-optimization/79690
26667         * tree-vect-stmts.c (vectorizable_store): Use vector type
26668         built from the DR with address-space.
26670 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
26672         * doc/invoke.texi (Optimize Options): Refine the description
26673         of asan-use-after-return.
26675 2017-02-25  Alan Modra  <amodra@gmail.com>
26677         PR rtl-optimization/79584
26678         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
26679         base, not ad->base_term, the reg within base.  Remove assertion
26680         that ad->base == ad->base_term.  Replace gen_int_mode using
26681         bogus mode with const0_rtx.
26683 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
26685         PR middle-end/79396
26686         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
26687         FMA_EXPR like tcc_binary or tcc_unary.
26689         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
26691         PR debug/77589
26692         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
26693         bitfield.
26694         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
26695         (output_loc_operands): Handle DW_OP_call_ref and
26696         DW_OP_GNU_variable_value.
26697         (struct variable_value_struct): New type.
26698         (struct variable_value_hasher): Likewise.
26699         (variable_value_hash): New variable.
26700         (string_types): Remove.
26701         (copy_loc_descr): New function.
26702         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
26703         (prepend_loc_descr_to_each): New function.
26704         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
26705         instead of add_loc_descr_to_each if the first argument is single
26706         location list and the second has multiple.
26707         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
26708         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
26709         when looking for variable value which doesn't have other location info.
26710         (loc_list_from_tree): Formatting fix.
26711         (gen_array_type_die): Simplify DW_AT_string_length handling.
26712         (adjust_string_types): Remove.
26713         (gen_subprogram_die): Don't call adjust_string_types nor test/set
26714         string_types.  Call resolve_variable_values.
26715         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
26716         (resolve_addr_in_expr): Likewise.  Add A argument.
26717         (copy_deref_exprloc): Remove deref argument.  Adjust for the
26718         original expression being DW_OP_GNU_variable_value with optionally
26719         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
26720         optionally after it.
26721         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
26722         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
26723         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
26724         (variable_value_hasher::hash, variable_value_hasher::equal): New
26725         methods.
26726         (resolve_variable_value_in_expr, resolve_variable_value,
26727         resolve_variable_values, note_variable_value_in_expr,
26728         note_variable_value): New functions.
26729         (dwarf2out_early_finish): Call note_variable_value on all toplevel
26730         DIEs.
26732 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
26734         PR c/79677
26735         * opts.h (handle_generated_option): Add GENERATED_P argument.
26736         * opts-common.c (handle_option): Adjust function comment.
26737         (handle_generated_option): Add GENERATED_P argument, pass it to
26738         handle_option.
26739         (control_warning_option): Pass false to handle_generated_option
26740         GENERATED_P.
26741         * opts.c (maybe_default_option): Pass true to handle_generated_option
26742         GENERATED_P.
26743         * optc-gen.awk: Likewise.
26745 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
26747         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
26748         a REG, look at the REG it is a SUBREG of.
26749         (splitter for cmpeqsi_t): Ditto.
26751 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
26753         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
26754         the special USEs with the pattern of the insn, not the insn itself.
26756 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
26758         PR target/79473
26759         * doc/invoke.texi: Document -mload-store-pairs.
26761 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
26762             Sandra Loosemore  <sandra@codesourcery.com>
26764         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
26765         argument isn't a CONST_INT.
26766         (nios2_alternate_compare_const): Assert op is a CONST_INT.
26767         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
26768         (nios2_validate_compare): Bypass alternate compare logic if *op2
26769         is not a CONST_INT.
26770         (ldstwm_operation_p): Return false if first_base is not a REG or
26771         if first_offset is not a CONST_INT.
26773 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
26775         * config/cris/cris.md: Use correct operand in a define_peephole2.
26777 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
26779         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
26781 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
26783         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
26784         this_insn if it is an INSN or JUMP_INSN.
26785         (force_offsettable): Look at base, not at addr.
26786         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
26787         on things that aren't necessarily CONST_INTs.
26789 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
26791         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
26792         -mfpmath=sse is the default also for x86-32 targets with SSE2
26793         instruction set when @option{-ffast-math} is enabled
26795 2017-02-24  Jeff Law  <law@redhat.com>
26797         PR rtl-optimizatoin/79286
26798         * ira.c (update_equiv_regs): Drop may_trap_p exception to
26799         dominance test.
26801 2017-02-24  Richard Biener  <rguenther@suse.de>
26803         PR tree-optimization/79389
26804         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
26805         debug insns.
26807 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
26809         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
26810         function comment to reflect reality.
26811         (loop_exits_before_overflow): Fix typo in function description.
26813 2017-02-24  Richard Biener  <rguenther@suse.de>
26815         PR tree-optimization/79389
26816         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
26817         properly that a threading opportunity exists.  Detect conditional
26818         copy/constant propagation opportunities.
26820 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
26822         * config/visium/visium.md (type): Add trap.
26823         (b): New mode attribute.
26824         (*btst): Rename into...
26825         (*btst<mode>): ...this and adjust.
26826         (*cbranchsi4_btst_insn): Rename into...
26827         (*cbranch<mode>4_btst_insn): ...this and adjust.
26828         (trap): New define_insn.
26830 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
26832         PR tree-optimization/79389
26833         * ifcvt.c (struct noce_if_info): Add rev_cond field.
26834         (noce_reversed_cond_code): New function.
26835         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
26836         reversed_comparison_code.  Formatting fix.
26837         (noce_try_store_flag): Test rev_cond != NULL in addition to
26838         reversed_comparison_code.
26839         (noce_try_store_flag_constants): Likewise.
26840         (noce_try_store_flag_mask): Likewise.
26841         (noce_try_addcc): Use rev_cond if non-NULL instead of
26842         reversed_comparison_code.
26843         (noce_try_cmove_arith): Likewise.  Formatting fixes.
26844         (noce_try_minmax, noce_try_abs): Clear rev_cond.
26845         (noce_find_if_block): Initialize rev_cond.
26846         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
26847         instead of false as last argument never attempt to reverse it
26848         afterwards.
26850 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
26852         PR tree-optimization/79663
26853         * tree-predcom.c (combine_chains): Process refs in reverse order
26854         only for ZERO length chains, and add explaining comment.
26856 2017-02-23  Jeff Law  <law@redhat.com>
26858         PR tree-optimization/79578
26859         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
26860         in call to operand_equal_p.
26862 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
26864         PR target/71017
26865         * config/i386/cpuid.h: Fix another undefined behavior.
26867 2017-02-23  Richard Biener  <rguenther@suse.de>
26869         PR tree-optimization/79683
26870         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
26871         vector types for data-refs.
26873 2017-02-23  Martin Liska  <mliska@suse.cz>
26875         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
26877 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
26879         PR middle-end/79665
26880         * internal-fn.c (get_range_pos_neg): Moved to ...
26881         * tree.c (get_range_pos_neg): ... here.  No longer static.
26882         * tree.h (get_range_pos_neg): New prototype.
26883         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
26884         are known to be in between 0 and signed maximum inclusive, try to
26885         expand both unsigned and signed divmod and use the cheaper one from
26886         those.
26888 2017-02-22  Jeff Law  <law@redhat.com>
26890         PR tree-optimization/79578
26891         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
26892         to compare base operands.
26894 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
26896         PR target/79211
26897         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
26898         gpc_reg_operand instead of fpr_reg_operand.
26900 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
26902         * config/mips/mips.c (mips_return_in_memory): Force FP
26903         vector types to be returned in memory for o32 ABI.
26905 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
26907         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
26908         instead of DW_TAG_member for static data member declarations and don't
26909         set no_linkage_name for static inline data members.
26910         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
26911         to DW_TAG_member.
26913 2017-02-22  Martin Liska  <mliska@suse.cz>
26915         * doc/invoke.texi: Replace inequality signs with square brackets
26916         for -Wnormalized.
26918 2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26920         PR tree-optimization/68644
26921         * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
26923 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
26925         PR target/78660
26926         * lra-constraints.c (simplify_operand_subreg): Handle
26927         WORD_REGISTER_OPERATIONS targets.
26929 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
26931         PR target/70465
26932         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
26933         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
26934         elimination by swapping fld*.
26936 2017-02-22  Richard Biener  <rguenther@suse.de>
26938         PR tree-optimization/79673
26939         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
26940         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
26941         irrelevant address-space qualifiers and avoiding a
26942         ADDR_SPACE_CONVERT_EXPR from fold_convert.
26944 2017-02-22  Richard Biener  <rguenther@suse.de>
26946         PR tree-optimization/79666
26947         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
26948         to not symbolically negate if that may introduce undefined
26949         overflow.
26951 2017-02-22  Martin Liska  <mliska@suse.cz>
26953         PR lto/79587
26954         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
26955         * data-streamer-out.c (streamer_write_gcov_count_stream):
26956         Likewise.
26957         * value-prof.c (stream_out_histogram_value): Make assert more
26958         precise based on type of counter.
26960 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
26962         PR target/79593
26963         * config/i386/i386.md (standard_x87sse_constant_load splitter):
26964         Use nonimmediate_operand instead of memory_operand for operand 1.
26965         (float-extend standard_x87sse_constant_load splitter): Ditto.
26967 2017-02-21  Jeff Law  <law@redhat.com>
26969         PR tree-optimization/79621
26970         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
26971         blocks with edges to themselves.
26973 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
26975         PR target/79633
26976         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
26977         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
26978         Use gimple_call_builtin_p.
26980         PR target/79570
26981         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
26982         on temporarily removed DEBUG_INSNs.
26984         PR tree-optimization/79649
26985         * tree-loop-distribution.c (classify_partition): Give up on
26986         non-generic address space loads/stores.
26988 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
26990         * doc/loop.texi (Loop manipulation): Remove nonexistent
26991         tree_ssa_loop_version from the documentation.
26992         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
26994 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
26996         PR target/79494
26997         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
26998         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
26999         * config/rs6000/rs6000.c: Include except.h.
27000         (rs6000_expand_split_stack_prologue): Call
27001         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
27003 2017-02-21  Martin Jambor  <mjambor@suse.cz>
27005         PR lto/79579
27006         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
27007         have been analyzed.
27009 2017-02-21  Martin Jambor  <mjambor@suse.cz>
27011         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
27012         for backward compatibility only.
27013         * doc/invoke.texi (Option Summary): Remove all references to
27014         -fipa-cp-alignment.
27016 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
27018         PR target/78660
27019         Revert:
27020         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
27022         * lra-constraints.c (curr_insn_transform): Handle
27023         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
27025 2017-02-21  Martin Liska  <mliska@suse.cz>
27027         * config/i386/i386.opt: Replace -masm-dialect with -masm.
27029 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
27031         PR translation/79638
27032         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
27034 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
27036         PR ada/67205
27037         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
27038         (arm_function_ok_for_sibcall): Return false for an indirect call by
27039         descriptor if all the argument registers are used.
27040         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
27041         alignment of the function.
27043 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
27045         PR tree-optimization/61441
27046         * simplify-rtx.c (simplify_const_unary_operation): For
27047         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
27048         the sNaN unmodified.
27050 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27052         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
27053         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
27054         instead of SYSTEM_HEADER_DIR.
27056 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
27057             Martin LiÅ¡ka  <mliska@suse.cz>
27059         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
27060         Fix typos and grammar, use active voice, and clarify.
27062 2017-02-20  Marek Polacek  <polacek@redhat.com>
27064         PR middle-end/79537
27065         * gimplify.c (gimplify_expr): Handle unused *&&L;.
27067         PR sanitizer/79558
27068         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
27070 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
27072         PR target/79568
27073         * config/i386/i386.c (ix86_expand_builtin): Handle
27074         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
27075         ix86_builtins_isa[fcode].isa as a requirement of those
27076         flags and any other flag in the bitmask.
27077         (ix86_init_mmx_sse_builtins): Use 0 instead of
27078         ~OPTION_MASK_ISA_64BIT as mask.
27079         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
27080         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
27081         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
27082         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
27084 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
27086         PR target/78012
27087         * lra-constraints.c (split_reg): Check requested split mode
27088         is supported by the register.
27090 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
27092         * lra-constraints.c (simplify_operand_subreg): Remove early
27093         return false.
27095 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
27097         PR target/78660
27098         * lra-constraints.c (curr_insn_transform): Tighten condition
27099         for converting SUBREG reloads from OP_OUT to OP_INOUT.
27101 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
27103         PR target/78660
27104         * lra-constraints.c (curr_insn_transform): Handle
27105         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
27107 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
27109         Revert:
27110         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
27112         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
27114 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
27116         PR c++/69523
27117         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
27118         description.
27120 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
27122         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
27123         for FMA_EXPR.
27125 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
27127         * final.c (last_columnnum, override_columnnum): New variables.
27128         (final_start_function): Set last_columnnum, pass it to begin_prologue
27129         hook and pass 0 to dwarf2out_begin_prologue.
27130         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
27131         to source_line debug hook.
27132         (notice_source_line): Compute last_columnnum and for debug_column_info
27133         return true on column changes.
27134         * debug.h (struct gcc_debug_hooks): Add column argument to
27135         source_line and begin_prologue hooks.
27136         (debug_nothing_int_charstar_int_bool): Remove prototype.
27137         (debug_nothing_int_int_charstar,
27138         debug_nothing_int_int_charstar_int_bool): New prototypes.
27139         (dwarf2out_begin_prologue): Add column argument.
27140         * debug.c (do_nothing_debug_hooks): Adjust source_line and
27141         begin_prologue hooks.
27142         (debug_nothing_int_charstar_int_bool): Remove.
27143         (debug_nothing_int_int_charstar,
27144         debug_nothing_int_int_charstar_int_bool): New functions.
27145         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
27146         through to dwarf2out_source_line.
27147         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
27148         (dwarf2out_source_line): Add column argument, emit it if requested.
27149         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
27150         arguments.
27151         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
27152         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
27153         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
27154         through to dwarf2out_begin_prologue.
27155         (vmsdbgout_source_line): Add column argument, pass it through to
27156         dwarf2out_source_line.
27157         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
27158         dbxout_source_line caller.
27159         (dbxout_source_line): Add column argument.
27161         * common.opt (gno-column-info, gcolumn-info): New options.
27162         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
27163         (check_die): Also test for multiple DW_AT_decl_column attributes.
27164         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
27165         DW_AT_decl_column if requested.
27166         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
27167         if requested.
27168         (gen_variable_die): Likewise.
27169         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
27170         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
27172         PR target/79569
27173         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
27174         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
27175         (ix86_handle_option): Handle OPT_m3dnowa.
27176         * doc/invoke.texi (-m3dnowa): Document.
27177         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
27178         -m3dnowa instead of -m3dnow -march=athlon.
27180         PR target/79559
27181         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
27182         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
27184 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27186         PR target/79261
27187         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
27188         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
27189         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
27190         generator for vsx_xxpermdi_<mode>_be.
27191         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
27192         force big-endian semantics.
27193         (vsx_xxpermdi_<mode>_be): New define_expand with same
27194         implementation as previous version of vsx_xxpermdi_<mode>.
27196 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
27198         PR tree-optimization/79327
27199         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
27200         variable, its initialization and use.
27202 2017-02-17  Julia Koval  <julia.koval@intel.com>
27204         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
27205         (OPTION_MASK_ISA_PKU_UNSET): New.
27206         (ix86_handle_option): Handle -mrdpid.
27207         * config/i386/cpuid.h (bit_RDPID): New.
27208         * config/i386/driver-i386.c (host_detect_local_cpu):
27209         Detect RDPID feature.
27210         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
27211         * config/i386/i386-c.c (ix86_target_macros_internal):
27212         Handle RDPID flag.
27213         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
27214         (ix86_valid_target_attribute_inner_p): Add "rdpid".
27215         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
27216         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
27217         * config/i386/i386.md (define_insn "rdpid"): New.
27218         * config/i386/i386.opt Add -mrdpid.
27219         * config/i386/immintrin.h (_rdpid_u32): New.
27221 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
27223         PR rtl-optimization/79541
27224         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
27225         instead of transforming it into USE.
27227 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
27229         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
27230         If HONOR_SNANS (SFmode) force the input to a register.
27231         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
27232         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
27233         an frsp or similar insn.
27235 2017-02-17  Martin Liska  <mliska@suse.cz>
27237         PR rtl-optimization/79577
27238         * params.def (selsched-max-sched-times): Increase minimum to 1.
27240 2017-02-17  Martin Liska  <mliska@suse.cz>
27242         PR rtl-optimization/79574
27243         * gcse.c (want_to_gcse_p): Prevent integer overflow.
27245 2017-02-17  Martin Liska  <mliska@suse.cz>
27247         PR tree-optimization/79529
27248         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
27249         ssa_defined_default_def_p to handle cases which are implicitly
27250         defined.
27251         * tree-ssa.c (ssa_defined_default_def_p): New function.
27252         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
27253         which are implicitly defined.
27254         * tree-ssa.h (ssa_defined_default_def_p): Declare.
27256 2017-02-17  Richard Biener  <rguenther@suse.de>
27258         PR middle-end/79576
27259         * params.def (max-ssa-name-query-depth): Limit to 10.
27261 2017-02-17  Richard Biener  <rguenther@suse.de>
27263         PR tree-optimization/79552
27264         * tree-ssa-structalias.c (visit_loadstore): Properly verify
27265         default defs.
27267 2017-02-17  Richard Biener  <rguenther@suse.de>
27269         PR bootstrap/79567
27270         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
27272 2017-02-17  Marek Polacek  <polacek@redhat.com>
27274         PR middle-end/79536
27275         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
27276         (fold_negate_expr): New wrapper.
27278 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
27280         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
27281         Correct terminology and de-emphasize pre-standard behavior.
27283 2017-02-16  Alan Modra  <amodra@gmail.com>
27285         PR rtl-optimization/79286
27286         * ira.c (def_dominates_uses): New function.
27287         (update_equiv_regs): Don't create an equivalence for insns that
27288         may trap where the register def does not dominate the use.
27290 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
27292         PR rtl-optimization/78127
27293         * lra.c (lra): Call lra_eliminate before finish the loop after
27294         lra_constraint.
27296 2017-02-16  Richard Biener  <rguenther@suse.de>
27298         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
27299         isl/isl_val.h.
27300         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
27301         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
27302         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
27303         (isl_val_int_from_wi): New function.
27304         (extract_affine_gmp): Rename to ...
27305         (extract_affine_wi): ... this, take a widest_int.
27306         (extract_affine_int): Just wrap extract_affine_wi.
27307         (add_param_constraints): Use isl_val_int_from_wi.
27308         (add_loop_constraints): Likewise, and extract_affine_wi.
27310 2017-02-15  Jeff Law  <law@redhat.com>
27312         PR middle-end/79521
27313         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
27314         ira_init_register_move_cost_if_necessary.
27316 2017-02-15  Martin Sebor  <msebor@redhat.com>
27318         PR middle-end/32003
27319         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
27320         removed in a prior commit.
27322 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
27324         PR tree-optimization/79347
27325         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
27326         counters during peeling.
27328 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
27330         * Makefile.in (site.exp): Remove "set ISLVER".
27332 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
27334         PR target/79487
27335         * real.c (real_from_integer): Call real_convert even for decimal.
27337 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27339         PR target/79421
27340         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
27342 2017-02-14  Andrew Pinski  <apinski@cavium.com>
27344         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
27345         cores and change the partno/implementer to be correct.
27346         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
27347         the 'B" as the implementer.
27348         * config/aarch64/aarch64-tune.md: Regenerate.
27350 2017-02-14  Carl Love  <cel@us.ibm.com>
27352         * config/rs6000/rs6000.c: Add case statement entry to make the
27353         xvcvuxdsp built-in argument unsigned.
27354         * config/rs6000/vsx.md: Fix the source and return operand types so they
27355         match the instruction definitions from the ISA document.  Fix typo
27356         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
27357         statement.
27359 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
27361         PR target/79282
27362         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
27363         member early_clobber_alts.
27364         * lra-lives.c (reg_early_clobber_p): New.
27365         (process_bb_lives): Use it.
27366         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
27367         (debug_operand_data): Initialize early_clobber_alts.
27368         (setup_operand_alternative): Set up early_clobber_alts.
27369         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
27370         alternatives to new_insn_reg.
27371         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
27372         it.
27373         (lra_update_insn_regno_info): Pass the new arg.
27375 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
27377         PR middle-end/79505
27378         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
27379         (new_oacc_loop_raw): Don't clear already cleared fields.
27381         PR target/79481
27382         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
27383         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
27384         _mm512_prefetch_i64gather_ps): New inline functions and macros.
27386 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
27388         PR target/79495
27389         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
27391 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
27393         PR target/79498
27394         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
27395         the extra instruction to the right place to store 128-bit constant
27396         when needed.
27398 2017-02-14  Martin Sebor  <msebor@redhat.com>
27400         PR middle-end/79448
27401         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
27402           warning for strings of unknown length.
27404 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
27406         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
27408 2017-02-14  Jeff Law  <law@redhat.com>
27410         PR target/79404
27411         * ira-costs.c (scan_one_insn): Initialize register move costs
27412         for pseudos seen in USE/CLOBBER insns.
27414         PR tree-optimization/79095
27415         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
27416         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
27417         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
27418         if the operands are known to be not equal, then the resulting range
27419         is ~[0,0].
27420         (intersect_ranges): If the new range is ~[0,0] and the old range is
27421         wide, then prefer ~[0,0].
27422         * tree-vrp.c (overflow_comparison_p_1): New function.
27423         (overflow_comparison_p): New function.
27424         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
27425         if NAME is used in an overflow test.
27426         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
27427         overflow check that can be expressed as an equality test, then adjust
27428         ops to be that equality test.
27430 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27432         * config/s390/s390-builtin-types.def: Remove flags argument.
27433         * config/s390/s390.c (s390_init_builtins): Likewise.
27435 2017-02-14  Martin Liska  <mliska@suse.cz>
27437         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
27438         vector.  Fix trailing white spaces.
27440 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
27442         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
27443         HFmode.
27445 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27447         PR rtl-optimization/68664
27448         * config/arm/arm.c (arm_sched_can_speculate_insn):
27449         New function.  Declare prototype.
27450         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
27452 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27454         PR rtl-optimization/68664
27455         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
27456         New function.
27457         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
27459 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
27461         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
27462         max skip bytes for function, loop and jump.
27464 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
27466         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
27467         ABS_EXPR for gimple dump.
27469 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
27471         PR target/79462
27472         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
27474         PR tree-optimization/79408
27475         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
27476         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
27477         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
27478         also if rhs1 is INTEGER_CST.
27480 2017-02-14  Richard Biener  <rguenther@suse.de>
27482         PR middle-end/79432
27483         * tree-into-ssa.c (insert_phi_nodes): When the function can
27484         have abnormal edges rewrite SSA names with broken use-def
27485         dominance out of SSA and register them for PHI insertion.
27487 2017-02-13  Martin Sebor  <msebor@redhat.com>
27489         PR middle-end/79496
27490         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
27491         clearing info.nowrite flag when snprintf size argument is a range.
27493 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
27495         * cprop.c (cprop_jump): Add missing space in string literal.
27496         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
27497         (get_constraint_for_component_ref): Likewise.
27498         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
27499         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
27500         * lra-constraints.c (process_alt_operands): Likewise.
27501         * ipa-inline.c (inline_small_functions): Likewise.
27502         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
27503         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
27504         * trans-mem.c (diagnose_tm_1_op): Likewise.
27505         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
27506         (grid_parallel_clauses_gridifiable): Likewise.
27508         * config/nvptx/mkoffload.c (process): Add space in between
27509         , and %d.
27511         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
27512         "MOD4_SSE_REGS" and "ALL_REGS".
27514         * spellcheck.c (test_data): Add , in between "foo" and "food".
27516 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
27518         PR target/79449
27519         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
27520         boundary crossing check and subsequent code generation agree.
27522 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27524         * config/aarch64/aarch64.c (has_memory_op): Delete.
27525         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
27526         has_memory_op.
27528 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
27530         PR rtl-optimization/79388
27531         PR rtl-optimization/79450
27532         * combine.c (distribute_notes): When removing TEM_INSN for which
27533         corresponding dest has last value recorded, invalidate that last
27534         value.
27536 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27538         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
27539         of explicit '@'.  Add missing assembly comment marker on branch costs
27540         printout.
27542 2017-02-13  Nathan Sidwell  <nathan@acm.org>
27544         * gengtype-lex.l (<in_struct>): Add '/'.
27546 2017-02-13  Martin Liska  <mliska@suse.cz>
27548         PR c/79471
27549         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
27551 2017-02-13  Richard Biener  <rguenther@suse.de>
27553         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
27554         Remove.
27555         * configure: Re-generate.
27556         * config.in: Likewise.
27557         * graphite-dependences.c: Simplify as if
27558         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
27559         * graphite-isl-ast-to-gimple.c: Likewise.
27560         * graphite-optimize-isl.c: Likewise.
27561         * graphite-poly.c: Likewise.
27562         * graphite-sese-to-poly.c: Likewise.
27563         * graphite.h: Likewise.
27564         * toplev.c: Include isl/version.h and use isl_version () for
27565         printing the ISL version.
27566         * doc/install.texi: Update ISL requirement.
27568 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
27570         * doc/standards.texi (Standards): Update reference to
27571         Objective-C 2.0.
27573 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
27575         * doc/extend.texi (Named Address Spaces): sourceware.org now
27576         defaults to https.
27577         * doc/install.texi (Binaries): Ditto.
27578         (Specific): Ditto.
27580 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
27582         * doc/cpp.texi: Replace "stringify"/"stringification" with C
27583         standard terminology "stringize"/"stringizing" throughout.
27584         * doc/cppinternals.texi: Likewise.
27586 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
27588         * doc/extend.texi: Fix some spelling mistakes and typos.
27589         * doc/invoke.texi: Likewise.
27591 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
27593         PR ipa/79224
27594         * params.def (inline-min-speedup) Change from 10 to 8.
27596 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
27598         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
27599         4.5.
27601 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
27603         PR ipa/79224
27604         * ipa-inline-analysis.c (get_minimal_bb): New function.
27605         (record_modified): Use it.
27606         (remap_edge_change_prob): Handle also ancestor functions.
27608 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
27610         * doc/contrib.texi (Contributors): Remove broken link into
27611         the Mauve CVS repository.
27613 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
27615         PR middle-end/79454
27616         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
27617         result computation whenever lhs doesn't have vector mode, not
27618         just when it has BLKmode.
27620 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
27622         * doc/makefile.texi (profiledbootstrap): Refer to the
27623         installation instructions only in textual form.
27625 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
27627         PR target/79295
27628         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
27630 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
27632         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
27633         (Specific): Update mingw-w64 reference.
27634         (Binaries): Ditto.
27635         (Specific): Remove broken link to Renesas RX processor.
27637 2017-02-10  Richard Biener  <rguenther@suse.de>
27639         * toplev.c (process_options): Do not mention obsolete graphite
27640         options when printing sorry message about missing graphite support.
27641         Mention -floop-nest-optimize.
27643 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
27645         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
27646         (vtst_p16): Likewise.
27647         (vtstq_p8): Likewise.
27648         (vtstq_p16): Likewise.
27649         (vtst_p64): New.
27650         (vtstq_p64): Likewise.
27651         * config/arm/arm_neon.h (vgetq_lane_p64): New.
27652         (vset_lane_p64): New.
27653         (vsetq_lane_p64): New.
27655 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
27657         PR tree-optimization/79411
27658         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
27659         stmt operands are SSA_NAMEs used in abnormal phis.
27660         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
27661         phis.
27663 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
27665         PR ipa/70795
27666         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
27667         flag if needed.
27669 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
27671         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
27673 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
27675         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
27676         to avoid warning.
27678         PR c/79413
27679         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
27680         not arbitrary TREE_CONSTANT.
27682         PR c/79431
27683         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
27684         "omp declare target link" attribute unless is_global_var.
27685         * omp-offload.c (find_link_var_op): Likewise.
27687 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
27688             Chung-Lin Tang  <cltang@codesourcery.com>
27690         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
27691         OMP_CLAUSE_TILE.
27692         (gimplify_adjust_omp_clauses): Don't delete TILE.
27693         (gimplify_omp_for): Deal with TILE.
27694         * internal-fn.c (expand_GOACC_TILE): New function.
27695         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
27696         (GOACC_TILE): New.
27697         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
27698         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
27699         element fields.
27700         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
27701         avoid DIV for outermost collapse var.
27702         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
27703         Remove out of date comments, fix whitespace.
27704         * omp-general.c (omp_extract_for_data): Deal with tiling.
27705         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
27706         adjust OLF_DIM_BASE value.
27707         (struct omp_for_data): Add tiling field.
27708         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
27709         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
27710         for auto loops.  Remove default auto determining, moved to
27711         oacc_loop_fixed_partitions.
27712         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
27713         stmts, add e_mask field.
27714         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
27715         (oacc_thread_numbers): Use oacc_dim_call.
27716         (oacc_xform_tile): New.
27717         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
27718         (finish_oacc_loop): Adjust for ifns vector.
27719         (oacc_loop_discover_walk): Append loop abstraction sites to list,
27720         add case for GOACC_TILE fns.
27721         (oacc_loop_xform_loop): Delete.
27722         (oacc_loop_process): Iterate over call list directly, and add
27723         handling for GOACC_TILE fns.
27724         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
27725         dump partitioning.
27726         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
27727         vector partitioning to outer loops.  Assign 2 partitions to loops
27728         when available. Add TILE handling.
27729         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
27730         (execite_oacc_device_lower): Process GOACC_TILE fns,
27731         ignore unknown specs.
27732         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
27733         * tree.c (omp_clause_num_ops): Adjust TILE ops.
27734         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
27736 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
27738         * configure.ac (ACX_BUGURL): Update.
27739         * configure: Regenerate.
27741 2017-02-09  Richard Biener  <rguenther@suse.de>
27743         PR tree-optimization/69823
27744         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
27745         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
27747 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
27749         * config/arc/arc-c.def: Add __NPS400__ definition.
27750         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
27751         (TARGET_NPS400): Define.
27753 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
27755         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
27756         file.
27757         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
27758         pointer, arch_info.
27759         (arc_cpu_types): Fill the arch_info field with a pointer into the
27760         arc_arch_types table.
27761         (arc_selected_cpu): Declare.
27762         * config/arc/arc.c (arc_selected_cpu): Make global.
27763         (arc_selected_arch): Delete.
27764         (arc_base_cpu): Delete.
27765         (arc_override_options): Remove references to deleted variables,
27766         update access to arch information.
27767         (ARC_OPT): Update access to arch information.
27768         (ARC_OPTX): Likewise.
27769         * config/arc/arc.h (arc_base_cpu): Remove declaration.
27770         (TARGET_ARC600): Update access to arch information.
27771         (TARGET_ARC601): Likewise.
27772         (TARGET_ARC700): Likewise.
27773         (TARGET_EM): Likewise.
27774         (TARGET_HS): Likewise.
27775         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
27776         information.
27778 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
27780         PR target/78604
27781         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
27782         condition/operands for integer GE/LE/GEU/LEU operations.
27784 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
27786         PR translation/79397
27787         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
27788         of AltiVec.
27790 2017-02-08  Martin Jambor  <mjambor@suse.cz>
27792         PR ipa/79375
27793         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
27794         whether allocation happened.
27795         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
27796         nothing was allocated.
27798 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
27800         PR tree-optimization/79408
27801         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
27802         constant, but SSA_NAME with a known integer range, use the minimum
27803         of that range instead of op1 to determine if modulo can be replaced
27804         with its first operand.
27806 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27808         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
27810 2017-02-08  Richard Biener  <rguenther@suse.de>
27812         PR tree-optimization/71824
27813         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
27814         Check all loops contained in the merged region.
27816 2017-02-07  Andrew Pinski  <apinski@cavium.com>
27818         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
27820 2017-02-07  Andrew Pinski  <apinski@cavium.com>
27822         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
27823         (thunderxt88): Likewise.
27824         (thunderxt81): Disable LSE and change v8.1 to v8.
27825         (thunderxt83): Likewise.
27827 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
27828             Richard Biener  <rguenther@suse.de>
27830         PR middle-end/79399
27831         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
27832         type from int to size_t.
27833         * ira-costs.c (struct_costs_size): Change type from int to size_t.
27835 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
27837         PR rtl-optimization/79386
27838         * cprop.c (bypass_conditional_jumps): Initialize
27839         bypass_last_basic_block already before splitting bbs after
27840         unconditional traps...
27841         (bypass_conditional_jumps): ... rather than here.
27843         PR target/79299
27844         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
27845         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
27846         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
27847         fix -masm=intel patterns.
27849 2017-02-07  Richard Biener  <rguenther@suse.de>
27851         PR tree-optimization/79256
27852         PR middle-end/79278
27853         * builtins.c (get_object_alignment_2): Use min_align_of_type
27854         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
27855         and ADJUST_FIELD_ALIGN.
27857         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
27858         type parameter.
27859         * doc/tm.texi: Regenerate.
27860         * stor-layout.c (layout_decl): Adjust.
27861         (update_alignment_for_field): Likewise.
27862         (place_field): Likewise.
27863         (min_align_of_type): Likewise.
27864         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
27865         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
27866         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
27867         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
27868         * config/frv/frv.c (frv_adjust_field_align): Likewise.
27869         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
27870         * config/i386/i386.c (x86_field_alignment): Likewise.
27871         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
27872         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
27873         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
27874         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
27875         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
27876         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
27877          Likewise.
27879         Revert
27880         2017-01-30  Richard Biener  <rguenther@suse.de>
27882         PR tree-optimization/79256
27883         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
27884         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
27885         alignment on TYPE.
27887 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
27889         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
27890         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
27891         builtins to SImode and emit a zero-extend, if necessary.
27893 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
27895         * docs/invoke.texi (RISC-V Options): Alphabetize.
27897 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
27899         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
27900         options.
27902 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
27904         * config/riscv/riscv.c: New file.
27905         * common/config/riscv/riscv-common.c: Likewise.
27906         * config.gcc: Likewise.
27907         * config/riscv/constraints.md: Likewise.
27908         * config/riscv/elf.h: Likewise.
27909         * config/riscv/generic.md: Likewise.
27910         * config/riscv/linux.h: Likewise.
27911         * config/riscv/multilib-generator: Likewise.
27912         * config/riscv/peephole.md: Likewise.
27913         * config/riscv/pic.md: Likewise.
27914         * config/riscv/predicates.md: Likewise.
27915         * config/riscv/riscv-builtins.c: Likewise.
27916         * config/riscv/riscv-c.c: Likewise.
27917         * config/riscv/riscv-ftypes.def: Likewise.
27918         * config/riscv/riscv-modes.def: Likewise.
27919         * config/riscv/riscv-opts.h: Likewise.
27920         * config/riscv/riscv-protos.h: Likewise.
27921         * config/riscv/riscv.h: Likewise.
27922         * config/riscv/riscv.md: Likewise.
27923         * config/riscv/riscv.opt: Likewise.
27924         * config/riscv/sync.md: Likewise.
27925         * config/riscv/t-elf-multilib: Likewise.
27926         * config/riscv/t-linux: Likewise.
27927         * config/riscv/t-linux-multilib: Likewise.
27928         * config/riscv/t-riscv: Likewise.
27929         * configure.ac: Likewise.
27930         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
27931         Waterman as RISC-V maintainers.
27932         * doc/install.texi: Add RISC-V entries.
27933         * doc/invoke.texi: Add RISC-V options section.
27934         * doc/md.texi: Add RISC-V constraints section.
27935         * configure: Regenerated.
27937 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
27939         PR target/66144
27940         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
27941         false values to be constant vectors with all 0 or all 1 bits set.
27942         (vcondu<mode><mode>): Likewise.
27943         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
27944         predicate.
27945         (fpmask_comparison_operator): Update comment.
27946         (vecint_comparison_operator): New predicate.
27947         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
27948         vector conditionals when the true and false values are constant
27949         vectors with all 0 bits or all 1 bits set.
27951 2017-02-06  Martin Sebor  <msebor@redhat.com>
27953         PR  tree-optimization/79376
27954         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
27956 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
27958         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
27959         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
27960         to simplify split condition.
27962 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
27964         * omp-expand.c (oxpand_omp_atomic_fetch_op,
27965         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
27966         false.
27968 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
27970         PR rtl-optimization/68664
27971         * target.def (can_speculate_insn): New hook.
27972         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
27973         * doc/tm.texi: Regenerate.
27974         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
27975         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
27976         (rs6000_sched_can_speculate_insn): New function.
27978 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
27980         PR tree-optimization/79284
27981         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
27982         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
27983         vectorizable_mask_load_store, vectorizable_operation,
27984         vect_is_simple_cond, get_same_sized_vectype): Use it instead
27985         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
27986         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
27987         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
27988         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
27989         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
27990         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
27991         is_gimple_assign (stmt).  Replace another such test with
27992         is_gimple_assign (stmt).
27994 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
27996         PR target/78883
27997         * config/avr/avr.c (rtl-iter.h): Include it.
27998         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
27999         (avr_legitimate_combined_insn): ...and implementation.
28001 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
28003         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
28004         * config/s390/s390.c (s390_const_operand_ok)
28005         (s390_canonicalize_comparison, s390_extract_part)
28006         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
28007         (s390_contiguous_bitmask_p, s390_rtx_costs)
28008         (legitimize_pic_address): Likewise.
28009         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
28010         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
28011         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
28012         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
28013         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
28015 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
28017         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
28018         REGNO($0) == REGNO($1).
28020 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28022         * config/s390/linux.h(SIZE_TYPE): Add comment.
28024 2017-02-06  Julian Brown  <julian@codesourcery.com>
28025             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
28026             Virendra Pathak  <virendra.pathak@broadcom.com>
28028         * config/aarch64/aarch64-cores.def: Change the scheduler
28029         to Thunderx2t99.
28030         * config/aarch64/aarch64.md: Include thunderx2t99.md.
28031         * config/aarch64/thunderx2t99.md: New file.
28033 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
28035         * doc/standards.texi (Go Language): Update link to language
28036         standard.
28038 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
28040         * tree-eh.c (lower_resx): Sanitize profile.
28041         (cleanup_empty_eh_move_lp): Likewise.
28043 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
28045         PR tree-ssa/79347
28046         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
28047         ELSE_PROB.
28048         * cfgloopmanip.h (loop_version): Update prototype.
28049         * modulo-sched.c (sms_schedule): Update call of loop_version.
28050         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
28051         * tree-parloops.c (gen_parallel_loop): Likewise.
28052         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
28053         * tree-ssa-loop-split.c (split_loop): Likewise.
28054         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
28055         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
28057 2017-02-05  Martin Liska  <mliska@suse.cz>
28059         PR bootstrap/78985
28060         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
28061         variable to NULL.
28062         (print_operand_address): Initialize a struct to zero.
28064 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
28066         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
28067         garbage collector only in textual form.
28069 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
28071         * doc/extend.texi (x86 specific memory model extensions for
28072         transactional memory): Simplify a phrase.
28074 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
28076         PR target/79353
28077         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
28078         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
28079         (atomic_storedi_1): Likewise.
28081 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
28083         PR tree-optimization/79338
28084         * tree-parloops.c (gather_scalar_reductions): Don't call
28085         vect_analyze_loop_form for loop->inner before destroying loop's
28086         loop_vinfo.
28088 2017-02-03  Martin Sebor  <msebor@redhat.com>
28090         PR tree-optimization/79327
28091         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
28092         when precision has resulted in leading zeros.
28093         (format_integer): Adjust the likely counter to assume an unknown
28094         argument that may be zero is non-zero.
28096 2017-02-03  Jason Merrill  <jason@redhat.com>
28098         PR c++/78689
28099         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
28100         avoid copying non-taken branch.
28102 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
28104         PR tree-optimization/79340
28105         * tree-vect-loop.c (vectorizable_reduction): Release
28106         vec_defs elements after safe_splicing them into other vectors.
28107         Formatting fixes.
28109         PR tree-optimization/79327
28110         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
28111         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
28112         dirtype.
28113         (format_integer): Use wide_int_to_tree instead of build_int_cst
28114         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
28115         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
28116         of shortest and longest sequence.
28118 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
28120         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
28121         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
28123 2017-02-03  Walter Lee  <walt@tilera.com>
28125         PR target/78862
28126         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
28127         after initial stackframe link reg save.
28128         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
28130 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
28132         PR target/79354
28133         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
28134         wu for stxssp alternative.
28136 2017-02-03  Martin Sebor  <msebor@redhat.com>
28138         PR tree-optimization/79352
28139         * gimple-fold.c (get_range_strlen): Add argument.
28140         (get_range_strlen): Change return type to bool.
28141         (get_maxval_strlen): Pass in a dummy argument.
28142         * gimple-fold.h (get_range_strlen): Change return type to bool.
28143         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
28144         * tree.h (array_at_struct_end_p): Add argument.
28145         * tree.c (array_at_struct_end_p): Handle it.
28147 2017-02-03  Martin Liska  <mliska@suse.cz>
28149         PR lto/66295
28150         * multiple_target.c (create_dispatcher_calls): Redirect edge
28151         from a caller of a dispatcher.
28152         (expand_target_clones): Make the clones local.
28153         (ipa_target_clone): Do both target clones and resolvers.
28154         (ipa_dispatcher_calls): Remove the pass.
28155         (pass_dispatcher_calls::gate): Likewise.
28156         (make_pass_dispatcher_calls): Likewise.
28157         * passes.def (pass_target_clone): Put as very first IPA early
28158         pass.
28160 2017-02-03  Martin Liska  <mliska@suse.cz>
28162         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
28163         in case of a function with ifunc attribute.
28165 2017-02-03  Martin Liska  <mliska@suse.cz>
28167         * cgraph.c (cgraph_node::dump): Dump function version info.
28168         * symtab.c (symtab_node::dump_base): Add missing new line.
28170 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
28172         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
28173         (ifcombine_ifandif): Use it.
28175 2017-02-03  Martin Liska  <mliska@suse.cz>
28177         * doc/invoke.texi: Document default value for
28178         use-after-scope-direct-emission-threshold.
28180 2017-02-03  Martin Liska  <mliska@suse.cz>
28182         PR tree-optimization/79339
28183         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
28184         (format_floating): Likewise.
28186 2017-02-03  Martin Liska  <mliska@suse.cz>
28188         PR ipa/79337
28189         * ipa-prop.c (ipa_node_params_t::insert): Remove current
28190         implementation.
28191         (ipa_node_params_t::remove): Likewise.
28192         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
28193         initialization from removed ipa_node_params_t::insert.
28194         (ipa_node_params::~ipa_node_params): Move from removed
28195         ipa_node_params_t::release.
28196         * symbol-summary.h (symbol_summary::m_released): New member.
28197         Do not release a summary twice.  Do not allow to call finalizer
28198         for types of a summary that live in GGC memory.
28200 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
28202         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
28203         cmp_branch fusion.
28205 2017-02-02  Martin Sebor  <msebor@redhat.com>
28207         PR middle-end/79275
28208         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
28209         (format_string): Tighten up the range of output for non-constant
28210         strings and correct the expected range for wide non-constant strings.
28212 2017-02-02  Martin Sebor  <msebor@redhat.com>
28214         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
28216         PR middle-end/32003
28217         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
28218         index.
28219         (-fdump-tree-@var): Add to index and document how to come up
28220         with pass-specific option and dump file names.
28221         (-fdump-passes): Clarify where to look for output.
28223 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
28225         PR middle-end/77445
28226         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
28227         statistics of the analyzed path; allow threading for speed when
28228         any of BBs along the path are optimized for speed.
28230 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
28232         PR middle-end/78468
28233         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
28234         settings of the virtual registers.
28236         Revert again
28237         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
28239         * explow.c (get_dynamic_stack_size): Take known alignment of stack
28240         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
28241         needed.
28243 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28245         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
28246         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
28248 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28250         * config/s390/s390.md: Add missing comments with the expanded
28251         mnemonics.
28252         * config/s390/vector.md: Likewise.
28253         * config/s390/vx-builtins.md: Likewise.
28255 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
28257         PR target/79197
28258         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
28259         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
28260         conditions on a single line.
28262 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28264         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
28265         __S390_VX__ to __VX__.
28267 2017-02-01  Andrew Pinski  <apinski@cavium.com>
28269         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
28270         stmt_info to record_stmt_cost.
28271         (vect_get_known_peeling_cost): Pass stmt_info if known to
28272         record_stmt_cost.
28273         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
28274         cpu_vector_cost field into
28275         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
28276         field into vec_int_stmt_cost and vec_fp_stmt_cost.
28277         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
28278         splitting of scalar_stmt_cost and vec_stmt_cost.
28279         (thunderx_vector_cost): Likewise.
28280         (cortexa57_vector_cost): LIkewise.
28281         (exynosm1_vector_cost): Likewise.
28282         (xgene1_vector_cost): Likewise.
28283         (thunderx2t99_vector_cost): Improve after the splitting of the two
28284         fields.
28285         (aarch64_builtin_vectorization_cost): Update for the splitting of
28286         scalar_stmt_cost and vec_stmt_cost.
28288 2017-02-01  Torvald Riegel  <triegel@redhat.com>
28289             Richard Henderson  <rth@redhat.com>
28291         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
28292         conditional on existance of a fast atomic load.
28293         * optabs-query.c (can_atomic_load_p): New function.
28294         * optabs-query.h (can_atomic_load_p): Declare it.
28295         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
28296         no fast atomic load is available for the particular size of access.
28297         (expand_atomic_compare_and_swap): Likewise.
28298         (expand_atomic_load): Likewise.
28299         (expand_atomic_store): Likewise.
28300         (expand_atomic_fetch_op): Likewise.
28301         * testsuite/lib/target-supports.exp
28302         (check_effective_target_sync_int_128): Remove x86 because it provides
28303         no fast atomic load.
28304         (check_effective_target_sync_int_128_runtime): Likewise.
28306 2017-02-01  Richard Biener  <rguenther@suse.de>
28308         * graphite.c: Include tree-vectorizer.h for find_loop_location.
28309         (graphite_transform_loops): Provide opt-info for optimized nests.
28310         * tree-parloop.c (parallelize_loops): Provide opt-info for
28311         parallelized loops.
28313 2017-02-01  Richard Biener  <rguenther@suse.de>
28315         PR middle-end/79315
28316         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
28317         was not set before.
28319 2017-02-01  Richard Biener  <rguenther@suse.de>
28321         PR tree-optimization/71824
28322         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
28323         Verify the loops are valid in the merged SESE region.
28324         (scop_detection::can_represent_loop_1): Check analyzing the
28325         evolution of the number of iterations in the region succeeds.
28327 2017-01-31  Ian Lance Taylor  <iant@golang.org>
28329         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
28330         REG_ARGS_SIZE note to 32-bit push insns and call insn.
28332 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
28334         PR preprocessor/79210
28335         * input.c (get_substring_ranges_for_loc): Replace line_width
28336         assertion with error-handling.
28338 2017-01-31  Richard Biener  <rguenther@suse.de>
28340         PR tree-optimization/77318
28341         * graphite-sese-to-poly.c (extract_affine): Fix assert.
28342         (create_pw_aff_from_tree): Take loop parameter.
28343         (add_condition_to_pbb): Pass loop of the condition to
28344         create_pw_aff_from_tree.
28346 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
28348         * config/s390/s390.c (s390_asan_shadow_offset): New function.
28349         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
28351 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
28353         PR target/78597
28354         PR target/79038
28355         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
28356         no longer used.
28357         (convert_int_to_float128): Likewise.
28358         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
28359         (convert_int_to_float128): Likewise.
28360         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
28361         (UNSPEC_IEEE128_CONVERT): Likewise.
28362         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
28363         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
28364         Use local variables for IBM extended format.
28365         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
28366         (fix_trunc<mode>si2_fprs): Likewise.
28367         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
28368         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
28369         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
28370         to know that we can now have integers of all sizes in vector
28371         registers.
28372         (fix<uns>_<mode>di2_hw): Likewise.
28373         (float<uns>_<mode>si2_hw): Likewise.
28374         (fix_<mode>si2_hw): Likewise.
28375         (fixuns_<mode>si2_hw): Likewise.
28376         (float<uns>_<mode>di2_hw): Likewise.
28377         (float_<mode>di2_hw): Likewise.
28378         (float_<mode>si2_hw): Likewise.
28379         (floatuns_<mode>di2_hw): Likewise.
28380         (floatuns_<mode>si2_hw): Likewise.
28381         (xscvqp<su>wz_<mode>): Delete, no longer used.
28382         (xscvqp<su>dz_<mode>): Likewise.
28383         (xscv<su>dqp_<mode>): Likewise.
28384         (ieee128_mfvsrd_64bit): Likewise.
28385         (ieee128_mfvsrd_32bit): Likewise.
28386         (ieee128_mfvsrwz): Likewise.
28387         (ieee128_mtvsrw): Likewise.
28388         (ieee128_mtvsrd_64bit): Likewise.
28389         (ieee128_mtvsrd_32bit): Likewise.
28391 2017-01-31  Martin Liska  <mliska@suse.cz>
28393         PR ipa/79285
28394         * ipa-prop.c (ipa_free_all_node_params): Call release method
28395         instead of ~sumbol_summary to not to trigger double times
28396         dtor of hash_map.
28398 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
28400         PR tree-optimization/71691
28401         * bitmap.h (class auto_bitmap): New.
28402         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
28403         is_maybe_undefined instead of ssa_undefined_value_p.
28405 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28407         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
28408         __S390_ARCH_LEVEL__ to __ARCH__.
28410 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
28412         PR tree-optimization/79267
28413         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
28414         if should_remove_lhs_p is true.
28416 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
28418         PR debug/63238
28419         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
28420         (add_alignment_attribute): New.
28421         (base_type_die): Add alignment attribute.
28422         (subrange_type_die): Likewise.
28423         (modified_type_die): Likewise.
28424         (gen_array_type_die): Likewise.
28425         (gen_descr_array_type_die: Likewise.
28426         (gen_enumeration_type_die): Likewise.
28427         (gen_subprogram_die): Likewise.
28428         (gen_variable_die): Likewise.
28429         (gen_field_die): Likewise.
28430         (gen_ptr_to_mbr_type_die): Likewise.
28431         (gen_struct_or_union_type_die): Likewise.
28432         (gen_subroutine_type_die): Likewise.
28433         (gen_typedef_die): Likewise.
28434         (base_type_cmp): Compare alignment attribute.
28436 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
28438         PR target/79170
28439         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
28440         (setb_unsigned) New pattern for setb with CCUNS.
28441         * config/rs6000/rs6000.c (expand_block_compare): Use a different
28442         subfc./subfe sequence to avoid overflow problems.  Generate a
28443         shorter sequence with cmpld/setb for power9.
28444         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
28445         for generating subfc. instruction.
28446         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
28447         now uses this instruction.
28449 2017-01-30  Ian Lance Taylor  <iant@google.com>
28451         PR debug/79289
28452         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
28453         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
28455 2017-01-30  Martin Sebor  <msebor@redhat.com>
28457         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
28458         Move constant to the right of a relational operator.
28459         (get_mpfr_format_length, format_character, format_string): Ditto.
28460         (should_warn_p, maybe_warn): Same.
28462         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
28464 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
28466         PR lto/79061
28467         * asan.c (get_translation_unit_decl): Remove function.
28468         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
28470 2017-01-30  Martin Liska  <mliska@suse.cz>
28472         PR gcov-profile/79259
28473         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
28474         -fprofile-generate.
28476 2017-01-30  Martin Liska  <mliska@suse.cz>
28478         PR bootstrap/78985
28479         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
28480         Initialize variables with NULL value.
28482 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
28484         PR target/79260
28485         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
28486         tm_p_file.
28487         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
28489 2017-01-30  Richard Biener  <rguenther@suse.de>
28491         PR tree-optimization/79276
28492         * tree-vrp.c (process_assert_insertions): Properly adjust common
28493         when removing a duplicate.
28495         * gcc.dg/torture/pr79276.c: New testcase.
28497 2017-01-30  Richard Biener  <rguenther@suse.de>
28499         PR tree-optimization/79256
28500         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
28501         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
28502         alignment on TYPE.
28503         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
28505 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
28507         PR target/79240
28508         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
28509         ("*r<noxa>sbg_<mode>_sll_bitmask")
28510         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
28511         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
28512         Use contiguous_bitmask_nowrap_operand.
28514 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28516         PR target/79268
28517         * config/rs6000/altivec.h (vec_xl): Revise #define.
28518         (vec_xst): Likewise.
28520 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
28522         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
28524 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
28526         PR rtl-optimization/79194
28527         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
28528         traps before call to bypass_conditional_jumps.
28530 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
28532         PR tree-optimization/71374
28533         * lra-constraints.c (check_conflict_input_operands): New.
28534         (match_reload): Use it.
28536 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
28538         PR target/79131
28539         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
28540         account to calculate conflict_set.
28542 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
28544         PR rtl-optimization/78559
28545         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
28546         other_insn in combine.
28548 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
28550         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
28551         uint16_type_node for BT_UINT16.
28553 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
28555         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
28556         "RTL Tests" to menu.
28557         (GIMPLE Tests): New node.
28558         (RTL Tests): New node.
28560 2017-01-27  Richard Biener  <rguenther@suse.de>
28562         PR tree-optimization/79245
28563         * tree-loop-distribution.c (distribute_loop): Apply cost
28564         modeling also to detected patterns.
28566 2017-01-27  Richard Biener  <rguenther@suse.de>
28568         PR tree-optimization/71433
28569         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
28570         (compare_assert_loc): New function.
28571         (process_assert_insertions): Sort and optimize assert locations
28572         to remove duplicates and push down identical assertions on
28573         edges to their destination block.
28575 2017-01-27  Richard Biener  <rguenther@suse.de>
28577         PR tree-optimization/79244
28578         * tree-vrp.c (remove_range_assertions): Forcefully propagate
28579         out SSA names even if abnormal.
28581 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
28583         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
28584         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
28585         instead of MPFR_RNDN.
28587 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
28589         PR target/79239
28590         * arm.c (arm_option_override): Don't call build_target_option_node
28591         until after doing all option overrides.
28592         (arm_valid_target_attribute_tree): Likewise.
28594 2017-01-27  Martin Liska  <mliska@suse.cz>
28596         * doc/invoke.texi (-fprofile-arcs): Document profiling support
28597         for {cd}tors and C++ {cd}tors.
28599 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
28601         * config/s390/s390.md ("*setmem_long_and")
28602         ("*setmem_long_and_31z"): Use zero_extend instead of and.
28604 2017-01-26  Martin Sebor  <msebor@redhat.com>
28606         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
28607         of precision.
28609 2017-01-26  Martin Sebor  <msebor@redhat.com>
28611         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
28612         HAVE_DFmode before using XFmode or DFmode.
28613         (parse_directive): Avoid using the z length modifier to avoid
28614         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
28616         PR middle-end/78703
28617         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
28618         to accept adjustment as an array.
28619         (get_int_range): New function.
28620         (struct directive): Make width and prec arrays.
28621         (directive::set_width, directive::set_precision): Call get_int_range.
28622         (format_integer, format_floating): Handle width and precision ranges.
28623         (format_string, parse_directive): Same.
28625 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
28627         PR debug/79129
28628         * dwarf2out.c (generate_skeleton_bottom_up): For children with
28629         comdat_type_p set, just clone them, but keep the children in the
28630         original DIE.
28632         PR debug/78835
28633         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
28634         which have direct callers with -fvar-tracking-assignments enabled
28635         in the current TU.
28636         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
28637         inside of type units.
28639 2017-01-26  Martin Sebor  <msebor@redhat.com>
28641         PR middle-end/78703
28642         * gimple-ssa-sprintf.c (struct result_range): Add likely and
28643         unlikely counters.
28644         (struct format_result): Replace number_chars, number_chars_min,
28645         and number_chars_max with a single member of struct result_range.
28646         Remove bounded.
28647         (format_result::operator+=): Adjust.
28648         (struct fmtresult): Remove bounded.  Handle likely and unlikely
28649         counters.
28650         (fmtresult::adjust_for_width_or_precision): New function.
28651         (fmtresult:type_max_digits): New function.
28652         (bytes_remaining): Handle likely and unlikely counters.
28653         (min_bytes_remaining): Remove.
28654         (format_percent): Simplify.
28655         (format_integer, format_floating): Set likely and unlikely counters.
28656         (get_string_length, format_character, format_string): Same.
28657         (format_plain, should_warn_p): New function.
28658         (maybe_warn): Call should_warn_p.  Update diagnostic messages
28659         and handle those for all directives, including plain strings.
28660         (format_directive): Handle likely and unlikely counters.
28661         Remove unnecessary quoting from diagnostics.  Add an informational
28662         note.
28663         (add_bytes): Remove.
28664         (pass_sprintf_length::compute_format_length): Simplify.
28665         (try_substitute_return_value): Handle likely and unlikely counters.
28667 2017-01-26  Carl Love  <cel@us.ibm.com>
28669         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
28670         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
28672 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
28674         PR target/79131
28675         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
28676         endianess for subregs into account.
28677         * lra-constraints.c (lra_constraints): Do risky transformations
28678         always on the first iteration.
28679         * lra-lives.c (check_pseudos_live_through_calls): Add arg
28680         last_call_used_reg_set.
28681         (process_bb_lives): Define and use last_call_used_reg_set.
28682         * lra.c (lra): Always continue after lra_constraints on the first
28683         iteration.
28685 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
28687         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
28688         constant.
28689         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
28691 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
28693         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
28694         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
28695         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
28696         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
28697         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
28698         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
28699         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
28700         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
28701         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
28703 2017-01-26  Marek Polacek  <polacek@redhat.com>
28705         PR c/79199
28706         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
28707         for the third operand.
28709 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
28711         PR middle-end/79236
28712         * omp-low.c (struct omp_context): Add simt_stmt field.
28713         (scan_omp_for): Return omp_context *.
28714         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
28715         context to the _simt_ SIMD stmt.
28716         (lower_omp_for): For combined SIMD with sibling _simt_
28717         SIMD, make sure to use the same decls in _looptemp_
28718         clauses as in the sibling.
28720 2017-01-26  David Sherwood  <david.sherwood@arm.com>
28722         PR middle-end/79212
28723         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
28724         all contexts.
28726 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
28728         PR target/70465
28729         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
28730         emit fld b; fld a; if possible.
28732         * brig-builtins.def: Update copyright years.
28733         * config/arm/arm_acle_builtins.def: Update copyright years.
28735 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
28737         PR target/79179
28738         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
28739         constraint instead of o for the stxsd instruction.
28741 2017-01-25  Carl Love  <cel@us.ibm.com>
28743         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
28744         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
28746 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
28748         * doc/invoke.texi (C++ Dialect Options): Fix typo.
28750 2017-01-25  Richard Biener  <rguenther@suse.de>
28752         PR tree-optimization/69264
28753         * target.def (vector_alignment_reachable): Improve documentation.
28754         * doc/tm.texi: Regenerate.
28755         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
28756         and add a comment.
28757         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
28758         earlier changes with respect to TYPE_USER_ALIGN.
28759         (vector_alignment_reachable_p): Likewise.  Improve dumping.
28761 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28763         PR target/79145
28764         * config/arm/arm.md (xordi3): Force constant operand into a register
28765         for TARGET_IWMMXT.
28767 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28769         * doc/invoke.texi (-fstore-merging): Correct default optimization
28770         levels at which it is enabled.
28771         (-O): Move -fstore-merging from list to...
28772         (-O2): ... Here.
28774 2017-01-25  Richard Biener  <rguenther@suse.de>
28776         PR debug/78363
28777         * omp-expand.c: Include debug.h.
28778         (expand_omp_taskreg): Make sure to generate early debug before
28779         outlining anything from a function.
28780         (expand_omp_target): Likewise.
28781         (grid_expand_target_grid_body): Likewise.
28783 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
28785         PR lto/79061
28786         * asan.c (get_translation_unit_decl): New function.
28787         (asan_add_global): Extract modules file name from globals
28788         TRANSLATION_UNIT_DECL name.
28790 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
28792         PR target/77439
28793         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
28794         for long calls with APCS frame and VFP.
28796 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
28798         * cfg.c (original_copy_tables_initialized_p): New function.
28799         * cfg.h (original_copy_tables_initialized_p): New decl.
28800         * cfgrtl.c (relink_block_chain): Guard the call to
28801         free_original_copy_tables with a call to
28802         original_copy_tables_initialized_p.
28803         * cgraph.h (symtab_node::native_rtl_p): New decl.
28804         * cgraphunit.c (symtab_node::native_rtl_p): New function.
28805         (symtab_node::needed_p): Don't assert for early assembly output
28806         for __RTL functions.
28807         (cgraph_node::finalize_function): Set "force_output" for __RTL
28808         functions.
28809         (cgraph_node::analyze): Bail out early for __RTL functions.
28810         (analyze_functions): Update assertion to support __RTL functions.
28811         (cgraph_node::expand): Bail out early for __RTL functions.
28812         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
28813         __RTL functions.
28814         * function.h (struct function): Update comment for field
28815         "pass_startwith".
28816         * gimple-expr.c: Include "tree-pass.h".
28817         (gimple_has_body_p): Return false for __RTL functions.
28818         * Makefile.in (OBJS): Add run-rtl-passes.o.
28819         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
28820         accessor.
28821         (gcc::pass_manager::get_clean_slate): New accessor.
28822         * passes.c: Include "insn-addr.h".
28823         (should_skip_pass_p): Add logging.  Update logic for running
28824         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
28825         property-provider override so it is only done for gimple passes.
28826         Don't skip dfinit.
28827         (skip_pass): New function.
28828         (execute_one_pass): Call skip_pass when skipping passes.
28829         * read-md.c (md_reader::read_char): Support filtering
28830         the input to a subset of line numbers.
28831         (md_reader::md_reader): Initialize fields
28832         m_first_line and m_last_line.
28833         (md_reader::read_file_fragment): New function.
28834         * read-md.h (md_reader::read_file_fragment): New decl.
28835         (md_reader::m_first_line): New field.
28836         (md_reader::m_last_line): New field.
28837         * read-rtl-function.c (function_reader::create_function): Only
28838         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
28839         curr_properties.  Set DECL_INITIAL to a dummy block.
28840         (read_rtl_function_body_from_file_range): New function.
28841         * read-rtl-function.h (read_rtl_function_body_from_file_range):
28842         New decl.
28843         * run-rtl-passes.c: New file.
28844         * run-rtl-passes.h: New file.
28846 2017-01-24  Jeff Law  <law@redhat.com>
28848         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
28849         buffer size.
28851 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
28853         PR tree-optimization/79159
28854         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
28855         (record_nonwrapping_iv): Improve boundary using above function if no
28856         value range information.
28858 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
28859             Martin Jambor  <mjambor@suse.cz>
28861         * brig-builtins.def: New file.
28862         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
28863         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
28864         (DEF_HSAIL_SAT_BUILTIN): Likewise.
28865         (DEF_HSAIL_INTR_BUILTIN): Likewise.
28866         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
28867         * builtin-types.def (BT_INT8): New.
28868         (BT_INT16): Likewise.
28869         (BT_UINT8): Likewise.
28870         (BT_UINT16): Likewise.
28871         (BT_FN_ULONG): Likewise.
28872         (BT_FN_UINT_INT): Likewise.
28873         (BT_FN_UINT_ULONG): Likewise.
28874         (BT_FN_UINT_LONG): Likewise.
28875         (BT_FN_UINT_PTR): Likewise.
28876         (BT_FN_ULONG_PTR): Likewise.
28877         (BT_FN_INT8_FLOAT): Likewise.
28878         (BT_FN_INT16_FLOAT): Likewise.
28879         (BT_FN_UINT32_FLOAT): Likewise.
28880         (BT_FN_UINT16_FLOAT): Likewise.
28881         (BT_FN_UINT8_FLOAT): Likewise.
28882         (BT_FN_UINT64_FLOAT): Likewise.
28883         (BT_FN_UINT16_UINT32): Likewise.
28884         (BT_FN_UINT32_UINT16): Likewise.
28885         (BT_FN_UINT16_UINT16_UINT16): Likewise.
28886         (BT_FN_INT_PTR_INT): Likewise.
28887         (BT_FN_UINT_PTR_UINT): Likewise.
28888         (BT_FN_LONG_PTR_LONG): Likewise.
28889         (BT_FN_ULONG_PTR_ULONG): Likewise.
28890         (BT_FN_VOID_UINT64_UINT64): Likewise.
28891         (BT_FN_UINT8_UINT8_UINT8): Likewise.
28892         (BT_FN_INT8_INT8_INT8): Likewise.
28893         (BT_FN_INT16_INT16_INT16): Likewise.
28894         (BT_FN_INT_INT_INT): Likewise.
28895         (BT_FN_UINT_FLOAT_UINT): Likewise.
28896         (BT_FN_FLOAT_UINT_UINT): Likewise.
28897         (BT_FN_ULONG_UINT_UINT): Likewise.
28898         (BT_FN_ULONG_UINT_PTR): Likewise.
28899         (BT_FN_ULONG_ULONG_ULONG): Likewise.
28900         (BT_FN_UINT_UINT_UINT): Likewise.
28901         (BT_FN_VOID_UINT_PTR): Likewise.
28902         (BT_FN_UINT_UINT_PTR: Likewise.
28903         (BT_FN_UINT32_UINT64_PTR): Likewise.
28904         (BT_FN_INT_INT_UINT_UINT): Likewise.
28905         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
28906         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
28907         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
28908         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
28909         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
28910         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
28911         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
28912         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
28913         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
28914         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
28915         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
28916         * doc/frontends.texi: List BRIG FE.
28917         * doc/install.texi (Testing): Add BRIG tesring requirements.
28918         * doc/invoke.texi (Overall Options): Mention BRIG.
28919         * doc/standards.texi (Standards): Doucment BRIG HSA version.
28921 2017-01-24  Richard Biener  <rguenther@suse.de>
28923         PR translation/79208
28924         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
28926 2017-01-24  Martin Jambor  <mjambor@suse.cz>
28928         PR bootstrap/79198
28929         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
28930         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
28931         and known_contexts.
28933 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
28935         PR middle-end/79123
28936         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
28937         casts from signed to unsigned really don't have a range.
28939 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
28941         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
28942         GMP_RNDx for compatiblity.
28944 2017-01-24  Martin Liska  <mliska@suse.cz>
28946         PR bootstrap/79132
28947         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
28948         that would prevent us to call alloca with -1 as argument.
28950 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
28952         * dwarf2out.c (output_compilation_unit_header, output_file_names):
28953         Avoid -Wformat-security warning.
28955 2017-01-23  Andrew Pinski  <apinski@cavium.com>
28957         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
28958         cost table.
28960 2017-01-23  Martin Sebor  <msebor@redhat.com>
28962         PR middle-end/78703
28963         * gimple-ssa-sprintf.c (warn_level): New global.
28964         (format_integer): Use it here and throughout the rest of the file.
28965         Use the same switch to compute sign as base.
28966         (maybe_warn): New function.
28967         (format_directive): Factor out warnings into maybe_warn.
28968         Add debugging output.  Use warn_level.
28969         (add_bytes): Use warn_level.
28970         (pass_sprintf_length::compute_format_length): Add debugging output.
28971         (try_substitute_return_value): Same.
28972         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
28974         PR middle-end/78703
28975         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
28976         (struct fmtresult, format_integer, format_floating): Adjust.
28977         (fmtresult::fmtresult): Set max correctly in two argument ctor.
28978         (get_string_length, format_string,format_directive): Same.
28979         (pass_sprintf_length::compute_format_length): Same.
28980         (try_substitute_return_value): Simplify slightly.
28982         PR middle-end/78703
28983         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
28984         (fmtresult::operator+=): Outlined.
28985         (struct fmtresult): Add ctors.
28986         (struct conversion_spec): Rename...
28987         (struct directive): ...to this.  Add and remove data members.
28988         (directive::set_width, directive::set_precision): New functions.
28989         (format_percent): Use fmtresult ctor.
28990         (get_width_and_precision): Remove.
28991         (format_integer): Make naming changes.  Avoid computing width and
28992         precision.
28993         (format_floating): Same.  Adjust indentation.
28994         (format_character, format_none): New functions.
28995         (format_string): Moved character handling to format_character.
28996         (format_directive): Remove arguments, change return type.
28997         (parse_directive): New function.
28998         (pass_sprintf_length::compute_format_length): Move directive
28999         parsing to parse_directive.
29001 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
29003         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
29004         (assign_assembler_name_if_needed): ... this.
29005         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
29006         (assign_assembler_name_if_needed): ... this.
29007         (free_lang_data_in_cgraph): Adjust callers.
29008         * cgraphunit.c (cgraph_node::analyze): Likewise.
29009         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
29010         Likewise.
29012 2017-01-23  Richard Biener  <rguenther@suse.de>
29014         PR tree-optimization/79088
29015         PR tree-optimization/79188
29016         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
29017         resetting loop bounds after last path deletion.  Reset loop
29018         bounds of the target loop, make code match the comments.
29019         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
29020         Make sure loops need no fixups.
29022 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
29024         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
29025         exponent support with double type for first argument.
29026         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
29027         type returned by __builtin_vec_extract_sig,
29028         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
29029         functions from "vector int" to "vector unsigned int" or from
29030         "vector long long int" to "vector unsigned long long int".
29031         Changed type returned by __builtin_vec_extract_exp,
29032         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
29033         functions from "vector int" to "vector unsigned int" or from
29034         "vector long long int" to "vector unsigned long long int".
29035         Changed return type of __builtin_vec_test_data_class,
29036         __builtin_vec_test_data_class_sp, and
29037         __builtin_vec_test_data_class_dp from "vector int" to
29038         "vector bool int" or from "vector long long int" to "vector bool
29039         long long int" and changed second argument type from "unsigned
29040         int" to "int".  Added new overloaded function forms "vector float
29041         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
29042         "vector float __builtin_vec_insert_exp_sp (vector float, vector
29043         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
29044         double, vector unsigned long long int)" and "vector double
29045         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
29046         long int)".  Changed return type of
29047         __builtin_scalar_test_data_class and
29048         __builtin_scalar_test_data_class_sp and
29049         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
29050         int" and changed second argument from "unsigned int" to "int".
29051         Changed type returned by __builtin_scalar_test_neg,
29052         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
29053         from "int" to "bool int".  Added new overloaded function form
29054         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
29055         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
29056         exponent double-precision with floating point first argument.
29057         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
29058         documentation of scalar_test_data_class, scalar_test_neg,
29059         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
29060         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
29061         vec_test_data_class built-in functions to reflect refinements in
29062         their type signatures.
29064 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
29066         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
29067         size of buf.
29068         (aarch64_elf_asm_destructor): Likewise.
29070 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
29072         PR rtl-optimization/78634
29073         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
29074         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
29075         * ifcvt.c (noce_try_cmove): Add missing cost check.
29077         PR rtl-optimization/71724
29078         * combine.c (if_then_else_cond): Look for situations where it is
29079         beneficial to undo the work of one of the recursive calls.
29081 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
29083         PR tree-optimization/70754
29084         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
29085         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
29086         combined stmt before it if not NULL.
29087         (combine_chains): Process refs reversely and compute dominance point
29088         for root ref.
29090 2017-01-23  Martin Liska  <mliska@suse.cz>
29092         PR tree-optimization/79196
29093         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
29094         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
29095         instead of memcmp.
29096         (strlen_optimize_stmt): Call the renamed function.
29098 2017-01-23  Michael Matz  <matz@suse.de>
29100         PR tree-optimization/78384
29101         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
29103 2017-01-23  Richard Biener  <rguenther@suse.de>
29105         PR tree-optimization/79186
29106         * tree-vrp.c (register_new_assert_for): Make sure we've seen
29107         both incoming edges before moving an assert.
29109 2017-01-23  Martin Jambor  <mjambor@suse.cz>
29111         * ipa-prop.c (load_from_param_1): Removed.
29112         (load_from_unmodified_param): Bits from load_from_param_1 put back
29113         here.
29114         (load_from_param): Removed.
29115         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
29116         with stmt.  Reverted back to use of load_from_unmodified_param.
29118 2017-01-23  Martin Jambor  <mjambor@suse.cz>
29120         PR ipa/79108
29121         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
29122         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
29123         field a pointer to garbage collected vector, mark lattices and
29124         ipcp_orig_node with GTY((skip)).
29125         (ipa_get_param_count): Adjust to descriptors being a pointer.
29126         (ipa_get_param): Likewise.
29127         (ipa_get_type): Likewise.
29128         (ipa_get_param_move_cost): Likewise.
29129         (ipa_set_param_used): Likewise.
29130         (ipa_get_controlled_uses): Likewise.
29131         (ipa_set_controlled_uses): Likewise.
29132         (ipa_is_param_used): Likewise.
29133         (ipa_node_params_t): Move into garbage collector.  New methods insert
29134         and remove.
29135         (ipa_node_params_sum): Annotate wth GTY(()).
29136         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
29137         garbage collected.
29138         (ipa_load_from_parm_agg): Adjust declaration.
29139         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
29140         * ipa-profile.c (ipa_profile): Likewise.
29141         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
29142         (ipa_populate_param_decls): Make descriptors parameter garbage
29143         collected.
29144         (ipa_dump_param): Adjust to descriptors being a pointer.
29145         (ipa_alloc_node_params): Likewise.
29146         (ipa_initialize_node_params): Likewise.
29147         (load_from_param_1): Make descriptors parameter garbage collected.
29148         (load_from_unmodified_param): Likewise.
29149         (load_from_param): Likewise.
29150         (ipa_load_from_parm_agg): Likewise.
29151         (ipa_node_params::~ipa_node_params): Removed.
29152         (ipa_free_all_node_params): Remove call to delete operator.
29153         (ipa_node_params_t::insert): New.
29154         (ipa_node_params_t::remove): Likewise.
29155         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
29156         copy known_csts and known_contexts vectors.
29157         (ipa_read_node_info): Adjust to descriptors being a pointer.
29158         (ipcp_modif_dom_walker): Make m_descriptors field garbage
29159         collected.
29160         (ipcp_transform_function): Make descriptors variable garbage
29161         collected.
29163 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
29165         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
29166         * config/i386/avx512dqintrin.h: Ditto.
29167         * config/i386/avx512fintrin.h: Ditto.
29168         * config/i386/i386.c: Handle new builtins.
29169         * config/i386/i386-builtin.def: Add new builtins.
29170         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
29171         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
29173 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
29174             Martin Liska  <mliska@suse.cz>
29176         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
29177         * asan.c (asan_expand_poison_ifn): Support stores and use
29178         appropriate ASAN report function.
29179         * internal-fn.c (expand_ASAN_POISON_USE): New function.
29180         * internal-fn.def (ASAN_POISON_USE): Declare.
29181         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
29182         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
29183         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
29184         ASAN_POISON calls w/o LHS.
29185         * tree-ssa.c (execute_update_addresses_taken): Create clobber
29186         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
29187         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
29188         * gimplify.c (asan_poison_variables): Add attribute
29189         use_after_scope_memory to variables that really needs to live
29190         in memory.
29191         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
29192         having the attribute.
29194 2017-01-23  Martin Liska  <mliska@suse.cz>
29196         * asan.c (create_asan_shadow_var): New function.
29197         (asan_expand_poison_ifn): Likewise.
29198         * asan.h (asan_expand_poison_ifn): New declaration.
29199         * internal-fn.c (expand_ASAN_POISON): Likewise.
29200         * internal-fn.def (ASAN_POISON): New builtin.
29201         * sanopt.c (pass_sanopt::execute): Expand
29202         asan_expand_poison_ifn.
29203         * tree-inline.c (copy_decl_for_dup_finish): Make function
29204         external.
29205         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
29206         * tree-ssa.c (is_asan_mark_p): New function.
29207         (execute_update_addresses_taken): Rewrite local variables
29208         (identified just by use-after-scope as addressable) into SSA.
29210 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
29212         * doc/install.texi (Specific): opensource.apple.com uses https
29213         now. Remove trailing slash.
29215 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
29217         * README.Portability: Remove note on an Irix compatibility issue.
29219 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
29221         * gcov.c (INCLUDE_ALGORITHM): Define.
29222         (INCLUDE_VECTOR): Define.
29223         No longer include <vector> and <algorithm> directly.
29225 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
29227         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
29228         to https.
29229         * doc/invoke.texi (Code Gen Options): Ditto.
29231 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
29233         PR lto/78407
29234         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
29236 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
29238         rtl-optimization/79125
29239         * cprop.c (local_cprop_pass): Handle cases where we make an
29240         unconditional trap.
29242 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
29244         PR target/61729
29245         PR target/77850
29246         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
29247         read from, for big endian.
29249 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
29251         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
29252         register pauth builtins for LP64 only.
29254 2017-01-20  Marek Polacek  <polacek@redhat.com>
29256         PR c/79152
29257         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
29258         non-case labels.
29260 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
29262         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
29263         of safelen status.
29264         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
29265         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
29266         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
29268 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29270         PR target/71270
29271         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
29272         in big-endian mode when they are not a single duplicated value.
29274 2017-01-20  Richard Biener  <rguenther@suse.de>
29276         * BASE-VER: Bump to 7.0.1.
29278 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
29280         * omp-low.c (omplow_simd_context): New struct.  Use it...
29281         (lower_rec_simd_input_clauses): ...here and...
29282         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
29283         references to idx, lane, max_vf, is_simt.
29285 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
29287         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
29288         mcpu=nps400.
29290 2017-01-20  Martin Jambor  <mjambor@suse.cz>
29292         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
29293         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
29294         gt-hsa-common.h.
29295         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
29296         (GTFILES): Rename hsa.c to hsa-common.c.
29297         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
29298         * hsa-dump.c: Likewise.
29299         * hsa-gen.c: Likewise.
29300         * hsa-regalloc.c: Likewise.
29301         * ipa-hsa.c: Likewise.
29302         * omp-expand.c: Likewise.
29303         * omp-low.c: Likewise.
29304         * toplev.c: Likewise.
29306 2017-01-20  Marek Polacek  <polacek@redhat.com>
29308         PR c/64279
29309         * doc/invoke.texi: Document -Wduplicated-branches.
29310         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
29311         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
29312         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
29313         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
29314         return 0 only when not OEP_LEXICOGRAPHIC.
29315         (fold_build_cleanup_point_expr): Use the expression
29316         location when building CLEANUP_POINT_EXPR.
29317         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
29318         * tree.c (add_expr): Handle error_mark_node.
29320 2017-01-20  Martin Liska  <mliska@suse.cz>
29322         PR lto/69188
29323         * tree-profile.c (init_ic_make_global_vars): Do not call
29324         finalize_decl.
29325         (gimple_init_gcov_profiler): Likewise.
29327 2017-01-20  Martin Liska  <mliska@suse.cz>
29329         PR ipa/71190
29330         * cgraph.h (maybe_create_reference): Remove argument and
29331         update comment.
29332         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
29333         argument.
29334         * ipa-cp.c (create_specialized_node): Likewise.
29335         * symtab.c (symtab_node::maybe_create_reference): Handle
29336         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
29338 2017-01-20  Martin Liska  <mliska@suse.cz>
29340         * read-rtl-function.c (function_reader::create_function): Use
29341         build_decl instread of build_decl_stat.
29343 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
29345         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
29346         * config/i386/avx512dqintrin.h: Ditto.
29347         * config/i386/avx512fintrin.h: Ditto.
29348         * config/i386/i386-builtin-types.def: Add new types.
29349         * config/i386/i386.c: Handle new types.
29350         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
29351         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
29352         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
29353         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
29354         (__builtin_ia32_kshiftridi): New.
29355         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
29357 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
29359         PR target/78875
29360         PR target/79140
29361         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
29362         define to rs6000_init_stack_protect_guard.
29363         (rs6000_init_stack_protect_guard): New function.
29365 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
29366             Yunqiang Su  <yunqiang.su@imgtec.com>
29368         * config.gcc (supported_defaults): Add madd4.
29369         (with_madd4): Add validation.
29370         (all_defaults): Add madd4.
29371         * config/mips/mips.opt (mmadd4): New option.
29372         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
29373         mmadd4.
29374         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
29375         __mips_no_madd4.
29376         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
29377         (ISA_HAS_FUSED_MADD4): Likewise.
29378         * doc/invoke.texi (-mmadd4): Document the new option.
29379         * doc/install.texi (--with-madd4): Document the new option.
29381 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
29383         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
29384         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
29385         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
29386         (aarch64_init_pauth_hint_builtins): New.
29387         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
29388         (aarch64_expand_builtin): Expand new builtins.
29390 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
29392         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
29393         * combine-stack-adj.c (no_unhandled_cfa): Handle
29394         REG_CFA_TOGGLE_RA_MANGLE.
29395         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
29396         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
29397         info for return address signing.
29398         (aarch64_expand_epilogue): Likewise.
29400 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
29402         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
29403         * config/aarch64/aarch64-protos.h
29404         (aarch64_return_address_signing_enabled): New declaration.
29405         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
29406         New function.
29407         (aarch64_expand_prologue): Sign return address before it's pushed onto
29408         stack.
29409         (aarch64_expand_epilogue): Authenticate return address fetched from
29410         stack.
29411         (aarch64_override_options): Sanity check for ILP32 and ISA level.
29412         (aarch64_attributes): New function attributes for "sign-return-address".
29413         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
29414         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
29415         ("*do_return"): Generate combined instructions according to key index.
29416         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
29417         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
29418         iterators.
29419         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
29420         * config/aarch64/aarch64.opt (msign-return-address=): New.
29421         * doc/extend.texi (AArch64 Function Attributes): Documents
29422         "sign-return-address=".
29423         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
29425 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
29427         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
29428         overall option summary.
29430 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
29432         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
29433         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
29434         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
29435         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
29437 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
29439         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
29440         -mpower9-minmax by default for -mcpu=power9.
29441         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
29442         128-bit floating point.
29444 2017-01-20  Alan Modra  <amodra@gmail.com>
29446         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
29447         optimizing for size.
29449 2017-01-20  Alan Modra  <amodra@gmail.com>
29451         PR target/79144
29452         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
29453         for strcmp and strncmp from corresponding builtin decl.
29455 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
29457         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
29458         instead of i386/rtems-64.h.
29459         * config/i386/rtems-64.h: Remove.
29461 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
29463         PR target/78478
29464         Revert:
29465         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
29467         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
29469 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
29471         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
29472         Change int to HOST_WIDE_INT.
29473         * config/aarch64/aarch64-protos.h
29474         (aarch64_simd_gen_const_vector_dup): Likewise.
29475         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
29477 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
29479         * langhooks-def.h (lhd_type_for_size): New decl.
29480         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
29481         * langhooks.c (lhd_type_for_size): New function, taken from
29482         lto_type_for_size.
29484 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
29486         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
29487         define_bypass for CR latency.
29488         (power9-cracked-alu): Update bypass latency and remove power9-branch.
29489         (power9-alu2): Add define_bypass for CR latency.
29490         (power9-cmp): New.
29491         (power9-mul): Update insn latency.
29492         (power9-mul-compare): Update insn latency, bypass latency and remove
29493         power9-branch.
29495 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29497         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
29498         Delete.
29499         * config/aarch64/aarch64.md
29500         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
29501         aarch64_nopcrelative_literal_loads.
29502         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
29504 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
29506         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
29507         TARGET_LOONGSON_3A.
29508         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
29510 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
29512         PR target/78176
29513         * config.gcc (supported_defaults): Add lxc1-sxc1.
29514         (with_lxc1_sxc1): Add validation.
29515         (all_defaults): Add lxc1-sxc1.
29516         * config/mips/mips.opt (mlxc1-sxc1): New option.
29517         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
29518         mlxc1-sxc1.
29519         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
29520         __mips_no_lxc1_sxc1.
29521         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
29522         * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
29523         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
29525 2017-01-19  Richard Biener  <rguenther@suse.de>
29527         PR tree-optimization/72488
29528         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
29529         sure to restore SSA info.
29530         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
29532 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
29534         PR rtl-optimization/79121
29535         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
29536         of the inner type when shifting an extended value.
29538 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
29540         PR lto/78407
29541         * symtab.c (symtab_node::equal_address_to): Fix comparing of
29542         interposable aliases.
29544 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
29546         PR target/78516
29547         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
29548         Use the evmergelohi instruction.
29549         (mov_si<mode>_e500_subreg4_2_le): Likewise.
29550         (mov_sitf_e500_subreg8_2_be): Likewise.
29551         (mov_sitf_e500_subreg12_2_le): Likewise.
29552         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
29553         (mov_si<mode>_e500_subreg4_2_be): Likewise.
29554         (mov_sitf_e500_subreg8_2_le): Likewise.
29555         (mov_sitf_e500_subreg12_2_be): Likewise.
29557 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29559         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
29560         attribute from vecsimple to vecperm.
29561         (altivec_vbpermq2): Likewise.
29563 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29565         PR target/79040
29566         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
29568 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
29569         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
29570         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
29571         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
29572         case where N arg is SIZE_MAX.
29573         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
29574         (cmpstrsi): Add pattern.
29576 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
29578         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
29579         __builtin_vec_revb builtins.
29580         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
29581         built-in functions to support generation of the ISA 3.0 XXBR<x>
29582         vector byte reverse instructions.
29583         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
29584         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
29585         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
29586         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
29587         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
29588         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
29589         (P9V_BUILTIN_VEC_REVB): Likewise.
29590         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
29591         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
29592         (p9_xxbrq_v16qi): Likewise.
29593         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
29594         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
29595         (p9_xxbrh_v8hi): Likewise.
29596         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
29597         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
29598         vec_revb built-in functions.
29600 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
29602         PR rtl-optimization/78952
29603         * config/i386/i386.md (any_extract): New code iterator.
29604         (*insvqi_2): Use any_extract for source operand.
29605         (*insvqi_3): Use any_shiftrt for source operand.
29607 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
29609         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
29610         New function.
29611         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
29613 2017-01-18  Matthias Klose  <doko@ubuntu.com>
29615         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
29617 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29619         * config/rs6000/altivec.h (vec_bperm): Change #define.
29620         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
29621         (altivec_vbpermq2): New define_insn.
29622         (altivec_vbpermd): Likewise.
29623         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
29624         function interface.
29625         (VBPERMD): Likewise.
29626         (VBPERM): New polymorphic function interface.
29627         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
29628         Add entries for P9V_BUILTIN_VEC_VBPERM.
29629         * doc/extend.texi: Add interfaces for vec_bperm.
29631 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29633         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
29634         first letter of error messages.
29635         (s390_resolve_overloaded_builtin): Likewise.
29636         * config/s390/s390.c (s390_expand_builtin): Likewise.
29637         (s390_invalid_arg_for_unprototyped_fn): Likewise.
29638         (s390_valid_target_attribute_inner_p): Likewise.
29639         * config/s390/s390.md ("tabort"): Likewise.
29641 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
29643         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
29644         (ISA_AVOID_DIV_HILO): New macro.
29645         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
29646         (ISA_HAS_DDIV): Likewise.
29648 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
29650         * doc/invoke.texi (fabi-version): Correct number of occurrences.
29652 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
29654         * doc/invoke.texi (fabi-version): Spelling fix.
29656 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
29658         PR c++/70182
29659         * doc/invoke.texi (fabi-version): Mention mangling fix for
29660         operator names.
29662 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
29664         PR c++/77489
29665         * doc/invoke.texi (fabi-version): Document discriminator mangling.
29667 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
29669         PR target/78875
29670         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
29671         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
29672         the new options.
29673         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
29674         flexible settings.
29675         (stack_protect_test): Ditto.
29676         * config/rs6000/rs6000.opt (mstack-protector-guard=,
29677         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
29678         options.
29679         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
29680         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
29681         -mstack-protector-guard-offset=.
29682         (RS/6000 and PowerPC Options): Ditto.
29684 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
29686         * config/i386/i386.h (MASK_CLASS_P): New define.
29687         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
29688         there are no registers from different register sets also when
29689         mask registers are used.  Update function comment.
29690         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
29691         to (*k/*r) and (*k/*km) alternatives.
29693 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
29695         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
29696         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
29697         (EH_RETURN_HANDLER_RTX): New define.
29698         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
29699         Force frame pointer in EH return functions.
29700         (aarch64_expand_epilogue): Add barrier for eh_return.
29701         (aarch64_final_eh_return_addr): Remove.
29702         (aarch64_eh_return_handler_rtx): New function.
29703         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
29704         Remove.
29705         (aarch64_eh_return_handler_rtx): New prototype.
29707 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29709         * config/rs6000/altivec.h (vec_rlmi): New #define.
29710         (vec_vrlnm): Likewise.
29711         (vec_rlnm): Likewise.
29712         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
29713         (UNSPEC_VRLNM): Likewise.
29714         (VIlong): New mode iterator.
29715         (altivec_vrl<VI_char>mi): New define_insn.
29716         (altivec_vrl<VI_char>nm): Likewise.
29717         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
29718         function entry.
29719         (VRLDNM): Likewise.
29720         (RLNM): New polymorphic function entry.
29721         (VRLWMI): New monomorphic function entry.
29722         (VRLDMI): Likewise.
29723         (RLMI): New polymorphic function entry.
29724         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
29725         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
29726         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
29727         vec_vrlnm.
29729 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
29731         PR debug/78839
29732         * dwarf2out.c (field_byte_offset): Restore the
29733         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
29734         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
29735         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
29736         of build2 + fold.
29738 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
29740         PR ada/67205
29741         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
29743 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
29745         PR debug/71669
29746         * dwarf2out.c (add_data_member_location_attribute): For constant
29747         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
29748         instead of DW_AT_data_member_location, DW_AT_bit_offset and
29749         DW_AT_byte_size attributes.
29751 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
29753         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
29754         after forcing to constant memory when the code model is medium.
29756 2017-01-17  Julia Koval  <julia.koval@intel.com>
29758         PR target/76731
29759         * config/i386/avx512fintrin.h
29760         (_mm512_i32gather_ps): Change __addr type to void const*.
29761         (_mm512_mask_i32gather_ps): Ditto.
29762         (_mm512_i32gather_pd): Ditto.
29763         (_mm512_mask_i32gather_pd): Ditto.
29764         (_mm512_i64gather_ps): Ditto.
29765         (_mm512_mask_i64gather_ps): Ditto.
29766         (_mm512_i64gather_pd): Ditto.
29767         (_mm512_mask_i64gather_pd): Ditto.
29768         (_mm512_i32gather_epi32): Ditto.
29769         (_mm512_mask_i32gather_epi32): Ditto.
29770         (_mm512_i32gather_epi64): Ditto.
29771         (_mm512_mask_i32gather_epi64): Ditto.
29772         (_mm512_i64gather_epi32): Ditto.
29773         (_mm512_mask_i64gather_epi32): Ditto.
29774         (_mm512_i64gather_epi64): Ditto.
29775         (_mm512_mask_i64gather_epi64): Ditto.
29776         (_mm512_i32scatter_ps): Change __addr type to void*.
29777         (_mm512_mask_i32scatter_ps): Ditto.
29778         (_mm512_i32scatter_pd): Ditto.
29779         (_mm512_mask_i32scatter_pd): Ditto.
29780         (_mm512_i64scatter_ps): Ditto.
29781         (_mm512_mask_i64scatter_ps): Ditto.
29782         (_mm512_i64scatter_pd): Ditto.
29783         (_mm512_mask_i64scatter_pd): Ditto.
29784         (_mm512_i32scatter_epi32): Ditto.
29785         (_mm512_mask_i32scatter_epi32): Ditto.
29786         (_mm512_i32scatter_epi64): Ditto.
29787         (_mm512_mask_i32scatter_epi64): Ditto.
29788         (_mm512_i64scatter_epi32): Ditto.
29789         (_mm512_mask_i64scatter_epi32): Ditto.
29790         (_mm512_i64scatter_epi64): Ditto.
29791         (_mm512_mask_i64scatter_epi64): Ditto.
29792         * config/i386/avx512pfintrin.h
29793         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
29794         (_mm512_mask_prefetch_i32gather_ps): Ditto.
29795         (_mm512_mask_prefetch_i64gather_pd): Ditto.
29796         (_mm512_mask_prefetch_i64gather_ps): Ditto.
29797         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
29798         (_mm512_prefetch_i32scatter_ps): Ditto.
29799         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
29800         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
29801         (_mm512_prefetch_i64scatter_pd): Ditto.
29802         (_mm512_prefetch_i64scatter_ps): Ditto.
29803         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
29804         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
29805         * config/i386/avx512vlintrin.h
29806         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
29807         (_mm_mmask_i32gather_ps): Ditto.
29808         (_mm256_mmask_i32gather_pd): Ditto.
29809         (_mm_mmask_i32gather_pd): Ditto.
29810         (_mm256_mmask_i64gather_ps): Ditto.
29811         (_mm_mmask_i64gather_ps): Ditto.
29812         (_mm256_mmask_i64gather_pd): Ditto.
29813         (_mm_mmask_i64gather_pd): Ditto.
29814         (_mm256_mmask_i32gather_epi32): Ditto.
29815         (_mm_mmask_i32gather_epi32): Ditto.
29816         (_mm256_mmask_i32gather_epi64): Ditto.
29817         (_mm_mmask_i32gather_epi64): Ditto.
29818         (_mm256_mmask_i64gather_epi32): Ditto.
29819         (_mm_mmask_i64gather_epi32): Ditto.
29820         (_mm256_mmask_i64gather_epi64): Ditto.
29821         (_mm_mmask_i64gather_epi64): Ditto.
29822         (_mm256_i32scatter_ps): Change __addr type to void*.
29823         (_mm256_mask_i32scatter_ps): Ditto.
29824         (_mm_i32scatter_ps): Ditto.
29825         (_mm_mask_i32scatter_ps): Ditto.
29826         (_mm256_i32scatter_pd): Ditto.
29827         (_mm256_mask_i32scatter_pd): Ditto.
29828         (_mm_i32scatter_pd): Ditto.
29829         (_mm_mask_i32scatter_pd): Ditto.
29830         (_mm256_i64scatter_ps): Ditto.
29831         (_mm256_mask_i64scatter_ps): Ditto.
29832         (_mm_i64scatter_ps): Ditto.
29833         (_mm_mask_i64scatter_ps): Ditto.
29834         (_mm256_i64scatter_pd): Ditto.
29835         (_mm256_mask_i64scatter_pd): Ditto.
29836         (_mm_i64scatter_pd): Ditto.
29837         (_mm_mask_i64scatter_pd): Ditto.
29838         (_mm256_i32scatter_epi32): Ditto.
29839         (_mm256_mask_i32scatter_epi32): Ditto.
29840         (_mm_i32scatter_epi32): Ditto.
29841         (_mm_mask_i32scatter_epi32): Ditto.
29842         (_mm256_i32scatter_epi64): Ditto.
29843         (_mm256_mask_i32scatter_epi64): Ditto.
29844         (_mm_i32scatter_epi64): Ditto.
29845         (_mm_mask_i32scatter_epi64): Ditto.
29846         (_mm256_i64scatter_epi32): Ditto.
29847         (_mm256_mask_i64scatter_epi32): Ditto.
29848         (_mm_i64scatter_epi32): Ditto.
29849         (_mm_mask_i64scatter_epi32): Ditto.
29850         (_mm256_i64scatter_epi64): Ditto.
29851         (_mm256_mask_i64scatter_epi64): Ditto.
29852         (_mm_i64scatter_epi64): Ditto.
29853         (_mm_mask_i64scatter_epi64): Ditto.
29854         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
29855         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
29856         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
29857         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
29858         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
29859         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
29860         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
29861         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
29862         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
29863         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
29864         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
29865         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
29866         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
29867         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
29868         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
29869         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
29870         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
29871         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
29872         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
29873         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
29874         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
29875         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
29876         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
29877         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
29878         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
29879         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
29880         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
29881         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
29882         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
29883         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
29884         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
29885         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
29886         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
29887         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
29888         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
29889         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
29890         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
29891         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
29892         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
29893         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
29894         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
29895         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
29896         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
29897         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
29898         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
29899         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
29900         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
29901         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
29902         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
29903         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
29904         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
29905         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
29906         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
29907         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
29908         definitions accordingly.
29910 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
29911             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
29913         PR target/79079
29914         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
29915         gen_lowpart.
29917 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
29919         PR target/79058
29920         * ira-conflicts.c (ira_build_conflicts): Update total conflict
29921         hard regs for inner regno.
29923 2017-01-17  Martin Liska  <mliska@suse.cz>
29925         PR ipa/71207
29926         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
29927         assumption and add comment.
29929 2017-01-17  Nathan Sidwell  <nathan@acm.org>
29931         * ipa-visibility.c (localize_node): New function, broken out of ...
29932         (function_and_variable_visibility): ... here. Call it.
29934 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
29936         PR middle-end/77445
29937         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
29938         correctly set frequency of oudgoing edge.
29939         (duplicate_thread_path): Fix profile updating.
29941 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
29943         PR other/79046
29944         * configure.ac: Add GCC_BASE_VER.
29945         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
29946         version from BASE-VER file.
29947         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
29948         (gcc.o): Depend on $(BASEVER).
29949         * common.opt (dumpfullversion): New option.
29950         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
29951         * doc/invoke.texi: Document -dumpfullversion.
29952         * doc/install.texi: Document --with-gcc-major-version-only.
29953         * configure: Regenerated.
29955 2017-01-17  Richard Biener  <rguenther@suse.de>
29957         PR tree-optimization/71433
29958         * tree-vrp.c (register_new_assert_for): Merge same asserts
29959         on all incoming edges.
29960         (process_assert_insertions_for): Handle insertions at the
29961         beginning of BBs.
29963 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
29965         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
29966         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
29968 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
29970         PR target/78633
29971         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
29972         RTL sharing.
29974 2017-01-17  Alan Modra  <amodra@gmail.com>
29976         PR target/79066
29977         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
29978         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
29979         symbolic stack limit when pic.
29981 2017-01-16  Martin Sebor  <msebor@redhat.com>
29983         PR tree-optimization/78608
29984         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
29986 2017-01-16  Jeff Law  <law@redhat.com>
29988         Revert:
29989         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
29990         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
29991         for several include directories that may be relative to sysroot.
29992         * config/i386/x-mingw32 (gplus_includedir): Define.
29993         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
29994         (native_system_includedir): Likewise.
29995         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
29996         override if TARGET_SYSTEM_ROOT is defined.
29997         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
29999         PR tree-optimization/79090
30000         PR tree-optimization/33562
30001         PR tree-optimization/61912
30002         PR tree-optimization/77485
30003         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
30004         and computed trims into the dump file.
30006 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
30008         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
30010 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
30012         PR c/79089
30013         * gimplify.c (gimplify_init_constructor): If want_value and
30014         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
30015         fix.
30017         PR target/79080
30018         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
30019         sequence.  Formatting fixes.
30020         (doloop_optimize): Formatting fixes.
30022         PR driver/49726
30023         * gcc.c (debug_level_greater_than_spec_func): New function.
30024         (static_spec_functions): Add debug-level-gt spec function.
30025         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
30026         !g0.
30027         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
30028         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
30029         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
30030         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
30031         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
30032         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
30034 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
30036         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
30037         QImode fixups to general and mask registers only.
30039 2017-01-16  Carl Love  <cel@us.ibm.com>
30041         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
30042         for built-in functions
30043         vector signed char vec_nabs (vector signed char)
30044         vector signed short vec_nabs (vector signed short)
30045         vector signed int vec_nabs (vector signed int)
30046         vector signed long long vec_nabs (vector signed long long)
30047         vector float vec_nabs (vector float)
30048         vector double vec_nabs (vector double)
30049         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
30050         and NABS overload.
30051         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
30052         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
30053         * doc/extend.texi: Update the documentation file for the new built-in
30054         functions.
30056 2017-01-16  Martin Sebor  <msebor@redhat.com>
30058         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
30059         message.
30061 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30063         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
30064         UNSPEC_VSX__XXSPLTD to require special splat handling.
30066 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
30068         PR bootstrap/78616
30069         * system.h: Poison strndup.
30071 2017-01-16  Alan Modra  <amodra@gmail.com>
30073         PR target/79098
30074         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
30075         use a switch.
30077 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
30079         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
30081 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
30083         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
30084         call recog here.  Assert that INSN_CODE (insn) is non-negative.
30086 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
30088         PR target/72749
30089         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
30090         fallthrough.
30091         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
30092         in the currently scheduled RTL fragment.
30094 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
30096         PR rtl-optimization/78751
30097         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
30098         give up.
30100 2017-01-14  Jeff Law  <law@redhat.com>
30102         PR tree-optimization/79090
30103         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
30104         variable length stores.
30105         (compute_trims): Delete dead assignment to *trim_tail.
30106         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
30107         zero length.
30109 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
30111         PR rtl-optimization/78626
30112         PR rtl-optimization/78727
30113         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
30114         of a block, and split such blocks after everything else is finished.
30116 2017-01-14  Alan Modra  <amodra@gmail.com>
30118         PR target/72749
30119         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
30120         target legitimate_combined_insn.
30121         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
30122         (rs6000_legitimate_combined_insn): New function.
30123         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
30124         all uses.
30125         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
30126         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
30127         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
30129 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
30131         * doc/frontends.texi (G++ and GCC): Remove references to Java.
30133 2017-01-13  Jeff Law  <law@redhat.com>
30135         PR tree-optimization/33562
30136         PR tree-optimization/61912
30137         PR tree-optimization/77485
30138         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
30139         a statement.
30140         (delete_dead_assignment): Likewise.
30141         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
30142         statement to delete_dead_call and delete_dead_assignment.
30144 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
30146         PR c/78304
30147         * substring-locations.c (format_warning_va): Strengthen case 1 so
30148         that both endpoints of the substring must be within the format
30149         range for just the substring to be printed.
30151 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
30153         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
30154         * config/i386/i386.c (ix86_target_string): Add missing options
30155         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
30156         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
30157         flags_other and ix86_target_other to flags2_other.  Display unknown
30158         isa2 options.
30159         (ix86_valid_target_attribute_inner_p): Add missing options and
30160         reorder options by implied ISAs, as in ix86_target_string.
30162 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
30164         * hash-table.h (hash_table::too_empty_p): New function.
30165         (hash_table::expand): Use it.
30166         (hash_table::traverse): Likewise.
30167         (hash_table::empty_slot): Use sizeof (value_type) instead of
30168         sizeof (PTR) to convert bytes to elements.  Shrink the table
30169         if the current size is excessive for the current number of
30170         elements.
30172 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
30174         * ira-costs.c (record_reg_classes): Break from the inner loop
30175         early once alt_fail is known to be true.  Update outer loop
30176         handling accordingly.
30178 2017-01-13  Jeff Law  <law@redhat.com>
30180         * tree-ssa-dse.c (decrement_count): New function.
30181         (increment_start_addr, maybe_trim_memstar_call): Likewise.
30182         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
30183         when we know the partially dead statement is a mem* function.
30185         PR tree-optimization/61912
30186         PR tree-optimization/77485
30187         * tree-ssa-dse.c: Include expr.h.
30188         (maybe_trim_constructor_store): New function.
30189         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
30191         PR tree-optimization/33562
30192         PR tree-optimization/61912
30193         PR tree-optimization/77485
30194         * doc/invoke.texi: Document new dse-max-object-size param.
30195         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
30196         * tree-ssa-dse.c: Include params.h.
30197         (dse_store_status): New enum.
30198         (initialize_ao_ref_for_dse): New, partially extracted from
30199         dse_optimize_stmt.
30200         (valid_ao_ref_for_dse, normalize_ref): New.
30201         (setup_live_bytes_from_ref, compute_trims): Likewise.
30202         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
30203         (maybe_trim_partially_dead_store): Likewise.
30204         (maybe_trim_complex_store): Likewise.
30205         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
30206         Track what bytes live from the original store.  Return tri-state
30207         for dead, partially dead or live.
30208         (dse_dom_walker): Add constructor, destructor and new private members.
30209         (delete_dead_call, delete_dead_assignment): New extracted from
30210         dse_optimize_stmt.
30211         (dse_optimize_stmt): Make a member of dse_dom_walker.
30212         Use initialize_ao_ref_for_dse.
30214         PR tree-optimization/33562
30215         PR tree-optimization/61912
30216         PR tree-optimization/77485
30217         * sbitmap.h (bitmap_count_bits): Prototype.
30218         (bitmap_clear_range, bitmap_set_range): Likewise.
30219         * sbitmap.c (bitmap_clear_range): New function.
30220         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
30222 2017-01-13  Martin Liska  <mliska@suse.cz>
30224         PR ipa/79043
30225         * function.c (set_cfun): Add new argument force.
30226         * function.h (set_cfun): Likewise.
30227         * ipa-inline-transform.c (inline_call): Use the function when
30228         strict alising from is dropped for function we inline to.
30230 2017-01-13  Richard Biener  <rguenther@suse.de>
30232         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
30233         for dumping GIMPLE INTEGER_CSTs.
30235 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30237         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
30238         to 201112L since C++17.
30240 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
30242         PR sanitizer/78887
30243         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
30244         if -fsanitize=kernel-address is present.
30246 2017-01-13  Richard Biener  <rguenther@suse.de>
30248         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
30249         as _Literal ( type ) number in case usual suffixes do not
30250         preserve all information.
30252 2017-01-13  Richard Biener  <rguenther@suse.de>
30254         PR tree-optimization/77283
30255         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
30256         and ssa-iterators.h.
30257         (is_feasible_trace): Implement a cost model based on joiner
30258         PHI node uses.
30260 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
30262         PR target/79004
30263         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
30264         char or short to __float128/_Float128 directly.
30266 2017-01-12  Martin Sebor  <msebor@redhat.com>
30268         to -Wformat-overflow.
30269         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
30270         (min_bytes_remaining): Same.
30271         (get_string_length): Same.
30272         (format_string): Same.
30273         (format_directive): Same.
30274         (add_bytes): Same.
30275         (pass_sprintf_length::handle_gimple_call): Same.
30277 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
30279         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
30280         info.nowrite calls with no lhs that can't throw.  Return bool
30281         whether gsi_remove has been called or not.
30282         (pass_sprintf_length::handle_gimple_call): Return bool whether
30283         try_substitute_return_value called gsi_remove.  Formatting fix.
30284         (pass_sprintf_length::execute): Don't use gsi_remove if
30285         handle_gimple_call returned true.
30287         PR bootstrap/79069
30288         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
30289         be removed due to side-effects, don't remove following barrier nor
30290         turn the successor edge into fallthru edge.
30292 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30294         PR target/79044
30295         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
30296         element-reversing loads and stores as not swappable.
30298 2017-01-12  Nathan Sidwell  <nathan@acm.org>
30299             Nicolai Stange  <nicstange@gmail.com>
30301         * combine.c (try_combine): Don't ignore result of overlap checking
30302         loop.  Combine overlap & asm check into single loop.
30304 2017-01-12  Richard Biener  <rguenther@suse.de>
30306         * tree-pretty-print.c (dump_generic_node): Provide -gimple
30307         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
30309 2017-01-12  Richard Biener  <rguenther@suse.de>
30311         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
30312         and TS_TARGET_OPTION directly derive from TS_BASE.
30313         * tree-core.h (tree_optimization_option): Derive from tree_base.
30314         (tree_target_option): Likewise.
30316 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
30318         * config/i386/i386.c (memory_address_length): Increase len
30319         only when rip_relative_addr_p returns false.
30321 2017-01-11  Julia Koval  <julia.koval@intel.com>
30323         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
30324         (OPTION_MASK_ISA_SGX_SET): New.
30325         (ix86_handle_option): Handle OPT_msgx.
30326         * config.gcc: Added sgxintrin.h.
30327         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
30328         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
30329         * config/i386/i386.c (ix86_target_string): Add -msgx.
30330         (PTA_SGX): New.
30331         (ix86_option_override_internal): Handle new options.
30332         (ix86_valid_target_attribute_inner_p): Add sgx.
30333         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
30334         * config/i386/i386.opt: Add msgx.
30335         * config/i386/sgxintrin.h: New file.
30336         * config/i386/x86intrin.h: Add sgxintrin.h.
30338 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
30340         PR c++/71537
30341         * fold-const.c (maybe_nonzero_address): Return 1 for function
30342         local objects.
30343         (tree_single_nonzero_warnv_p): Don't handle function local objects
30344         here.
30346         PR c++/72813
30347         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
30348         of c-header.
30350 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
30352         PR driver/78877
30353         * opts.c: Include "spellcheck.h"
30354         (struct string_fragment): New struct.
30355         (struct edit_distance_traits<const string_fragment &>): New
30356         struct.
30357         (get_closest_sanitizer_option): New function.
30358         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
30360 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
30362         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
30363         by 12.
30364         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
30365         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
30366         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
30367         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
30368         for initial die_offset if dwarf_split_debug_info.
30369         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
30370         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
30371         fields.
30372         (output_skeleton_debug_sections): Formatting fix.  Use
30373         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
30374         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
30376 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
30378         * config/arm/cortex-a53.md: Add bypasses for
30379         cortex_a53_r2f_cvt.
30380         (cortex_a53_r2f): Only use for transfers.
30381         (cortex_a53_f2r): Likewise.
30382         (cortex_a53_r2f_cvt): Add reservation for conversions.
30383         (cortex_a53_f2r_cvt): Likewise.
30385 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
30387         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
30388         to all inlined functions, change static to extern.
30390 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
30392         PR target/78253
30393         * config/arm/arm.c (legitimize_pic_address): Handle reference to
30394         weak symbol.
30395         (arm_assemble_integer): Likewise.
30397 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
30399         * config.gcc: Use new awk script to check CPU, FPU and architecture
30400         parameters for --with-... options.
30401         * config/arm/parsecpu.awk: New file
30402         * config/arm/arm-cpus.in: New file.
30403         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
30404         files.
30405         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
30406         files.
30407         * config/arm/t-arm: Update dependency rules.
30408         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
30409         of processing .def files.
30410         * config/arm/genopt.sh: Deleted.
30411         * config/arm/gentune.sh: Deleted.
30412         * config/arm/arm-cores.def: Deleted.
30413         * config/arm/arm-arches.def: Deleted.
30414         * config/arm/arm-fpus.def: Deleted.
30415         * config/arm/arm-tune.md: Regenerated.
30416         * config/arm/arm-tables.opt: Regenerated.
30417         * config/arm/arm-cpu.h: New generated file.
30418         * config/arm/arm-cpu-data.h: New generated file.
30419         * config/arm/arm-cpu-cdata.h: New generated file.
30421 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
30423         PR lto/79042
30424         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
30425         bit.
30426         (input_varpool_node): Unpack dynamically_initialized bit.
30428 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
30430         PR rtl-optimization/79032
30431         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
30432         the alignment of the adjusted memory reference against that of MODE,
30433         instead of the alignment of the original memory reference.
30435 2017-01-11  Martin Jambor  <mjambor@suse.cz>
30437         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
30438         test.
30439         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
30440         decorated functions.
30442 2017-01-11  Richard Biener  <rguenther@suse.de>
30444         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
30445         set range/nonnull info for PHI results.  Do not set it on
30446         stmts marked for removal.
30448 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
30450         * expr.c (store_field): In the bitfield case, fetch the return value
30451         from the registers before applying a single big-endian adjustment.
30452         Always do a final load for a BLKmode value not larger than a word.
30454 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
30456         PR c++/77949
30457         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
30458         that we correctly handle column numbers greater than
30459         LINE_MAP_MAX_COLUMN_NUMBER.
30461 2017-01-10  Martin Sebor  <msebor@redhat.com>
30463         PR middle-end/78245
30464         * gimple-ssa-sprintf.c (get_destination_size): Call
30465         {init,fini}object_sizes.
30466         * tree-object-size.c (addr_object_size): Adjust.
30467         (pass_through_call): Adjust.
30468         (pass_object_sizes::execute): Adjust.
30469         * tree-object-size.h (fini_object_sizes): Declare.
30471 2017-01-10  Martin Sebor  <msebor@redhat.com>
30473         PR tree-optimization/78775
30474         * builtins.c (get_size_range): Move...
30475         * calls.c: ...to here.
30476         (alloc_max_size): Accept zero argument.
30477         (operand_signed_p): Remove.
30478         (maybe_warn_alloc_args_overflow): Call get_size_range.
30479         * calls.h (get_size_range): Declare.
30481 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
30483         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
30484         from TI's devices.csv file as of September 2016.
30485         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
30487 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
30489         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
30490         * doc/invoke.texi: Likewise.
30491         * doc/md.texi: Likewise.
30492         * doc/objc.texi: Likewise.
30494 2017-01-10  Joshua Conner  <joshconner@google.com>
30496         * config/arm/fuchsia-elf.h: New file.
30497         * config/fuchsia.h: New file.
30498         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
30499         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
30500         targets.
30501         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
30503 2016-01-10  Richard Biener  <rguenther@suse.de>
30505         PR tree-optimization/79034
30506         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
30507         Propagate out degenerate PHIs in the joiner.
30509 2017-01-10  Martin Liska  <mliska@suse.cz>
30511         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
30512         (sort_congruence_classes_by_decl_uid): Likewise.
30513         (sort_congruence_class_groups_by_decl_uid): Likewise.
30514         (sem_item_optimizer::merge_classes): Sort class, groups in these
30515         classes and members in the groups by DECL_UID of declarations.
30516         This would make merge operations stable.
30518 2017-01-10  Martin Liska  <mliska@suse.cz>
30520         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
30521         usage of m_classes_vec.
30522         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
30523         (sem_item_optimizer::get_group_by_hash): Likewise.
30524         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
30525         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
30526         (sem_item_optimizer::verify_classes): Likewise.
30527         (sem_item_optimizer::process_cong_reduction): Likewise.
30528         (sem_item_optimizer::dump_cong_classes): Likewise.
30529         (sem_item_optimizer::merge_classes): Likewise.
30530         * ipa-icf.h (congruence_class_hash): Rename from
30531         congruence_class_group_hash.  Remove declaration of m_classes_vec.
30533 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
30535         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
30536         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
30537         * config.gcc: Add avx512vpopcntdqintrin.h.
30538         * config/i386/avx512vpopcntdqintrin.h: New.
30539         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
30540         * config/i386/i386-builtin-types.def: Add new types.
30541         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
30542         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
30543         __builtin_ia32_vpopcountq_v8di_mask): New.
30544         * config/i386/i386-c.c (ix86_target_macros_internal): Define
30545         __AVX512VPOPCNTDQ__.
30546         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
30547         (PTA_AVX512VPOPCNTDQ): Define.
30548         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
30549         TARGET_AVX512VPOPCNTDQ_P): Define.
30550         * config/i386/i386.opt: Add mavx512vpopcntdq.
30551         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
30552         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
30554 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
30556         PR middle-end/77484
30557         * predict.def (PRED_CALL): Set to 67.
30559 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
30561         * expr.c (store_field): In the bitfield case, if the value comes from
30562         a function call and is of an aggregate type returned in registers, do
30563         not modify the field mode; extract the value in all cases if the mode
30564         is BLKmode and the size is not larger than a word.
30566 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
30568         PR target/71017
30569         * config/i386/cpuid.h: Fix undefined behavior.
30571 2017-01-04  Jeff Law  <law@redhat.com>
30573         PR tree-optimization/79007
30574         PR tree-optimization/67955
30575         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
30576         conservative for pt.null when flag_non_call_exceptions is on.
30578 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
30580         PR translation/79019
30581         PR translation/79020
30582         * params.def (PARAM_INLINE_MIN_SPEEDUP,
30583         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
30584         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
30585         in descriptions.
30586         * config/avr/avr.opt (maccumulate-args): Likewise.
30587         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
30588         * common.opt (freport-bug): Likewise.
30589         * cif-code.def (CIF_FINAL_ERROR): Likewise.
30590         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
30591         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
30592         translatable string.
30593         * config/i386/i386.c (function_value_32): Likewise.
30594         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
30595         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
30596         Likewise.
30597         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
30598         * common/config/msp430/msp430-common.c (msp430_handle_option):
30599         Likewise.
30600         * symtab.c (symtab_node::verify_base): Likewise.
30601         * opts.c (set_debug_level): Likewise.
30602         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
30603         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
30604         missing whitespace to translatable strings.
30605         * config/avr/avr.md (bswapsi2): Fix typo in comment.
30606         * config/sh/superh.h: Likewise.
30607         * config/i386/xopintrin.h: Likewise.
30608         * config/i386/znver1.md: Likewise.
30609         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
30610         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
30611         * double-int.h (struct double_int): Likewise.
30612         * double-int.c (div_and_round_double): Likewise.
30613         * wide-int.cc: Likewise.
30614         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
30615         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
30616         * cfgcleanup.c (crossjumps_occured): Renamed to ...
30617         (crossjumps_occurred): ... this.
30618         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
30619         Adjust all uses.
30621         PR tree-optimization/78899
30622         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
30623         returning bool return struct loop *, NULL for failure and the new
30624         loop on success.
30625         (versionable_outer_loop_p): Don't version outer loop if it has
30626         dont_vectorized bit set.
30627         (tree_if_conversion): When versioning outer loop, ensure
30628         tree_if_conversion is performed also on the inner loop of the
30629         non-vectorizable outer loop copy.
30630         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
30631         LOOP_VECTORIZED in inner loop of the scalar outer loop and
30632         prevent vectorization of it.
30633         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
30634         the outer loop vectorization of the non-scalar version is attempted
30635         before vectorization of the inner loop in scalar version.  If
30636         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
30637         vectorization of its inner loop.
30638         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
30639         has 2 inner loops, rename also on edges from bb whose single pred
30640         is outer_loop->header.  Fix typo in function comment.
30642 2017-01-09  Martin Sebor  <msebor@redhat.com>
30644         PR bootstrap/79033
30645         * asan.c (asan_emit_stack_protection): Increase local buffer size
30646         to avoid snprintf truncation warning.
30648 2017-01-09  Andrew Pinski  <apinski@cavium.com>
30650         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
30651         to reference thunderx2t99 for the tuning structure
30652         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
30653         Rename to ...
30654         (thunderx2t99_extra_costs): This.
30655         * config/aarch64/aarch64-tune.md: Regenerate.
30656         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
30657         (vulcan_addrcost_table): This.
30658         (vulcan_regmove_cost): Rename to ...
30659         (thunderx2t99_regmove_cost): This.
30660         (vulcan_vector_cost): Rename to ...
30661         (thunderx2t99_vector_cost): this.
30662         (vulcan_branch_cost): Rename to ...
30663         (thunderx2t99_branch_cost): This.
30664         (vulcan_tunings): Rename to ...
30665         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
30666         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
30668 2017-01-09  Martin Jambor  <mjambor@suse.cz>
30670         PR ipa/78365
30671         PR ipa/78599
30672         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
30673         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
30674         (propagate_vr_accross_jump_function): Use the above function for all
30675         value range computations for pass-through jump functions and type
30676         converasion from explicit value range values.
30677         (ipcp_propagate_stage): Do not attempt to deduce types of formal
30678         parameters from TYPE_ARG_TYPES.
30679         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
30680         (ipa_write_node_info): Stream type of the actual argument.
30681         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
30683 2017-01-09  Martin Liska  <mliska@suse.cz>
30685         PR pch/78970
30686         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
30687         (lookup_compiler): Do not show error message with have_E.
30689 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
30691         PR tree-optimization/78938
30692         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
30693         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
30694         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
30695         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
30696         fixes.
30698 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30700         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
30701         is const0_rtx.
30703 2017-01-09  Richard Biener  <rguenther@suse.de>
30705         PR tree-optimization/78997
30706         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
30707         name condition properly.
30709 2017-01-09  Richard Biener  <rguenther@suse.de>
30711         PR debug/79000
30712         * dwarf2out.c (is_cxx): New overload with context.
30713         (is_naming_typedef_decl): Use it.
30715 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
30717         * invoke.texi (Option Summary): Correct spacing in option lists
30718         and add line breaks to fix over-long lines.
30720 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
30722         PR middle-end/17660
30724         * extend.texi (Common Variable Attributes): Add xref to GCC
30725         Internals manual to explain mode attribute keywords.
30727 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
30729         PR other/16519
30730         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
30731         and Preprocessor Options.
30732         (Options for Linking): Document -pthread here....
30733         (RS/6000 and PowerPC Options): ...not here.
30734         (Solaris 2 Options): ...or here.
30735         * doc/cppopts.texi: Document -pthread.
30737 2017-01-08  Martin Sebor  <msebor@redhat.com>
30739         PR middle-end/77708
30740         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
30741         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
30742         New member functions.
30743         (format_directive): Used them.
30744         (add_bytes): Same.
30745         (pass_sprintf_length::handle_gimple_call): Same.
30746         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
30747         to avoid truncation for any argument.
30748         (extract_affine_mul): Same.
30749         * tree.c (get_file_function_name): Same.
30751 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
30753         PR middle-end/77484
30754         * predict.def (PRED_INDIR_CALL): Set to 86.
30756 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
30758         PR preprocessor/54124
30759         * doc/cppopts.texi: Reformat -d subtable to list the full name
30760         of the options.  Add cross-reference to the docs for the general
30761         compiler -d options.
30762         * doc/invoke.texi (Developer Options): Add cross-reference to the
30763         preprocessor-specific -d option documentation.
30765 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
30767         PR preprocessor/13498
30768         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
30769         redudant material, and reflect new command-line options.
30770         (System Headers): Likewise.
30772 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
30774         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
30775         -isystem, and -idirafter.  Copy-edit.
30776         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
30777         default for -ftrack-macro-expansion.  Delete obsolete and
30778         badly-formatted implementation details about -fdebug-cpp output.
30779         * doc/cppwarnopts.texi: Copy-edit.
30781 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
30783         PR c++/72803
30784         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
30785         that the transition from a max line width >= 1<<10 to narrower
30786         lines works correctly.
30788 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
30790         * doc/options.texi (PerFunction): New.
30791         * opt-functions.awk (switch_flags): Map both Optimization and
30792         PerFunction to CL_OPTIMIZATION.
30793         * opth-gen.awk: Test for PerFunction flag along with
30794         Optimization.
30795         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
30796         it only when the latter is present.  Skip those that don't in
30797         the hash function generator.
30798         * common.opt (fvar-tracking): Mark as PerFunction instead of
30799         Optimization.
30800         (fvar-tracking-assignments): Likewise.
30801         (fvar-tracking-assignments-toggle): Likewise.
30802         (fvar-tracking-uninit): Likewise.
30804 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
30806         PR translation/79018
30807         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
30808         the and store.
30810 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
30812         PR target/57583
30813         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
30814         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
30815         TARGET_LONG_JUMP_TABLE_OFFSETS.
30816         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
30817         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
30818         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
30819         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
30820         * config/m68k/m68k.md (tablejump expander): Likewise.
30821         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
30822         TARGET_LONG_JUMP_TABLE_OFFSETS.
30823         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
30824         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
30826 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
30827             David Holsgrove <david.holsgrove@xilinx.com>
30829         * common/config/microblaze/microblaze-common.c
30830         (TARGET_EXCEPT_UNWIND_INFO): Remove.
30831         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
30832         New prototype.
30833         * config/microblaze/microblaze.c (microblaze_must_save_register)
30834         (microblaze_expand_epilogue, microblaze_return_addr): Handle
30835         calls_eh_return.
30836         (microblaze_eh_return): New function.
30837         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
30838         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
30839         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
30840         * config/microblaze/microblaze.md (eh_return): New pattern.
30842 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
30844         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
30845         GCC_DIAGNOSTIC_STRINGIFY): Define.
30847         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
30849 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30851         * config/arm/arm.md (<mcrr>): New.
30852         (<mrrc>): New.
30853         * config/arm/arm.c (arm_arch5te): New.
30854         (arm_option_override): Set arm_arch5te.
30855         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
30856         and mrrc2.
30857         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
30858         (arm_mcrr_qualifiers): ... this. New.
30859         (MRRC_QUALIFIERS): Define to...
30860         (arm_mrrc_qualifiers): ... this. New.
30861         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
30862         __arm_mrrc2): New.
30863         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
30864         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
30865         (MRRCI, mrrc, MRRC): New.
30866         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
30867         VUNSPEC_MRRC2): New.
30869 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30871         * config/arm/arm.md (<mcr>): New.
30872         (<mrc>): New.
30873         * config/arm/arm.c (arm_coproc_builtin_available): Add
30874         support for mcr, mrc, mcr2 and mrc2.
30875         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
30876         (arm_mcr_qualifiers): ... this. New.
30877         (MRC_QUALIFIERS): Define to ...
30878         (arm_mrc_qualifiers): ... this. New.
30879         (MCR_QUALIFIERS): Define to ...
30880         (arm_mcr_qualifiers): ... this. New.
30881         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
30882         __arm_mrc2): New.
30883         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
30884         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
30885         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
30886         VUNSPEC_MRC2): New.
30888 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30890         * config/arm/arm.md (*ldc): New.
30891         (*stc): New.
30892         (<ldc>): New.
30893         (<stc>): New.
30894         * config/arm/arm.c (arm_coproc_builtin_available): Add
30895         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
30896         (arm_coproc_ldc_stc_legitimate_address): New.
30897         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
30898         'qualifier_const_pointer'.
30899         (LDC_QUALIFIERS): Define to...
30900         (arm_ldc_qualifiers): ... this. New.
30901         (STC_QUALIFIERS): Define to...
30902         (arm_stc_qualifiers): ... this. New.
30903         * config/arm/arm-protos.h
30904         (arm_coproc_ldc_stc_legitimate_address): New.
30905         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
30906         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
30907         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
30908         stc2, stcl, stc2l): New.
30909         * config/arm/constraints.md (Uz): New.
30910         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
30911         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
30912         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
30913         VUNSPEC_STC2L): New.
30915 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30917         * config/arm/arm.md (<cdp>): New.
30918         * config/arm/arm.c (neon_const_bounds): Rename this ...
30919         (arm_const_bounds): ... this.
30920         (arm_coproc_builtin_available): New.
30921         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
30922         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
30923         (CDP_QUALIFIERS): Define to...
30924         (arm_cdp_qualifiers): ... this. New.
30925         (void_UP): Define.
30926         (arm_expand_builtin_args): Add case for 6 arguments.
30927         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
30928         (arm_const_bounds): ... this.
30929         (arm_coproc_builtin_available): New.
30930         * config/arm/arm_acle.h (__arm_cdp): New.
30931         (__arm_cdp2): New.
30932         * config/arm/arm_acle_builtins.def (cdp): New.
30933         (cdp2): New.
30934         * config/arm/iterators.md (CDPI,CDP,cdp): New.
30935         * config/arm/neon.md: Rename all 'neon_const_bounds' to
30936         'arm_const_bounds'.
30937         * config/arm/types.md (coproc): New.
30938         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
30939         * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
30940         * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
30941         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
30943 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30945         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
30946         (UBINOP_QUALIFIERS): New.
30947         (si_UP): Define.
30948         (acle_builtin_data): New. Change comment.
30949         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
30950         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
30951         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
30952         arm_acle_builtins.def.
30953         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
30954         (arm_init_acle_builtins): New.
30955         (CRC32_BUILTIN): Remove.
30956         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
30957         crc32cb, crc32ch and crc32cw.
30958         (arm_init_crc32_builtins): Remove.
30959         (arm_init_builtins): Use arm_init_acle_builtins rather
30960         than arm_init_crc32_builtins.
30961         (arm_expand_acle_builtin): New.
30962         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
30963         * config/arm/arm_acle_builtins.def: New.
30965 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30967         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
30968         (arm_builtin_datum): ... this.
30969         (arm_init_neon_builtin): Rename to ...
30970         (arm_init_builtin): ... this. Add a new parameters PREFIX
30971         and USE_SIG_IN_NAME.
30972         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
30973         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
30974         'arm_builtin_datum'.
30975         (arm_init_vfp_builtins): Likewise.
30976         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
30977         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
30978         (arm_expand_neon_args): Rename to ...
30979         (arm_expand_builtin_args): ... this. Rename builtin_arg
30980         enum values and differentiate between ARG_BUILTIN_MEMORY
30981         and ARG_BUILTIN_NEON_MEMORY.
30982         (arm_expand_neon_builtin_1): Rename to ...
30983         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
30984         values, arm_expand_builtin_args and add bool parameter NEON.
30985         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
30986         (arm_expand_vfp_builtin): Likewise.
30987         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
30989 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
30991         PR middle-end/77484
30992         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
30993         * predict.c (tree_estimate_probability_bb): Reverse direction of
30994         polymorphic call predictor.
30996 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
30998         * passes.c (execute_one_pass): Split out pass-skipping logic into...
30999         (determine_pass_name_match): ...this new function and...
31000         (should_skip_pass_p): ...this new function.
31002 2017-01-06  Nathan Sidwell  <nathan@acm.org>
31004         * ipa-visibility.c (function_and_variable_visibility): Reformat
31005         comments and long lines.  Remove extrneous if.
31006         * symtab.c (symtab_node::make_decl_local): Fix code format.
31007         (symtab_node::set_section_for_node): Fix comment typo.
31009 2017-01-06  Martin Liska  <mliska@suse.cz>
31011         PR bootstrap/79003
31012         * lra-constraints.c: Rename invariant to lra_invariant.
31013         * predict.c (set_even_probabilities): Initialize e to NULL.
31015 2017-01-05  Martin Sebor  <msebor@redhat.com>
31017         PR tree-optimization/78910
31018         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
31019         (format_integer): Correct off-by-one error in the handling
31020         of precision with negative numbers in signed conversions..
31022 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
31024         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
31026 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
31028         PR tree-optimization/71016
31029         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
31030         factor_out_conditional_conversion.  Formatting fix.
31031         (factor_out_conditional_conversion): Add cond_stmt argument.
31032         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
31033         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
31034         Formatting fix.
31036 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
31038         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
31039         read-rtl-function.o, and selftest-rtl.o.
31040         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
31041         (selftest::aarch64_test_loading_full_dump): New function.
31042         (selftest::aarch64_run_selftests): New function.
31043         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
31044         selftest::aarch64_run_selftests.
31045         * config/i386/i386.c
31046         (selftest::ix86_test_loading_dump_fragment_1): New function.
31047         (selftest::ix86_test_loading_call_insn): New function.
31048         (selftest::ix86_test_loading_full_dump): New function.
31049         (selftest::ix86_test_loading_unspec): New function.
31050         (selftest::ix86_run_selftests): Call the new functions.
31051         * emit-rtl.c (maybe_set_max_label_num): New function.
31052         * emit-rtl.h (maybe_set_max_label_num): New decl.
31053         * function.c (instantiate_decls): Guard call to
31054         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
31055         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
31056         "static".
31057         * gensupport.c (gen_reader::gen_reader): Pass "false"
31058         for new "compact" param of rtx_reader.
31059         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
31060         rather than an empty string for NULL strings.
31061         * read-md.c: Potentially include config.h rather than bconfig.h.
31062         Wrap include of errors.h with #ifdef GENERATOR_FILE.
31063         (have_error): New global, copied from errors.c.
31064         (md_reader::read_name): Rename to...
31065         (md_reader::read_name_1): ...this, adding "out_loc" param,
31066         and converting "missing name or number" to returning false, rather
31067         than failing.
31068         (md_reader::read_name): Reimplement in terms of read_name_1.
31069         (md_reader::read_name_or_nil): New function.
31070         (md_reader::read_string): Handle "(nil)" by returning NULL.
31071         (md_reader::md_reader): Add new param "compact".
31072         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
31073         (md_reader::read_file): New method.
31074         * read-md.h (md_reader::md_reader): Add new param "compact".
31075         (md_reader::read_file): New method.
31076         (md_reader::is_compact): New accessor.
31077         (md_reader::read_name): Convert return type from void to file_location.
31078         (md_reader::read_name_or_nil): New decl.
31079         (md_reader::read_name_1): New decl.
31080         (md_reader::m_compact): New field.
31081         (noop_reader::noop_reader): Pass "false" for new "compact" param
31082         of rtx_reader.
31083         (rtx_reader::rtx_reader): Add new "compact" param.
31084         (rtx_reader::read_rtx_operand): Make virtual and convert return
31085         type from void to rtx.
31086         (rtx_reader::read_until): New decl.
31087         (rtx_reader::handle_any_trailing_information): New virtual function.
31088         (rtx_reader::postprocess): New virtual function.
31089         (rtx_reader::finalize_string): New virtual function.
31090         (rtx_reader::m_in_call_function_usage): New field.
31091         (rtx_reader::m_reuse_rtx_by_id): New field.
31092         * read-rtl-function.c: New file.
31093         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
31094         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
31095         (selftest::verify_three_block_rtl_cfg): New decl.
31096         * read-rtl-function.h: New file.
31097         * read-rtl.c: Potentially include config.h rather than bconfig.h.
31098         For host, include function.h, memmodel.h, and emit-rtl.h.
31099         (one_time_initialization): New function.
31100         (struct compact_insn_name): New struct.
31101         (compact_insn_names): New array.
31102         (find_code): Handle insn codes in compact dumps.
31103         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
31104         (bind_subst_iter_and_attr): Likewise.
31105         (add_condition_to_string): Likewise.
31106         (add_condition_to_rtx): Likewise.
31107         (apply_attribute_uses): Likewise.
31108         (add_current_iterators): Likewise.
31109         (apply_iterators): Likewise.
31110         (initialize_iterators): Guard usage of apply_subst_iterator with
31111         #ifdef GENERATOR_FILE.
31112         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
31113         (md_reader::read_mapping): Likewise.
31114         (add_define_attr_for_define_subst): Likewise.
31115         (add_define_subst_attr): Likewise.
31116         (read_subst_mapping): Likewise.
31117         (check_code_iterator): Likewise.
31118         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
31119         logic to...
31120         (one_time_initialization): New function.
31121         (rtx_reader::read_until): New method.
31122         (read_flags): New function.
31123         (parse_reg_note_name): New function.
31124         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
31125         Handle reuse_rtx ids.
31126         Wrap iterator lookup within #ifdef GENERATOR_FILE.
31127         Add parsing support for RTL dumps, mirroring the special-cases in
31128         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
31129         values, and calling handle_any_trailing_information.
31130         (rtx_reader::read_rtx_operand): Convert return type from void
31131         to rtx, returning return_rtx.  Handle case 'e'.  Call
31132         finalize_string on XSTR and XTMPL fields.
31133         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
31134          "(nil)" values were omitted.  Call the postprocess vfunc on the
31135         return_rtx.
31136         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
31137         class ctor.  Initialize m_in_call_function_usage.  Call
31138         one_time_initialization.
31139         * rtl-tests.c (selftest::test_uncond_jump): Call
31140         set_new_first_and_last_insn.
31141         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
31142         * selftest-rtl.c: New file.
31143         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
31144         (selftest::get_insn_by_uid): New decl.
31145         * selftest-run-tests.c (selftest::run_tests): Call
31146         read_rtl_function_c_tests.
31147         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
31148         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
31149         dumps.
31151 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
31153         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
31154         operands in a special way.  Assert that pos+len <= mode precision.
31156 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
31158         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
31159         3 argument Alias with unlimited for the negative form.
31160         (fno-vect-cost-model): Removed.
31162 2017-01-05  Martin Liska  <mliska@suse.cz>
31164         * hsa-gen.c (gen_hsa_divmod): New function.
31165         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
31167 2017-01-05  Martin Liska  <mliska@suse.cz>
31169         PR pch/78970
31170         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
31171         header.
31173 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
31175         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
31176         small constant length operands.
31178 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
31180         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
31181         between loop iterations.
31183 2017-01-05  Martin Liska  <mliska@suse.cz>
31185         PR sanitizer/78815
31186         * gimplify.c (gimplify_decl_expr): Compare to
31187         asan_poisoned_variables instread of checking flags.
31188         (gimplify_target_expr): Likewise.
31189         (gimplify_expr): Likewise.
31190         (gimplify_function_tree): Conditionally initialize
31191         asan_poisoned_variables.
31193 2017-01-04  Jeff Law  <law@redhat.com>
31195         PR tree-optimizatin/78812
31196         * rtl.h (contains_mem_rtx_p): Prototype.
31197         * ifcvt.c (containts_mem_rtx_p): Move from here to...
31198         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
31199         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
31200         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
31201         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
31203 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
31205         * input.c (assert_char_at_range): Default-initialize actual_range.
31207 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
31209         * df-scan.c (df_ref_create_structure): Make regno unsigned,
31210         to match the caller.
31212 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
31214         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
31215         insns after final jump in test to emit dummy move.
31217 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
31219         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
31220         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
31222 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
31224         * multiple_target.c (create_dispatcher_calls): Init e_next.
31225         * tree-ssa-loop-split.c (split_loop): Init border.
31226         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
31227         scalar_type.
31229 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
31231         PR target/71977
31232         PR target/70568
31233         PR target/78823
31234         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
31235         (altivec_register_operand): Do not return true if the operand
31236         contains a SUBREG mixing SImode and SFmode.
31237         (vsx_register_operand): Likewise.
31238         (vsx_reg_sfsubreg_ok): New predicate.
31239         (vfloat_operand): Do not return true if the operand contains a
31240         SUBREG mixing SImode and SFmode.
31241         (vint_operand): Likewise.
31242         (vlogical_operand): Likewise.
31243         (gpc_reg_operand): Likewise.
31244         (int_reg_operand): Likewise.
31245         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
31246         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
31247         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
31248         SImode and SFmode.
31249         (rs6000_emit_move_si_sf_subreg): New helper function.
31250         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
31251         fixup SUBREGs involving SImode and SFmode.
31252         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
31253         numbers for the new peephole2 optimization.
31254         (peephole2 for SFmode unions): New peephole2 to optimize cases in
31255         the GLIBC math library that do AND/IOR/XOR operations on single
31256         precision floating point.
31257         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
31258         target macros to say whether we need to avoid SUBREGs mixing
31259         SImode and SFmode.
31260         (TARGET_ALLOW_SF_SUBREG): Likewise.
31261         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
31262         (UNSPEC_SI_FROM_SF): Likewise.
31263         (iorxor): Change spacing.
31264         (and_ior_xor): New iterator for AND, IOR, and XOR.
31265         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
31266         (movdi_from_sf_zero_ext): Likewise.
31267         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
31268         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
31269         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
31270         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
31271         (fms<mode>4): Likewise.
31272         (fnma<mode>4): Likewise.
31273         (fnms<mode>4): Likewise.
31274         (nfma<mode>4): Likewise.
31275         (nfms<mode>4): Likewise.
31277 2017-01-04  Marek Polacek  <polacek@redhat.com>
31279         PR c++/64767
31280         * doc/invoke.texi: Document -Wpointer-compare.
31282 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
31284         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
31285         RejectNegative.
31287         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
31288         descriptions for -gdwarf-5 and emit them as uleb128 instead of
31289         2-byte data.
31291 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
31293         PR target/78056
31294         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
31295         documentation of the powerpc_popcntb_ok attribute.
31296         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
31297         code to issue warning messages if a requested CPU configuration is
31298         not supported by the binary (assembler and loader) toolchain.
31299         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
31300         made to define a built-in function that has been disabled.
31301         (paired_init_builtins): Add assertion to prevent ICE if attempt is
31302         made to define a built-in function that has been disabled.
31303         (altivec_init_builtins): Add comment explaining why definition
31304         of the DST built-in functions is not preceded by an assertion
31305         check.  Add assertions to prevent ICE if attempts are made to
31306         define an altivec predicate or an abs* built-in function that has
31307         been disabled.
31308         (htm_init_builtins): Add comment explaining why definition of the
31309         htm built-in functions is not preceded by an assertion check.
31311 2017-01-04  Jeff Law  <law@redhat.com>
31313         PR tree-optimizatin/67955
31314         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
31315         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
31316         the points-to solution does not include pt_null.  Use DECL_PT_UID
31317         unconditionally.
31319 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
31321         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
31322         Use gen_int_mode instead of gen_lopwart for const_int operands.
31324 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
31326         PR tree-optimization/71563
31327         * match.pd: Simplify X << Y into X if Y is known to be 0 or
31328         out of range value - has low bits known to be zero.
31330 2017-01-04  Alan Modra  <amodra@gmail.com>
31332         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
31333         * configure: Regenerate.
31334         * config.in: Regenerate.
31336 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
31338         PR bootstrap/77569
31339         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
31340         a substring of the message, but strcmp with the whole message.  Ifdef
31341         ENABLE_NLS, translate the message first using dgettext.
31343 2017-01-03  Jeff Law  <law@redhat.com>
31345         PR tree-optimizatin/78856
31346         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
31347         (mark_threaded_blocks): Remove code to truncate thread paths that
31348         cross multiple loop headers.  Instead invalidate the cached loop
31349         iteration information and handle case of a thread path walking
31350         into an irreducible region.
31352 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
31354         PR target/78900
31355         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
31356         assertions.  Add support for doing the signbit if the IEEE 128-bit
31357         floating point value is in a GPR.
31358         * config/rs6000/rs6000.md (Fsignbit): Delete.
31359         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
31360         Update the length attribute if the value is in a GPR.
31361         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
31362         the sign or zero extension instruction, since the value is always 0/1.
31363         (signbit<mode>2_dm2): Delete using <Fsignbit>.
31365         PR target/78953
31366         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
31367         extracting SImode to a GPR register so that we can generate a
31368         store, limit the vector to be in a traditional Altivec register
31369         for the vextuwrx instruction.
31371 2017-01-03  Ian Lance Taylor  <iant@google.com>
31373         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
31375 2017-01-03  Martin Sebor  <msebor@redhat.com>
31377         PR tree-optimization/78696
31378         * gimple-ssa-sprintf.c (format_floating): Correct handling of
31379         precision.  Use MPFR for %f for greater fidelity.  Correct handling
31380         of %g.
31381         (pass_sprintf_length::compute_format_length): Set width and precision
31382         specified by asrerisk to void_node for vararg functions.
31383         (try_substitute_return_value): Adjust dump output.
31385 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
31387         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
31389 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
31391         * doc/invoke.texi (SPARC options): Document -mlra as the default.
31392         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
31393         -mlra/-mno-lra was passed to the compiler.
31395 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
31397         PR rtl-optimization/65618
31398         * emit-rtl.c (try_split): Move initialization of "before" and
31399         "after" to just before the call to emit_insn_after_setloc.
31401 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
31403         * doc/md.texi (Standard Names): Remove reference to Java frontend.
31405 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
31407         * dwarf2out.c (gen_enumeration_type_die): When
31408         -gno-strict-dwarf, add a DW_AT_encoding attribute.
31410 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
31412         PR tree-optimization/78965
31413         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
31414         Change first argument from const call_info & to call_info &.  For %n
31415         set info.nowrite to false.
31417         PR middle-end/78901
31418         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
31419         possibly throwing calls.
31421         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
31422         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
31423         and fns handling, rather than in a separate case SSA_NAME.
31425 2017-01-02  Jeff Law  <law@redhat.com>
31427         * config/darwin-driver.c (darwin_driver_init): Const-correctness
31428         fixes for first_period and second_period variables.
31430 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
31432         PR target/78967
31433         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
31434         (*insvqi_1): New insn pattern.
31435         (*insvqi_1_mem_rex64): Ditto.
31436         (*insvqi_2): Ditto.
31437         (*insvqi_3): Rename from *insvqi.
31439         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
31441 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
31443         * doc/cfg.texi (Edges): Remove reference to Java.
31444         (Maintaining the CFG): Ditto.
31446 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
31448         PR middle-end/77674
31449         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
31450         transparent aliases.
31452 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
31454         PR middle-end/77484
31455         * predict.def (PRED_CALL): Update hitrate.
31456         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
31457         * predict.c (tree_estimate_probability_bb): Split CALL predictor
31458         into direct/indirect/polymorphic variants.
31460 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
31462         Update copyright years.
31464         * gcc.c (process_command): Update copyright notice dates.
31465         * gcov-dump.c (print_version): Ditto.
31466         * gcov.c (print_version): Ditto.
31467         * gcov-tool.c (print_version): Ditto.
31468         * gengtype.c (create_file): Ditto.
31469         * doc/cpp.texi: Bump @copying's copyright year.
31470         * doc/cppinternals.texi: Ditto.
31471         * doc/gcc.texi: Ditto.
31472         * doc/gccint.texi: Ditto.
31473         * doc/gcov.texi: Ditto.
31474         * doc/install.texi: Ditto.
31475         * doc/invoke.texi: Ditto.
31477 Copyright (C) 2017 Free Software Foundation, Inc.
31479 Copying and distribution of this file, with or without modification,
31480 are permitted in any medium without royalty provided the copyright
31481 notice and this notice are preserved.